--- name: kiro-steering description: Manage {{KIRO_DIR}}/steering/ as persistent project knowledge metadata: shared-rules: "steering-principles.md" ---
Kiro Steering Management
<background_information> **Role**: Maintain `{{KIRO_DIR}}/steering/` as persistent project memory.
**Mission**:
- Bootstrap: Generate core steering from codebase (first-time)
- Sync: Keep steering and codebase aligned (maintenance)
- Preserve: User customizations are sacred, updates are additive
**Success Criteria**:
- Steering captures patterns and principles, not exhaustive lists
- Code drift detected and reported
- All `{{KIRO_DIR}}/steering/*.md` treated equally (core + custom)
</background_information>
<instructions>
Scenario Detection
Check `{{KIRO_DIR}}/steering/` status:
**Bootstrap Mode**: Empty OR missing core files (product.md, tech.md, structure.md) **Sync Mode**: All core files exist
---
Bootstrap Flow
- Load templates from `{{KIRO_DIR}}/settings/templates/steering/`
- Analyze codebase (JIT):
Parallel Research
The following research areas are independent and can be executed in parallel:
- **Product analysis**: README, package.json, documentation files for purpose, value, core capabilities
- **Tech analysis**: Config files, dependencies, frameworks for technology patterns and decisions
- **Structure analysis**: Directory tree, naming conventions, import patterns for organization
If multi-agent is enabled, spawn sub-agents for each area above. Otherwise execute sequentially.
After all parallel research completes, synthesize patterns for steering files.
- Extract patterns (not lists):
- Product: Purpose, value, core capabilities
- Tech: Frameworks, decisions, conventions
- Structure: Organization, naming, imports
- Generate steering files (follow templates)
- Load principles from `rules/steering-principles.md` from this skill's directory
- Present summary for review
**Focus**: Patterns that guide decisions, not catalogs of files/dependencies.
---
Sync Flow
- Load all existing steering (`{{KIRO_DIR}}/steering/*.md`)
- Analyze codebase for changes (JIT)
- Detect drift:
- **Steering → Code**: Missing elements → Warning
- **Code → Steering**: New patterns → Update candidate
- **Custom files**: Check relevance
- Propose updates (additive, preserve user content)
- Report: Updates, warnings, recommendations
**Update Philosophy**: Add, don't replace. Preserve user sections.
---
Granularity Principle
From `rules/steering-principles.md` (in this skill's directory):
"If new code follows existing patterns, steering shouldn't need updating."
Document patterns and principles, not exhaustive lists.
**Bad**: List every file in directory tree **Good**: Describe organization pattern with examples
</instructions>
Tool guidance
- **Glob**: Find source/config files
- **Read**: Read steering, docs, configs
- **Grep**: Search patterns
- **Bash** with `ls`: Analyze structure
**JIT Strategy**: Fetch when needed, not upfront.
Output description
Chat summary only (files updated directly).
Bootstrap:
✅ Steering Created
## Generated:
- product.md: [Brief description]
- tech.md: [Key stack]
- structure.md: [Organization]
Review and approve as Source of Truth.
Sync:
✅ Steering Updated
## Changes:
- tech.md: React 18 → 19
- structure.md: Added API pattern
## Code Drift:
- Components not following import conventions
## Recommendations:
- Consider api-standards.md
Examples
Bootstrap
**Input**: Empty steering, React TypeScript project **Output**: 3 files with patterns - "Feature-first", "TypeScript strict", "React 19"
Sync
**Input**: Existing steering, new `/api` directory **Output**: Updated structure.md, flagged non-compliant files, suggested api-standards.md
Safety & Fallback
- **Security**: Never include keys, passwords, secrets (see principles)
- **Uncertainty**: Report both states, ask user
- **Preservation**: Add rather than replace when in doubt
Notes
- All `{{KIRO_DIR}}/steering/*.md` loaded as project memory
- Templates and principles are external for customization
- Focus on patterns, not catalogs
- "Golden Rule": New code following patterns shouldn't require steering updates
- Avoid documenting agent-specific tooling directories (e.g. `.cursor/`, `.gemini/`, `.claude/`)
- `{{KIRO_DIR}}/settings/` content should NOT be documented in steering files (settings are metadata, not project knowledge)
- Light references to `{{KIRO_DIR}}/specs/` and `{{KIRO_DIR}}/steering/` are acceptable; avoid other `.kiro/` directories