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.
Files changed (191) hide show
  1. package/README.md +35 -0
  2. package/dist/index.js +771 -116
  3. package/dist/index.js.map +1 -1
  4. package/dist/presets/backend/hooks/api-schema-validate.js +75 -0
  5. package/dist/presets/backend/hooks/endpoint-test-coverage.js +77 -0
  6. package/dist/presets/backend/hooks/migration-safety-check.js +68 -0
  7. package/dist/presets/backend/manifest.json +48 -35
  8. package/dist/presets/backend/powers.json +40 -0
  9. package/dist/presets/backend/skills/kiro/references/autonomy-modes.md +26 -0
  10. package/dist/presets/backend/skills/kiro/references/best-practices.md +48 -0
  11. package/dist/presets/backend/skills/kiro/references/commands.md +61 -0
  12. package/dist/presets/backend/skills/kiro/references/configuration.md +41 -0
  13. package/dist/presets/backend/skills/kiro/references/getting-started.md +45 -0
  14. package/dist/presets/backend/skills/kiro/references/hooks.md +99 -0
  15. package/dist/presets/backend/skills/kiro/references/mcp-integration.md +53 -0
  16. package/dist/presets/backend/skills/kiro/references/skills.md +55 -0
  17. package/dist/presets/backend/skills/kiro/references/specs-workflow.md +62 -0
  18. package/dist/presets/backend/skills/kiro/references/steering-files.md +84 -0
  19. package/dist/presets/backend/skills/kiro/references/troubleshooting.md +42 -0
  20. package/dist/presets/backend/skills/kiro/skill.md +194 -0
  21. package/dist/presets/data-ai/hooks/data-drift-check.js +77 -0
  22. package/dist/presets/data-ai/hooks/experiment-log.js +87 -0
  23. package/dist/presets/data-ai/hooks/model-card-update.js +99 -0
  24. package/dist/presets/data-ai/manifest.json +48 -35
  25. package/dist/presets/data-ai/powers.json +34 -0
  26. package/dist/presets/data-ai/skills/kiro/references/autonomy-modes.md +26 -0
  27. package/dist/presets/data-ai/skills/kiro/references/best-practices.md +48 -0
  28. package/dist/presets/data-ai/skills/kiro/references/commands.md +61 -0
  29. package/dist/presets/data-ai/skills/kiro/references/configuration.md +41 -0
  30. package/dist/presets/data-ai/skills/kiro/references/getting-started.md +45 -0
  31. package/dist/presets/data-ai/skills/kiro/references/hooks.md +99 -0
  32. package/dist/presets/data-ai/skills/kiro/references/mcp-integration.md +53 -0
  33. package/dist/presets/data-ai/skills/kiro/references/skills.md +55 -0
  34. package/dist/presets/data-ai/skills/kiro/references/specs-workflow.md +62 -0
  35. package/dist/presets/data-ai/skills/kiro/references/steering-files.md +84 -0
  36. package/dist/presets/data-ai/skills/kiro/references/troubleshooting.md +42 -0
  37. package/dist/presets/data-ai/skills/kiro/skill.md +194 -0
  38. package/dist/presets/devops/hooks/container-scan.js +73 -0
  39. package/dist/presets/devops/hooks/cost-estimation.js +69 -0
  40. package/dist/presets/devops/hooks/terraform-plan-review.js +67 -0
  41. package/dist/presets/devops/manifest.json +48 -35
  42. package/dist/presets/devops/powers.json +40 -0
  43. package/dist/presets/devops/skills/kiro/references/autonomy-modes.md +26 -0
  44. package/dist/presets/devops/skills/kiro/references/best-practices.md +48 -0
  45. package/dist/presets/devops/skills/kiro/references/commands.md +61 -0
  46. package/dist/presets/devops/skills/kiro/references/configuration.md +41 -0
  47. package/dist/presets/devops/skills/kiro/references/getting-started.md +45 -0
  48. package/dist/presets/devops/skills/kiro/references/hooks.md +99 -0
  49. package/dist/presets/devops/skills/kiro/references/mcp-integration.md +53 -0
  50. package/dist/presets/devops/skills/kiro/references/skills.md +55 -0
  51. package/dist/presets/devops/skills/kiro/references/specs-workflow.md +62 -0
  52. package/dist/presets/devops/skills/kiro/references/steering-files.md +84 -0
  53. package/dist/presets/devops/skills/kiro/references/troubleshooting.md +42 -0
  54. package/dist/presets/devops/skills/kiro/skill.md +194 -0
  55. package/dist/presets/frontend/commands/test.md +1 -1
  56. package/dist/presets/frontend/hooks/accessibility-check.js +76 -0
  57. package/dist/presets/frontend/hooks/bundle-size-guard.js +71 -0
  58. package/dist/presets/frontend/hooks/component-test-reminder.js +71 -0
  59. package/dist/presets/frontend/manifest.json +48 -35
  60. package/dist/presets/frontend/powers.json +34 -0
  61. package/dist/presets/frontend/skills/kiro/references/autonomy-modes.md +26 -0
  62. package/dist/presets/frontend/skills/kiro/references/best-practices.md +48 -0
  63. package/dist/presets/frontend/skills/kiro/references/commands.md +61 -0
  64. package/dist/presets/frontend/skills/kiro/references/configuration.md +41 -0
  65. package/dist/presets/frontend/skills/kiro/references/getting-started.md +45 -0
  66. package/dist/presets/frontend/skills/kiro/references/hooks.md +99 -0
  67. package/dist/presets/frontend/skills/kiro/references/mcp-integration.md +53 -0
  68. package/dist/presets/frontend/skills/kiro/references/skills.md +55 -0
  69. package/dist/presets/frontend/skills/kiro/references/specs-workflow.md +62 -0
  70. package/dist/presets/frontend/skills/kiro/references/steering-files.md +84 -0
  71. package/dist/presets/frontend/skills/kiro/references/troubleshooting.md +42 -0
  72. package/dist/presets/frontend/skills/kiro/skill.md +194 -0
  73. package/dist/presets/fullstack/hooks/api-client-gen.js +69 -0
  74. package/dist/presets/fullstack/hooks/deployment-readiness.js +73 -0
  75. package/dist/presets/fullstack/hooks/type-sync-check.js +69 -0
  76. package/dist/presets/fullstack/manifest.json +48 -35
  77. package/dist/presets/fullstack/powers.json +46 -0
  78. package/dist/presets/fullstack/skills/kiro/references/autonomy-modes.md +26 -0
  79. package/dist/presets/fullstack/skills/kiro/references/best-practices.md +48 -0
  80. package/dist/presets/fullstack/skills/kiro/references/commands.md +61 -0
  81. package/dist/presets/fullstack/skills/kiro/references/configuration.md +41 -0
  82. package/dist/presets/fullstack/skills/kiro/references/getting-started.md +45 -0
  83. package/dist/presets/fullstack/skills/kiro/references/hooks.md +99 -0
  84. package/dist/presets/fullstack/skills/kiro/references/mcp-integration.md +53 -0
  85. package/dist/presets/fullstack/skills/kiro/references/skills.md +55 -0
  86. package/dist/presets/fullstack/skills/kiro/references/specs-workflow.md +62 -0
  87. package/dist/presets/fullstack/skills/kiro/references/steering-files.md +84 -0
  88. package/dist/presets/fullstack/skills/kiro/references/troubleshooting.md +42 -0
  89. package/dist/presets/fullstack/skills/kiro/skill.md +194 -0
  90. package/dist/presets/mobile/hooks/asset-optimization.js +58 -0
  91. package/dist/presets/mobile/hooks/platform-parity-check.js +73 -0
  92. package/dist/presets/mobile/hooks/release-checklist.js +83 -0
  93. package/dist/presets/mobile/manifest.json +48 -35
  94. package/dist/presets/mobile/powers.json +34 -0
  95. package/dist/presets/mobile/skills/kiro/references/autonomy-modes.md +26 -0
  96. package/dist/presets/mobile/skills/kiro/references/best-practices.md +48 -0
  97. package/dist/presets/mobile/skills/kiro/references/commands.md +61 -0
  98. package/dist/presets/mobile/skills/kiro/references/configuration.md +41 -0
  99. package/dist/presets/mobile/skills/kiro/references/getting-started.md +45 -0
  100. package/dist/presets/mobile/skills/kiro/references/hooks.md +99 -0
  101. package/dist/presets/mobile/skills/kiro/references/mcp-integration.md +53 -0
  102. package/dist/presets/mobile/skills/kiro/references/skills.md +55 -0
  103. package/dist/presets/mobile/skills/kiro/references/specs-workflow.md +62 -0
  104. package/dist/presets/mobile/skills/kiro/references/steering-files.md +84 -0
  105. package/dist/presets/mobile/skills/kiro/references/troubleshooting.md +42 -0
  106. package/dist/presets/mobile/skills/kiro/skill.md +194 -0
  107. package/package.json +1 -1
  108. package/dist/presets/backend/skills/claude-code/references/advanced-features.md +0 -399
  109. package/dist/presets/backend/skills/claude-code/references/agent-skills.md +0 -399
  110. package/dist/presets/backend/skills/claude-code/references/api-reference.md +0 -498
  111. package/dist/presets/backend/skills/claude-code/references/best-practices.md +0 -447
  112. package/dist/presets/backend/skills/claude-code/references/cicd-integration.md +0 -428
  113. package/dist/presets/backend/skills/claude-code/references/configuration.md +0 -480
  114. package/dist/presets/backend/skills/claude-code/references/enterprise-features.md +0 -472
  115. package/dist/presets/backend/skills/claude-code/references/getting-started.md +0 -252
  116. package/dist/presets/backend/skills/claude-code/references/hooks-and-plugins.md +0 -441
  117. package/dist/presets/backend/skills/claude-code/references/ide-integration.md +0 -316
  118. package/dist/presets/backend/skills/claude-code/references/mcp-integration.md +0 -386
  119. package/dist/presets/backend/skills/claude-code/references/slash-commands.md +0 -489
  120. package/dist/presets/backend/skills/claude-code/references/troubleshooting.md +0 -456
  121. package/dist/presets/backend/skills/claude-code/skill.md +0 -194
  122. package/dist/presets/data-ai/skills/claude-code/references/advanced-features.md +0 -399
  123. package/dist/presets/data-ai/skills/claude-code/references/agent-skills.md +0 -399
  124. package/dist/presets/data-ai/skills/claude-code/references/api-reference.md +0 -498
  125. package/dist/presets/data-ai/skills/claude-code/references/best-practices.md +0 -447
  126. package/dist/presets/data-ai/skills/claude-code/references/cicd-integration.md +0 -428
  127. package/dist/presets/data-ai/skills/claude-code/references/configuration.md +0 -480
  128. package/dist/presets/data-ai/skills/claude-code/references/enterprise-features.md +0 -472
  129. package/dist/presets/data-ai/skills/claude-code/references/getting-started.md +0 -252
  130. package/dist/presets/data-ai/skills/claude-code/references/hooks-and-plugins.md +0 -441
  131. package/dist/presets/data-ai/skills/claude-code/references/ide-integration.md +0 -316
  132. package/dist/presets/data-ai/skills/claude-code/references/mcp-integration.md +0 -386
  133. package/dist/presets/data-ai/skills/claude-code/references/slash-commands.md +0 -489
  134. package/dist/presets/data-ai/skills/claude-code/references/troubleshooting.md +0 -456
  135. package/dist/presets/data-ai/skills/claude-code/skill.md +0 -194
  136. package/dist/presets/devops/skills/claude-code/references/advanced-features.md +0 -399
  137. package/dist/presets/devops/skills/claude-code/references/agent-skills.md +0 -399
  138. package/dist/presets/devops/skills/claude-code/references/api-reference.md +0 -498
  139. package/dist/presets/devops/skills/claude-code/references/best-practices.md +0 -447
  140. package/dist/presets/devops/skills/claude-code/references/cicd-integration.md +0 -428
  141. package/dist/presets/devops/skills/claude-code/references/configuration.md +0 -480
  142. package/dist/presets/devops/skills/claude-code/references/enterprise-features.md +0 -472
  143. package/dist/presets/devops/skills/claude-code/references/getting-started.md +0 -252
  144. package/dist/presets/devops/skills/claude-code/references/hooks-and-plugins.md +0 -441
  145. package/dist/presets/devops/skills/claude-code/references/ide-integration.md +0 -316
  146. package/dist/presets/devops/skills/claude-code/references/mcp-integration.md +0 -386
  147. package/dist/presets/devops/skills/claude-code/references/slash-commands.md +0 -489
  148. package/dist/presets/devops/skills/claude-code/references/troubleshooting.md +0 -456
  149. package/dist/presets/devops/skills/claude-code/skill.md +0 -194
  150. package/dist/presets/frontend/skills/claude-code/references/advanced-features.md +0 -399
  151. package/dist/presets/frontend/skills/claude-code/references/agent-skills.md +0 -399
  152. package/dist/presets/frontend/skills/claude-code/references/api-reference.md +0 -498
  153. package/dist/presets/frontend/skills/claude-code/references/best-practices.md +0 -447
  154. package/dist/presets/frontend/skills/claude-code/references/cicd-integration.md +0 -428
  155. package/dist/presets/frontend/skills/claude-code/references/configuration.md +0 -480
  156. package/dist/presets/frontend/skills/claude-code/references/enterprise-features.md +0 -472
  157. package/dist/presets/frontend/skills/claude-code/references/getting-started.md +0 -252
  158. package/dist/presets/frontend/skills/claude-code/references/hooks-and-plugins.md +0 -441
  159. package/dist/presets/frontend/skills/claude-code/references/ide-integration.md +0 -316
  160. package/dist/presets/frontend/skills/claude-code/references/mcp-integration.md +0 -386
  161. package/dist/presets/frontend/skills/claude-code/references/slash-commands.md +0 -489
  162. package/dist/presets/frontend/skills/claude-code/references/troubleshooting.md +0 -456
  163. package/dist/presets/frontend/skills/claude-code/skill.md +0 -194
  164. package/dist/presets/fullstack/skills/claude-code/references/advanced-features.md +0 -399
  165. package/dist/presets/fullstack/skills/claude-code/references/agent-skills.md +0 -399
  166. package/dist/presets/fullstack/skills/claude-code/references/api-reference.md +0 -498
  167. package/dist/presets/fullstack/skills/claude-code/references/best-practices.md +0 -447
  168. package/dist/presets/fullstack/skills/claude-code/references/cicd-integration.md +0 -428
  169. package/dist/presets/fullstack/skills/claude-code/references/configuration.md +0 -480
  170. package/dist/presets/fullstack/skills/claude-code/references/enterprise-features.md +0 -472
  171. package/dist/presets/fullstack/skills/claude-code/references/getting-started.md +0 -252
  172. package/dist/presets/fullstack/skills/claude-code/references/hooks-and-plugins.md +0 -441
  173. package/dist/presets/fullstack/skills/claude-code/references/ide-integration.md +0 -316
  174. package/dist/presets/fullstack/skills/claude-code/references/mcp-integration.md +0 -386
  175. package/dist/presets/fullstack/skills/claude-code/references/slash-commands.md +0 -489
  176. package/dist/presets/fullstack/skills/claude-code/references/troubleshooting.md +0 -456
  177. package/dist/presets/fullstack/skills/claude-code/skill.md +0 -194
  178. package/dist/presets/mobile/skills/claude-code/references/advanced-features.md +0 -399
  179. package/dist/presets/mobile/skills/claude-code/references/agent-skills.md +0 -399
  180. package/dist/presets/mobile/skills/claude-code/references/api-reference.md +0 -498
  181. package/dist/presets/mobile/skills/claude-code/references/best-practices.md +0 -447
  182. package/dist/presets/mobile/skills/claude-code/references/cicd-integration.md +0 -428
  183. package/dist/presets/mobile/skills/claude-code/references/configuration.md +0 -480
  184. package/dist/presets/mobile/skills/claude-code/references/enterprise-features.md +0 -472
  185. package/dist/presets/mobile/skills/claude-code/references/getting-started.md +0 -252
  186. package/dist/presets/mobile/skills/claude-code/references/hooks-and-plugins.md +0 -441
  187. package/dist/presets/mobile/skills/claude-code/references/ide-integration.md +0 -316
  188. package/dist/presets/mobile/skills/claude-code/references/mcp-integration.md +0 -386
  189. package/dist/presets/mobile/skills/claude-code/references/slash-commands.md +0 -489
  190. package/dist/presets/mobile/skills/claude-code/references/troubleshooting.md +0 -456
  191. 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/claude-code/references/advanced-features.md",
