AGENTS.md · git:20260712.8aa605c · 2026-07-12 · sha256 b1a8e1c4e4b28ca6

AGENTS.md git:20260712.8aa605cA

Immutable. This exact content is served forever at /api/v1/blob/b1a8e1c4e4b28ca6.

# AGENTS.md
<!-- mapped 2026-07-10 @ 68994a9 · regenerate with /map refresh -->

## What this is

A collection of 14 Claude Code skills (`.claude/skills/<name>/SKILL.md`) for
research, daily work, and a coding loop. No application code, no build system —
every skill is a markdown file with YAML frontmatter that Claude Code loads.
Entry point for a reader is `README.md`; entry point for a user is any skill's
slash command (e.g. `/pulse`).

## Build, test, run

There is nothing to compile and no test suite — this is a docs-only repo.
Validation is by inspection:

- **Validate before committing:** `python3 scripts/validate-skills.py` —
  frontmatter (`name` = folder, `description` present and under the **hard
  1024-character limit** we've hit five times), marketplace coverage both
  ways, README rows, references/ integrity. Trigger evals (does each
  description actually win its prompts?) run per `evals/README.md`.
- **Install** (from `README.md`): `/plugin marketplace add duthaho/skillhub`
  (plugins defined in `.claude-plugin/marketplace.json` — a new skill must be
  added to a plugin's `skills` list there too), or `cp -r`/symlink the folders.
- **Run** a skill by typing its command in Claude Code; skills lean on
  Claude Code's sub-agents and web tools, no external services.

## Architecture

- **Each skill is self-contained** in `.claude/skills/<name>/`. A user may copy
  one folder alone, so cross-skill conventions (date via `date +%F`, `out/`
  creation, keyless degradation) are **duplicated by design** — don't try to
  factor them into a shared file.
- **Progressive disclosure via `references/`:** heavy output templates and
  design briefs live in `.claude/skills/<name>/references/*.md`, loaded only
  when the skill reaches that step (see `pulse`, `jobfit`, `verdict`, `scout`).
  The `SKILL.md` body loads on every trigger, so keep it lean.
- **State model:** skills write to `out/<skill>/` in whatever project they run
  in (`out/dev/` for the coding loop). See `README.md` "How the memory works".
- **The coding loop composes:** `map` → `feature`/`bugfix`/`refactor` → `done`,
  with `autopilot` wrapping the whole loop and `scout` feeding it candidates.

## Conventions & gotchas

- **Adding a skill touches two places:** create the folder, add one row to
  the skills table in `README.md`, and list it in a plugin's `skills` array in
  `.claude-plugin/marketplace.json`. Counts and command lists were deliberately
  removed so nothing else drifts (see README history around the map skill).
- **`out/` is commit-optional**, but `out/jobfit/`, `out/daybrief/`, and
  `out/tune/` stay gitignored — they hold personal data (`.gitignore`).
- **Guardrail voice:** rules are stated once in the body with a short "why",
  not repeated in a MUST-heavy Guardrails block. Keep rationale that changes
  behavior; cut rationale that only restates.
- **Git workflow:** feature branch → PR → merge (merge commits, not squash).
  Commit messages carry **no AI attribution**.

## Landmarks

- `README.md` — the front door; failure-mode narrative + skills table.
- `.claude/skills/map/SKILL.md` — the skill that generates this file.
- `.claude/skills/autopilot/SKILL.md` — the most complex skill (full pipeline).
- `.claude/skills/*/references/` — the progressive-disclosure templates.
- `LICENSE` — MIT.