## Agent feature workflow (specship)

For any non-trivial change, follow the staged workflow: **spec → plan → coding →
review** (+ `debug` when a defect appears). The full contract is in
`.claude/skills/WORKFLOW.md`; each stage's playbook is in
`.claude/skills/ss-<stage>/SKILL.md`.

These are native Claude Code skills, all prefixed `ss-` — invoke `/ss-spec`,
`/ss-plan`, `/ss-coding`, `/ss-review`, `/ss-debug`, `/ss-explore-source`,
`/ss-research`, or just describe the task and they auto-trigger.
`/ss-research <question>` answers external-fact questions (libraries, APIs,
"latest X") with the strongest search tool available — specialized MCP search
first — and finishes with a complete cited report in `docs/research/`.
`/ss-ship <feature request>` is the autopilot: it runs spec → plan → coding →
review (+ debug) end-to-end without asking at each stage. `/ss-resume-task`
picks up an in-progress task where it was left off; `/ss-pause-task` shelves a
task as `paused` (with a reason); `/ss-archive-task` moves a finished/abandoned
task into `tasks/archive/`. All three keep pipeline state intact — see
WORKFLOW.md → "Task lifecycle".

Maintain the shared task state in `tasks/TASK-<ID>/` as the contract specifies:
read `task.md` on start, update it on finish; keep IDs (`R#`/`AC#`/`S#`/`BUG#`)
stable; timestamp every log entry as `YYYY-MM-DD HH:MM +TZ` (get it from `date`).
The `stage:`/`artifacts:` values in `task.md` stay unprefixed (`spec`, `plan`,
`coding`, `review`, `debug`) — the `ss-` prefix names skills, not task state.
Only the pipeline stages and the lifecycle skills (`ss-pause-task`/`ss-archive-task`,
and `ss-resume-task` when un-shelving) write to `tasks/`. Don't run
git add/commit/push unless asked.
