Imported from mobiustripper42/seeds (
dev/claude/docs/AGENTS.md). Install upstream withnpx skills add mobiustripper42/seeds --skill docs. Copyright stays with the author.
[Project] — Claude Code Agents & Skills
Overview
Several agents and slash-command skills support the development workflow. All run as Claude Code sessions, subagents, or slash commands. None are blocking — if one creates friction, drop it and revisit later. The summary table at the end of this doc is the canonical list — the per-skill sections below cover the original session-lifecycle set; newer skills (/start-phase, /retro, /bump-major, /promote-production, etc.) are documented in their own SKILL.md files under .claude/skills/.
Agents
1. @architect
Purpose: Reviews architectural and design decisions before they're committed.
When to invoke:
- Before adding a new library or dependency
- When a task requires a pattern you haven't used yet
- When scope creep is knocking at the door
- When a task has a DEC-TBD flagged in PROJECT_PLAN.md
Spec: .claude/agents/architect.md
Output: Recommendation (proceed / modify / reject) with reasoning. Draft docs/decisions/DEC-<id>-<slug>.md if proceeding — frontmatter plus body. The index row and any amendment banner are generated by npm run gen:decisions, never hand-written (DEC-S036).
2. @code-review
Purpose: Lightweight post-commit review. Catches issues, inconsistencies, and potential bugs.
When to invoke:
- After completing a task or set of related commits
- Before merging a phase
- Optional — skip if it's slowing you down
Spec: .claude/agents/code-review.md
Output: Findings list ranked by severity, or "Clean Bill of Health."
3. @pm
Purpose: Tracks project state. Knows what's done, what's next, what's blocked.
When to invoke:
- Start of every work session (via
/its-alive) - End of every work session (via
/its-dead) - Status checks ("where are we?")
- Scope cut decisions
Spec: .claude/agents/pm.md
Output: Updated docs/PROJECT_PLAN.md. Timeline risk flags. Scope cut recommendations.
4. @ui-reviewer
Purpose: Reviews visual design quality against the project's design system.
When to invoke:
- After completing a page or significant component
- At phase boundaries (formal review)
- When something "looks off" but you can't say why
Spec: .claude/agents/ui-reviewer.md
Output: Scored report (X/10) with prioritized issues and exact Tailwind class fixes.
5. @doc-consistency
Purpose: Cross-references factual claims across the project's doc set and flags mismatches and unfilled template placeholders. Report-only.
When to invoke: ad-hoc only — there is no scheduled or phase-boundary trigger. Reach for it when the docs feel like they've drifted apart, or after a session that churned several docs at once. It is not a ritual; don't run it on a calendar.
- Mid-project, anytime the docs feel like they've drifted apart
- After a session that touched multiple docs at once
- Via
/doc-consistency-check(the only surface)
Spec: .claude/agents/doc-consistency.md
Scope: docs/*.md + root CLAUDE.md. Type-aware via .claude/project-type — webapp must declare brand in BRAND.md; tool must justify any "not used"; literal PLACEHOLDER is always a finding regardless of type.
Hard fences: no structural recommendations (DEC numbering, file ownership, "you should reorganize"), no edits, no copy editing. Fact-check only.
Output: Per-category pass/MISMATCH report with file:line refs and verbatim conflicting quotes. Zero-finding sweeps are a valid full report.
6. @tape-reader
Purpose: Audits session JSONL transcripts for workflow anti-patterns. Under DEC-S039 it is an observer: it fixes what this project owns and records everything else as cited evidence, rather than editing shared workflow files.
When to invoke:
- Via
/read-the-tape, after a session worth learning from
Spec: .claude/agents/tape-reader.md
Output: One observation file per run, always — clean runs included — pushed to the observations branch in seeds: cited occurrences, plus Cost if it recurs and Self-announcing for each. Those two fields are the inputs to @workout's promotion call, and the second is one only the observer can answer — whether a failure surfaced on its own or was caught by someone reading carefully is a fact about that session that no later reader can reconstruct.
That is the whole output. There are no proposed edits and no y/n prompts, because nothing in this repo is changed (DEC-S040). A finding whose fix belongs here — a repeated permission prompt is the usual one — still goes in the observation; applying it is a separate deliberate act.
What it deliberately does not do: edit, create, or delete any file in the repo it runs in (DEC-S040). Not a skill, not .claude/settings.json, not a reviewer. Edit is withheld from it, which removes the habitual path; Write and Bash are not, so /read-the-tape Step 3's post-run git status check is what actually catches a violation. New patterns reach the checklist by @workout promoting them into a seeds PR, never by a project session editing tape-reader.md: that file is canonical in seeds, and with no sync in either direction a local edit simply never arrives anywhere.
Requires: a resolvable seeds checkout (skill arg → ../seeds sibling → $SEEDS_REPO) with the observations branch fetched. Without it the audit has nowhere to write, so the skill stops rather than producing findings it will discard.
7. @sync-config
Purpose: Classifies diffs between the project's live workflow files and the seeds template repo. Backports structural improvements (push) or forward-ports template changes (pull); flags cross-family patterns.
When to invoke:
- Via
/push-seeds(project → seeds) or/pull-seeds(seeds → project) - Also runs unattended via the nightly sync Routine
Spec: .claude/agents/sync-config.md
Output: Per-hunk classification (backport / forward-port / skip) and a proposed change set for review.
8. @ideas
Purpose: Idea curator. Captures new ideas as rows in docs/FUTURE_IDEAS.md, dedupes against what's already parked, cross-references SPEC/DECISIONS/PROJECT_PLAN/open issues, and keeps the prioritized index in sync.
When to invoke:
- To park a new idea without derailing the build
- To re-rank the index or audit the parking lot for staleness
Spec: .claude/agents/ideas.md
Output: A one-report curation summary (captured / dedup + cross-reference / flags). Edits only docs/FUTURE_IDEAS.md.
Session Skills
Slash commands manage session lifecycle. Time tracking is automatic.
/its-alive — Session Start
Purpose: Stamps start time, opens a per-session file, reads last session context, recommends next task.
What it does:
- Ensures
.sessions-worktree/exists (orphansessionsbranch, DEC-S014) - Runs
dateto get current time - Opens a new per-session file
sessions/YYYY-MM-DD-HHMM-<dev>-<slug>.mdon the sessions branch, captures the active JSONL transcript path - Reads last completed session's Next Steps / In Progress / Blocked / Context
- Reads PROJECT_PLAN.md for current phase and task state
- Presents briefing with recommended task; waits for confirmation
Spec: .claude/skills/its-alive/SKILL.md
/pause-this — Mid-Session Break
Purpose: Safe pause point within a session. Use when you need to walk away but aren't done with the task.
What it does:
- Runs the build check from
.claude/CLAUDE-context.md §Commands(skips if none defined) - Commits WIP with descriptive message
- Notes pause point in the session file (but doesn't close it)
Spec: .claude/skills/pause-this/SKILL.md
/restart-this — Resume from Pause
Purpose: Reload context after a mid-session break.
What it does:
- Reads the pause note from the open session file
- Reloads context from the session file and PROJECT_PLAN.md
- No new session number, no new timestamp — resuming same session
Spec: .claude/skills/restart-this/SKILL.md
/kill-this — Per-Task PR + Session-Log Update
Purpose: Ship one task. Build check, commit, push the task branch, run code review, open a PR, append a ## Task <N> block to the session file. Runs per task (DEC-S013) — multiple times per Claude window.
What it does:
- Runs the build check from
.claude/CLAUDE-context.md §Commands(skips if none defined) - Commits code on the task branch with task prefix + Co-Authored-By, pushes
- Runs @code-review against HEAD
- Opens a PR (base =
main) withcloses #<issue> - Appends a
## Task <N>block to the session file (on the orphansessionsbranch). No time math, no version bump (those moved to/retro).
Spec: .claude/skills/kill-this/SKILL.md
/its-dead — Session End (once per window)
Purpose: Close the session file. Run once at the end of a Claude window, after every task's /kill-this has shipped its PR.
What it does:
- Stamps
ended:andstatus: closedon the open session file - Tallies total points from the per-task blocks
- Displays wall_clock to screen for a gut-check (no time math — that's
/retro's job) - Commits + pushes the sessions branch. The file is atomic after this.
Spec: .claude/skills/its-dead/SKILL.md
Session Workflow
Starting a work session:
/its-alive→ get briefing and task recommendation- Confirm what you're working on
During a work session:
3. Spec → Plan (wait for approval) → Cut the branch → Build → Test → Verify mobile screenshot
4. If hitting an architectural question → @architect
5. Ship each task with /kill-this (opens its own PR); if pausing → /pause-this → break → /restart-this
Ending a work session:
6. /its-dead once at the end of the window → close the session file, push
7. Merge PRs whenever convenient — order doesn't matter (DEC-S013)
End of a phase:
8. @code-review → review phase output
9. @ui-reviewer → design review (if UI-heavy phase)
10. /retro → close out the phase, write retro, version bumps (pgTAP, Playwright, external audits as the Phase Boundary Checklist demands)
11. Return to primary planning chat → review docs against intent
Agent Summary
| Agent/Skill | Model | When | Purpose |
|---|---|---|---|
| @architect | Opus 5 | Before design decisions | Keep architecture coherent |
| @code-review | Sonnet | After commits, optional | Catch issues early |
| @pm | Sonnet | Start/end of sessions | Track progress, flag risks |
| @ui-reviewer | Sonnet | After UI work, phase boundaries | Design quality |
| @doc-consistency | Sonnet | Via /doc-consistency-check, ad-hoc when docs feel drifted |
Cross-reference facts across docs; flag mismatches + placeholders. Report-only |
| @tape-reader | Sonnet | Via /read-the-tape |
Audit JSONL transcripts for anti-patterns; write one observation to seeds. Changes nothing here (DEC-S040) |
| @ideas | Sonnet | Park an idea, re-rank, or audit the parking lot | Curate docs/FUTURE_IDEAS.md; edits only that file |
| /its-alive | — | Session start | Open session file + timestamp + briefing |
| /pause-this | — | Mid-session break | Safe pause with commit |
| /restart-this | — | Resume from pause | Reload context |
| /kill-this | — | Per task | Build check, commit, PR, append ## Task <N> block |
| /its-dead | — | Session end (once per window) | Stamp ended:, tally points, close + push session file |
| /start-phase | — | Phase boundary (start) | Materialize phase as Issues |
| /retro | — | Phase boundary (end) | Close out phase, write retro, version bumps |
| /bump-major | — | Breaking change | Manual major version bump |
| /promote-production | — | Ship trunk to prod | ff-merge main → production (deploy-only), push |
| /doc-consistency-check | — | Ad-hoc, when docs feel drifted | Invokes @doc-consistency; cross-refs docs/*.md + root CLAUDE.md |
| /read-the-tape | — | After a session worth learning from | Audit session JSONL for anti-patterns; write one cited observation to seeds |
Per-session files: the workflow uses sessions/YYYY-MM-DD-HHMM-<dev>-<slug>.md (one file per session) on the orphan sessions branch via .sessions-worktree/ (DEC-S014). <dev> comes from ~/.claude/devname (one-line file, falls back to $USER). The slug is derived from the branch name (task/X-foo → X-foo, main → main, etc.). The active JSONL transcript path is captured in the file's frontmatter for later /read-the-tape audits.
Task model (post phase-rituals rollout): PROJECT_PLAN.md is a phase-boundary document — read at planning, written at retro. Current-phase tasks materialize as GitHub Issues with phase:N + points:X labels. The plan stays untouched mid-phase, eliminating merge contention with multiple devs.