The following changes must be implemented in this specific order due to dependencies:
1. add-zod-validation (No dependencies)
- Creates all core schemas (RequirementSchema, ScenarioSchema, SpecSchema, ChangeSchema, DeltaSchema)
- Implements markdown parser utilities
- Implements validation infrastructure and rules
- Establishes validation patterns used by all commands
- Must be completed first
2. add-change-commands (Depends on: add-zod-validation)
- Imports ChangeSchema and DeltaSchema from zod validation
- Reuses markdown parsing utilities
- Implements change command with built-in validation
- Uses validation infrastructure for change validate subcommand
- Cannot start until schemas and validation exist
3. add-spec-commands (Depends on: add-zod-validation, add-change-commands)
- Imports RequirementSchema, ScenarioSchema, SpecSchema from zod validation
- Reuses markdown parsing utilities
- Implements spec command with built-in validation
- Uses validation infrastructure for spec validate subcommand
- Builds on patterns established by change commands
add-zod-validation
↓
add-change-commands
↓
add-spec-commands
- Schemas: All schemas created in add-zod-validation, used by both command implementations
- Validation: Infrastructure created in add-zod-validation, integrated into both commands
- Parsers: Markdown parsing utilities created in add-zod-validation, used by both commands
src/core/schemas/*.schema.ts(created by add-zod-validation) → imported by both commandssrc/core/validation/validator.ts(created by add-zod-validation) → used by both commandssrc/core/parsers/markdown-parser.ts(created by add-zod-validation) → used by both commands
- Complete each phase fully before moving to the next
- Run tests after each phase to ensure stability
- The legacy
listcommand remains functional throughout
- Each change can be validated independently
- Integration tests should run after each phase
- Full system tests required after Phase 3
Within each phase, the following can be done in parallel:
- Phase 1: Schema design, validation rules, and parser implementation
- Phase 2: Change command features and legacy compatibility work
- Phase 3: Spec command features and final integration