description = "Create or update Kiro steering documents intelligently based on project state" prompt = """ # Kiro Steering Management Intelligently create or update steering documents in `.kiro/steering/` to maintain accurate project knowledge for spec-driven development. This command detects existing documents and handles them appropriately. ## Existing Files Check ### Current steering documents status - Product overview: !{bash -c '[ -f ".kiro/steering/product.md" ] && echo "✅ EXISTS - Will be updated preserving custom content" || echo "📝 Not found - Will be created"'} - Technology stack: !{bash -c '[ -f ".kiro/steering/tech.md" ] && echo "✅ EXISTS - Will be updated preserving custom content" || echo "📝 Not found - Will be created"'} - Project structure: !{bash -c '[ -f ".kiro/steering/structure.md" ] && echo "✅ EXISTS - Will be updated preserving custom content" || echo "📝 Not found - Will be created"'} - Custom steering files: !{bash -c 'find .kiro/steering -maxdepth 1 -name '"'"'*.md'"'"' ! -name '"'"'product.md'"'"' ! -name '"'"'tech.md'"'"' ! -name '"'"'structure.md'"'"' 2>/dev/null && echo "🔧 Custom files found - Will be preserved" || echo "📋 No custom files"'} ## Project Analysis ### Current Project State - Project files: !{bash -c 'find . -name "*.py" -o -name "*.js" -o -name "*.ts" -o -name "*.jsx" -o -name "*.tsx" -o -name "*.java" -o -name "*.go" -o -name "*.rs" 2>/dev/null || echo "No source files found"'} - Configuration files: !{bash -c 'find . -maxdepth 3 -name "package.json" -o -name "requirements.txt" -o -name "pom.xml" -o -name "Cargo.toml" -o -name "go.mod" -o -name "pyproject.toml" -o -name "tsconfig.json" 2>/dev/null || echo "No config files found"'} - Documentation: !{bash -c 'find . -maxdepth 3 -name "README*" -o -name "CHANGELOG*" -o -name "LICENSE*" -o -name "*.md" 2>/dev/null || echo "No documentation files found"'} ### Recent Changes (if updating) - Last steering update: !{bash -c 'git log -1 --oneline -- .kiro/steering/ 2>/dev/null || echo "No previous steering commits"'} - Commits since last steering update: !{bash -c 'git log --oneline --max-count=20 2>/dev/null || echo "Not a git repository"'} - Working tree status: !{bash -c 'git status --porcelain 2>/dev/null || echo "Not a git repository"'} ### Existing Documentation - Main README: @README.md - Package configuration: @package.json - Python requirements: @requirements.txt - TypeScript config: @tsconfig.json - Project documentation: @docs/ ## Smart Update Strategy Based on the existing files check above, this command will: ### For NEW files (showing "📝 Not found"): Generate comprehensive initial content covering all aspects of the project. ### For EXISTING files (showing "✅ EXISTS"): 1. **Preserve user customizations** - Any manual edits or custom sections 2. **Update factual information** - Dependencies, file structures, commands 3. **Add new sections** - Only if significant new capabilities exist 4. **Mark deprecated content** - Rather than deleting 5. **Maintain formatting** - Keep consistent with existing style ## Inclusion Modes for Core Steering Files The three core steering files (product.md, tech.md, structure.md) are designed to be **Always Included** - loaded in every AI interaction to provide consistent project context. ### Understanding Inclusion Modes - **Always Included (Default for core files)**: Loaded in every interaction - ensures consistent project knowledge - **Conditional**: Loaded only when working with matching file patterns (mainly for custom steering) - **Manual**: Referenced on-demand with @filename syntax (for specialized contexts) ### Core Files Strategy - `product.md`: Always - Business context needed for all development decisions - `tech.md`: Always - Technical constraints affect all code generation - `structure.md`: Always - Architectural decisions impact all file organization ## Task: Create or Update Steering Documents ### 1. Product Overview (`product.md`) #### For NEW file: Generate comprehensive product overview including: - **Product Overview**: Brief description of what the product is - **Core Features**: Bulleted list of main capabilities - **Target Use Case**: Specific scenarios the product addresses - **Key Value Proposition**: Unique benefits and differentiators #### For EXISTING file: Update only if there are: - **New features** added to the product - **Removed features** or deprecated functionality - **Changed use cases** or target audience - **Updated value propositions** or benefits ### 2. Technology Stack (`tech.md`) #### For NEW file: Document the complete technology landscape: - **Architecture**: High-level system design - **Frontend**: Frameworks, libraries, build tools (if applicable) - **Backend**: Language, framework, server technology (if applicable) - **Development Environment**: Required tools and setup - **Common Commands**: Frequently used development commands - **Environment Variables**: Key configuration variables - **Port Configuration**: Standard ports used by services #### For EXISTING file: Check for changes in: - **New dependencies** added via package managers - **Removed libraries** or frameworks - **Version upgrades** of major dependencies - **New development tools** or build processes - **Changed environment variables** or configuration - **Modified port assignments** or service architecture ### 3. Project Structure (`structure.md`) #### For NEW file: Outline the codebase organization: - **Root Directory Organization**: Top-level structure with descriptions - **Subdirectory Structures**: Detailed breakdown of key directories - **Code Organization Patterns**: How code is structured - **File Naming Conventions**: Standards for naming files and directories - **Import Organization**: How imports/dependencies are organized - **Key Architectural Principles**: Core design decisions and patterns #### For EXISTING file: Look for changes in: - **New directories** or major reorganization - **Changed file organization** patterns - **New or modified naming conventions** - **Updated architectural patterns** or principles - **Refactored code structure** or module boundaries ### 4. Custom Steering Files If custom steering files exist: - **Preserve them** - Do not modify unless specifically outdated - **Check relevance** - Note if they reference removed features - **Suggest new custom files** - If new specialized areas emerge ## Instructions 1. **Create `.kiro/steering/` directory** if it doesn't exist 2. **Check existing files** to determine create vs update mode 3. **Analyze the codebase** using available tools 4. **For NEW files**: Generate comprehensive initial documentation 5. **For EXISTING files**: - Read current content first - Preserve user customizations and comments - Update only factual/technical information - Maintain existing structure and style 6. **Use clear markdown formatting** with proper headers and sections 7. **Include concrete examples** where helpful for understanding 8. **Focus on facts over assumptions** - document what exists 9. **Follow spec-driven development principles** ## Important Principles ### Security Guidelines - **Never include sensitive data**: No API keys, passwords, database credentials, or personal information - **Review before commit**: Always review steering content before version control - **Team sharing consideration**: Remember steering files are shared with all project collaborators ### Content Quality Guidelines - **Single domain focus**: Each steering file should cover one specific area - **Clear, descriptive content**: Provide concrete examples and rationale for decisions - **Regular maintenance**: Review and update steering files after major project changes - **Actionable guidance**: Write specific, implementable guidelines rather than abstract principles ### Preservation Strategy - **User sections**: Any section not in the standard template should be preserved - **Custom examples**: User-added examples should be maintained - **Comments**: Inline comments or notes should be kept - **Formatting preferences**: Respect existing markdown style choices ### Update Philosophy - **Additive by default**: Add new information rather than replacing - **Mark deprecation**: Use strikethrough or [DEPRECATED] tags - **Date significant changes**: Add update timestamps for major changes - **Explain changes**: Brief notes on why something was updated The goal is to maintain living documentation that stays current while respecting user customizations, supporting effective spec-driven development without requiring users to worry about losing their work. """