Skip to content
This repository was archived by the owner on Jan 31, 2026. It is now read-only.

Commit 053e36e

Browse files
authored
Merge pull request #5 from kaaloo/feat/sdd-constitution-update
docs: add Specification-Driven Development principle to constitution (v1.7.1)
2 parents 1447d60 + fcff421 commit 053e36e

3 files changed

Lines changed: 104 additions & 23 deletions

File tree

.specify/memory/constitution.md

Lines changed: 85 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,27 @@
11
<!--
22
SYNC IMPACT REPORT
33
==================
4-
Version Change: 1.6.1 → 1.6.2
5-
Rationale: PATCH version bump - Added pnpm as standardized Node.js package manager to Principle IX (Developer Experience & Tooling Consistency)
4+
Version Change: 1.7.0 → 1.7.1
5+
Rationale: PATCH version bump - Reorganized principle ordering by moving Specification-Driven Development (formerly XIII) to position XI, renumbering subsequent principles for better logical flow
66
77
Modified Principles:
8-
- Principle IX (Developer Experience & Tooling Consistency):
9-
* Added "Node.js Tooling Standards" section
10-
* Standardized on pnpm for Node.js package management and workspace support
11-
* Clarified that npm, yarn, and bun are optional but not standardized
12-
* Updated rationale to explain pnpm's alignment with uv workspaces and Turborepo
8+
- Principle XI: Now "Specification-Driven Development with SpecKit" (formerly Principle XIII)
9+
- Principle XII: Now "French Government AI Stack Integration" (formerly Principle XI)
10+
- Principle XIII: Now "Streamlit-to-Production Bridge" (formerly Principle XII)
1311
14-
Added Sections:
15-
- Principle IX: "Node.js Tooling Standards" subsection
16-
17-
Modified Sections:
18-
- Principle IX: Rationale expanded to include pnpm's workspace support alignment
12+
Rationale for Reordering:
13+
- Specification-Driven Development (new XI) logically follows Python-First Development (X) as both are foundational development practices
14+
- French Government AI Stack Integration (new XII) and Streamlit-to-Production Bridge (new XIII) are more specific implementation concerns that build on the foundational principles
1915
2016
Removed Sections: N/A
2117
2218
Templates Requiring Updates:
23-
- ✅ plan-template.md: Updated Principle IX checkbox to include pnpm
24-
- ✅ spec-template.md: Already aligned (no changes needed)
25-
- ✅ tasks-template.md: Already aligned (no changes needed)
19+
- ✅ plan-template.md: Updated principle numbers in Constitution Check
20+
- ✅ spec-template.md: Already aligned (no principle-specific references)
21+
- ✅ tasks-template.md: Already aligned (no principle-specific references)
2622
2723
Follow-up TODOs:
2824
- Update feature spec 001-setup-developer-experience to reflect pnpm standardization
29-
- Consider adding pnpm workspace configuration examples to developer documentation
3025
- Consider adding security homologation dossier template
3126
- Consider adding risk assessment template aligned with ANSSI requirements
3227
- Consider adding security documentation checklist for homologation
@@ -303,7 +298,75 @@ ai-kit MUST prioritize Python as the primary development language to align with
303298

304299
**Rationale**: Empowering teams to work within their expertise domain maximizes productivity and reduces the learning curve that has historically caused projects to stall or accumulate technical debt.
305300

