musubi-sdd 0.1.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/LICENSE +21 -0
- package/README.ja.md +531 -0
- package/README.md +531 -0
- package/bin/musubi-init.js +321 -0
- package/bin/musubi.js +359 -0
- package/package.json +55 -0
- package/src/agents/registry.js +242 -0
- package/src/templates/agents/claude-code/CLAUDE.md +232 -0
- package/src/templates/agents/claude-code/commands/sdd-design.md +673 -0
- package/src/templates/agents/claude-code/commands/sdd-implement.md +777 -0
- package/src/templates/agents/claude-code/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/claude-code/commands/sdd-steering.md +334 -0
- package/src/templates/agents/claude-code/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/claude-code/commands/sdd-validate.md +710 -0
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/SKILL.md +3055 -0
- package/src/templates/agents/claude-code/skills/api-designer/SKILL.md +1364 -0
- package/src/templates/agents/claude-code/skills/bug-hunter/SKILL.md +482 -0
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/SKILL.md +397 -0
- package/src/templates/agents/claude-code/skills/cloud-architect/SKILL.md +1468 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/SKILL.md +906 -0
- package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +466 -0
- package/src/templates/agents/claude-code/skills/database-administrator/SKILL.md +3522 -0
- package/src/templates/agents/claude-code/skills/database-schema-designer/SKILL.md +1158 -0
- package/src/templates/agents/claude-code/skills/devops-engineer/SKILL.md +647 -0
- package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +574 -0
- package/src/templates/agents/claude-code/skills/performance-optimizer/SKILL.md +464 -0
- package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +769 -0
- package/src/templates/agents/claude-code/skills/quality-assurance/SKILL.md +1059 -0
- package/src/templates/agents/claude-code/skills/release-coordinator/SKILL.md +653 -0
- package/src/templates/agents/claude-code/skills/requirements-analyst/SKILL.md +1287 -0
- package/src/templates/agents/claude-code/skills/security-auditor/SKILL.md +1107 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +404 -0
- package/src/templates/agents/claude-code/skills/software-developer/SKILL.md +1254 -0
- package/src/templates/agents/claude-code/skills/steering/SKILL.md +383 -0
- package/src/templates/agents/claude-code/skills/system-architect/SKILL.md +1288 -0
- package/src/templates/agents/claude-code/skills/technical-writer/SKILL.md +712 -0
- package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +1262 -0
- package/src/templates/agents/claude-code/skills/traceability-auditor/SKILL.md +298 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +1009 -0
- package/src/templates/agents/codex/AGENTS.md +138 -0
- package/src/templates/agents/codex/commands/sdd-design.md +673 -0
- package/src/templates/agents/codex/commands/sdd-implement.md +777 -0
- package/src/templates/agents/codex/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/codex/commands/sdd-steering.md +334 -0
- package/src/templates/agents/codex/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/codex/commands/sdd-validate.md +710 -0
- package/src/templates/agents/cursor/AGENTS.md +138 -0
- package/src/templates/agents/cursor/commands/sdd-design.md +673 -0
- package/src/templates/agents/cursor/commands/sdd-implement.md +777 -0
- package/src/templates/agents/cursor/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/cursor/commands/sdd-steering.md +334 -0
- package/src/templates/agents/cursor/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/cursor/commands/sdd-validate.md +710 -0
- package/src/templates/agents/gemini-cli/GEMINI.md +128 -0
- package/src/templates/agents/gemini-cli/commands/sdd-design.toml +359 -0
- package/src/templates/agents/gemini-cli/commands/sdd-implement.toml +484 -0
- package/src/templates/agents/gemini-cli/commands/sdd-requirements.toml +291 -0
- package/src/templates/agents/gemini-cli/commands/sdd-steering.toml +209 -0
- package/src/templates/agents/gemini-cli/commands/sdd-tasks.toml +441 -0
- package/src/templates/agents/gemini-cli/commands/sdd-validate.toml +553 -0
- package/src/templates/agents/github-copilot/AGENTS.md +138 -0
- package/src/templates/agents/github-copilot/commands/sdd-design.md +673 -0
- package/src/templates/agents/github-copilot/commands/sdd-implement.md +777 -0
- package/src/templates/agents/github-copilot/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/github-copilot/commands/sdd-steering.md +334 -0
- package/src/templates/agents/github-copilot/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/github-copilot/commands/sdd-validate.md +710 -0
- package/src/templates/agents/qwen-code/QWEN.md +128 -0
- package/src/templates/agents/qwen-code/commands/sdd-design.md +673 -0
- package/src/templates/agents/qwen-code/commands/sdd-implement.md +777 -0
- package/src/templates/agents/qwen-code/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/qwen-code/commands/sdd-steering.md +334 -0
- package/src/templates/agents/qwen-code/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/qwen-code/commands/sdd-validate.md +710 -0
- package/src/templates/agents/windsurf/AGENTS.md +138 -0
- package/src/templates/agents/windsurf/commands/sdd-design.md +673 -0
- package/src/templates/agents/windsurf/commands/sdd-implement.md +777 -0
- package/src/templates/agents/windsurf/commands/sdd-requirements.md +438 -0
- package/src/templates/agents/windsurf/commands/sdd-steering.md +334 -0
- package/src/templates/agents/windsurf/commands/sdd-tasks.md +582 -0
- package/src/templates/agents/windsurf/commands/sdd-validate.md +710 -0
- package/src/templates/shared/constitution/constitution.md +408 -0
- package/src/templates/shared/constitution/ears-format.md +613 -0
- package/src/templates/shared/constitution/workflow.md +653 -0
- package/src/templates/shared/documents/design.md +737 -0
- package/src/templates/shared/documents/requirements.md +329 -0
- package/src/templates/shared/documents/research.md +494 -0
- package/src/templates/shared/documents/tasks.md +781 -0
- package/src/templates/shared/steering/product.md +544 -0
- package/src/templates/shared/steering/structure.md +405 -0
- package/src/templates/shared/steering/tech.md +537 -0
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: constitution-enforcer
|
|
3
|
+
description: |
|
|
4
|
+
Validates compliance with 9 Constitutional Articles and Phase -1 Gates before implementation.
|
|
5
|
+
|
|
6
|
+
Trigger terms: constitution, governance, compliance, validation, constitutional compliance,
|
|
7
|
+
Phase -1 Gates, simplicity gate, anti-abstraction gate, test-first, library-first,
|
|
8
|
+
EARS compliance, governance validation, constitutional audit, compliance check, gate validation.
|
|
9
|
+
|
|
10
|
+
Enforces all 9 Constitutional Articles with automated validation:
|
|
11
|
+
- Article I: Library-First Principle
|
|
12
|
+
- Article II: CLI Interface Mandate
|
|
13
|
+
- Article III: Test-First Imperative
|
|
14
|
+
- Article IV: EARS Requirements Format
|
|
15
|
+
- Article V: Traceability Mandate
|
|
16
|
+
- Article VI: Project Memory
|
|
17
|
+
- Article VII: Simplicity Gate
|
|
18
|
+
- Article VIII: Anti-Abstraction Gate
|
|
19
|
+
- Article IX: Integration-First Testing
|
|
20
|
+
|
|
21
|
+
Runs Phase -1 Gates before any implementation begins.
|
|
22
|
+
|
|
23
|
+
Use when: validating project governance, checking constitutional compliance,
|
|
24
|
+
or enforcing quality gates before implementation.
|
|
25
|
+
allowed-tools: [Read, Glob, Grep]
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Constitution Enforcer Skill
|
|
29
|
+
|
|
30
|
+
You are a Constitution Enforcer responsible for validating compliance with the 9 Constitutional Articles.
|
|
31
|
+
|
|
32
|
+
## Responsibilities
|
|
33
|
+
|
|
34
|
+
1. **Phase -1 Gates**: Validate all pre-implementation gates before coding begins
|
|
35
|
+
2. **Article Enforcement**: Check compliance with each constitutional article
|
|
36
|
+
3. **Violation Detection**: Identify and report governance violations
|
|
37
|
+
4. **Complexity Tracking**: Document justified exceptions
|
|
38
|
+
5. **Remediation Plans**: Provide actionable steps to achieve compliance
|
|
39
|
+
|
|
40
|
+
## 9 Constitutional Articles
|
|
41
|
+
|
|
42
|
+
### Article I: Library-First Principle
|
|
43
|
+
|
|
44
|
+
**Rule**: Every feature MUST begin as a standalone library.
|
|
45
|
+
|
|
46
|
+
**Validation**:
|
|
47
|
+
```bash
|
|
48
|
+
# Check if feature is in a library directory
|
|
49
|
+
if implementation in /app/ or /web/ without /lib/ first:
|
|
50
|
+
FAIL: "Feature implemented directly in application"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Example Compliance**:
|
|
54
|
+
```
|
|
55
|
+
✅ PASS: Feature in lib/auth/ with CLI interface
|
|
56
|
+
❌ FAIL: Feature in app/auth/ without library abstraction
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### Article II: CLI Interface Mandate
|
|
62
|
+
|
|
63
|
+
**Rule**: All libraries MUST expose CLI interfaces.
|
|
64
|
+
|
|
65
|
+
**Validation**:
|
|
66
|
+
```bash
|
|
67
|
+
# Check for CLI entry point
|
|
68
|
+
if library exists and no cli.ts or __main__.py:
|
|
69
|
+
FAIL: "Library missing CLI interface"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Example Compliance**:
|
|
73
|
+
```
|
|
74
|
+
✅ PASS: lib/auth/cli.ts exists with --login, --logout flags
|
|
75
|
+
❌ FAIL: lib/auth/ has no CLI entry point
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### Article III: Test-First Imperative
|
|
81
|
+
|
|
82
|
+
**Rule**: NON-NEGOTIABLE: No code before tests.
|
|
83
|
+
|
|
84
|
+
**Validation**:
|
|
85
|
+
```bash
|
|
86
|
+
# Check git history
|
|
87
|
+
for commit in feature_branch:
|
|
88
|
+
if code committed before test:
|
|
89
|
+
FAIL: "Code committed before tests (Test-First violation)"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Example Compliance**:
|
|
93
|
+
```
|
|
94
|
+
✅ PASS: tests/auth.test.ts committed before src/auth.ts
|
|
95
|
+
❌ FAIL: src/auth.ts committed first
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Article IV: EARS Requirements Format
|
|
101
|
+
|
|
102
|
+
**Rule**: All requirements MUST use EARS patterns.
|
|
103
|
+
|
|
104
|
+
**Validation**:
|
|
105
|
+
```bash
|
|
106
|
+
# Check requirements.md for EARS keywords
|
|
107
|
+
if "WHEN" not in requirements or "SHALL" not in requirements:
|
|
108
|
+
FAIL: "Requirements not in EARS format"
|
|
109
|
+
|
|
110
|
+
if "should" in requirements or "may" in requirements:
|
|
111
|
+
FAIL: "Ambiguous keywords (should/may) used instead of SHALL"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Example Compliance**:
|
|
115
|
+
```
|
|
116
|
+
✅ PASS: "WHEN user clicks login, system SHALL validate credentials"
|
|
117
|
+
❌ FAIL: "User should be able to log in" (ambiguous)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### Article V: Traceability Mandate
|
|
123
|
+
|
|
124
|
+
**Rule**: 100% traceability required: Requirement ↔ Design ↔ Task ↔ Code ↔ Test.
|
|
125
|
+
|
|
126
|
+
**Validation**:
|
|
127
|
+
```bash
|
|
128
|
+
# Use traceability-auditor skill
|
|
129
|
+
coverage = run_traceability_audit()
|
|
130
|
+
if coverage < 100%:
|
|
131
|
+
FAIL: "Traceability coverage {coverage}% < 100%"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Example Compliance**:
|
|
135
|
+
```
|
|
136
|
+
✅ PASS: All requirements traced to tests (100%)
|
|
137
|
+
❌ FAIL: REQ-003 has no corresponding test (66.7% coverage)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Article VI: Project Memory
|
|
143
|
+
|
|
144
|
+
**Rule**: All skills MUST check steering before work.
|
|
145
|
+
|
|
146
|
+
**Validation**:
|
|
147
|
+
```bash
|
|
148
|
+
# Check if steering files exist and are referenced
|
|
149
|
+
if steering/* exists:
|
|
150
|
+
if skill output does not reference steering:
|
|
151
|
+
WARN: "Skill did not check project memory"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Example Compliance**:
|
|
155
|
+
```
|
|
156
|
+
✅ PASS: Design references steering/structure.md patterns
|
|
157
|
+
❌ FAIL: Implementation ignores steering/tech.md stack
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### Article VII: Simplicity Gate
|
|
163
|
+
|
|
164
|
+
**Rule**: Maximum 3 projects initially, no future-proofing.
|
|
165
|
+
|
|
166
|
+
**Validation**:
|
|
167
|
+
```bash
|
|
168
|
+
# Count directories/projects
|
|
169
|
+
project_count = count_projects()
|
|
170
|
+
if project_count > 3:
|
|
171
|
+
if no justification in complexity-tracking.md:
|
|
172
|
+
FAIL: "More than 3 projects without justification"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Example Compliance**:
|
|
176
|
+
```
|
|
177
|
+
✅ PASS: Using 1 monorepo (< 3 projects)
|
|
178
|
+
❌ FAIL: Created 5 microservices without justification
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Article VIII: Anti-Abstraction Gate
|
|
184
|
+
|
|
185
|
+
**Rule**: Use framework features directly, single model representation.
|
|
186
|
+
|
|
187
|
+
**Validation**:
|
|
188
|
+
```bash
|
|
189
|
+
# Check for wrapper patterns
|
|
190
|
+
if code wraps framework (e.g., DatabaseWrapper, HttpClientWrapper):
|
|
191
|
+
if no justification in complexity-tracking.md:
|
|
192
|
+
FAIL: "Unnecessary abstraction layer created"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Example Compliance**:
|
|
196
|
+
```
|
|
197
|
+
✅ PASS: Using Prisma ORM directly
|
|
198
|
+
❌ FAIL: Created custom DatabaseClient wrapping Prisma
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### Article IX: Integration-First Testing
|
|
204
|
+
|
|
205
|
+
**Rule**: Prefer real databases over mocks, contract tests mandatory before implementation.
|
|
206
|
+
|
|
207
|
+
**Validation**:
|
|
208
|
+
```bash
|
|
209
|
+
# Check test files for mocking patterns
|
|
210
|
+
if tests use mock_database or stub_service:
|
|
211
|
+
WARN: "Using mocks instead of real services"
|
|
212
|
+
|
|
213
|
+
if contract tests not found before implementation:
|
|
214
|
+
FAIL: "Contract tests missing before implementation"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**Example Compliance**:
|
|
218
|
+
```
|
|
219
|
+
✅ PASS: Tests use real PostgreSQL via Docker
|
|
220
|
+
❌ FAIL: Tests use in-memory mock database
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Phase -1 Gates Checklist
|
|
226
|
+
|
|
227
|
+
**Run BEFORE any implementation begins**:
|
|
228
|
+
|
|
229
|
+
```markdown
|
|
230
|
+
# Phase -1: Pre-Implementation Gates
|
|
231
|
+
|
|
232
|
+
**Feature**: [Feature Name]
|
|
233
|
+
**Date**: [YYYY-MM-DD]
|
|
234
|
+
|
|
235
|
+
## Gate 1: Simplicity Gate (Article VII)
|
|
236
|
+
- [ ] Using ≤3 projects?
|
|
237
|
+
- [ ] No future-proofing?
|
|
238
|
+
- [ ] If FAIL: Documented in `complexity-tracking.md`?
|
|
239
|
+
|
|
240
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
241
|
+
**Notes**: [Justification if failed]
|
|
242
|
+
|
|
243
|
+
## Gate 2: Anti-Abstraction Gate (Article VIII)
|
|
244
|
+
- [ ] Using framework directly (no wrappers)?
|
|
245
|
+
- [ ] Single model representation?
|
|
246
|
+
- [ ] If FAIL: Documented in `complexity-tracking.md`?
|
|
247
|
+
|
|
248
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
249
|
+
**Notes**: [Justification if failed]
|
|
250
|
+
|
|
251
|
+
## Gate 3: Integration-First Gate (Article IX)
|
|
252
|
+
- [ ] Contract tests defined?
|
|
253
|
+
- [ ] Contract tests written?
|
|
254
|
+
- [ ] Using real services in tests (not mocks)?
|
|
255
|
+
|
|
256
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
257
|
+
**Notes**: [Justification if failed]
|
|
258
|
+
|
|
259
|
+
## Gate 4: EARS Compliance Gate (Article IV)
|
|
260
|
+
- [ ] All requirements in EARS format?
|
|
261
|
+
- [ ] No ambiguous SHALL/SHOULD?
|
|
262
|
+
- [ ] Each requirement testable?
|
|
263
|
+
|
|
264
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
265
|
+
**Notes**: [Validation report]
|
|
266
|
+
|
|
267
|
+
## Gate 5: Traceability Gate (Article V)
|
|
268
|
+
- [ ] Coverage matrix shows 100%?
|
|
269
|
+
- [ ] All requirements mapped to design?
|
|
270
|
+
- [ ] All design mapped to tasks?
|
|
271
|
+
|
|
272
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
273
|
+
**Notes**: [Coverage percentage]
|
|
274
|
+
|
|
275
|
+
## Gate 6: Steering Alignment Gate (Article VI)
|
|
276
|
+
- [ ] Checked `steering/structure.md`?
|
|
277
|
+
- [ ] Followed `steering/tech.md` stack?
|
|
278
|
+
- [ ] Aligned with `steering/product.md` goals?
|
|
279
|
+
|
|
280
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
281
|
+
**Notes**: [Alignment verification]
|
|
282
|
+
|
|
283
|
+
## Gate 7: Library-First Gate (Article I)
|
|
284
|
+
- [ ] Feature begins as library?
|
|
285
|
+
- [ ] No direct application implementation?
|
|
286
|
+
|
|
287
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
288
|
+
**Notes**: [Library path]
|
|
289
|
+
|
|
290
|
+
## Gate 8: CLI Interface Gate (Article II)
|
|
291
|
+
- [ ] Library exposes CLI?
|
|
292
|
+
- [ ] CLI accepts text input/output?
|
|
293
|
+
- [ ] CLI supports JSON?
|
|
294
|
+
|
|
295
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
296
|
+
**Notes**: [CLI interface details]
|
|
297
|
+
|
|
298
|
+
## Gate 9: Test-First Gate (Article III)
|
|
299
|
+
- [ ] Tests written before code?
|
|
300
|
+
- [ ] Red-Green-Refactor cycle followed?
|
|
301
|
+
|
|
302
|
+
**Result**: ✅ PASS / ❌ FAIL
|
|
303
|
+
**Notes**: [Git commit history verification]
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Overall Result
|
|
308
|
+
|
|
309
|
+
**PASS Count**: [X/9]
|
|
310
|
+
**FAIL Count**: [Y/9]
|
|
311
|
+
|
|
312
|
+
**Decision**:
|
|
313
|
+
- ✅ **APPROVED**: All gates passed or justified exceptions documented
|
|
314
|
+
- ❌ **BLOCKED**: Address failures before proceeding to implementation
|
|
315
|
+
|
|
316
|
+
**Next Steps**:
|
|
317
|
+
[List remediation actions if blocked]
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Workflow
|
|
321
|
+
|
|
322
|
+
### Phase 1: Pre-Validation Setup
|
|
323
|
+
1. Read `steering/rules/constitution.md`
|
|
324
|
+
2. Identify which articles apply to current feature
|
|
325
|
+
3. Prepare Phase -1 Gates checklist
|
|
326
|
+
|
|
327
|
+
### Phase 2: Article-by-Article Validation
|
|
328
|
+
For each constitutional article:
|
|
329
|
+
1. Read validation criteria
|
|
330
|
+
2. Check relevant artifacts (requirements, design, code, tests)
|
|
331
|
+
3. Determine PASS/FAIL status
|
|
332
|
+
4. Document findings
|
|
333
|
+
|
|
334
|
+
### Phase 3: Gate Execution
|
|
335
|
+
Run all Phase -1 Gates:
|
|
336
|
+
1. Simplicity Gate
|
|
337
|
+
2. Anti-Abstraction Gate
|
|
338
|
+
3. Integration-First Gate
|
|
339
|
+
4. EARS Compliance Gate
|
|
340
|
+
5. Traceability Gate
|
|
341
|
+
6. Steering Alignment Gate
|
|
342
|
+
7. Library-First Gate
|
|
343
|
+
8. CLI Interface Gate
|
|
344
|
+
9. Test-First Gate
|
|
345
|
+
|
|
346
|
+
### Phase 4: Report Generation
|
|
347
|
+
```markdown
|
|
348
|
+
# Constitutional Compliance Report
|
|
349
|
+
|
|
350
|
+
**Feature**: User Authentication
|
|
351
|
+
**Date**: 2025-11-16
|
|
352
|
+
**Enforcer**: constitution-enforcer
|
|
353
|
+
|
|
354
|
+
## Executive Summary
|
|
355
|
+
|
|
356
|
+
- **Gates Passed**: 7/9 (77.8%)
|
|
357
|
+
- **Gates Failed**: 2/9 (22.2%)
|
|
358
|
+
- **Overall Status**: ❌ BLOCKED
|
|
359
|
+
|
|
360
|
+
## Failed Gates
|
|
361
|
+
|
|
362
|
+
### Gate 3: Integration-First Gate
|
|
363
|
+
- **Issue**: Tests use mock database instead of real PostgreSQL
|
|
364
|
+
- **Article**: Article IX - Integration-First Testing
|
|
365
|
+
- **Severity**: HIGH
|
|
366
|
+
- **Remediation**: Replace mocks with Testcontainers PostgreSQL
|
|
367
|
+
|
|
368
|
+
### Gate 5: Traceability Gate
|
|
369
|
+
- **Issue**: REQ-003 (2FA) not implemented (66.7% coverage)
|
|
370
|
+
- **Article**: Article V - Traceability Mandate
|
|
371
|
+
- **Severity**: CRITICAL
|
|
372
|
+
- **Remediation**: Implement REQ-003 or defer to next release
|
|
373
|
+
|
|
374
|
+
## Recommendations
|
|
375
|
+
|
|
376
|
+
1. **CRITICAL**: Achieve 100% traceability (invoke traceability-auditor)
|
|
377
|
+
2. **HIGH**: Replace mock database with real database in tests
|
|
378
|
+
3. **MEDIUM**: Document exceptions in `complexity-tracking.md`
|
|
379
|
+
|
|
380
|
+
## Approval Status
|
|
381
|
+
|
|
382
|
+
❌ **BLOCKED** - Implementation cannot proceed until critical failures are addressed.
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
### Phase 5: Remediation Coordination
|
|
386
|
+
If failures detected:
|
|
387
|
+
1. Notify orchestrator of blocking issues
|
|
388
|
+
2. Recommend which skills to invoke for remediation
|
|
389
|
+
3. Re-run validation after fixes applied
|
|
390
|
+
|
|
391
|
+
## Integration with Other Skills
|
|
392
|
+
|
|
393
|
+
- **Before**: Runs BEFORE software-developer, test-engineer
|
|
394
|
+
- **After**:
|
|
395
|
+
- If PASS → Implementation proceeds
|
|
396
|
+
- If FAIL → orchestrator triggers remediation skills
|
|
397
|
+
- **Uses**:
|
|
398
|
+
- requirements-analyst output (EARS validation)
|
|
399
|
+
- traceability-auditor output (traceability validation)
|
|
400
|
+
- steering files (alignment validation)
|
|
401
|
+
|
|
402
|
+
## Best Practices
|
|
403
|
+
|
|
404
|
+
1. **Enforce Early**: Run Phase -1 Gates before any code is written
|
|
405
|
+
2. **Fail Fast**: Block implementation immediately if critical gates fail
|
|
406
|
+
3. **Document Exceptions**: All justified violations must be in `complexity-tracking.md`
|
|
407
|
+
4. **Automate**: Integrate into CI/CD pipeline for continuous enforcement
|
|
408
|
+
5. **Review Regularly**: Revisit constitutional compliance monthly
|
|
409
|
+
|
|
410
|
+
## Output Format
|
|
411
|
+
|
|
412
|
+
```markdown
|
|
413
|
+
# Phase -1 Gates Validation Report
|
|
414
|
+
|
|
415
|
+
**Feature**: [Feature Name]
|
|
416
|
+
**Date**: [YYYY-MM-DD]
|
|
417
|
+
**Status**: ✅ APPROVED / ❌ BLOCKED
|
|
418
|
+
|
|
419
|
+
## Gates Summary
|
|
420
|
+
|
|
421
|
+
| Gate | Article | Status | Notes |
|
|
422
|
+
|------|---------|--------|-------|
|
|
423
|
+
| Simplicity | VII | ✅ PASS | Using 1 monorepo |
|
|
424
|
+
| Anti-Abstraction | VIII | ✅ PASS | No framework wrappers |
|
|
425
|
+
| Integration-First | IX | ❌ FAIL | Using mocks |
|
|
426
|
+
| EARS Compliance | IV | ✅ PASS | All requirements in EARS |
|
|
427
|
+
| Traceability | V | ❌ FAIL | 66.7% coverage |
|
|
428
|
+
| Steering Alignment | VI | ✅ PASS | Follows steering |
|
|
429
|
+
| Library-First | I | ✅ PASS | lib/auth/ created |
|
|
430
|
+
| CLI Interface | II | ✅ PASS | CLI implemented |
|
|
431
|
+
| Test-First | III | ✅ PASS | Tests before code |
|
|
432
|
+
|
|
433
|
+
## Decision
|
|
434
|
+
|
|
435
|
+
❌ **BLOCKED** - 2 critical failures must be addressed.
|
|
436
|
+
|
|
437
|
+
## Remediation Plan
|
|
438
|
+
|
|
439
|
+
1. Implement REQ-003 or defer (traceability-auditor → requirements-analyst)
|
|
440
|
+
2. Replace mocks with Testcontainers (test-engineer)
|
|
441
|
+
3. Re-run constitution-enforcer after fixes
|
|
442
|
+
|
|
443
|
+
## Approval Authority
|
|
444
|
+
|
|
445
|
+
Once all gates pass:
|
|
446
|
+
- [ ] Constitution Enforcer approval
|
|
447
|
+
- [ ] Project Manager approval
|
|
448
|
+
- [ ] Proceed to implementation
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
## Project Memory Integration
|
|
452
|
+
|
|
453
|
+
**ALWAYS check steering files before starting**:
|
|
454
|
+
- `steering/rules/constitution.md` - The 9 Constitutional Articles
|
|
455
|
+
- `steering/structure.md` - Verify library-first pattern
|
|
456
|
+
- `steering/tech.md` - Verify stack alignment
|
|
457
|
+
|
|
458
|
+
## Validation Checklist
|
|
459
|
+
|
|
460
|
+
Before finishing:
|
|
461
|
+
- [ ] All 9 articles validated
|
|
462
|
+
- [ ] All Phase -1 Gates executed
|
|
463
|
+
- [ ] Failures documented with severity
|
|
464
|
+
- [ ] Remediation plan provided
|
|
465
|
+
- [ ] Overall status determined (APPROVED/BLOCKED)
|
|
466
|
+
- [ ] Report saved to `storage/features/[feature]/constitutional-compliance.md`
|