skills/feature/SKILL.md
Comprehensive feature development with exploration, architecture, TDD, and quality gates. Do NOT use for implementation without planning (use /code), bug fixes (use /fix), or planning only without implementation (use /think).
npx skillsauth add thkt/claude-config featureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Chain /think → /code → /audit for end-to-end feature development.
| Plugin | Required for | Install |
| ------------- | ------------ | --------------------------------- |
| agent-browser | Phase 5 only | claude plugin add agent-browser |
Phase 5 is skipped gracefully if agent-browser is not installed.
$ARGUMENTS (optional)Detect project type → present relevant options.
| Pattern | Detection | Options |
| ------------------ | ----------------------------------------------------------- | ----------------------------------------- |
| Claude Code config | ${CLAUDE_SKILL_DIR}/../../ or .claude/ with skills/hooks/ | Add skill, Add hook, Add agent |
| React/Next.js | package.json has react, next | Add component, Add page, Add API route |
| API server | Express, Fastify, Hono, or src/routes/ | Add endpoint, Add middleware, Add service |
| CLI tool | bin in package.json or src/cli/ | Add command, Add option, Add subcommand |
| Library | main/exports in package.json | Add function, Add class, Add type |
| Fallback | No match | New feature, Extension, Refactoring |
See ${CLAUDE_SKILL_DIR}/../_lib/sow-resolution.md
| Phase | Name | Action | User Checkpoint | | ----- | ------------------- | ----------------------------- | ------------------------------- | | 1 | Discovery | Context scan → PREFLIGHT | Resolve unknowns and inferences | | 2 | Design | Skill: /think | Design approval | | 3 | Implementation | Skill: /code | - | | 4 | Quality Loop | /audit → /fix loop (max 3) | Remaining issues only | | 5 | Visual Verification | Browser check (UI tasks only) | Visual approval | | 6 | Summary | AC coverage + scope report | Completion |
$ARGUMENTS empty → AskUserQuestion with context-aware options/code (skip Phases 2-6)Execute Skill("think", $ARGUMENTS).
Output: .claude/workspace/planning/YYYY-MM-DD-[feature]/sow.md + spec.md
Execute Skill("code", $ARGUMENTS).
/code auto-discovers SOW from Phase 2 output.
| Step | Action | Exit | | ---- | -------------------------------------- | -------------------------- | | 1 | Skill: /audit (changed files from git) | 0 critical/high → Finalize | | 2 | Skill: /fix for each critical/high | → Step 3 | | 3 | Increment iteration (max 3) → Step 1 | Max reached → Finalize |
Changed files: git diff main...HEAD --name-only.
| Step | Action | Exit | | ---- | ---------------------------------- | ---------------------------------------------- | | 1 | Skill: /polish → verify tests pass | Tests fail → fix (max 2). Still failing → next | | 2 | Present remaining issues (if any) | User decides |
| # | Check | How | On fail |
| --- | ----------------------------------- | ---------------------------------------------- | ------------- |
| 1 | UI files in changed files | Match .tsx, .jsx, .css, .scss, .html | skip (silent) |
| 2 | agent-browser installed | which agent-browser | skip (silent) |
| 3 | Dev server detected in package.json | Match dev, start:dev, start scripts | skip (silent) |
Detected from package.json scripts.
| Priority | Script name pattern | Default URL | | -------- | ------------------------ | --------------------- | | 1 | dev, start:dev | http://localhost:5173 | | 2 | start | http://localhost:3000 | | 3 | storybook, storybook:dev | http://localhost:6006 |
Extract port from script value if specified (--port, -p, PORT=).
agent-browser --headed open {url} → navigate to page matching SOW scope (infer route from changed file paths or AC descriptions)agent-browser screenshot → capture current stateagent-browser closePresent summary. AC coverage is already verified by /code Quality Gates.
Detect resume point from existing artifacts.
| Artifact | Resume |
| ------------------------------------------- | ------- |
| No SOW | Phase 1 |
| SOW draft | Phase 2 |
| SOW in-progress + no implementation | Phase 3 |
| Implementation done + quality not completed | Phase 4 |
| Quality passed + UI files changed | Phase 5 |
| Quality passed + no UI files | Phase 6 |
Implementation evidence: git diff main...HEAD --name-only shows files matching SOW scope.
| Error | Action | | ----------------------------------- | --------------------------------- | | /think cancelled or fails | Save context, exit | | /code fails | Present error, ask user | | Quality loop exhausted (3 rounds) | Present remaining, user decides | | agent-browser not installed | Skip Phase 5, continue to Phase 6 | | Dev server not running | Skip Phase 5, continue to Phase 6 | | /code Quality Gates shows unmet ACs | Offer to re-enter Phase 3 or 4 |
| Check | Required | | --------------------- | -------- | | PREFLIGHT passed? | Yes | | SOW + Spec generated? | Yes | | All tests pass? | Yes | | /code AC coverage? | Yes |
tools
Internal helper for /think Step 11. Renders SOW.md + Spec.md as an integrated Astro view and returns a dev server URL.
development
Extract repository spec while detecting bugs, spec gaps, and consistency drift via dual-purpose documentation. OUTCOME.md-axis question-driven exploration with ephemeral output. Do NOT use for code review (use /audit or /polish), feature implementation (use /code), planning only (use /think), or single-bug fix (use /fix).
development
Discover undocumented design decisions and challenge each candidate via critic-design before promotion. Rank by impact and reversibility, produce ADR promotion candidates. Treat each candidate as a position arguing for ADR status, not a fact to be filed. Pairs with audit-adr-drift, which scans existing ADRs for drift against code.
development
Scan ADR Decision sections against current code and report drift with modification direction and priority. Do NOT use for repos without ADRs (use audit-adr-gaps instead).