306-
### XI. French Government AI Stack Integration
301+
### XI. Specification-Driven Development with SpecKit
302+
303+
ai-kit MUST serve as a reference implementation and exemplar of specification-driven development using SpecKit methodology. This principle establishes ai-kit as both a product that delivers value AND a demonstration of best practices for structured, traceable software development.
304+
305+
**Core Requirements**:
306+
307+
- All features MUST follow the specification → planning → implementation workflow
308+
- All features MUST use SpecKit templates located in `.specify/templates/`
309+
- All features MUST use SpecKit workflows located in `.windsurf/workflows/`
310+
- Feature development MUST begin with `/speckit.specify` to create a specification
311+
- Implementation planning MUST use `/speckit.plan` to generate design artifacts
312+
- Task generation MUST use `/speckit.tasks` to create actionable work items
313+
- All specifications MUST be stored in `specs/[###-feature-name]/` directories
314+
315+
**SpecKit Workflow Enforcement**:
316+
317+
- **Specification Phase**: Use `/speckit.specify` to create `spec.md` with user stories, requirements, and success criteria
318+
- **Clarification Phase**: Use `/speckit.clarify` to identify and resolve underspecified areas
319+
- **Planning Phase**: Use `/speckit.plan` to generate `plan.md`, `research.md`, `data-model.md`, `contracts/`, and `quickstart.md`
320+
- **Task Generation**: Use `/speckit.tasks` to create dependency-ordered `tasks.md` from design artifacts
321+
- **Implementation Phase**: Use `/speckit.implement` to execute tasks systematically
322+
- **Quality Assurance**: Use `/speckit.analyze` for cross-artifact consistency validation
323+
- **Custom Checklists**: Use `/speckit.checklist` for feature-specific quality gates
324+
325+
**Documentation Structure**:
326+
327+
Each feature MUST maintain the following structure in `specs/[###-feature-name]/`:
328+
- `spec.md`: Feature specification (from `/speckit.specify`)
329+
- `plan.md`: Implementation plan (from `/speckit.plan`)
330+
- `research.md`: Technical research and decisions (from `/speckit.plan`)
331+
- `data-model.md`: Entity and relationship definitions (from `/speckit.plan`)
332+
- `contracts/`: API contracts and interfaces (from `/speckit.plan`)
333+
- `quickstart.md`: User-facing getting started guide (from `/speckit.plan`)
334+
- `tasks.md`: Actionable task list (from `/speckit.tasks`)
335+
- `checklists/`: Feature-specific quality checklists (from `/speckit.checklist`)
336+
337+
**Traceability Requirements**:
338+
339+
- Every implementation MUST trace back to a specification
340+
- Every task MUST reference its source user story or requirement
341+
- Every design decision MUST be documented in planning artifacts
342+
- Constitution compliance MUST be verified in `plan.md` Constitution Check section
343+
344+
**Exemplar Responsibilities**:
345+
346+
ai-kit development MUST demonstrate:
347+
- How to write clear, testable specifications
348+
- How to decompose features into independent user stories
349+
- How to plan implementation with proper dependency management
350+
- How to maintain consistency across specification, design, and implementation
351+
- How to use SpecKit workflows effectively in real-world scenarios
352+
- How to balance agility with documentation discipline
353+
354+
**Integration with Other Principles**:
355+
356+
- Supports User-Centered Iteration (Principle VII) through structured user story decomposition
357+
- Enables Security Homologation (Principle III) through comprehensive documentation
358+
- Facilitates EU AI Act Compliance (Principle I) through traceable risk assessments
359+
- Complements Developer Experience (Principle IX) with clear development workflows
360+
- Aligns with Open Source (Principle IV) by making development process transparent and reusable
361+
362+
**Rationale**: Specification-driven development prevents the common failure modes of AI projects: scope creep, undocumented decisions, untraceable requirements, and accumulation of technical debt. By making ai-kit itself an exemplar of SpecKit methodology, we provide concrete, real-world examples that other French Government teams can study and replicate. This principle ensures that ai-kit's development process is as valuable as its code—demonstrating that structured development practices can coexist with rapid AI innovation. Teams adopting ai-kit will learn not just what to build, but how to build it with discipline and traceability.
363+
364+
**References**:
365+
- SpecKit templates: `.specify/templates/`
366+
- SpecKit workflows: `.windsurf/workflows/`
367+
- Example specifications: `specs/001-setup-developer-experience/`
368+
369+
### XII. French Government AI Stack Integration
307370

308371
ai-kit MUST provide first-class integrations with the emerging French Government AI ecosystem, including but not limited to:
309372

@@ -321,7 +384,7 @@ ai-kit MUST provide first-class integrations with the emerging French Government
321384

322385
**Rationale**: Standardizing on government-approved AI infrastructure ensures compliance, reduces duplication, and enables teams to focus on domain-specific value rather than infrastructure.
323386

324-
### XII. Streamlit-to-Production Bridge
387+
### XIII. Streamlit-to-Production Bridge
325388

326389
ai-kit MUST provide a clear migration path from Streamlit prototypes to production-ready applications. This principle addresses the common pattern where:
327390

@@ -510,8 +573,9 @@ All feature specifications and implementation plans MUST include a Constitution
510573
- Extensibility considerations (Principle VIII)
511574
- Developer tooling standards and monorepo architecture (Principle IX)
512575
- Python-first development (Principle X)
513-
- Government AI stack integration requirements (Principle XI)
514-
- Streamlit-to-production support if applicable (Principle XII)
576+
- Specification-driven development with SpecKit workflows (Principle XI)
577+
- Government AI stack integration requirements (Principle XII)
578+
- Streamlit-to-production support if applicable (Principle XIII)
515579

