spec-driven-develop
Mandatory default entry point for any non-trivial build/add/fix/implement/refactor request — drives work through explicit spec-driven-development phases (constitution check → specify → clarify → plan
SKILL.mdpackages/catalog/catalog/skills/spec-driven-develop/SKILL.md
GitHubSpec-Driven Develop
Composite skill. Chains existing skills into spec-kit's phase order and terminology, without spec-kit's CLI or .specify/ directory convention.
See also: spec-driven-development teaches the underlying SDD pattern (spec-as-contract, agent grounding, anti-patterns) in the abstract. This skill is its operational form for this harness — the concrete composite that actually chains sub-skills phase by phase. Read the pattern skill first if the "why" is unclear; use this one to execute.
Why this exists
GitHub's spec-kit enforces a structured spec → plan → tasks → implement workflow via a specify CLI that scaffolds .specify/ templates. This harness already has an equivalent skill for every phase — adt-specs-spec-new, grill-with-docs, plan, plan-to-issues, dispatch/orchestrate, review/verify. Installing the actual CLI would duplicate that coverage, add an external dependency, and fight the existing docs/specs/<date>-<slug>/ convention. This skill gets spec-kit's discipline (explicit phases, no skipping straight to code) without the tool.
Phase mapping
| Spec-kit phase | This skill's step | Sub-skill invoked |
|---|---|---|
| constitution | Phase 0 — confirm CLAUDE.md/CONTEXT.md exist for the repo; if .harness/constitution.json exists, treat it as authoritative (not constitution.md, its human-readable mirror) and also read .harness/mcp-policy.json when present; note gaps, don't block |
(read-only check) |
| specify | Phase 1 — create/find the spec | adt-specs-spec-new → docs/specs/<date>-<slug>/spec.md |
| clarify | Phase 2 — resolve ambiguity inline | grill-with-docs |
| plan | Phase 3 — phased implementation plan | plan → .claude/plans/<name>.md (or .agents/plans/) — that skill's real output location; the persisted spec from Phase 1 is what carries forward past session scope, not this plan file |
| tasks | Phase 4 — externalize tasks if tracked work | plan-to-issues (skip if session-scoped, not tracked) |
| implement | Phase 5 — execute tasks, parallel where independent | dispatch / orchestrate / loop (mandatory parallel-execution rule applies) |
| analyze / converge | Phase 6 — gate before done | review, verify, pr-merge-readiness |
Stop conditions
- Trivial edit (<3 files, mechanical, no ambiguity): skip this pipeline entirely, go straight to
addor a direct edit. Forcing the full phase sequence on a one-line fix is the exact overhead the "negative rules" inskill-auto-invoke.mdwarn against. - Read-only ask (audit, analysis, question): this skill doesn't apply — use the diagnostic skill directly.
- A more specific composite matches (hotfix, incident-response, release-cut, merge-confidently, debug-deep, or any other named lifecycle composite): defer to it. This skill is the default for build/add/fix/implement when nothing more specific matches, not a universal override.
- Bailing mid-phase: surface the blocker as this skill's output, mark the phase incomplete, resume next turn — never silently drop to ad-hoc editing (same contract as other composites,
standards/composite-contract.md).
Interop with actual spec-kit projects
If a repo already has a .specify/ directory (from someone using the real spec-kit CLI), read its templates as seed input for Phase 1 — but write output under docs/specs/<date>-<slug>/, not .specify/. Never install the specify CLI as part of this skill; that decision needs an explicit ask (new external dependency).