/sdd-steer¶
Generate or update steering files. Use when conventions drift or after major refactors.
Usage¶
/sdd-steer # Bootstrap: generate all steering files from scratch
/sdd-steer sync # Detect drift and propose updates
/sdd-steer report # Analyze steering health and coverage
Bootstrap mode¶
Generates all steering files by:
- Loading project skills (architecture, code-quality)
- Exploring the codebase (directory structure, config files, representative files)
- Reading
MEMORY.mdand existingopenspec/specs/ - Generating
product.md,tech.md,structure.md,conventions.md
Use when /sdd-init was not run or steering files need regeneration.
Sync mode¶
Compares current conventions against three sources (in priority order):
- Project skills — most reliable source
- MEMORY.md — patterns discovered in previous sessions
- Current code — empirical evidence
Presents proposed changes:
DRIFT DETECTED in conventions.md:
ADD (new conventions found):
+ ## Signals
+ - MUST use signal() for reactive state
UPDATE (outdated convention):
~ OLD: MUST NOT use async/await directly
~ NEW: MUST use async/await with asyncio mode
REMOVE (no longer applies):
- MUST support Python 3.9 (min is now 3.13)
Apply these changes? (y/n/select)
Warning
Sync mode does not auto-apply. It always asks for confirmation.
Report mode¶
Read-only analysis of steering health. Checks:
- Rule counts — MUST/SHOULD/MAY rules in conventions.md, by area
- Project rules growth — how many rules came from user corrections
- Drift indicators — whether tech.md matches detected tools/versions
- Empty sections — areas in project-rules.md with no content yet
- History — archived changes count, domains with canonical specs
STEERING REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Conventions: 12 MUST, 6 SHOULD, 2 MAY across 4 areas
Project rules: 5 rules (Style: 2, Tests: 1, Architecture: 2)
Health:
✓ conventions.md — up to date
⚠ tech.md — Node version mismatch (file: 18, detected: 22)
Next step¶
/sdd-audit— verify the codebase against updated conventions