516580
### Complexity Justification
517581

@@ -522,4 +586,4 @@ Any deviation from these principles MUST be documented with:
522586
- Plan to return to compliance if possible
523587
- Approval from project stakeholders
524588

525-
**Version**: 1.6.2 | **Ratified**: 2025-10-11 | **Last Amended**: 2025-10-12
589+
**Version**: 1.7.1 | **Ratified**: 2025-10-11 | **Last Amended**: 2025-10-13

.specify/templates/plan-template.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ Verify compliance with ai-kit constitution principles:
4343
- [ ] **Extensibility and Innovation (Principle VIII)**: Is the implementation extensible? Does it avoid tight coupling to specific service versions?
4444
- [ ] **Developer Experience & Tooling (Principle IX)**: Does the project use Turborepo, uv, ruff, just, and pnpm? Is TypeScript usage (if any) justified for frontend integration points?
4545
- [ ] **Python-First Development (Principle X)**: Is Python the primary language? Are non-Python components justified?
46-
- [ ] **French Government AI Stack Integration (Principle XI)**: Does the feature integrate with OpenGateLLM, EvalAP, or other government AI services where applicable?
47-
- [ ] **Streamlit-to-Production Bridge (Principle XII)**: If using Streamlit, is there a migration path to Reflex? Are ProConnect and DSFR integrations planned?
46+
- [ ] **Specification-Driven Development (Principle XI)**: Does this feature follow the SpecKit workflow (specify → plan → tasks → implement)? Are all design artifacts present in specs/[###-feature-name]/? Is traceability maintained from spec to implementation?
47+
- [ ] **French Government AI Stack Integration (Principle XII)**: Does the feature integrate with OpenGateLLM, EvalAP, or other government AI services where applicable?
48+
- [ ] **Streamlit-to-Production Bridge (Principle XIII)**: If using Streamlit, is there a migration path to Reflex? Are ProConnect and DSFR integrations planned?
4849

4950
**Violations Requiring Justification**: [List any principle violations with rationale, or state "None"]
5051

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
A Python-first monorepo providing tools, templates, and libraries for building AI-powered applications that comply with French Government standards (EU AI Act, RGAA, Security Homologation).
66

7+
**ai-kit is also a reference implementation of [SpecKit](https://github.com/speckit/speckit) specification-driven development methodology**, demonstrating how to build production software with structured specifications, traceable design decisions, and systematic implementation workflows.
8+
79
## Quick Start
810

911
### Prerequisites
@@ -103,17 +105,31 @@ ai-kit/
103105
**Strict**: Package isolation catches undeclared dependencies
104106
**Automated**: Pre-commit hooks and CI/CD pipelines
105107
**Cross-Platform**: Works on macOS, Linux, and Windows
108+
**Specification-Driven**: Reference implementation of SpecKit methodology with traceable development workflows
106109

107110
## Contributing
108111

109112
See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed development guidelines.
110113

114+
## SpecKit Methodology
115+
116+
ai-kit demonstrates specification-driven development using SpecKit workflows:
117+
118+
- **Specifications**: All features start with structured specs in `specs/[###-feature-name]/`
119+
- **Workflows**: Development follows SpecKit workflows in `.windsurf/workflows/`
120+
- **Templates**: Design artifacts use templates from `.specify/templates/`
121+
- **Traceability**: Every implementation traces back to a specification
122+
- **Example**: See `specs/001-setup-developer-experience/` for a complete feature example
123+
124+
Learn more about SpecKit at [github.com/speckit/speckit](https://github.com/speckit/speckit)
125+
111126
## Documentation
112127

113128
- **Setup Guide**: [quickstart.md](./specs/001-setup-developer-experience/quickstart.md)
114129
- **Contributing Guide**: [CONTRIBUTING.md](./CONTRIBUTING.md)
115130
- **CI Testing**: [.github/CI_TESTING.md](./.github/CI_TESTING.md)
116131
- **Package READMEs**: See individual package directories
132+
- **Constitution**: [.specify/memory/constitution.md](./.specify/memory/constitution.md) - Core principles and governance
117133

118134
## Architecture
119135

0 commit comments

Comments
 (0)