Skip to content

Commit 2649c6c

Browse files
committed
feat: add sds CLI alias and update validation documentation
- Add 'sds' as short alias for 'spec-driven-steroids' CLI - Update AGENTS.md to reference CLI-based validation (not MCP) - Update skill instructions with CLI validation discovery sections - Enforce only requirements.md, design.md, and tasks.md as valid spec documents - Update tests to expect 'sds validate' command syntax Version bump: 0.8.0 -> 0.9.0
1 parent 6db2072 commit 2649c6c

11 files changed

Lines changed: 99 additions & 31 deletions

File tree

AGENTS.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ You are a **Spec-Driven Development Engineer** working on the Spec-Driven Steroi
1111
**Core Principles:**
1212
1. **Spec-First**: All changes begin with requirements (EARS), design (Mermaid), and tasks
1313
2. **Traceability**: Every design element and task links back to requirements
14-
3. **Validation First**: Use MCP tools to validate specs before implementation
14+
3. **Validation First**: Use CLI commands to validate specs before implementation (`sds validate...`)
1515
4. **Platform Native**: Work within existing AI tool ecosystems
1616

1717
---
@@ -109,15 +109,17 @@ packages/
109109

110110
## Validation Commands
111111

112-
The CLI provides 5 validation commands under `spec-driven-steroids validate`:
112+
The CLI provides 5 validation commands under `sds validate` (or `spec-driven-steroids validate` - both work interchangeably):
113113

114114
| Command | Purpose |
115115
|---------|---------|
116-
| `validate structure` | Validates folder structure and file existence |
117-
| `validate requirements` | Validates EARS patterns and REQ-X numbering |
118-
| `validate design` | Validates Mermaid diagrams and DES-X traceability |
119-
| `validate tasks` | Validates task checkboxes and phase structure |
120-
| `validate spec` | Cross-file validation and traceability |
116+
| `sds validate structure <slug>` | Validates folder structure and file existence |
117+
| `sds validate requirements <path>` | Validates EARS patterns and REQ-X numbering |
118+
| `sds validate design <path>` | Validates Mermaid diagrams and DES-X traceability |
119+
| `sds validate tasks <path>` | Validates task checkboxes and phase structure |
120+
| `sds validate spec <slug>` | Cross-file validation and traceability |
121+
122+
**Note:** Both `sds` and `spec-driven-steroids` work interchangeably as CLI command names.
121123

122124
### MCP Server Configuration
123125

packages/cli/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# spec-driven-steroids
22

3+
## 0.9.0
4+
5+
### Minor Changes
6+
7+
- Add `sds` CLI alias and update validation documentation
8+
9+
- Add `sds` as short alias for `spec-driven-steroids` CLI
10+
- Update AGENTS.md to reference CLI-based validation (not MCP)
11+
- Update skill instructions with CLI validation discovery sections
12+
- Enforce only requirements.md, design.md, and tasks.md as valid spec documents
13+
314
## 0.8.0
415

516
### Minor Changes

