Skip to content

Commit 0e9438b

Browse files
committed
v6.1.0: Unify directory structure to storage/specs/, enhance requirements workflow
## Changed - Directory structure unified: storage/features/ → storage/specs/ - All spec files now use flat naming: {feature}-requirements.md, {feature}-design.md, {feature}-tasks.md - Follows Article VIII Anti-Abstraction principle ## Enhanced - Requirements definition workflow (/sdd-requirements): - Added Interactive Dialogue Phase: 1-on-1 Q&A to discover 'true purpose' - Added MECE Analysis: Comprehensive coverage using 4 dimensions ## Updated - All .claude/skills/ files (7 files) - All src/templates/agents/claude-code/skills/ templates (7 files) - User guides, tutorials, and examples - bin/musubi-init.js now creates storage/archive/ instead of storage/features/
1 parent 7acf50e commit 0e9438b

32 files changed

+1049
-181
lines changed

.claude/skills/constitution-enforcer/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,4 +614,4 @@ Before finishing:
614614
- [ ] Failures documented with severity
615615
- [ ] Remediation plan provided
616616
- [ ] Overall status determined (APPROVED/BLOCKED)
617-
- [ ] Report saved to `storage/features/[feature]/constitutional-compliance.md`
617+
- [ ] Report saved to `storage/specs/[feature]-constitutional-compliance.md`

.claude/skills/constitution-enforcer/phase-minus-one-gates.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ def validate_traceability_setup(feature_name):
183183
Verify traceability chain is ready.
184184
"""
185185
required_artifacts = {
186-
"requirements": f"storage/features/{feature_name}/requirements.md",
187-
"design": f"storage/features/{feature_name}/design.md",
188-
"tasks": f"storage/features/{feature_name}/tasks.md",
186+
"requirements": f"storage/specs/{feature_name}-requirements.md",
187+
"design": f"storage/specs/{feature_name}-design.md",
188+
"tasks": f"storage/specs/{feature_name}-tasks.md",
189189
}
190190

191191
for artifact, path in required_artifacts.items():

.claude/skills/site-reliability-engineer/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ app.get('/health/live', (req, res) => {
317317

318318
### Phase 1: SLO Definition (Based on Requirements)
319319

320-
1. Read `storage/features/[feature]/requirements.md`
320+
1. Read `storage/specs/[feature]-requirements.md`
321321
2. Identify non-functional requirements (performance, availability)
322322
3. Define SLIs and SLOs
323323
4. Calculate error budgets

.claude/skills/steering/auto-update-rules.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ git diff --name-only | grep -E "(webpack|vite|rollup|esbuild)\.config\."
9696
**Detection**:
9797
```bash
9898
# New feature directories
99-
git diff --name-only --diff-filter=A | grep "storage/features/"
99+
git diff --name-only --diff-filter=A | grep "storage/specs/"
100100

101101
# New requirement files
102102
git diff --name-only --diff-filter=A | grep "requirements\.md"
@@ -143,7 +143,7 @@ git diff --name-only --diff-filter=A | grep "requirements\.md"
143143

144144
### memories/architecture_decisions.md
145145

146-
**Trigger**: New ADR created in `storage/features/*/design.md`
146+
**Trigger**: New ADR created in `storage/specs/*-design.md`
147147

148148
**Action**:
149149
```markdown
@@ -219,8 +219,8 @@ diff <(grep "dependencies" steering/tech.md) <(cat package.json | jq '.dependenc
219219
# 2. Check if structure.md directories match actual structure
220220
diff <(grep -E "^-\s+" steering/structure.md | cut -d' ' -f2) <(find src -type d -maxdepth 2)
221221

222-
# 3. Check if product.md features match storage/features/
223-
diff <(grep "Feature" steering/product.md) <(ls storage/features/)
222+
# 3. Check if product.md features match storage/specs/
223+
diff <(grep "Feature" steering/product.md) <(ls storage/specs/ | grep requirements)
224224
```
225225

226226
### Report Divergence
@@ -239,7 +239,7 @@ diff <(grep "Feature" steering/product.md) <(ls storage/features/)
239239
- ⚠️ Removed directory: src/legacy/ (no longer exists)
240240

241241
### product.md
242-
- ⚠️ Missing feature: payment-integration (in storage/features/)
242+
- ⚠️ Missing feature: payment-integration (in storage/specs/)
243243

244244
## Recommendations
245245
1. Run steering skill to update all files
@@ -279,7 +279,7 @@ on:
279279
paths:
280280
- 'package.json'
281281
- 'src/**'
282-
- 'storage/features/**'
282+
- 'storage/specs/**'
283283

284284
jobs:
285285
check-steering:

.claude/skills/traceability-auditor/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ Test Suite (tests/auth/service.test.ts)
101101

102102
### Phase 1: Collect Artifacts
103103

104-
1. Read `storage/features/[feature]/requirements.md`
105-
2. Read `storage/features/[feature]/design.md`
106-
3. Read `storage/features/[feature]/tasks.md`
104+
1. Read `storage/specs/[feature]-requirements.md`
105+
2. Read `storage/specs/[feature]-design.md`
106+
3. Read `storage/specs/[feature]-tasks.md`
107107
4. Scan source code for implementation
108108
5. Scan test files for test cases
109109

@@ -290,7 +290,7 @@ coverage_test = (requirements_with_tests / requirements_total) * 100
290290
- **After**:
291291
- If gaps found → orchestrator triggers missing skills
292292
- If complete → quality-assurance approves release
293-
- **Uses**: All spec files in `storage/features/` and `storage/changes/`
293+
- **Uses**: All spec files in `storage/specs/` and `storage/changes/`
294294

295295
## Gap Detection Rules
296296

.claude/skills/traceability-auditor/coverage-matrix-template.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ Template for creating traceability coverage matrices that ensure 100% compliance
9696
def generate_traceability_matrix(feature_name):
9797
"""Generate traceability matrix for a feature."""
9898

99-
requirements = parse_requirements(f"storage/features/{feature_name}/requirements.md")
100-
design = parse_design(f"storage/features/{feature_name}/design.md")
101-
tasks = parse_tasks(f"storage/features/{feature_name}/tasks.md")
99+
requirements = parse_requirements(f"storage/specs/{feature_name}-requirements.md")
100+
design = parse_design(f"storage/specs/{feature_name}-design.md")
101+
tasks = parse_tasks(f"storage/specs/{feature_name}-tasks.md")
102102
code_files = find_code_files(f"src/{feature_name}/")
103103
test_files = find_test_files(f"tests/{feature_name}/")
104104

.claude/skills/traceability-auditor/gap-detection-rules.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ for ref in all_references:
8989
#!/bin/bash
9090
# find-orphaned-requirements.sh
9191

92-
REQ_FILE="storage/features/$1/requirements.md"
93-
DESIGN_FILE="storage/features/$1/design.md"
92+
REQ_FILE="storage/specs/$1-requirements.md"
93+
DESIGN_FILE="storage/specs/$1-design.md"
9494

9595
# Extract requirement IDs
9696
grep -oP 'REQ-[\w-]+' "$REQ_FILE" | sort -u > /tmp/reqs.txt
@@ -207,7 +207,7 @@ name: Traceability Check
207207
on:
208208
pull_request:
209209
paths:
210-
- 'storage/features/**'
210+
- 'storage/specs/**'
211211
- 'src/**'
212212
- 'tests/**'
213213

0 commit comments

Comments
 (0)