kiro-kit 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/dist/index.js +771 -116
- package/dist/index.js.map +1 -1
- package/dist/presets/backend/hooks/api-schema-validate.js +75 -0
- package/dist/presets/backend/hooks/endpoint-test-coverage.js +77 -0
- package/dist/presets/backend/hooks/migration-safety-check.js +68 -0
- package/dist/presets/backend/manifest.json +48 -35
- package/dist/presets/backend/powers.json +40 -0
- package/dist/presets/backend/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/backend/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/backend/skills/kiro/references/commands.md +61 -0
- package/dist/presets/backend/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/backend/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/backend/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/backend/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/backend/skills/kiro/references/skills.md +55 -0
- package/dist/presets/backend/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/backend/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/backend/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/backend/skills/kiro/skill.md +194 -0
- package/dist/presets/data-ai/hooks/data-drift-check.js +77 -0
- package/dist/presets/data-ai/hooks/experiment-log.js +87 -0
- package/dist/presets/data-ai/hooks/model-card-update.js +99 -0
- package/dist/presets/data-ai/manifest.json +48 -35
- package/dist/presets/data-ai/powers.json +34 -0
- package/dist/presets/data-ai/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/data-ai/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/data-ai/skills/kiro/references/commands.md +61 -0
- package/dist/presets/data-ai/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/data-ai/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/data-ai/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/data-ai/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/data-ai/skills/kiro/references/skills.md +55 -0
- package/dist/presets/data-ai/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/data-ai/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/data-ai/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/data-ai/skills/kiro/skill.md +194 -0
- package/dist/presets/devops/hooks/container-scan.js +73 -0
- package/dist/presets/devops/hooks/cost-estimation.js +69 -0
- package/dist/presets/devops/hooks/terraform-plan-review.js +67 -0
- package/dist/presets/devops/manifest.json +48 -35
- package/dist/presets/devops/powers.json +40 -0
- package/dist/presets/devops/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/devops/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/devops/skills/kiro/references/commands.md +61 -0
- package/dist/presets/devops/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/devops/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/devops/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/devops/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/devops/skills/kiro/references/skills.md +55 -0
- package/dist/presets/devops/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/devops/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/devops/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/devops/skills/kiro/skill.md +194 -0
- package/dist/presets/frontend/commands/test.md +1 -1
- package/dist/presets/frontend/hooks/accessibility-check.js +76 -0
- package/dist/presets/frontend/hooks/bundle-size-guard.js +71 -0
- package/dist/presets/frontend/hooks/component-test-reminder.js +71 -0
- package/dist/presets/frontend/manifest.json +48 -35
- package/dist/presets/frontend/powers.json +34 -0
- package/dist/presets/frontend/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/frontend/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/frontend/skills/kiro/references/commands.md +61 -0
- package/dist/presets/frontend/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/frontend/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/frontend/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/frontend/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/frontend/skills/kiro/references/skills.md +55 -0
- package/dist/presets/frontend/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/frontend/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/frontend/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/frontend/skills/kiro/skill.md +194 -0
- package/dist/presets/fullstack/hooks/api-client-gen.js +69 -0
- package/dist/presets/fullstack/hooks/deployment-readiness.js +73 -0
- package/dist/presets/fullstack/hooks/type-sync-check.js +69 -0
- package/dist/presets/fullstack/manifest.json +48 -35
- package/dist/presets/fullstack/powers.json +46 -0
- package/dist/presets/fullstack/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/fullstack/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/fullstack/skills/kiro/references/commands.md +61 -0
- package/dist/presets/fullstack/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/fullstack/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/fullstack/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/fullstack/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/fullstack/skills/kiro/references/skills.md +55 -0
- package/dist/presets/fullstack/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/fullstack/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/fullstack/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/fullstack/skills/kiro/skill.md +194 -0
- package/dist/presets/mobile/hooks/asset-optimization.js +58 -0
- package/dist/presets/mobile/hooks/platform-parity-check.js +73 -0
- package/dist/presets/mobile/hooks/release-checklist.js +83 -0
- package/dist/presets/mobile/manifest.json +48 -35
- package/dist/presets/mobile/powers.json +34 -0
- package/dist/presets/mobile/skills/kiro/references/autonomy-modes.md +26 -0
- package/dist/presets/mobile/skills/kiro/references/best-practices.md +48 -0
- package/dist/presets/mobile/skills/kiro/references/commands.md +61 -0
- package/dist/presets/mobile/skills/kiro/references/configuration.md +41 -0
- package/dist/presets/mobile/skills/kiro/references/getting-started.md +45 -0
- package/dist/presets/mobile/skills/kiro/references/hooks.md +99 -0
- package/dist/presets/mobile/skills/kiro/references/mcp-integration.md +53 -0
- package/dist/presets/mobile/skills/kiro/references/skills.md +55 -0
- package/dist/presets/mobile/skills/kiro/references/specs-workflow.md +62 -0
- package/dist/presets/mobile/skills/kiro/references/steering-files.md +84 -0
- package/dist/presets/mobile/skills/kiro/references/troubleshooting.md +42 -0
- package/dist/presets/mobile/skills/kiro/skill.md +194 -0
- package/package.json +1 -1
- package/dist/presets/backend/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/backend/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/backend/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/backend/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/backend/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/backend/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/backend/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/backend/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/backend/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/backend/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/backend/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/backend/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/backend/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/backend/skills/claude-code/skill.md +0 -194
- package/dist/presets/data-ai/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/data-ai/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/data-ai/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/data-ai/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/data-ai/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/data-ai/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/data-ai/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/data-ai/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/data-ai/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/data-ai/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/data-ai/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/data-ai/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/data-ai/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/data-ai/skills/claude-code/skill.md +0 -194
- package/dist/presets/devops/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/devops/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/devops/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/devops/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/devops/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/devops/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/devops/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/devops/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/devops/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/devops/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/devops/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/devops/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/devops/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/devops/skills/claude-code/skill.md +0 -194
- package/dist/presets/frontend/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/frontend/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/frontend/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/frontend/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/frontend/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/frontend/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/frontend/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/frontend/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/frontend/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/frontend/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/frontend/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/frontend/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/frontend/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/frontend/skills/claude-code/skill.md +0 -194
- package/dist/presets/fullstack/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/fullstack/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/fullstack/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/fullstack/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/fullstack/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/fullstack/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/fullstack/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/fullstack/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/fullstack/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/fullstack/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/fullstack/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/fullstack/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/fullstack/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/fullstack/skills/claude-code/skill.md +0 -194
- package/dist/presets/mobile/skills/claude-code/references/advanced-features.md +0 -399
- package/dist/presets/mobile/skills/claude-code/references/agent-skills.md +0 -399
- package/dist/presets/mobile/skills/claude-code/references/api-reference.md +0 -498
- package/dist/presets/mobile/skills/claude-code/references/best-practices.md +0 -447
- package/dist/presets/mobile/skills/claude-code/references/cicd-integration.md +0 -428
- package/dist/presets/mobile/skills/claude-code/references/configuration.md +0 -480
- package/dist/presets/mobile/skills/claude-code/references/enterprise-features.md +0 -472
- package/dist/presets/mobile/skills/claude-code/references/getting-started.md +0 -252
- package/dist/presets/mobile/skills/claude-code/references/hooks-and-plugins.md +0 -441
- package/dist/presets/mobile/skills/claude-code/references/ide-integration.md +0 -316
- package/dist/presets/mobile/skills/claude-code/references/mcp-integration.md +0 -386
- package/dist/presets/mobile/skills/claude-code/references/slash-commands.md +0 -489
- package/dist/presets/mobile/skills/claude-code/references/troubleshooting.md +0 -456
- package/dist/presets/mobile/skills/claude-code/skill.md +0 -194
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kiro
|
|
3
|
+
description: >-
|
|
4
|
+
Use when users ask about Kiro IDE features, setup, configuration,
|
|
5
|
+
troubleshooting, specs, steering files, MCP servers, hooks, skills,
|
|
6
|
+
commands, or workspace management. Activate for questions like 'How
|
|
7
|
+
do I use Kiro?', 'What are specs?', 'How to set up MCP?', 'Create a
|
|
8
|
+
steering file', 'Fix Kiro issues', or 'Configure my workspace'.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Kiro IDE Expert
|
|
12
|
+
|
|
13
|
+
Kiro is an AI-powered development environment that helps developers focus on what matters: designing systems, exploring solutions, and making decisions. It combines autonomous planning, execution, and validation with extensibility through specs, steering files, skills, commands, hooks, and MCP servers.
|
|
14
|
+
|
|
15
|
+
## When to Use This Skill
|
|
16
|
+
|
|
17
|
+
Use when users need help with:
|
|
18
|
+
- Understanding Kiro features and capabilities
|
|
19
|
+
- Installation, setup, and workspace configuration
|
|
20
|
+
- Creating and managing specs (requirements, design, tasks)
|
|
21
|
+
- Writing steering files for project conventions
|
|
22
|
+
- Creating or managing skills
|
|
23
|
+
- Configuring MCP servers for external tool integration
|
|
24
|
+
- Setting up hooks for automation
|
|
25
|
+
- Using commands for development workflows
|
|
26
|
+
- Troubleshooting Kiro issues
|
|
27
|
+
- Multi-workspace and team collaboration
|
|
28
|
+
- Advanced features (autonomy modes, context management)
|
|
29
|
+
|
|
30
|
+
**Activation examples:**
|
|
31
|
+
- "How do I use Kiro?"
|
|
32
|
+
- "What are specs and how do I create one?"
|
|
33
|
+
- "How to set up MCP servers?"
|
|
34
|
+
- "Create a new steering file for X"
|
|
35
|
+
- "Fix Kiro configuration issues"
|
|
36
|
+
- "How do hooks work in Kiro?"
|
|
37
|
+
|
|
38
|
+
## Core Architecture
|
|
39
|
+
|
|
40
|
+
**Specs**: Structured feature development workflow (requirements -> design -> tasks) that guides implementation systematically
|
|
41
|
+
|
|
42
|
+
**Steering Files**: Project-level instructions in `.kiro/steering/` that provide conventions, standards, and context to the AI agent
|
|
43
|
+
|
|
44
|
+
**Skills**: Modular capabilities with instructions and references that Kiro activates automatically based on context
|
|
45
|
+
|
|
46
|
+
**Commands**: User-defined operations in `.kiro/commands/` that expand to prompts for common workflows
|
|
47
|
+
|
|
48
|
+
**Hooks**: Automated actions triggered by IDE events (file changes, tool use, task execution, prompt submission)
|
|
49
|
+
|
|
50
|
+
**MCP Servers**: Model Context Protocol integrations connecting external tools and services via `.kiro/settings/mcp.json`
|
|
51
|
+
|
|
52
|
+
## Quick Reference
|
|
53
|
+
|
|
54
|
+
Load these references when needed for detailed guidance:
|
|
55
|
+
|
|
56
|
+
### Getting Started
|
|
57
|
+
- **Installation & Setup**: `references/getting-started.md`
|
|
58
|
+
- Prerequisites, installation, workspace setup, first run
|
|
59
|
+
|
|
60
|
+
### Spec-Driven Development
|
|
61
|
+
- **Specs Workflow**: `references/specs-workflow.md`
|
|
62
|
+
- Requirements, design, tasks, bugfix specs, property-based testing
|
|
63
|
+
|
|
64
|
+
### Steering & Configuration
|
|
65
|
+
- **Steering Files**: `references/steering-files.md`
|
|
66
|
+
- Always-included, conditional (fileMatch), manual inclusion, front-matter format
|
|
67
|
+
|
|
68
|
+
- **Configuration**: `references/configuration.md`
|
|
69
|
+
- Settings hierarchy, MCP config, workspace vs user settings
|
|
70
|
+
|
|
71
|
+
### Skills & Commands
|
|
72
|
+
- **Skills**: `references/skills.md`
|
|
73
|
+
- Creating skills, skill.md format, references directory, activation patterns
|
|
74
|
+
|
|
75
|
+
- **Commands**: `references/commands.md`
|
|
76
|
+
- Command file format, front-matter, argument hints, workflow patterns
|
|
77
|
+
|
|
78
|
+
### Integration & Extension
|
|
79
|
+
- **MCP Integration**: `references/mcp-integration.md`
|
|
80
|
+
- mcp.json configuration, common servers, auto-approve, troubleshooting
|
|
81
|
+
|
|
82
|
+
- **Hooks**: `references/hooks.md`
|
|
83
|
+
- Event types (fileEdited, preToolUse, postToolUse, promptSubmit, etc.)
|
|
84
|
+
- Actions (askAgent, runCommand), hook schema, examples
|
|
85
|
+
|
|
86
|
+
### Advanced Usage
|
|
87
|
+
- **Autonomy Modes**: `references/autonomy-modes.md`
|
|
88
|
+
- Autopilot vs Supervised mode, when to use each
|
|
89
|
+
|
|
90
|
+
- **Troubleshooting**: `references/troubleshooting.md`
|
|
91
|
+
- Common issues, MCP problems, performance, workspace diagnostics
|
|
92
|
+
|
|
93
|
+
- **Best Practices**: `references/best-practices.md`
|
|
94
|
+
- Project organization, steering conventions, skill design, team workflows
|
|
95
|
+
|
|
96
|
+
## Common Workflows
|
|
97
|
+
|
|
98
|
+
### Spec-Driven Feature Development
|
|
99
|
+
```
|
|
100
|
+
1. Create a spec: Kiro guides you through requirements -> design -> tasks
|
|
101
|
+
2. Execute tasks: Kiro implements each task from the spec sequentially
|
|
102
|
+
3. Validate: Property-based tests verify correctness properties
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Steering File Setup
|
|
106
|
+
```
|
|
107
|
+
# .kiro/steering/my-conventions.md
|
|
108
|
+
---
|
|
109
|
+
inclusion: always
|
|
110
|
+
description: Project coding conventions
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
Your conventions here...
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Hook Configuration
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"name": "Lint on Save",
|
|
120
|
+
"version": "1.0.0",
|
|
121
|
+
"when": {
|
|
122
|
+
"type": "fileEdited",
|
|
123
|
+
"patterns": ["*.ts", "*.tsx"]
|
|
124
|
+
},
|
|
125
|
+
"then": {
|
|
126
|
+
"type": "runCommand",
|
|
127
|
+
"command": "npm run lint"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### MCP Server Setup
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"mcpServers": {
|
|
136
|
+
"my-server": {
|
|
137
|
+
"command": "uvx",
|
|
138
|
+
"args": ["my-mcp-server@latest"],
|
|
139
|
+
"env": {},
|
|
140
|
+
"disabled": false,
|
|
141
|
+
"autoApprove": []
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Skill Creation
|
|
148
|
+
```
|
|
149
|
+
.kiro/skills/my-skill/
|
|
150
|
+
skill.md # Main skill file with front-matter
|
|
151
|
+
references/ # Supporting reference documents
|
|
152
|
+
guide.md
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Instructions for Kiro
|
|
156
|
+
|
|
157
|
+
When responding to Kiro-related questions:
|
|
158
|
+
|
|
159
|
+
1. **Identify the topic** from the user's question
|
|
160
|
+
2. **Load relevant references** from the Quick Reference section above
|
|
161
|
+
3. **Provide specific guidance** using information from loaded references
|
|
162
|
+
4. **Include examples** when helpful
|
|
163
|
+
|
|
164
|
+
**Loading references:**
|
|
165
|
+
- Read reference files only when needed for the specific question
|
|
166
|
+
- Multiple references can be loaded for complex queries
|
|
167
|
+
|
|
168
|
+
**For setup questions:** Load `references/getting-started.md`
|
|
169
|
+
|
|
170
|
+
**For spec questions:** Load `references/specs-workflow.md`
|
|
171
|
+
|
|
172
|
+
**For steering questions:** Load `references/steering-files.md`
|
|
173
|
+
|
|
174
|
+
**For skill creation:** Load `references/skills.md`
|
|
175
|
+
|
|
176
|
+
**For command questions:** Load `references/commands.md`
|
|
177
|
+
|
|
178
|
+
**For MCP questions:** Load `references/mcp-integration.md`
|
|
179
|
+
|
|
180
|
+
**For hook questions:** Load `references/hooks.md`
|
|
181
|
+
|
|
182
|
+
**For configuration:** Load `references/configuration.md`
|
|
183
|
+
|
|
184
|
+
**For autonomy modes:** Load `references/autonomy-modes.md`
|
|
185
|
+
|
|
186
|
+
**For troubleshooting:** Load `references/troubleshooting.md`
|
|
187
|
+
|
|
188
|
+
**For best practices:** Load `references/best-practices.md`
|
|
189
|
+
|
|
190
|
+
**Documentation links:**
|
|
191
|
+
- Kiro docs: https://kiro.dev/docs/
|
|
192
|
+
- GitHub: https://github.com/aws/kiro
|
|
193
|
+
|
|
194
|
+
Provide accurate, actionable guidance based on the loaded references and official documentation.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Checks if API client types are in sync with route handlers.
|
|
4
|
+
* Warns if route files changed more recently than client type definitions.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
const ROUTE_DIRS = ['src/app/api', 'src/routes'];
|
|
11
|
+
const CLIENT_DIRS = ['src/lib/api', 'src/client', 'src/api', 'src/services'];
|
|
12
|
+
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
|
|
15
|
+
function getLatestMtime(dir) {
|
|
16
|
+
let latest = 0;
|
|
17
|
+
if (!fs.existsSync(dir)) return 0;
|
|
18
|
+
try {
|
|
19
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
20
|
+
for (const entry of entries) {
|
|
21
|
+
const full = path.join(dir, entry.name);
|
|
22
|
+
if (entry.isDirectory()) {
|
|
23
|
+
const sub = getLatestMtime(full);
|
|
24
|
+
if (sub > latest) latest = sub;
|
|
25
|
+
} else if (/\.(ts|js)$/.test(entry.name)) {
|
|
26
|
+
const stat = fs.statSync(full);
|
|
27
|
+
if (stat.mtimeMs > latest) latest = stat.mtimeMs;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
} catch (e) { /* skip */ }
|
|
31
|
+
return latest;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
let routeMtime = 0;
|
|
35
|
+
for (const dir of ROUTE_DIRS) {
|
|
36
|
+
const t = getLatestMtime(path.resolve(cwd, dir));
|
|
37
|
+
if (t > routeMtime) routeMtime = t;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (routeMtime === 0) {
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
let clientMtime = 0;
|
|
45
|
+
let clientDir = null;
|
|
46
|
+
for (const dir of CLIENT_DIRS) {
|
|
47
|
+
const full = path.resolve(cwd, dir);
|
|
48
|
+
if (fs.existsSync(full)) {
|
|
49
|
+
clientDir = dir;
|
|
50
|
+
clientMtime = getLatestMtime(full);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!clientDir) {
|
|
56
|
+
process.exit(0);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (routeMtime > clientMtime) {
|
|
60
|
+
const diff = Math.round((routeMtime - clientMtime) / 1000 / 60);
|
|
61
|
+
process.stdout.write(
|
|
62
|
+
`[api-client-gen] API routes changed ${diff}min after client types.\n` +
|
|
63
|
+
` Route handlers may be out of sync with ${clientDir}/.\n` +
|
|
64
|
+
' Consider regenerating API client types.\n'
|
|
65
|
+
);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
process.exit(0);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Pre-deployment checklist: checks for .env.example completeness,
|
|
4
|
+
* build success indicators, and no TODO/FIXME in production code.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
const issues = [];
|
|
12
|
+
|
|
13
|
+
// Check .env.example exists
|
|
14
|
+
const envExample = path.resolve(cwd, '.env.example');
|
|
15
|
+
const envLocal = path.resolve(cwd, '.env.local');
|
|
16
|
+
if (!fs.existsSync(envExample)) {
|
|
17
|
+
issues.push('Missing .env.example file');
|
|
18
|
+
} else if (fs.existsSync(envLocal)) {
|
|
19
|
+
// Check all keys in .env.local are documented in .env.example
|
|
20
|
+
const exampleKeys = fs.readFileSync(envExample, 'utf8')
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter((l) => l.match(/^[A-Z_]+=/) )
|
|
23
|
+
.map((l) => l.split('=')[0]);
|
|
24
|
+
const localKeys = fs.readFileSync(envLocal, 'utf8')
|
|
25
|
+
.split('\n')
|
|
26
|
+
.filter((l) => l.match(/^[A-Z_]+=/))
|
|
27
|
+
.map((l) => l.split('=')[0]);
|
|
28
|
+
const undocumented = localKeys.filter((k) => !exampleKeys.includes(k));
|
|
29
|
+
if (undocumented.length > 0) {
|
|
30
|
+
issues.push(`${undocumented.length} env var(s) in .env.local not in .env.example`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Check for TODO/FIXME in src/
|
|
35
|
+
function scanTodos(dir, depth) {
|
|
36
|
+
let count = 0;
|
|
37
|
+
if (depth > 5 || !fs.existsSync(dir)) return 0;
|
|
38
|
+
try {
|
|
39
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
40
|
+
for (const entry of entries) {
|
|
41
|
+
const full = path.join(dir, entry.name);
|
|
42
|
+
if (entry.isDirectory() && entry.name !== 'node_modules' && entry.name !== '.next') {
|
|
43
|
+
count += scanTodos(full, depth + 1);
|
|
44
|
+
} else if (entry.isFile() && /\.(ts|tsx|js|jsx)$/.test(entry.name)) {
|
|
45
|
+
const content = fs.readFileSync(full, 'utf8');
|
|
46
|
+
const matches = content.match(/\b(TODO|FIXME)\b/g);
|
|
47
|
+
if (matches) count += matches.length;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} catch (e) { /* skip */ }
|
|
51
|
+
return count;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const todoCount = scanTodos(path.resolve(cwd, 'src'), 0);
|
|
55
|
+
if (todoCount > 0) {
|
|
56
|
+
issues.push(`${todoCount} TODO/FIXME comment(s) found in src/`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Check build output exists
|
|
60
|
+
const buildDirs = ['.next', 'dist', 'build'];
|
|
61
|
+
const hasBuild = buildDirs.some((d) => fs.existsSync(path.resolve(cwd, d)));
|
|
62
|
+
if (!hasBuild) {
|
|
63
|
+
issues.push('No build output found. Run build before deploying.');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (issues.length > 0) {
|
|
67
|
+
process.stdout.write('[deployment-readiness] Pre-deployment issues:\n');
|
|
68
|
+
issues.forEach((i) => process.stdout.write(` - ${i}\n`));
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
process.stdout.write('[deployment-readiness] All checks passed.\n');
|
|
73
|
+
process.exit(0);
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Verifies shared types in src/types/ are imported by both client and server code.
|
|
4
|
+
* Checks for orphan type definitions not used anywhere.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
const TYPES_DIR = path.resolve(process.cwd(), 'src/types');
|
|
11
|
+
const SRC_DIR = path.resolve(process.cwd(), 'src');
|
|
12
|
+
|
|
13
|
+
if (!fs.existsSync(TYPES_DIR)) {
|
|
14
|
+
process.exit(0);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function getTypeFiles(dir) {
|
|
18
|
+
const results = [];
|
|
19
|
+
try {
|
|
20
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
21
|
+
for (const entry of entries) {
|
|
22
|
+
if (entry.isFile() && /\.(ts|tsx)$/.test(entry.name) && entry.name !== 'index.ts') {
|
|
23
|
+
results.push(entry.name);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
} catch (e) { /* skip */ }
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function searchImports(dir, typeFile, exclude) {
|
|
31
|
+
let found = false;
|
|
32
|
+
if (!fs.existsSync(dir)) return false;
|
|
33
|
+
try {
|
|
34
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
35
|
+
for (const entry of entries) {
|
|
36
|
+
if (found) break;
|
|
37
|
+
const full = path.join(dir, entry.name);
|
|
38
|
+
if (entry.isDirectory() && entry.name !== 'node_modules' && full !== exclude) {
|
|
39
|
+
found = searchImports(full, typeFile, exclude);
|
|
40
|
+
} else if (entry.isFile() && /\.(ts|tsx|js|jsx)$/.test(entry.name)) {
|
|
41
|
+
const content = fs.readFileSync(full, 'utf8');
|
|
42
|
+
const baseName = path.basename(typeFile, path.extname(typeFile));
|
|
43
|
+
if (content.includes(`/types/${baseName}`) || content.includes(`/types'`) || content.includes(`/types"`)) {
|
|
44
|
+
found = true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} catch (e) { /* skip */ }
|
|
49
|
+
return found;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const typeFiles = getTypeFiles(TYPES_DIR);
|
|
53
|
+
const orphans = [];
|
|
54
|
+
|
|
55
|
+
for (const tf of typeFiles) {
|
|
56
|
+
const baseName = path.basename(tf, path.extname(tf));
|
|
57
|
+
const isUsed = searchImports(SRC_DIR, tf, TYPES_DIR);
|
|
58
|
+
if (!isUsed) {
|
|
59
|
+
orphans.push(tf);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (orphans.length > 0) {
|
|
64
|
+
process.stdout.write(`[type-sync-check] ${orphans.length} type file(s) not imported anywhere:\n`);
|
|
65
|
+
orphans.forEach((o) => process.stdout.write(` - src/types/${o}\n`));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
process.exit(0);
|
|
@@ -563,6 +563,29 @@
|
|
|
563
563
|
"type": "hook",
|
|
564
564
|
"executable": true
|
|
565
565
|
},
|
|
566
|
+
{
|
|
567
|
+
"source": "hooks/type-sync-check.js",
|
|
568
|
+
"target": ".kiro/hooks/type-sync-check.js",
|
|
569
|
+
"type": "hook",
|
|
570
|
+
"executable": true
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"source": "hooks/api-client-gen.js",
|
|
574
|
+
"target": ".kiro/hooks/api-client-gen.js",
|
|
575
|
+
"type": "hook",
|
|
576
|
+
"executable": true
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"source": "hooks/deployment-readiness.js",
|
|
580
|
+
"target": ".kiro/hooks/deployment-readiness.js",
|
|
581
|
+
"type": "hook",
|
|
582
|
+
"executable": true
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"source": "powers.json",
|
|
586
|
+
"target": ".kiro/powers.json",
|
|
587
|
+
"type": "powers"
|
|
588
|
+
},
|
|
566
589
|
{
|
|
567
590
|
"source": "metadata.json",
|
|
568
591
|
"target": ".kiro/metadata.json",
|
|
@@ -939,73 +962,63 @@
|
|
|
939
962
|
"type": "other"
|
|
940
963
|
},
|
|
941
964
|
{
|
|
942
|
-
"source": "skills/
|
|
943
|
-
"target": ".kiro/skills/
|
|
944
|
-
"type": "
|
|
945
|
-
},
|
|
946
|
-
{
|
|
947
|
-
"source": "skills/claude-code/references/agent-skills.md",
|
|
948
|
-
"target": ".kiro/skills/claude-code/references/agent-skills.md",
|
|
949
|
-
"type": "doc"
|
|
950
|
-
},
|
|
951
|
-
{
|
|
952
|
-
"source": "skills/claude-code/references/api-reference.md",
|
|
953
|
-
"target": ".kiro/skills/claude-code/references/api-reference.md",
|
|
954
|
-
"type": "doc"
|
|
965
|
+
"source": "skills/kiro/skill.md",
|
|
966
|
+
"target": ".kiro/skills/kiro/skill.md",
|
|
967
|
+
"type": "skill"
|
|
955
968
|
},
|
|
956
969
|
{
|
|
957
|
-
"source": "skills/
|
|
958
|
-
"target": ".kiro/skills/
|
|
970
|
+
"source": "skills/kiro/references/autonomy-modes.md",
|
|
971
|
+
"target": ".kiro/skills/kiro/references/autonomy-modes.md",
|
|
959
972
|
"type": "doc"
|
|
960
973
|
},
|
|
961
974
|
{
|
|
962
|
-
"source": "skills/
|
|
963
|
-
"target": ".kiro/skills/
|
|
975
|
+
"source": "skills/kiro/references/best-practices.md",
|
|
976
|
+
"target": ".kiro/skills/kiro/references/best-practices.md",
|
|
964
977
|
"type": "doc"
|
|
965
978
|
},
|
|
966
979
|
{
|
|
967
|
-
"source": "skills/
|
|
968
|
-
"target": ".kiro/skills/
|
|
980
|
+
"source": "skills/kiro/references/commands.md",
|
|
981
|
+
"target": ".kiro/skills/kiro/references/commands.md",
|
|
969
982
|
"type": "doc"
|
|
970
983
|
},
|
|
971
984
|
{
|
|
972
|
-
"source": "skills/
|
|
973
|
-
"target": ".kiro/skills/
|
|
985
|
+
"source": "skills/kiro/references/configuration.md",
|
|
986
|
+
"target": ".kiro/skills/kiro/references/configuration.md",
|
|
974
987
|
"type": "doc"
|
|
975
988
|
},
|
|
976
989
|
{
|
|
977
|
-
"source": "skills/
|
|
978
|
-
"target": ".kiro/skills/
|
|
990
|
+
"source": "skills/kiro/references/getting-started.md",
|
|
991
|
+
"target": ".kiro/skills/kiro/references/getting-started.md",
|
|
979
992
|
"type": "doc"
|
|
980
993
|
},
|
|
981
994
|
{
|
|
982
|
-
"source": "skills/
|
|
983
|
-
"target": ".kiro/skills/
|
|
995
|
+
"source": "skills/kiro/references/hooks.md",
|
|
996
|
+
"target": ".kiro/skills/kiro/references/hooks.md",
|
|
984
997
|
"type": "doc"
|
|
985
998
|
},
|
|
986
999
|
{
|
|
987
|
-
"source": "skills/
|
|
988
|
-
"target": ".kiro/skills/
|
|
1000
|
+
"source": "skills/kiro/references/mcp-integration.md",
|
|
1001
|
+
"target": ".kiro/skills/kiro/references/mcp-integration.md",
|
|
989
1002
|
"type": "doc"
|
|
990
1003
|
},
|
|
991
1004
|
{
|
|
992
|
-
"source": "skills/
|
|
993
|
-
"target": ".kiro/skills/
|
|
1005
|
+
"source": "skills/kiro/references/skills.md",
|
|
1006
|
+
"target": ".kiro/skills/kiro/references/skills.md",
|
|
994
1007
|
"type": "doc"
|
|
995
1008
|
},
|
|
996
1009
|
{
|
|
997
|
-
"source": "skills/
|
|
998
|
-
"target": ".kiro/skills/
|
|
1010
|
+
"source": "skills/kiro/references/specs-workflow.md",
|
|
1011
|
+
"target": ".kiro/skills/kiro/references/specs-workflow.md",
|
|
999
1012
|
"type": "doc"
|
|
1000
1013
|
},
|
|
1001
1014
|
{
|
|
1002
|
-
"source": "skills/
|
|
1003
|
-
"target": ".kiro/skills/
|
|
1015
|
+
"source": "skills/kiro/references/steering-files.md",
|
|
1016
|
+
"target": ".kiro/skills/kiro/references/steering-files.md",
|
|
1004
1017
|
"type": "doc"
|
|
1005
1018
|
},
|
|
1006
1019
|
{
|
|
1007
|
-
"source": "skills/
|
|
1008
|
-
"target": ".kiro/skills/
|
|
1020
|
+
"source": "skills/kiro/references/troubleshooting.md",
|
|
1021
|
+
"target": ".kiro/skills/kiro/references/troubleshooting.md",
|
|
1009
1022
|
"type": "doc"
|
|
1010
1023
|
},
|
|
1011
1024
|
{
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"powers": [
|
|
3
|
+
{
|
|
4
|
+
"name": "Supabase",
|
|
5
|
+
"url": "https://kiro.dev/powers/supabase",
|
|
6
|
+
"description": "Backend-as-a-service with Postgres, auth, and real-time subscriptions",
|
|
7
|
+
"tier": "essential"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"name": "Figma",
|
|
11
|
+
"url": "https://kiro.dev/powers/figma",
|
|
12
|
+
"description": "Design-to-code integration with Figma files",
|
|
13
|
+
"tier": "recommended"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "Netlify",
|
|
17
|
+
"url": "https://kiro.dev/powers/netlify",
|
|
18
|
+
"description": "Deploy React, Next.js, and modern web apps to global CDN",
|
|
19
|
+
"tier": "recommended"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "Stripe",
|
|
23
|
+
"url": "https://kiro.dev/powers/stripe",
|
|
24
|
+
"description": "Payment processing, subscriptions, and billing integration",
|
|
25
|
+
"tier": "recommended"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "Context7",
|
|
29
|
+
"url": "https://kiro.dev/powers/context7",
|
|
30
|
+
"description": "Up-to-date documentation lookup for libraries and frameworks",
|
|
31
|
+
"tier": "recommended"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "Firebase",
|
|
35
|
+
"url": "https://kiro.dev/powers/firebase",
|
|
36
|
+
"description": "Full-stack application development with Google Cloud services",
|
|
37
|
+
"tier": "optional"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "LaunchDarkly",
|
|
41
|
+
"url": "https://kiro.dev/powers/launch-darkly",
|
|
42
|
+
"description": "Feature flag management and progressive delivery",
|
|
43
|
+
"tier": "optional"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Autonomy Modes
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Kiro offers two modes for how the AI agent interacts with your workspace.
|
|
6
|
+
|
|
7
|
+
## Autopilot Mode
|
|
8
|
+
|
|
9
|
+
- Agent modifies files autonomously within the workspace
|
|
10
|
+
- Best for: routine tasks, well-defined changes, trusted workflows
|
|
11
|
+
- Changes are applied immediately
|
|
12
|
+
- Use when you trust the agent's judgment for the task
|
|
13
|
+
|
|
14
|
+
## Supervised Mode
|
|
15
|
+
|
|
16
|
+
- User has opportunity to review and revert changes after application
|
|
17
|
+
- Best for: complex refactors, unfamiliar codebases, learning
|
|
18
|
+
- Changes can be inspected before accepting
|
|
19
|
+
- Use when you want more control over modifications
|
|
20
|
+
|
|
21
|
+
## Choosing a Mode
|
|
22
|
+
|
|
23
|
+
- Start with Supervised for new projects or unfamiliar tasks
|
|
24
|
+
- Switch to Autopilot for repetitive, well-understood operations
|
|
25
|
+
- Use Supervised for security-sensitive changes
|
|
26
|
+
- Autopilot works well for spec task execution
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Best Practices
|
|
2
|
+
|
|
3
|
+
## Project Organization
|
|
4
|
+
|
|
5
|
+
- Keep `.kiro/` directory in version control
|
|
6
|
+
- Use consistent naming (kebab-case for directories)
|
|
7
|
+
- Document custom skills and commands in project README
|
|
8
|
+
- Share steering files across team via git
|
|
9
|
+
|
|
10
|
+
## Steering Conventions
|
|
11
|
+
|
|
12
|
+
- One topic per steering file
|
|
13
|
+
- Use "always" only for critical, universal rules
|
|
14
|
+
- Use "fileMatch" for language/framework-specific guidance
|
|
15
|
+
- Keep files concise (under 100 lines ideally)
|
|
16
|
+
- Include examples in steering content
|
|
17
|
+
|
|
18
|
+
## Skill Design
|
|
19
|
+
|
|
20
|
+
- Focus each skill on one domain
|
|
21
|
+
- Write clear activation descriptions
|
|
22
|
+
- Use references for detailed content
|
|
23
|
+
- Keep main skill.md as an overview/router
|
|
24
|
+
- Test activation with various phrasings
|
|
25
|
+
|
|
26
|
+
## Hook Patterns
|
|
27
|
+
|
|
28
|
+
- Use file hooks for linting and formatting
|
|
29
|
+
- Use postTaskExecution for test validation
|
|
30
|
+
- Use preToolUse for access control
|
|
31
|
+
- Keep hook commands fast (under 30 seconds)
|
|
32
|
+
- Log hook failures for debugging
|
|
33
|
+
|
|
34
|
+
## Team Workflows
|
|
35
|
+
|
|
36
|
+
- Standardize steering files across projects
|
|
37
|
+
- Share skills via presets or git submodules
|
|
38
|
+
- Document MCP server requirements in README
|
|
39
|
+
- Use specs for all non-trivial features
|
|
40
|
+
- Review spec documents before task execution
|
|
41
|
+
|
|
42
|
+
## Cost Management
|
|
43
|
+
|
|
44
|
+
- Use steering to keep responses focused
|
|
45
|
+
- Avoid overly broad "always" steering
|
|
46
|
+
- Disable unused MCP servers
|
|
47
|
+
- Use Supervised mode for exploratory work
|
|
48
|
+
- Keep skill references concise
|