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,58 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Scans assets/ directory for images over 500KB and suggests optimization.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
const path = require('path');
|
|
8
|
+
|
|
9
|
+
const ASSET_DIRS = ['assets', 'src/assets', 'lib/assets', 'public/assets'];
|
|
10
|
+
const IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.tiff'];
|
|
11
|
+
const THRESHOLD_KB = 500;
|
|
12
|
+
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
|
|
15
|
+
function findLargeImages(dir) {
|
|
16
|
+
const results = [];
|
|
17
|
+
if (!fs.existsSync(dir)) return results;
|
|
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
|
+
results.push(...findLargeImages(full));
|
|
24
|
+
} else if (entry.isFile()) {
|
|
25
|
+
const ext = path.extname(entry.name).toLowerCase();
|
|
26
|
+
if (IMAGE_EXTENSIONS.includes(ext)) {
|
|
27
|
+
const stat = fs.statSync(full);
|
|
28
|
+
const sizeKB = Math.round(stat.size / 1024);
|
|
29
|
+
if (sizeKB > THRESHOLD_KB) {
|
|
30
|
+
results.push({ file: path.relative(cwd, full), sizeKB });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
} catch (e) { /* skip */ }
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let largeFiles = [];
|
|
40
|
+
for (const dir of ASSET_DIRS) {
|
|
41
|
+
largeFiles.push(...findLargeImages(path.resolve(cwd, dir)));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (largeFiles.length === 0) {
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
largeFiles.sort((a, b) => b.sizeKB - a.sizeKB);
|
|
49
|
+
|
|
50
|
+
process.stdout.write(`[asset-optimization] ${largeFiles.length} image(s) over ${THRESHOLD_KB}KB:\n`);
|
|
51
|
+
largeFiles.slice(0, 10).forEach((f) => {
|
|
52
|
+
process.stdout.write(` - ${f.file} (${f.sizeKB}KB)\n`);
|
|
53
|
+
});
|
|
54
|
+
if (largeFiles.length > 10) {
|
|
55
|
+
process.stdout.write(` ... and ${largeFiles.length - 10} more\n`);
|
|
56
|
+
}
|
|
57
|
+
process.stdout.write(' Consider compressing or converting to WebP format.\n');
|
|
58
|
+
process.exit(1);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Checks that platform-specific files (*.ios.*, *.android.*) have matching
|
|
4
|
+
* counterparts for both platforms.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
const SRC_DIRS = ['src', 'lib', 'app'];
|
|
11
|
+
const PLATFORM_REGEX = /\.(ios|android)\./;
|
|
12
|
+
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
|
|
15
|
+
function findPlatformFiles(dir) {
|
|
16
|
+
const results = [];
|
|
17
|
+
if (!fs.existsSync(dir)) return results;
|
|
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() && entry.name !== 'node_modules' && entry.name !== '.dart_tool') {
|
|
23
|
+
results.push(...findPlatformFiles(full));
|
|
24
|
+
} else if (entry.isFile() && PLATFORM_REGEX.test(entry.name)) {
|
|
25
|
+
results.push(full);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
} catch (e) { /* skip */ }
|
|
29
|
+
return results;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let platformFiles = [];
|
|
33
|
+
for (const dir of SRC_DIRS) {
|
|
34
|
+
platformFiles.push(...findPlatformFiles(path.resolve(cwd, dir)));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (platformFiles.length === 0) {
|
|
38
|
+
process.exit(0);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const missing = [];
|
|
42
|
+
for (const file of platformFiles) {
|
|
43
|
+
const dir = path.dirname(file);
|
|
44
|
+
const name = path.basename(file);
|
|
45
|
+
|
|
46
|
+
let counterpart;
|
|
47
|
+
if (name.includes('.ios.')) {
|
|
48
|
+
counterpart = name.replace('.ios.', '.android.');
|
|
49
|
+
} else {
|
|
50
|
+
counterpart = name.replace('.android.', '.ios.');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const counterpartPath = path.join(dir, counterpart);
|
|
54
|
+
if (!fs.existsSync(counterpartPath)) {
|
|
55
|
+
missing.push({
|
|
56
|
+
file: path.relative(cwd, file),
|
|
57
|
+
expected: path.relative(cwd, counterpartPath),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (missing.length > 0) {
|
|
63
|
+
process.stdout.write(`[platform-parity-check] ${missing.length} file(s) missing platform counterpart:\n`);
|
|
64
|
+
missing.slice(0, 10).forEach((m) => {
|
|
65
|
+
process.stdout.write(` - ${m.file} (missing: ${m.expected})\n`);
|
|
66
|
+
});
|
|
67
|
+
if (missing.length > 10) {
|
|
68
|
+
process.stdout.write(` ... and ${missing.length - 10} more\n`);
|
|
69
|
+
}
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
process.exit(0);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Verifies version bump in pubspec.yaml/package.json, changelog updated,
|
|
4
|
+
* and no debug flags before release.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require('fs');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
const issues = [];
|
|
12
|
+
|
|
13
|
+
// Check version file exists and has been updated
|
|
14
|
+
const versionFiles = ['pubspec.yaml', 'package.json', 'app.json'];
|
|
15
|
+
let versionFile = null;
|
|
16
|
+
for (const vf of versionFiles) {
|
|
17
|
+
if (fs.existsSync(path.resolve(cwd, vf))) {
|
|
18
|
+
versionFile = vf;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (!versionFile) {
|
|
24
|
+
process.exit(0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Check changelog exists
|
|
28
|
+
const changelogFiles = ['CHANGELOG.md', 'changelog.md', 'CHANGES.md'];
|
|
29
|
+
const hasChangelog = changelogFiles.some((f) => fs.existsSync(path.resolve(cwd, f)));
|
|
30
|
+
if (!hasChangelog) {
|
|
31
|
+
issues.push('No CHANGELOG.md found. Document changes before release.');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Check for debug flags in source code
|
|
35
|
+
const DEBUG_PATTERNS = [
|
|
36
|
+
/debugShowCheckedModeBanner:\s*true/,
|
|
37
|
+
/kDebugMode/,
|
|
38
|
+
/console\.log\(/,
|
|
39
|
+
/__DEV__/,
|
|
40
|
+
/debugPrint\(/,
|
|
41
|
+
];
|
|
42
|
+
|
|
43
|
+
function scanForDebug(dir, depth) {
|
|
44
|
+
const results = [];
|
|
45
|
+
if (depth > 4 || !fs.existsSync(dir)) return results;
|
|
46
|
+
try {
|
|
47
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
48
|
+
for (const entry of entries) {
|
|
49
|
+
const full = path.join(dir, entry.name);
|
|
50
|
+
if (entry.isDirectory() && !['node_modules', '.dart_tool', 'build'].includes(entry.name)) {
|
|
51
|
+
results.push(...scanForDebug(full, depth + 1));
|
|
52
|
+
} else if (entry.isFile() && /\.(dart|ts|tsx|js|jsx)$/.test(entry.name)) {
|
|
53
|
+
const content = fs.readFileSync(full, 'utf8');
|
|
54
|
+
for (const pattern of DEBUG_PATTERNS) {
|
|
55
|
+
if (pattern.test(content)) {
|
|
56
|
+
results.push(path.relative(cwd, full));
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
} catch (e) { /* skip */ }
|
|
63
|
+
return results;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const SRC_DIRS = ['lib', 'src', 'app'];
|
|
67
|
+
let debugFiles = [];
|
|
68
|
+
for (const dir of SRC_DIRS) {
|
|
69
|
+
debugFiles.push(...scanForDebug(path.resolve(cwd, dir), 0));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (debugFiles.length > 0) {
|
|
73
|
+
issues.push(`${debugFiles.length} file(s) contain debug flags/statements`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (issues.length > 0) {
|
|
77
|
+
process.stdout.write('[release-checklist] Release blockers:\n');
|
|
78
|
+
issues.forEach((i) => process.stdout.write(` - ${i}\n`));
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
process.stdout.write('[release-checklist] All release checks passed.\n');
|
|
83
|
+
process.exit(0);
|
|
@@ -568,6 +568,29 @@
|
|
|
568
568
|
"type": "hook",
|
|
569
569
|
"executable": true
|
|
570
570
|
},
|
|
571
|
+
{
|
|
572
|
+
"source": "hooks/platform-parity-check.js",
|
|
573
|
+
"target": ".kiro/hooks/platform-parity-check.js",
|
|
574
|
+
"type": "hook",
|
|
575
|
+
"executable": true
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"source": "hooks/asset-optimization.js",
|
|
579
|
+
"target": ".kiro/hooks/asset-optimization.js",
|
|
580
|
+
"type": "hook",
|
|
581
|
+
"executable": true
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"source": "hooks/release-checklist.js",
|
|
585
|
+
"target": ".kiro/hooks/release-checklist.js",
|
|
586
|
+
"type": "hook",
|
|
587
|
+
"executable": true
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"source": "powers.json",
|
|
591
|
+
"target": ".kiro/powers.json",
|
|
592
|
+
"type": "powers"
|
|
593
|
+
},
|
|
571
594
|
{
|
|
572
595
|
"source": "metadata.json",
|
|
573
596
|
"target": ".kiro/metadata.json",
|
|
@@ -839,73 +862,63 @@
|
|
|
839
862
|
"type": "other"
|
|
840
863
|
},
|
|
841
864
|
{
|
|
842
|
-
"source": "skills/
|
|
843
|
-
"target": ".kiro/skills/
|
|
844
|
-
"type": "
|
|
845
|
-
},
|
|
846
|
-
{
|
|
847
|
-
"source": "skills/claude-code/references/agent-skills.md",
|
|
848
|
-
"target": ".kiro/skills/claude-code/references/agent-skills.md",
|
|
849
|
-
"type": "doc"
|
|
850
|
-
},
|
|
851
|
-
{
|
|
852
|
-
"source": "skills/claude-code/references/api-reference.md",
|
|
853
|
-
"target": ".kiro/skills/claude-code/references/api-reference.md",
|
|
854
|
-
"type": "doc"
|
|
865
|
+
"source": "skills/kiro/skill.md",
|
|
866
|
+
"target": ".kiro/skills/kiro/skill.md",
|
|
867
|
+
"type": "skill"
|
|
855
868
|
},
|
|
856
869
|
{
|
|
857
|
-
"source": "skills/
|
|
858
|
-
"target": ".kiro/skills/
|
|
870
|
+
"source": "skills/kiro/references/autonomy-modes.md",
|
|
871
|
+
"target": ".kiro/skills/kiro/references/autonomy-modes.md",
|
|
859
872
|
"type": "doc"
|
|
860
873
|
},
|
|
861
874
|
{
|
|
862
|
-
"source": "skills/
|
|
863
|
-
"target": ".kiro/skills/
|
|
875
|
+
"source": "skills/kiro/references/best-practices.md",
|
|
876
|
+
"target": ".kiro/skills/kiro/references/best-practices.md",
|
|
864
877
|
"type": "doc"
|
|
865
878
|
},
|
|
866
879
|
{
|
|
867
|
-
"source": "skills/
|
|
868
|
-
"target": ".kiro/skills/
|
|
880
|
+
"source": "skills/kiro/references/commands.md",
|
|
881
|
+
"target": ".kiro/skills/kiro/references/commands.md",
|
|
869
882
|
"type": "doc"
|
|
870
883
|
},
|
|
871
884
|
{
|
|
872
|
-
"source": "skills/
|
|
873
|
-
"target": ".kiro/skills/
|
|
885
|
+
"source": "skills/kiro/references/configuration.md",
|
|
886
|
+
"target": ".kiro/skills/kiro/references/configuration.md",
|
|
874
887
|
"type": "doc"
|
|
875
888
|
},
|
|
876
889
|
{
|
|
877
|
-
"source": "skills/
|
|
878
|
-
"target": ".kiro/skills/
|
|
890
|
+
"source": "skills/kiro/references/getting-started.md",
|
|
891
|
+
"target": ".kiro/skills/kiro/references/getting-started.md",
|
|
879
892
|
"type": "doc"
|
|
880
893
|
},
|
|
881
894
|
{
|
|
882
|
-
"source": "skills/
|
|
883
|
-
"target": ".kiro/skills/
|
|
895
|
+
"source": "skills/kiro/references/hooks.md",
|
|
896
|
+
"target": ".kiro/skills/kiro/references/hooks.md",
|
|
884
897
|
"type": "doc"
|
|
885
898
|
},
|
|
886
899
|
{
|
|
887
|
-
"source": "skills/
|
|
888
|
-
"target": ".kiro/skills/
|
|
900
|
+
"source": "skills/kiro/references/mcp-integration.md",
|
|
901
|
+
"target": ".kiro/skills/kiro/references/mcp-integration.md",
|
|
889
902
|
"type": "doc"
|
|
890
903
|
},
|
|
891
904
|
{
|
|
892
|
-
"source": "skills/
|
|
893
|
-
"target": ".kiro/skills/
|
|
905
|
+
"source": "skills/kiro/references/skills.md",
|
|
906
|
+
"target": ".kiro/skills/kiro/references/skills.md",
|
|
894
907
|
"type": "doc"
|
|
895
908
|
},
|
|
896
909
|
{
|
|
897
|
-
"source": "skills/
|
|
898
|
-
"target": ".kiro/skills/
|
|
910
|
+
"source": "skills/kiro/references/specs-workflow.md",
|
|
911
|
+
"target": ".kiro/skills/kiro/references/specs-workflow.md",
|
|
899
912
|
"type": "doc"
|
|
900
913
|
},
|
|
901
914
|
{
|
|
902
|
-
"source": "skills/
|
|
903
|
-
"target": ".kiro/skills/
|
|
915
|
+
"source": "skills/kiro/references/steering-files.md",
|
|
916
|
+
"target": ".kiro/skills/kiro/references/steering-files.md",
|
|
904
917
|
"type": "doc"
|
|
905
918
|
},
|
|
906
919
|
{
|
|
907
|
-
"source": "skills/
|
|
908
|
-
"target": ".kiro/skills/
|
|
920
|
+
"source": "skills/kiro/references/troubleshooting.md",
|
|
921
|
+
"target": ".kiro/skills/kiro/references/troubleshooting.md",
|
|
909
922
|
"type": "doc"
|
|
910
923
|
},
|
|
911
924
|
{
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"powers": [
|
|
3
|
+
{
|
|
4
|
+
"name": "Firebase",
|
|
5
|
+
"url": "https://kiro.dev/powers/firebase",
|
|
6
|
+
"description": "Full-stack mobile development with auth, database, and push notifications",
|
|
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": "Context7",
|
|
17
|
+
"url": "https://kiro.dev/powers/context7",
|
|
18
|
+
"description": "Up-to-date documentation lookup for libraries and frameworks",
|
|
19
|
+
"tier": "recommended"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "ElevenLabs",
|
|
23
|
+
"url": "https://kiro.dev/powers/eleven-labs",
|
|
24
|
+
"description": "Text-to-speech and voice AI integration",
|
|
25
|
+
"tier": "optional"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "Bria",
|
|
29
|
+
"url": "https://kiro.dev/powers/bria",
|
|
30
|
+
"description": "AI image generation and editing for app assets",
|
|
31
|
+
"tier": "optional"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -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
|