packages/cli/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
22
"name": "spec-driven-steroids",
3-
"version": "0.8.0",
3+
"version": "0.9.0",
44
"description": "Inject Spec-Driven workflow into your favorite AI Agents. Rigorous. Simple. Frictionless.",
55
"type": "module",
66
"main": "dist/cli/index.js",
77
"bin": {
8-
"spec-driven-steroids": "dist/cli/index.js"
8+
"spec-driven-steroids": "dist/cli/index.js",
9+
"sds": "dist/cli/index.js"
910
},
1011
"files": [
1112
"dist",

packages/cli/src/cli/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ const program = new Command();
9898

9999
program
100100
.name('spec-driven-steroids')
101+
.alias('sds')
101102
.description('Inject Spec-Driven standards into your repository')
102103
.version(getCliVersion());
103104

packages/cli/templates/universal/agents/spec-driven.agent.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Invoke the `spec-driven-requirements-writer` skill.
6161
3. Load the `long-running-work-planning` skill at the start of the phase when available.
6262
4. Invoke the `spec-driven-requirements-writer` skill.
6363
5. Wait for the skill to produce requirements content.
64-
6. Validate with `spec-driven validate requirements .specs/changes/<slug>/requirements.md`.
64+
6. Validate with `sds validate requirements .specs/changes/<slug>/requirements.md`.
6565
7. Write `.specs/changes/<slug>/requirements.md`.
6666
8. Invoke the `quality-grading` skill in `grade-and-fix` mode on `.specs/changes/<slug>/requirements.md`. Apply any auto-fixes before proceeding.
6767
9. **STOP**. Summarize the artifact and ask: `Approve Phase 1, and I'll move to Phase 2 (design).`
@@ -75,7 +75,7 @@ Invoke the `spec-driven-technical-designer` skill.
7575
2. Load the `long-running-work-planning` skill at the start of the phase when available.
7676
3. Invoke the `spec-driven-technical-designer` skill.
7777
4. Wait for the skill to produce design content.
78-
5. Validate with `spec-driven validate design .specs/changes/<slug>/design.md`.
78+
5. Validate with `sds validate design .specs/changes/<slug>/design.md`.
7979
6. Write `.specs/changes/<slug>/design.md`.
8080
7. Invoke the `quality-grading` skill in `grade-and-fix` mode on `.specs/changes/<slug>/design.md`. Apply any auto-fixes before proceeding.
8181
8. **STOP**. Summarize the artifact and ask: `Approve Phase 2, and I'll move to Phase 3 (tasks).`
@@ -89,8 +89,8 @@ Invoke the `spec-driven-task-decomposer` skill.
8989
2. Load the `long-running-work-planning` skill at the start of the phase when available.
9090
3. Invoke the `spec-driven-task-decomposer` skill.
9191
4. Wait for the skill to produce tasks content.
92-
5. Validate with `spec-driven validate tasks .specs/changes/<slug>/tasks.md`.
93-
6. Validate the full spec with `spec-driven validate spec <slug>`.
92+
5. Validate with `sds validate tasks .specs/changes/<slug>/tasks.md`.
93+
6. Validate the full spec with `sds validate spec <slug>`.
9494
7. Write `.specs/changes/<slug>/tasks.md`.
9595
8. Invoke the `quality-grading` skill in `grade-and-fix` mode on `.specs/changes/<slug>/tasks.md`. Apply any auto-fixes before proceeding.
9696
9. **STOP**. Summarize the artifact and ask: `Approve Phase 3, and I'll move to Phase 4 (implementation), which includes Phase 5 (code review) before quality grading.`

packages/cli/templates/universal/skills/spec-driven-requirements-writer/SKILL.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ If `long-running-work-planning` is available, load it at the start of this phase
3030
4. Extract actors, actions, and constraints
3131
5. Write requirements using valid EARS syntax
3232
6. Define glossary terms if domain-specific terminology is needed
33-
7. **Validate**: Run `spec-driven validate requirements .specs/changes/<slug>/requirements.md` to ensure compliance
33+
7. **Validate**: Run `sds validate requirements .specs/changes/<slug>/requirements.md` to ensure compliance
3434
8. **Write Before Review**: Save to `.specs/changes/<slug>/requirements.md` before asking for approval
3535

3636
## Per-Phase Todo List
@@ -57,6 +57,23 @@ When this skill begins execution, create a todo list containing the following it
5757

5858
`.specs/changes/<slug>/requirements.md`
5959

60+
**IMPORTANT:** Only `requirements.md` is a valid spec document name for requirements. Do NOT create `spec.md`, `overview.md`, `architecture.md`, or any other document name. The spec-driven workflow strictly requires exactly three document types: `requirements.md`, `design.md`, and `tasks.md`.
61+
62+
## CLI Validation Discovery
63+
64+
After writing the requirements file, validate it using the CLI:
65+
66+
```bash
67+
sds validate requirements .specs/changes/<slug>/requirements.md
68+
```
69+
70+
Example:
71+
```bash
72+
sds validate requirements .specs/changes/my-feature/requirements.md
73+
```
74+
75+
**Note:** Both `sds` and `spec-driven-steroids` work interchangeably as the CLI command name.
76+
6077
## Required Document Structure
6178

6279
```markdown
@@ -225,7 +242,7 @@ Instead: proceed with reasonable assumptions and document them in `## Assumption
225242

226243
### CLI Validation Failures
227244

228-
When `spec-driven validate requirements` returns errors:
245+
When `sds validate requirements` returns errors:
229246

230247
1. Fix missing or invalid sections
231248
2. Rewrite acceptance criteria with correct EARS syntax

packages/cli/templates/universal/skills/spec-driven-task-decomposer/SKILL.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ If `long-running-work-planning` is available, load it at the start of this phase
3030
7. **Create Atomic Tasks**: Break each design element into tasks that are concrete and usually completable within one focused session.
3131
8. **Add Acceptance Criteria Testing**: Create a dedicated penultimate testing phase covering every acceptance criterion.
3232
9. **Add Final Checkpoint**: Create a final phase that verifies all requirements and overall spec completeness.
33-
10. **Validate Tasks**: Run `spec-driven validate tasks .specs/changes/<slug>/tasks.md` using `tasks.md` and `design.md` content.
34-
11. **Validate Full Spec**: Run `spec-driven validate spec <slug>`.
33+
10. **Validate Tasks**: Run `sds validate tasks .specs/changes/<slug>/tasks.md` using `tasks.md` and `design.md` content.
34+
11. **Validate Full Spec**: Run `sds validate spec <slug>`.
3535
12. **Write Before Review**: Save to `.specs/changes/<slug>/tasks.md` before asking for approval.
3636

3737
## Per-Phase Todo List
@@ -61,6 +61,25 @@ When this skill begins execution, create a todo list containing the following it
6161

6262
`.specs/changes/<slug>/tasks.md`
6363

64+
**IMPORTANT:** Only `tasks.md` is a valid spec document name for tasks. Do NOT create `implementation.md`, `plan.md`, `spec.md`, or any other document name. The spec-driven workflow strictly requires exactly three document types: `requirements.md`, `design.md`, and `tasks.md`.
65+
66+
## CLI Validation Discovery
67+
68+
After writing the tasks file, validate it using the CLI:
69+
70+
```bash
71+
sds validate tasks .specs/changes/<slug>/tasks.md
72+
sds validate spec <slug>
73+
```
74+
75+
Examples:
76+
```bash
77+
sds validate tasks .specs/changes/my-feature/tasks.md
78+
sds validate spec my-feature
79+
```
80+
81+
**Note:** Both `sds` and `spec-driven-steroids` work interchangeably as the CLI command name.
82+
6483
## Required Document Structure
6584

6685
Your output must use this structure.
@@ -261,7 +280,7 @@ Ask a clarifying question only if the ambiguity would materially change:
261280

262281
### CLI Validation Failures
263282

264-
When `spec-driven validate tasks` or `spec-driven validate spec` returns errors:
283+
When `sds validate tasks` or `sds validate spec` returns errors:
265284

266285
1. Add missing required sections or phases.
267286
2. Fix task numbering and checkbox formatting.

packages/cli/templates/universal/skills/spec-driven-task-implementer/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Read `references/task-execution-patterns.md` when you need examples for resuming
2222

2323
1. **Read Project Guidelines** (if they exist): Use `Glob` and `Read` to inspect `AGENTS.md`, `ARCHITECTURE.md`, `STYLEGUIDE.md`, `TESTING.md`, and `SECURITY.md`.
2424
2. **Read the Feature Spec**: Read `.specs/changes/<slug>/requirements.md`, `design.md`, and `tasks.md`.
25-
3. **Validate the Spec**: Run `spec-driven validate spec <slug>` before implementation. Resolve blocking spec issues first.
25+
3. **Validate the Spec**: Run `sds validate spec <slug>` before implementation. Resolve blocking spec issues first.
2626
4. **Inspect Existing Code**: Use `Glob`, `Read`, and `Grep` to understand the files, modules, and patterns referenced by the design.
2727
5. **Select the Next Eligible Task**: Choose the requested task, requested phase, or the next pending task whose dependencies are satisfied.
2828
6. **Execute the Task Loop**: Mark the task in progress, implement it, verify it, then mark it complete.
@@ -194,7 +194,7 @@ When a conflict appears:
194194

195195
### Spec Validation Failures
196196

197-
If `spec-driven validate spec` reports blocking errors before implementation:
197+
If `sds validate spec` reports blocking errors before implementation:
198198

199199
1. Do not start coding yet.
200200
2. Identify whether the issue is in requirements, design, or tasks.

packages/cli/templates/universal/skills/spec-driven-technical-designer/SKILL.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ If `long-running-work-planning` is available, load it at the start of this phase
2828
5. **Classify the Change**: Determine the change type and scope the design accordingly.
2929
6. **Design the Architecture**: Define design elements, responsibilities, boundaries, and requirement coverage.
3030
7. **Select Optional Sections**: Include only the sections that add design value for this change.
31-
8. **Validate**: Run `spec-driven validate design .specs/changes/<slug>/design.md` using the design content and requirements content.
31+
8. **Validate**: Run `sds validate design .specs/changes/<slug>/design.md` using the design content and requirements content.
3232
9. **Write Before Review**: Save to `.specs/changes/<slug>/design.md` before asking for approval.
3333

3434
## Per-Phase Todo List
@@ -56,6 +56,23 @@ When this skill begins execution, create a todo list containing the following it
5656

5757
`.specs/changes/<slug>/design.md`
5858

59+
**IMPORTANT:** Only `design.md` is a valid spec document name for design. Do NOT create `architecture.md`, `spec.md`, `overview.md`, or any other document name. The spec-driven workflow strictly requires exactly three document types: `requirements.md`, `design.md`, and `tasks.md`.
60+
61+
## CLI Validation Discovery
62+
63+
After writing the design file, validate it using the CLI:
64+
65+
```bash
66+
sds validate design .specs/changes/<slug>/design.md
67+
```
68+
69+
Example:
70+
```bash
71+
sds validate design .specs/changes/my-feature/design.md
72+
```
73+
74+
**Note:** Both `sds` and `spec-driven-steroids` work interchangeably as the CLI command name.
75+
5976
## Change Type Classification
6077

6178
Choose one primary change type and use it to determine depth and section inclusion.
@@ -343,7 +360,7 @@ Ask a clarifying question only if the ambiguity would materially change:
343360

344361
### CLI Validation Failures
345362

346-
When `spec-driven validate design` returns errors:
363+
When `sds validate design` returns errors:
347364

348365
1. Add any missing required sections.
349366
2. Fix Mermaid syntax by simplifying diagrams first.

packages/cli/tests/unit/template-validation-guidance.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ describe('Unit: template validation guidance', () => {
2727
it('requires tasks and complete-spec validation in planner templates', async () => {
2828
// Universal template is the source of truth
2929
const content = await readTemplate('universal/agents/spec-driven.agent.md');
30-
expect(content).toContain('spec-driven validate tasks');
31-
expect(content).toContain('spec-driven validate spec');
30+
expect(content).toContain('sds validate tasks');
31+
expect(content).toContain('sds validate spec');
3232
});
3333

3434
it('hardens Codex planner templates against phase-skipping', async () => {
@@ -61,11 +61,11 @@ describe('Unit: template validation guidance', () => {
6161

6262
for (const target of targets) {
6363
const content = await readTemplate(target);
64-
expect(content).toContain('spec-driven validate spec');
64+
expect(content).toContain('sds validate spec');
6565
}
6666

6767
const decomposerContent = await readTemplate('universal/skills/spec-driven-task-decomposer/SKILL.md');
68-
expect(decomposerContent).toContain('spec-driven validate tasks');
68+
expect(decomposerContent).toContain('sds validate tasks');
6969
});
7070

7171
it('requires behavior-focused testing task names with REQ IDs only in traceability tags', async () => {

0 commit comments

Comments
 (0)