843
- "target": ".kiro/skills/claude-code/references/advanced-features.md",
844
- "type": "doc"
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/claude-code/references/best-practices.md",
858
- "target": ".kiro/skills/claude-code/references/best-practices.md",
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/claude-code/references/cicd-integration.md",
863
- "target": ".kiro/skills/claude-code/references/cicd-integration.md",
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/claude-code/references/configuration.md",
868
- "target": ".kiro/skills/claude-code/references/configuration.md",
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/claude-code/references/enterprise-features.md",
873
- "target": ".kiro/skills/claude-code/references/enterprise-features.md",
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/claude-code/references/getting-started.md",
878
- "target": ".kiro/skills/claude-code/references/getting-started.md",
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/claude-code/references/hooks-and-plugins.md",
883
- "target": ".kiro/skills/claude-code/references/hooks-and-plugins.md",
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/claude-code/references/ide-integration.md",
888
- "target": ".kiro/skills/claude-code/references/ide-integration.md",
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/claude-code/references/mcp-integration.md",
893
- "target": ".kiro/skills/claude-code/references/mcp-integration.md",
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/claude-code/references/slash-commands.md",
898
- "target": ".kiro/skills/claude-code/references/slash-commands.md",
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/claude-code/references/troubleshooting.md",
903
- "target": ".kiro/skills/claude-code/references/troubleshooting.md",
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/claude-code/skill.md",
908
- "target": ".kiro/skills/claude-code/skill.md",
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