Files
cli-tools/ai-tools/skills/develop/SKILL.md
T
Jev Kuznetsov 60710fab20 initial commit
2026-04-16 11:36:48 +02:00

89 lines
3.9 KiB
Markdown

---
name: develop
description: "Autopilot feature delivery: spec, implement, commit, review — stops for manual testing before merge."
---
# Develop
Deliver a feature end-to-end with minimal human intervention.
## Input
`/develop <description>` — a plain-English feature description or slug name.
If no description is provided:
1. Read `docs/feature_backlog.md` if it exists.
2. Pick the first `## NNN — title` item (lowest `NNN`).
3. Announce: "Next up: **NNN — title** — description. Starting now." then proceed.
4. If no backlog exists, ask: "What should I build?" and wait.
## Resuming an interrupted run
1. Run `git log --oneline` to see commits on the branch.
2. Check `Status` in `docs/features/<NNN-slug>.md`.
3. Skip completed phases, continue from the next one.
## Phase 0 — Setup
1. Derive a slug from the description (e.g. `user-auth`, `csv-export`).
2. Determine the numeric prefix: list files in `docs/features/` matching `[0-9][0-9][0-9]-*.md`, find the highest number, and use one higher. If no files exist, start at `001`. Format: `NNN-<slug>` (e.g. `001-user-auth`, `042-csv-export`).
3. Use the full prefixed slug everywhere: branch name (`feat/NNN-<slug>`), spec file (`docs/features/NNN-<slug>.md`), and commit messages.
4. Run `git checkout -b feat/<NNN-slug>` to create the feature branch. If it already exists, switch to it.
5. If the working tree is dirty, stash changes first with `git stash`, then pop after switching.
## Phase 1 — Spec
1. Read `docs/architecture.md` if it exists (not required).
2. Write a lightweight feature spec to `docs/features/<NNN-slug>.md` using the template in `assets/spec-template.md`.
3. Make reasonable assumptions — flag each with `[ASSUMPTION]` in the spec.
4. Ask only if a missing answer would materially change the result and cannot be inferred. Otherwise choose the simpler option and flag it.
5. Commit the spec: `docs(<NNN-slug>): add feature spec`
## Phase 2 — Implement + Commit
Delegate to the **implementer** subagent (Sonnet). Provide it with:
- The feature spec path
- The architecture doc path (if it exists)
- Instruction to write tests first, then production code
- Instruction to commit atomically as it goes (conventional commits)
- Instruction to run tests after each logical step
- Instruction to read only the minimum files needed
If the implementer reports `[BLOCKED]`, stop and report the blocker to the user.
**Copilot / single-thread mode:** run implementation directly — read the spec, write tests, implement, commit, run tests.
## Phase 3 — Review
1. Run the test suite (`inv test` or project-appropriate test command).
2. Run `git diff main...HEAD` to see all changes on the feature branch.
3. Compare against the feature spec:
- Are all acceptance criteria addressed?
- Do tests pass?
- Any obvious issues (broken imports, missing files, dead code)?
4. Decision:
- **PASS** → update spec status to `approved`. Stop and tell the user: "Feature branch `feat/<NNN-slug>` is ready. Test it, then run `/merge <NNN-slug>` to merge."
- **FIXABLE** → loop back to Phase 2 with specific fix instructions. Maximum **1 retry**.
- **BLOCKED** → update spec status to `blocked`, stop and report to user.
## When to stop
Stop and report to the user ONLY for:
- Contradictions between the feature description and existing architecture
- Test failures that can't be resolved after 3 attempts
- Merge conflicts that can't be auto-resolved
- Missing critical information that genuinely cannot be assumed
Do NOT stop for:
- Choosing between implementation approaches (pick the simpler one, flag with `[ASSUMPTION]`)
- Creating new files or modules (just do it)
- Commit message wording (use conventional commits)
## Rules
- No approval gates.
- Make assumptions and flag them.
- Atomic conventional commits throughout.
- Feature branches are temporary — created and merged automatically.
- If the project has no test infrastructure, skip test-related steps and note it in the review.