specky-sdd 3.8.0 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.apm/agents/specky-design-architect.agent.md +1 -1
- package/.apm/agents/specky-implementer.agent.md +7 -7
- package/.apm/agents/specky-onboarding.agent.md +1 -1
- package/.apm/agents/specky-quality-reviewer.agent.md +5 -5
- package/.apm/agents/specky-release-engineer.agent.md +7 -7
- package/.apm/agents/specky-requirements-engineer.agent.md +6 -6
- package/.apm/agents/specky-research-analyst.agent.md +7 -7
- package/.apm/agents/specky-sdd-clarify.agent.md +3 -2
- package/.apm/agents/specky-sdd-init.agent.md +1 -1
- package/.apm/agents/specky-spec-engineer.agent.md +1 -1
- package/.apm/agents/specky-task-planner.agent.md +1 -1
- package/.apm/hooks/specky-run.sh +32 -0
- package/.apm/instructions/claude-instructions.instructions.md +74 -0
- package/.apm/instructions/copilot-instructions.instructions.md +3 -9
- package/.apm/instructions/cursor-instructions.instructions.md +69 -0
- package/.apm/instructions/opencode-instructions.instructions.md +45 -0
- package/.apm/prompts/specky-onboarding.prompt.md +1 -0
- package/.apm/prompts/specky-pipeline-status.prompt.md +1 -0
- package/.apm/skills/specky-design-architect/SKILL.md +21 -0
- package/.apm/skills/specky-onboarding/SKILL.md +8 -2
- package/.apm/skills/specky-quality-reviewer/SKILL.md +28 -0
- package/.apm/skills/specky-sdd-clarify/SKILL.md +25 -0
- package/.apm/skills/specky-sdd-init/SKILL.md +28 -0
- package/.apm/skills/specky-sdd-pipeline/SKILL.md +20 -19
- package/.apm/skills/specky-spec-engineer/SKILL.md +27 -0
- package/.apm/skills/specky-task-planner/SKILL.md +20 -0
- package/CHANGELOG.md +64 -0
- package/README.md +177 -82
- package/apm-policy.yml +7 -0
- package/apm.lock.yaml +29 -19
- package/apm.yml +2 -2
- package/config.yml +5 -3
- package/dist/cli/commands/compile.d.ts.map +1 -1
- package/dist/cli/commands/compile.js +36 -14
- package/dist/cli/commands/compile.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +220 -12
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/hooks.js +2 -2
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/lib/apm/lock.js +2 -2
- package/dist/cli/lib/apm/lock.js.map +1 -1
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +73 -36
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
- package/dist/cli/lib/gitignore-writer.js +2 -1
- package/dist/cli/lib/gitignore-writer.js.map +1 -1
- package/dist/cli/lib/harness/compilers/claude.d.ts.map +1 -1
- package/dist/cli/lib/harness/compilers/claude.js +2 -2
- package/dist/cli/lib/harness/compilers/claude.js.map +1 -1
- package/dist/cli/lib/harness/compilers/common.d.ts +2 -0
- package/dist/cli/lib/harness/compilers/common.d.ts.map +1 -1
- package/dist/cli/lib/harness/compilers/common.js +6 -0
- package/dist/cli/lib/harness/compilers/common.js.map +1 -1
- package/dist/cli/lib/harness/compilers/cursor.d.ts.map +1 -1
- package/dist/cli/lib/harness/compilers/cursor.js +3 -2
- package/dist/cli/lib/harness/compilers/cursor.js.map +1 -1
- package/dist/cli/lib/harness/tool-map.js +2 -2
- package/dist/cli/lib/harness/tool-map.js.map +1 -1
- package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.js +2 -0
- package/dist/cli/lib/mcp-writer.js.map +1 -1
- package/dist/cli/lib/paths.d.ts +4 -0
- package/dist/cli/lib/paths.d.ts.map +1 -1
- package/dist/cli/lib/paths.js +4 -0
- package/dist/cli/lib/paths.js.map +1 -1
- package/dist/cursor-hooks.json +288 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/services/state-machine.d.ts +22 -1
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +95 -5
- package/dist/services/state-machine.js.map +1 -1
- package/dist/templates/specification.md +2 -0
- package/dist/tools/pipeline.d.ts.map +1 -1
- package/dist/tools/pipeline.js +96 -42
- package/dist/tools/pipeline.js.map +1 -1
- package/dist/tools/tool-enforcement.d.ts.map +1 -1
- package/dist/tools/tool-enforcement.js +13 -0
- package/dist/tools/tool-enforcement.js.map +1 -1
- package/package.json +5 -6
- package/site/specky-icon.png +0 -0
- package/templates/specification.md +2 -0
|
@@ -26,7 +26,7 @@ Diagram generation can run standalone.
|
|
|
26
26
|
|
|
27
27
|
You are a senior system architect. You transform specifications into implementable designs.
|
|
28
28
|
|
|
29
|
-
**First step:** Read the `specky-
|
|
29
|
+
**First step:** Read the `specky-design-architect` SKILL.md for design standards and artifact format.
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Read SPECIFICATION.md for all requirements and acceptance criteria
|
|
@@ -31,13 +31,13 @@ You are a senior implementation engineer. You bridge the gap between specificati
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Read the `specky-implementer` SKILL.md for implementation patterns and tool reference
|
|
33
33
|
2. Verify you are on the correct `spec/NNN-*` branch (not develop/stage/main)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
3. Verify TASKS.md and DESIGN.md exist for the feature
|
|
35
|
+
4. Call sdd_implement — ordered plan (Foundation → Core → Integration → Polish)
|
|
36
|
+
5. Call sdd_checklist for security + testing + relevant NFR domains
|
|
37
|
+
6. Detect test framework, call sdd_generate_tests — every stub has REQ-XXX traceability
|
|
38
|
+
7. If EARS invariants exist, call sdd_generate_pbt for property-based tests
|
|
39
|
+
8. If deployment architecture exists, generate IaC and Docker configs
|
|
40
|
+
9. Deliver implementation handoff summary
|
|
41
41
|
|
|
42
42
|
**Hard rules:**
|
|
43
43
|
- Never enable extended thinking (arXiv:2502.08235: +43% cost, -30% quality)
|
|
@@ -64,7 +64,7 @@ You are the Specky SDD onboarding wizard. You are the **default entry point** wh
|
|
|
64
64
|
**If user asks "what can Specky do?":** Show the full reference:
|
|
65
65
|
- 13 agents with purpose and phase
|
|
66
66
|
- 22 prompts grouped by use case
|
|
67
|
-
-
|
|
67
|
+
- 14 skills with trigger conditions
|
|
68
68
|
- 58 MCP tools by category
|
|
69
69
|
- 16 hook scripts (12 advisory + 4 blocking)
|
|
70
70
|
|
|
@@ -7,7 +7,7 @@ tools: ["search", "specky/sdd_run_analysis", "specky/sdd_cross_analyze", "specky
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
10
|
-
Context:
|
|
10
|
+
Context: Tasks and checklist are complete, ready for analysis
|
|
11
11
|
user: "Run the quality review for feature 001"
|
|
12
12
|
assistant: "I'll audit completeness, check alignment, and run compliance validation."
|
|
13
13
|
<commentary>
|
|
@@ -26,10 +26,10 @@ Compliance checking can run standalone.
|
|
|
26
26
|
|
|
27
27
|
You are a senior quality reviewer. You audit specification completeness, verify alignment across artifacts, and validate compliance.
|
|
28
28
|
|
|
29
|
-
**First step:** Read the `specky-
|
|
29
|
+
**First step:** Read the `specky-quality-reviewer` SKILL.md for review criteria and gate decisions.
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
|
-
1. Read all artifacts: SPECIFICATION.md, DESIGN.md, TASKS.md, VERIFICATION.md
|
|
32
|
+
1. Read all artifacts: SPECIFICATION.md, DESIGN.md, TASKS.md, CHECKLIST.md (VERIFICATION.md only if re-running after Phase 8)
|
|
33
33
|
2. Call sdd_run_analysis — completeness audit:
|
|
34
34
|
- Orphaned requirements (in spec but not in tasks/tests)
|
|
35
35
|
- Missing acceptance criteria coverage
|
|
@@ -41,7 +41,7 @@ You are a senior quality reviewer. You audit specification completeness, verify
|
|
|
41
41
|
4. Call sdd_check_sync — spec-code drift detection
|
|
42
42
|
5. Call sdd_compliance_check if compliance framework specified (SOC2, HIPAA, GDPR, PCI-DSS, ISO 27001, FedRAMP)
|
|
43
43
|
6. Write ANALYSIS.md with gate_decision:
|
|
44
|
-
- **APPROVE** — all checks pass, pipeline can proceed to
|
|
44
|
+
- **APPROVE** — all checks pass, pipeline can proceed to implementation
|
|
45
45
|
- **CONDITIONAL** — minor issues found, list specific fixes required
|
|
46
46
|
- **REJECT** — critical issues, pipeline blocked until resolved
|
|
47
47
|
7. Write COMPLIANCE.md if compliance check ran
|
|
@@ -52,4 +52,4 @@ You are a senior quality reviewer. You audit specification completeness, verify
|
|
|
52
52
|
- REJECT blocks the pipeline completely — must fix and re-review
|
|
53
53
|
- CONDITIONAL requires listed fixes before APPROVE
|
|
54
54
|
- Never approve if pass rate < 90% or critical drift detected
|
|
55
|
-
- Branch must be
|
|
55
|
+
- Branch must be spec/NNN-* unless re-running post-merge analysis on develop
|
|
@@ -32,15 +32,15 @@ You are a senior release engineer. You prepare features for delivery.
|
|
|
32
32
|
- `spec/NNN-*` → PR targets `develop`
|
|
33
33
|
- `develop` → PR targets `stage`
|
|
34
34
|
- `stage` → PR targets `main`
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
3. Verify ANALYSIS.md gate = APPROVE and VERIFICATION.md pass rate ≥90%
|
|
36
|
+
4. Run blocking gates:
|
|
37
37
|
- specky-security-scan.sh (BLOCKING: exit 2 = cannot release)
|
|
38
38
|
- specky-release-gate.sh (BLOCKING: exit 2 = cannot release)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
5. If either fails: explain what failed, suggest fix. Do NOT proceed.
|
|
40
|
+
6. Call sdd_generate_all_docs — parallel documentation generation
|
|
41
|
+
7. Call sdd_create_pr — PR payload with spec summary and correct target branch
|
|
42
|
+
8. Optionally call sdd_export_work_items — update external trackers
|
|
43
|
+
9. Deliver release summary with branch, target, and merge instructions
|
|
44
44
|
|
|
45
45
|
**Branching rules:**
|
|
46
46
|
- `spec/NNN-feature-name` → `develop` (after Phase 8 verification passes)
|
|
@@ -33,12 +33,12 @@ You are a senior requirements engineer. You transform unstructured input into va
|
|
|
33
33
|
**Workflow:**
|
|
34
34
|
1. Read the `specky-sdd-markdown-standard` SKILL.md for artifact formatting rules
|
|
35
35
|
2. Read existing workspace files for context
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
3. Detect project type and domain
|
|
37
|
+
4. Run gap detector — ask max 3 questions for CRITICAL gaps only
|
|
38
|
+
5. Write FRD with EARS notation for every requirement
|
|
39
|
+
6. Write NFRD with measurable quality constraints
|
|
40
|
+
7. Run 24 validation checks — fix every failure
|
|
41
|
+
8. Deliver Specky Handoff block confirming readiness for sdd_init
|
|
42
42
|
|
|
43
43
|
**Hard rules:**
|
|
44
44
|
- Every requirement must use EARS notation
|
|
@@ -29,12 +29,12 @@ You are a technical research analyst. You gather all context needed before the s
|
|
|
29
29
|
**Workflow:**
|
|
30
30
|
1. Read the `specky-research-analyst` SKILL.md for research methodology and tool reference
|
|
31
31
|
2. Read CONSTITUTION.md for project scope and constraints
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
3. For brownfield/modernization: call sdd_scan_codebase
|
|
33
|
+
4. Import any external documents or transcripts
|
|
34
|
+
5. Call sdd_discover — present 7 structured discovery questions
|
|
35
|
+
6. Call sdd_research — investigate technical unknowns
|
|
36
|
+
7. Call sdd_check_ecosystem — identify recommended MCP servers
|
|
37
|
+
8. Produce RESEARCH.md with all findings
|
|
38
|
+
9. Suggest handoff to specification
|
|
39
39
|
|
|
40
40
|
**Output:** RESEARCH.md with tech stack, dependencies, API surface, integration points, and discovery findings.
|
|
@@ -26,9 +26,10 @@ EARS validation is a core responsibility of this agent.
|
|
|
26
26
|
|
|
27
27
|
You are a clarification specialist. You find ambiguity in specifications and resolve it through targeted questions and EARS validation.
|
|
28
28
|
|
|
29
|
+
**First step:** Read the `specky-sdd-clarify` SKILL.md for clarification workflow and EARS validation rules.
|
|
30
|
+
|
|
29
31
|
**Workflow:**
|
|
30
|
-
1. Read
|
|
31
|
-
2. Read SPECIFICATION.md for the feature
|
|
32
|
+
1. Read SPECIFICATION.md for the feature
|
|
32
33
|
2. Call sdd_clarify — up to 5 disambiguation questions per round
|
|
33
34
|
3. Present questions and wait for developer answers
|
|
34
35
|
4. Call sdd_validate_ears — validate all 6 EARS patterns
|
|
@@ -27,7 +27,7 @@ Brownfield setup needs sdd_init plus sdd_scan_codebase.
|
|
|
27
27
|
You are the SDD pipeline initializer. Your only job is to scaffold the spec pipeline so every downstream phase has the structure it needs.
|
|
28
28
|
|
|
29
29
|
**Responsibilities:**
|
|
30
|
-
1. Read the `specky-sdd-
|
|
30
|
+
1. Read the `specky-sdd-init` SKILL.md for pipeline context and Phase 0 rules
|
|
31
31
|
2. Gather feature name, project type (greenfield/brownfield/migration/API), and constraints
|
|
32
32
|
3. Read existing FRD/NFRD from `docs/requirements/` if they exist
|
|
33
33
|
4. Call `sdd_init` to create `.specs/NNN-feature/` with CONSTITUTION.md and .sdd-state.json
|
|
@@ -26,7 +26,7 @@ Incremental spec refinement is also this agent's job.
|
|
|
26
26
|
|
|
27
27
|
You are a senior specification engineer. You transform research findings into precise, testable requirements.
|
|
28
28
|
|
|
29
|
-
**First step:** Read the `specky-
|
|
29
|
+
**First step:** Read the `specky-spec-engineer` SKILL.md for EARS notation patterns and specification rules.
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Read CONSTITUTION.md for project scope and constraints
|
|
@@ -26,7 +26,7 @@ Checklist generation can run standalone.
|
|
|
26
26
|
|
|
27
27
|
You are a senior technical planner. You transform designs into actionable implementation plans.
|
|
28
28
|
|
|
29
|
-
**First step:** Read the `specky-
|
|
29
|
+
**First step:** Read the `specky-task-planner` SKILL.md for task breakdown standards.
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Read DESIGN.md for architecture and API contracts
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# specky-run.sh - Cursor hook adapter -> Specky hook scripts.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
SCRIPT="${1:?usage: specky-run.sh <script-name> [--blocking]}"
|
|
6
|
+
BLOCKING="${2:-}"
|
|
7
|
+
HOOK=".cursor/hooks/scripts/${SCRIPT}"
|
|
8
|
+
INPUT=$(cat || true)
|
|
9
|
+
|
|
10
|
+
if command -v jq >/dev/null 2>&1 && [ -n "$INPUT" ]; then
|
|
11
|
+
RAW=$(echo "$INPUT" | jq -r '
|
|
12
|
+
.tool_name // .toolName // .tool // .mcpTool // .mcp_tool // .name // empty
|
|
13
|
+
' 2>/dev/null || true)
|
|
14
|
+
case "$RAW" in
|
|
15
|
+
mcp__specky__*) export SDD_TOOL_NAME="${RAW#mcp__specky__}" ;;
|
|
16
|
+
MCP:*|*mcp__specky__*) export SDD_TOOL_NAME="$(echo "$RAW" | sed -n 's/.*sdd_/sdd_/p')" ;;
|
|
17
|
+
Write|Edit|MultiEdit) export SDD_TOOL_NAME="$RAW" ;;
|
|
18
|
+
esac
|
|
19
|
+
|
|
20
|
+
PROMPT=$(echo "$INPUT" | jq -r '.prompt // .user_prompt // .text // empty' 2>/dev/null || true)
|
|
21
|
+
[ -n "$PROMPT" ] && export CLAUDE_USER_PROMPT="$PROMPT"
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
set +e
|
|
25
|
+
bash "$HOOK"
|
|
26
|
+
CODE=$?
|
|
27
|
+
set -e
|
|
28
|
+
|
|
29
|
+
if [ "$BLOCKING" = "--blocking" ] && [ "$CODE" -eq 2 ]; then
|
|
30
|
+
echo '{"permission":"deny","user_message":"Specky quality gate blocked this action."}'
|
|
31
|
+
fi
|
|
32
|
+
exit "$CODE"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: '**'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Specky SDD
|
|
6
|
+
|
|
7
|
+
This project uses Spec-Driven Development (SDD) via the Specky pipeline.
|
|
8
|
+
|
|
9
|
+
## Key Rules
|
|
10
|
+
|
|
11
|
+
1. **EARS notation is mandatory.** Every requirement must follow one of the 6 EARS patterns.
|
|
12
|
+
2. **REQ-ID traceability is non-negotiable.** Every test, task, and design decision traces to a REQ-ID.
|
|
13
|
+
3. **Model routing matters.** Use a fast model class for lightweight scaffolding (Phase 0, 9), a balanced model class for iterative delivery (Phase 1, 5-7), and a reasoning-focused model class for complex analysis and design (Phase 2-4, 8). The user chooses any available model.
|
|
14
|
+
4. **Never skip hooks.** Blocking hooks (specky-security-scan, specky-release-gate) must pass before release.
|
|
15
|
+
5. **Artifacts live in `.specs/NNN-feature/`.** CONSTITUTION.md, RESEARCH.md, SPECIFICATION.md, DESIGN.md, TASKS.md, VERIFICATION.md, ANALYSIS.md.
|
|
16
|
+
6. **One branch per spec.** Create `spec/NNN-feature-name` from `develop` for all pipeline work (Phases 0-7). All `.specs/` artifacts are created on this branch. Merge to `develop` after verification, then `stage` for QA and release gates, then `main` for production. Never commit spec work directly to develop, stage, or main.
|
|
17
|
+
7. **Load companion SKILL.md first.** Every agent reads its companion skill file (`.claude/skills/{skill-name}/SKILL.md`) as the first workflow step. Phase agents have dedicated skills (specky-sdd-init, specky-spec-engineer, specky-sdd-clarify, specky-design-architect, specky-task-planner, specky-quality-reviewer); shared pipeline context lives in specky-sdd-pipeline.
|
|
18
|
+
8. **Orchestrator is the single entry point.** When `.specs/` exists with an active pipeline (`.sdd-state.json` present), ALL work — code, branches, commits, PRs — MUST flow through `@specky-orchestrator`. Direct calls to phase agents, manual branch creation outside `spec/NNN-*`, or free-form edits bypass the quality gates and are pipeline violations. If unsure where to start, invoke `@specky-onboarding`. Starting in v3.5, `specky-pipeline-guard` hook enforces this automatically.
|
|
19
|
+
|
|
20
|
+
## Available Agents
|
|
21
|
+
|
|
22
|
+
- @specky-onboarding — Interactive wizard and default entry point
|
|
23
|
+
- @specky-orchestrator — Full pipeline coordinator (all 10 phases)
|
|
24
|
+
- @specky-sdd-init — Initialize pipeline (Phase 0)
|
|
25
|
+
- @specky-requirements-engineer — Produce FRD + NFRD
|
|
26
|
+
- @specky-research-analyst — Technical research (Phase 1)
|
|
27
|
+
- @specky-spec-engineer — Write SPECIFICATION.md with EARS (Phase 2)
|
|
28
|
+
- @specky-sdd-clarify — Resolve ambiguities (Phase 3)
|
|
29
|
+
- @specky-design-architect — Write DESIGN.md + diagrams (Phase 4)
|
|
30
|
+
- @specky-task-planner — Write TASKS.md + CHECKLIST.md (Phase 5)
|
|
31
|
+
- @specky-quality-reviewer — Completeness audit + compliance (Phase 6)
|
|
32
|
+
- @specky-implementer — Implementation scaffolding (Phase 7)
|
|
33
|
+
- @specky-test-verifier — Coverage verification (Phase 8)
|
|
34
|
+
- @specky-release-engineer — Release preparation (Phase 9)
|
|
35
|
+
|
|
36
|
+
## Available Commands
|
|
37
|
+
|
|
38
|
+
Use slash commands in Claude Code (`/prompt-name`):
|
|
39
|
+
|
|
40
|
+
**Quick Start:** /specky-onboarding, /specky-orchestrate, /specky-greenfield, /specky-brownfield, /specky-migration, /specky-api
|
|
41
|
+
**Pipeline:** /specky-research, /specky-clarify, /specky-specify, /specky-design, /specky-tasks, /specky-implement, /specky-verify, /specky-release, /specky-deploy
|
|
42
|
+
**Special:** /specky-from-figma, /specky-from-meeting, /specky-check-drift, /specky-resolve-conflict
|
|
43
|
+
**Debug:** /specky-debug-hook, /specky-pipeline-status, /specky-reset-phase
|
|
44
|
+
|
|
45
|
+
## Quality Gates
|
|
46
|
+
|
|
47
|
+
Claude Code enforces gates natively via `.claude/settings.json` hook registration and the scripts in `.claude/hooks/scripts/`:
|
|
48
|
+
|
|
49
|
+
- **Pre-tool:** specky-artifact-validator (BLOCKING) + specky-branch-validator (advisory) before every phase tool
|
|
50
|
+
- **Post-tool:** specky-phase-gate (BLOCKING) + specky-lgtm-gate (advisory) + quality hooks after artifact writes
|
|
51
|
+
- **LGTM gates:** Phases 2 (Specify), 4 (Design), 5 (Tasks) pause for human review
|
|
52
|
+
- **Blocking gates:** specky-security-scan + specky-release-gate before PR creation
|
|
53
|
+
|
|
54
|
+
## Work Modes
|
|
55
|
+
|
|
56
|
+
- **Full Pipeline:** Use @specky-orchestrator or /specky-orchestrate for automated end-to-end
|
|
57
|
+
- **Agent-by-agent:** Call individual agents (@specky-spec-engineer, @specky-implementer, etc.)
|
|
58
|
+
- **Direct MCP tools:** Call sdd_* tools directly for maximum control
|
|
59
|
+
- **Use /specky-onboarding to choose your mode**
|
|
60
|
+
|
|
61
|
+
## MCP Server
|
|
62
|
+
|
|
63
|
+
The specky-sdd MCP server (58 tools) is configured in .mcp.json and runs via npx.
|
|
64
|
+
|
|
65
|
+
## EARS Patterns
|
|
66
|
+
|
|
67
|
+
| Pattern | Format |
|
|
68
|
+
|---------|--------|
|
|
69
|
+
| Ubiquitous | The system shall... |
|
|
70
|
+
| Event-driven | When [event], the system shall... |
|
|
71
|
+
| State-driven | While [state], the system shall... |
|
|
72
|
+
| Optional | Where [condition], the system shall... |
|
|
73
|
+
| Unwanted | If [condition], then the system shall... |
|
|
74
|
+
| Complex | While [state], when [event], the system shall... |
|
|
@@ -14,6 +14,8 @@ This project uses Spec-Driven Development (SDD) via the Specky pipeline.
|
|
|
14
14
|
4. **Never skip hooks.** Blocking hooks (specky-security-scan, specky-release-gate) must pass before release.
|
|
15
15
|
5. **Artifacts live in `.specs/NNN-feature/`.** CONSTITUTION.md, RESEARCH.md, SPECIFICATION.md, DESIGN.md, TASKS.md, VERIFICATION.md, ANALYSIS.md.
|
|
16
16
|
6. **One branch per spec.** Create `spec/NNN-feature-name` from `develop` for all pipeline work (Phases 0-7). All `.specs/` artifacts are created on this branch. Merge to `develop` after verification, then `stage` for QA and release gates, then `main` for production. Never commit spec work directly to develop, stage, or main.
|
|
17
|
+
7. **Load companion SKILL.md first.** Every agent reads its companion skill file (`.github/skills/{skill-name}/SKILL.md`) as the first workflow step. Phase agents have dedicated skills (specky-sdd-init, specky-spec-engineer, specky-sdd-clarify, specky-design-architect, specky-task-planner, specky-quality-reviewer); shared pipeline context lives in specky-sdd-pipeline.
|
|
18
|
+
8. **Orchestrator is the single entry point.** When `.specs/` exists with an active pipeline (`.sdd-state.json` present), ALL work — code, branches, commits, PRs — MUST flow through `@specky-orchestrator`. Direct calls to phase agents, manual branch creation outside `spec/NNN-*`, or free-form edits bypass the quality gates and are pipeline violations. If unsure where to start, invoke `@specky-onboarding`. Starting in v3.5, `specky-pipeline-guard` hook enforces this automatically.
|
|
17
19
|
|
|
18
20
|
## Available Agents
|
|
19
21
|
|
|
@@ -33,7 +35,7 @@ This project uses Spec-Driven Development (SDD) via the Specky pipeline.
|
|
|
33
35
|
|
|
34
36
|
## Available Prompts
|
|
35
37
|
|
|
36
|
-
Use in Copilot Chat
|
|
38
|
+
Use slash commands in Copilot Chat (`/prompt-name`):
|
|
37
39
|
|
|
38
40
|
**Quick Start:** /specky-onboarding, /specky-orchestrate, /specky-greenfield, /specky-brownfield, /specky-migration, /specky-api
|
|
39
41
|
**Pipeline:** /specky-research, /specky-clarify, /specky-specify, /specky-design, /specky-tasks, /specky-implement, /specky-verify, /specky-release, /specky-deploy
|
|
@@ -55,14 +57,6 @@ Hooks fire automatically on MCP tool calls:
|
|
|
55
57
|
- **Direct MCP tools:** Call sdd_* tools directly for maximum control
|
|
56
58
|
- **Use /specky-onboarding to choose your mode**
|
|
57
59
|
|
|
58
|
-
## Rule #7
|
|
59
|
-
|
|
60
|
-
7. **Load companion SKILL.md first.** Every agent must read its companion skill file as the first workflow step.
|
|
61
|
-
|
|
62
|
-
## Rule #8
|
|
63
|
-
|
|
64
|
-
8. **Orchestrator is the single entry point.** When `.specs/` exists with an active pipeline (`.sdd-state.json` present), ALL work — code, branches, commits, PRs — MUST flow through `@specky-orchestrator`. Direct calls to phase agents, manual branch creation outside `spec/NNN-*`, or free-form edits bypass the quality gates and are pipeline violations. If unsure where to start, invoke `@specky-onboarding`. The orchestrator validates branch, artifacts, phase prerequisites, and routes to the correct phase agent. Starting in v3.5, `specky-pipeline-guard` hook enforces this automatically.
|
|
65
|
-
|
|
66
60
|
## MCP Server
|
|
67
61
|
|
|
68
62
|
The specky-sdd MCP server (58 tools) is configured in .vscode/mcp.json and runs via npx.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: '**'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Specky SDD — Cursor Instructions
|
|
6
|
+
|
|
7
|
+
This project uses Spec-Driven Development (SDD) via the Specky pipeline.
|
|
8
|
+
|
|
9
|
+
## Key Rules
|
|
10
|
+
|
|
11
|
+
1. **EARS notation is mandatory.** Every requirement must follow one of the 6 EARS patterns (see `.agents/skills/specky-sdd-pipeline/references/ears-notation.md`).
|
|
12
|
+
2. **REQ-ID traceability is non-negotiable.** Every test, task, and design decision traces to a REQ-ID.
|
|
13
|
+
3. **Model routing matters.** Use a fast model class for lightweight scaffolding (Phase 0, 9), a balanced model class for iterative delivery (Phase 1, 5-7), and a reasoning-focused model class for complex analysis and design (Phase 2-4, 8).
|
|
14
|
+
4. **Never skip hooks.** Blocking hooks (specky-security-scan, specky-release-gate, specky-artifact-validator, specky-phase-gate) must pass before release.
|
|
15
|
+
5. **Artifacts live in `.specs/NNN-feature/`.** CONSTITUTION.md, RESEARCH.md, SPECIFICATION.md, DESIGN.md, TASKS.md, VERIFICATION.md, ANALYSIS.md.
|
|
16
|
+
6. **One branch per spec.** Create `spec/NNN-feature-name` from `develop` for all pipeline work (Phases 0-7). Merge to `develop` after verification, then `stage` for QA, then `main` for production.
|
|
17
|
+
7. **Load companion SKILL.md first.** Every agent reads `.agents/skills/{skill-name}/SKILL.md` as the first workflow step. Phase agents have dedicated skills (specky-sdd-init, specky-spec-engineer, specky-sdd-clarify, specky-design-architect, specky-task-planner, specky-quality-reviewer); shared pipeline context lives in specky-sdd-pipeline.
|
|
18
|
+
8. **Orchestrator is the single entry point.** When `.specs/` exists with an active pipeline (`.sdd-state.json` present), ALL work MUST flow through `@specky-orchestrator`. If unsure where to start, invoke `@specky-onboarding`.
|
|
19
|
+
|
|
20
|
+
## Available Agents
|
|
21
|
+
|
|
22
|
+
- @specky-onboarding — Interactive wizard and default entry point
|
|
23
|
+
- @specky-orchestrator — Full pipeline coordinator (all 10 phases)
|
|
24
|
+
- @specky-sdd-init — Initialize pipeline (Phase 0)
|
|
25
|
+
- @specky-requirements-engineer — Produce FRD + NFRD
|
|
26
|
+
- @specky-research-analyst — Technical research (Phase 1)
|
|
27
|
+
- @specky-spec-engineer — Write SPECIFICATION.md with EARS (Phase 2)
|
|
28
|
+
- @specky-sdd-clarify — Resolve ambiguities (Phase 3)
|
|
29
|
+
- @specky-design-architect — Write DESIGN.md + diagrams (Phase 4)
|
|
30
|
+
- @specky-task-planner — Write TASKS.md + CHECKLIST.md (Phase 5)
|
|
31
|
+
- @specky-quality-reviewer — Completeness audit + compliance (Phase 6)
|
|
32
|
+
- @specky-implementer — Implementation scaffolding (Phase 7)
|
|
33
|
+
- @specky-test-verifier — Coverage verification (Phase 8)
|
|
34
|
+
- @specky-release-engineer — Release preparation (Phase 9)
|
|
35
|
+
|
|
36
|
+
## Available Commands
|
|
37
|
+
|
|
38
|
+
Use slash commands in Cursor (`/prompt-name`):
|
|
39
|
+
|
|
40
|
+
**Quick Start:** /specky-onboarding, /specky-orchestrate, /specky-greenfield, /specky-brownfield, /specky-migration, /specky-api
|
|
41
|
+
**Pipeline:** /specky-research, /specky-clarify, /specky-specify, /specky-design, /specky-tasks, /specky-implement, /specky-verify, /specky-release, /specky-deploy
|
|
42
|
+
**Special:** /specky-from-figma, /specky-from-meeting, /specky-check-drift, /specky-resolve-conflict
|
|
43
|
+
**Debug:** /specky-debug-hook, /specky-pipeline-status, /specky-reset-phase
|
|
44
|
+
|
|
45
|
+
## Quality Gates
|
|
46
|
+
|
|
47
|
+
Cursor installs native hooks at `.cursor/hooks.json` and `.cursor/hooks/scripts/`:
|
|
48
|
+
|
|
49
|
+
- **Blocking gates:** specky-artifact-validator, specky-phase-gate, specky-security-scan, specky-release-gate (failClosed)
|
|
50
|
+
- **Advisory gates:** specky-branch-validator, specky-pipeline-guard, specky-lgtm-gate, specky-drift-monitor, specky-auto-checkpoint
|
|
51
|
+
- **LGTM gates:** Phases 2 (Specify), 4 (Design), 5 (Tasks) pause for human review
|
|
52
|
+
- **Server-enforced gates:** Analysis APPROVE is required before implement-phase MCP tools run
|
|
53
|
+
|
|
54
|
+
If hooks are unavailable, enforce the same gates through MCP tools and agent workflows.
|
|
55
|
+
|
|
56
|
+
## MCP Server
|
|
57
|
+
|
|
58
|
+
The specky-sdd MCP server (58 tools) is configured in `.cursor/mcp.json` and runs via npx.
|
|
59
|
+
|
|
60
|
+
## EARS Patterns
|
|
61
|
+
|
|
62
|
+
| Pattern | Format |
|
|
63
|
+
|---------|--------|
|
|
64
|
+
| Ubiquitous | The system shall... |
|
|
65
|
+
| Event-driven | When [event], the system shall... |
|
|
66
|
+
| State-driven | While [state], the system shall... |
|
|
67
|
+
| Optional | Where [condition], the system shall... |
|
|
68
|
+
| Unwanted | If [condition], then the system shall... |
|
|
69
|
+
| Complex | While [state], when [event], the system shall... |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: '**'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Specky SDD — OpenCode Instructions
|
|
6
|
+
|
|
7
|
+
This project uses Spec-Driven Development (SDD) via the Specky pipeline.
|
|
8
|
+
|
|
9
|
+
## Bootstrap
|
|
10
|
+
|
|
11
|
+
OpenCode requires two steps after install:
|
|
12
|
+
|
|
13
|
+
1. `specky install --target=opencode` — agents, commands, skills, MCP in `opencode.json`
|
|
14
|
+
2. `specky compile --target=opencode` — writes `AGENTS.md` root context
|
|
15
|
+
|
|
16
|
+
## Key Rules
|
|
17
|
+
|
|
18
|
+
1. **EARS notation is mandatory.** Every requirement must follow one of the 6 EARS patterns.
|
|
19
|
+
2. **REQ-ID traceability is non-negotiable.** Every test, task, and design decision traces to a REQ-ID.
|
|
20
|
+
3. **Artifacts live in `.specs/NNN-feature/`.** CONSTITUTION.md, SPECIFICATION.md, DESIGN.md, TASKS.md, ANALYSIS.md, VERIFICATION.md.
|
|
21
|
+
4. **One branch per spec.** Create `spec/NNN-feature-name` from `develop` for pipeline work (Phases 0-7).
|
|
22
|
+
5. **Load companion SKILL.md first.** Read `.agents/skills/{skill-name}/SKILL.md` before phase work.
|
|
23
|
+
6. **Orchestrator is the single entry point.** When `.specs/` has an active pipeline, route work through `@specky-orchestrator` or `/specky-orchestrate`.
|
|
24
|
+
|
|
25
|
+
## Available Agents
|
|
26
|
+
|
|
27
|
+
- @specky-onboarding, @specky-orchestrator, @specky-sdd-init, @specky-spec-engineer, @specky-sdd-clarify
|
|
28
|
+
- @specky-design-architect, @specky-task-planner, @specky-quality-reviewer, @specky-implementer
|
|
29
|
+
- @specky-test-verifier, @specky-release-engineer, @specky-research-analyst, @specky-requirements-engineer
|
|
30
|
+
|
|
31
|
+
## Tool Tokens
|
|
32
|
+
|
|
33
|
+
OpenCode agents use native tools: `read`, `edit`, `bash`, `fetch`, `agent`, `todo`, and `specky/sdd_*` MCP tools.
|
|
34
|
+
|
|
35
|
+
## Quality Gates
|
|
36
|
+
|
|
37
|
+
OpenCode has no native hook runtime. Enforce gates via MCP tools:
|
|
38
|
+
|
|
39
|
+
- Run `sdd_run_analysis` and obtain APPROVE before implementation tools
|
|
40
|
+
- Use `/specky-pipeline-status` to check phase and gate state
|
|
41
|
+
- LGTM review at Specify, Design, and Tasks phases
|
|
42
|
+
|
|
43
|
+
## MCP Server
|
|
44
|
+
|
|
45
|
+
Configured in `opencode.json` under `mcp.specky` — runs via `npx specky-sdd serve`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specky-design-architect
|
|
3
|
+
description: "Use for Phase 4 (Design): produce DESIGN.md with architecture, API contracts, data model, and Mermaid diagrams. Trigger on sdd_write_design, sdd_generate_all_diagrams, or /specky-design."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 4 — Design
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
- Approved SPECIFICATION.md at the Phase 2 LGTM gate
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
1. Read SPECIFICATION.md and CONSTITUTION.md
|
|
13
|
+
2. Call `sdd_write_design` for architecture, API contracts, data model, and deployment topology
|
|
14
|
+
3. Call `sdd_generate_all_diagrams`
|
|
15
|
+
4. Trace every design decision to a REQ-ID
|
|
16
|
+
5. Present DESIGN.md for LGTM at the Phase 4 gate
|
|
17
|
+
|
|
18
|
+
## Hard Rules
|
|
19
|
+
- API contracts cover all functional REQ-IDs
|
|
20
|
+
- Diagrams use Mermaid syntax only
|
|
21
|
+
- Branch must be `spec/NNN-*`
|
|
@@ -7,7 +7,7 @@ description: "This skill should be used when the user asks 'help me with specky'
|
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
Specky SDD is a Spec-Driven Development CLI toolkit with 58 MCP tools, 13 agents, 22 prompts,
|
|
10
|
+
Specky SDD is a Spec-Driven Development CLI toolkit with 58 MCP tools, 13 agents, 22 prompts, 14 skills, and 16 hook scripts. It enforces a 10-phase pipeline from requirements through release.
|
|
11
11
|
|
|
12
12
|
## 5-Step Wizard Flow
|
|
13
13
|
|
|
@@ -91,13 +91,19 @@ Check for:
|
|
|
91
91
|
- /specky-pipeline-status — Check pipeline status
|
|
92
92
|
- /specky-reset-phase — Reset a pipeline phase
|
|
93
93
|
|
|
94
|
-
## All
|
|
94
|
+
## All 14 Skills
|
|
95
95
|
|
|
96
96
|
| Skill | Triggers On |
|
|
97
97
|
|-------|-------------|
|
|
98
98
|
| specky-sdd-pipeline | "specky", "SDD pipeline", "EARS notation", "pipeline phases" |
|
|
99
99
|
| specky-orchestrator | "orchestrate", "run full pipeline", "advance phase" |
|
|
100
100
|
| specky-onboarding | "help", "get started", "what is specky" |
|
|
101
|
+
| specky-sdd-init | "initialize", "greenfield", "new feature bootstrap" |
|
|
102
|
+
| specky-spec-engineer | "write specification", "EARS", "REQ-ID" |
|
|
103
|
+
| specky-sdd-clarify | "clarify", "ambiguous requirements", "EARS validation" |
|
|
104
|
+
| specky-design-architect | "design", "architecture", "Mermaid diagrams" |
|
|
105
|
+
| specky-task-planner | "tasks", "checklist", "implementation plan" |
|
|
106
|
+
| specky-quality-reviewer | "analysis", "quality review", "compliance" |
|
|
101
107
|
| implementer | "implementation plan", "test stubs", "IaC generation" |
|
|
102
108
|
| test-verifier | "verify tests", "check coverage", "phantom detection" |
|
|
103
109
|
| release-engineer | "prepare release", "create PR", "release gates" |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specky-quality-reviewer
|
|
3
|
+
description: "Use for Phase 6 (Analyze): completeness audit, cross-analysis, compliance, and ANALYSIS.md gate decision. Trigger on sdd_run_analysis, sdd_cross_analyze, sdd_compliance_check, or sdd_check_sync."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 6 — Analyze
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
- TASKS.md and CHECKLIST.md complete on `spec/NNN-*`, or post-merge on `develop` per project policy
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
1. Read SPECIFICATION.md, DESIGN.md, TASKS.md, and CHECKLIST.md
|
|
13
|
+
2. Call `sdd_run_analysis`
|
|
14
|
+
3. Call `sdd_cross_analyze`
|
|
15
|
+
4. Call `sdd_check_sync` if code exists
|
|
16
|
+
5. Optional: call `sdd_compliance_check` for SOC2, HIPAA, GDPR, PCI-DSS, or ISO 27001
|
|
17
|
+
6. Write ANALYSIS.md with gate decision: APPROVE, CONDITIONAL, or REJECT
|
|
18
|
+
7. Write COMPLIANCE.md if compliance ran
|
|
19
|
+
8. Call `sdd_metrics`
|
|
20
|
+
|
|
21
|
+
## Gate Rules
|
|
22
|
+
- REJECT blocks the pipeline
|
|
23
|
+
- CONDITIONAL lists required fixes
|
|
24
|
+
- Never APPROVE if pass rate is below 90% or critical drift exists
|
|
25
|
+
|
|
26
|
+
## Hard Rules
|
|
27
|
+
- Findings must be evidence-based
|
|
28
|
+
- Phase 6 runs after Tasks and before Implement/Verify
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specky-sdd-clarify
|
|
3
|
+
description: "Use for Phase 3 (Clarify): resolve ambiguous requirements, validate EARS, and produce CLARIFICATION-LOG.md. Trigger on sdd_clarify or /specky-clarify."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 3 — Clarify
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
- SPECIFICATION.md exists
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
1. Read SPECIFICATION.md
|
|
13
|
+
2. Call `sdd_clarify` with at most 5 questions per round
|
|
14
|
+
3. Wait for developer answers
|
|
15
|
+
4. Call `sdd_validate_ears`
|
|
16
|
+
5. Rewrite non-compliant requirements
|
|
17
|
+
6. Loop until ambiguities are resolved and EARS passes
|
|
18
|
+
7. Write or update CLARIFICATION-LOG.md
|
|
19
|
+
|
|
20
|
+
## EARS
|
|
21
|
+
Use the canonical 6 patterns in `../specky-sdd-pipeline/references/ears-notation.md`.
|
|
22
|
+
|
|
23
|
+
## Hard Rules
|
|
24
|
+
- Ask at most 5 disambiguation questions per round
|
|
25
|
+
- Do not advance to Design until ambiguities are resolved
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specky-sdd-init
|
|
3
|
+
description: "Use when initializing Phase 0 (Init): scaffold .specs/NNN-feature/, CONSTITUTION.md, .sdd-state.json, and spec branch from develop. Trigger on sdd_init, greenfield setup, or new feature bootstrap."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Phase 0 — Init
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
- Feature name and project type: greenfield, brownfield, migration, or API
|
|
10
|
+
- `develop` branch exists, or the exception is documented
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
1. Gather feature name, project type, and constraints
|
|
14
|
+
2. Read FRD/NFRD from `docs/requirements/` if present
|
|
15
|
+
3. Call `sdd_init` to create `.specs/NNN-feature/`, CONSTITUTION.md, and `.sdd-state.json`
|
|
16
|
+
4. Call `sdd_create_branch` to create `spec/NNN-feature-name` from `develop`
|
|
17
|
+
5. For brownfield projects, call `sdd_scan_codebase`
|
|
18
|
+
6. Present CONSTITUTION.md and wait for developer confirmation
|
|
19
|
+
7. Hand off to `@specky-research-analyst`
|
|
20
|
+
|
|
21
|
+
## Outputs
|
|
22
|
+
- CONSTITUTION.md
|
|
23
|
+
- `.sdd-state.json`
|
|
24
|
+
|
|
25
|
+
## Hard Rules
|
|
26
|
+
- Never assign NNN manually; `sdd_init` owns numbering
|
|
27
|
+
- Never write artifacts beyond Phase 0
|
|
28
|
+
- Create `spec/NNN-*` from `develop`, never from `main` or `stage`
|