ai-devkit 0.4.1 → 0.4.2

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 (36) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +10 -10
  3. package/dist/__tests__/lib/EnvironmentSelector.test.js +3 -3
  4. package/dist/__tests__/lib/EnvironmentSelector.test.js.map +1 -1
  5. package/dist/__tests__/lib/PhaseSelector.test.js +3 -3
  6. package/dist/__tests__/lib/PhaseSelector.test.js.map +1 -1
  7. package/dist/__tests__/lib/TemplateManager.test.d.ts +2 -0
  8. package/dist/__tests__/lib/TemplateManager.test.d.ts.map +1 -0
  9. package/dist/__tests__/lib/TemplateManager.test.js +351 -0
  10. package/dist/__tests__/lib/TemplateManager.test.js.map +1 -0
  11. package/dist/lib/EnvironmentSelector.js +1 -1
  12. package/dist/lib/EnvironmentSelector.js.map +1 -1
  13. package/dist/lib/PhaseSelector.js +1 -1
  14. package/dist/lib/PhaseSelector.js.map +1 -1
  15. package/dist/lib/TemplateManager.d.ts +3 -1
  16. package/dist/lib/TemplateManager.d.ts.map +1 -1
  17. package/dist/lib/TemplateManager.js +50 -23
  18. package/dist/lib/TemplateManager.js.map +1 -1
  19. package/dist/types.d.ts +2 -0
  20. package/dist/types.d.ts.map +1 -1
  21. package/dist/types.js.map +1 -1
  22. package/dist/util/env.d.ts.map +1 -1
  23. package/dist/util/env.js +3 -1
  24. package/dist/util/env.js.map +1 -1
  25. package/package.json +1 -1
  26. package/templates/commands/capture-knowledge.toml +49 -0
  27. package/templates/commands/check-implementation.toml +21 -0
  28. package/templates/commands/code-review.toml +83 -0
  29. package/templates/commands/debug.toml +48 -0
  30. package/templates/commands/execute-plan.toml +74 -0
  31. package/templates/commands/new-requirement.toml +129 -0
  32. package/templates/commands/review-design.toml +13 -0
  33. package/templates/commands/review-requirements.toml +11 -0
  34. package/templates/commands/update-planning.toml +63 -0
  35. package/templates/commands/writing-test.toml +46 -0
  36. package/web/content/pages/vision.md +2 -0
@@ -39,19 +39,19 @@ const path = __importStar(require("path"));
39
39
  const env_1 = require("../util/env");
40
40
  class TemplateManager {
41
41
  constructor(targetDir = process.cwd()) {
42
- this.templatesDir = path.join(__dirname, '../../templates');
42
+ this.templatesDir = path.join(__dirname, "../../templates");
43
43
  this.targetDir = targetDir;
44
44
  }
45
45
  async copyPhaseTemplate(phase) {
46
- const sourceFile = path.join(this.templatesDir, 'phases', `${phase}.md`);
47
- const targetDir = path.join(this.targetDir, 'docs', 'ai', phase);
48
- const targetFile = path.join(targetDir, 'README.md');
46
+ const sourceFile = path.join(this.templatesDir, "phases", `${phase}.md`);
47
+ const targetDir = path.join(this.targetDir, "docs", "ai", phase);
48
+ const targetFile = path.join(targetDir, "README.md");
49
49
  await fs.ensureDir(targetDir);
50
50
  await fs.copy(sourceFile, targetFile);
51
51
  return targetFile;
52
52
  }
53
53
  async fileExists(phase) {
54
- const targetFile = path.join(this.targetDir, 'docs', 'ai', phase, 'README.md');
54
+ const targetFile = path.join(this.targetDir, "docs", "ai", phase, "README.md");
55
55
  return fs.pathExists(targetFile);
56
56
  }
57
57
  async setupMultipleEnvironments(environmentIds) {
@@ -87,7 +87,7 @@ class TemplateManager {
87
87
  async setupSingleEnvironment(env) {
88
88
  const copiedFiles = [];
89
89
  try {
90
- const contextSource = path.join(this.templatesDir, 'env', 'base.md');
90
+ const contextSource = path.join(this.templatesDir, "env", "base.md");
91
91
  const contextTarget = path.join(this.targetDir, env.contextFileName);
92
92
  if (await fs.pathExists(contextSource)) {
93
93
  await fs.copy(contextSource, contextTarget);
@@ -96,21 +96,18 @@ class TemplateManager {
96
96
  else {
97
97
  console.warn(`Warning: Context file not found: ${contextSource}`);
98
98
  }
99
- const commandsSourceDir = path.join(this.templatesDir, 'commands');
100
- const commandsTargetDir = path.join(this.targetDir, env.commandPath);
101
- if (await fs.pathExists(commandsSourceDir)) {
102
- await fs.ensureDir(commandsTargetDir);
103
- await fs.copy(commandsSourceDir, commandsTargetDir);
104
- const commandFiles = await fs.readdir(commandsTargetDir);
105
- commandFiles.forEach(file => {
106
- copiedFiles.push(path.join(commandsTargetDir, file));
107
- });
99
+ if (!env.isCustomCommandPath) {
100
+ await this.copyCommands(env, copiedFiles);
108
101
  }
109
- else {
110
- console.warn(`Warning: Commands directory not found: ${commandsSourceDir}`);
111
- }
112
- if (env.code === 'cursor') {
113
- await this.copyCursorSpecificFiles(copiedFiles);
102
+ switch (env.code) {
103
+ case "cursor":
104
+ await this.copyCursorSpecificFiles(copiedFiles);
105
+ break;
106
+ case "gemini":
107
+ await this.copyGeminiSpecificFiles(copiedFiles);
108
+ break;
109
+ default:
110
+ break;
114
111
  }
115
112
  }
116
113
  catch (error) {
@@ -119,18 +116,48 @@ class TemplateManager {
119
116
  }
120
117
  return copiedFiles;
121
118
  }
119
+ async copyCommands(env, copiedFiles) {
120
+ const commandsSourceDir = path.join(this.templatesDir, "commands");
121
+ const commandExtension = env.customCommandExtension || ".md";
122
+ const commandsTargetDir = path.join(this.targetDir, env.commandPath);
123
+ if (await fs.pathExists(commandsSourceDir)) {
124
+ await fs.ensureDir(commandsTargetDir);
125
+ const commandFiles = await fs.readdir(commandsSourceDir);
126
+ await Promise.all(commandFiles
127
+ .filter((file) => file.endsWith(".md"))
128
+ .map(async (file) => {
129
+ const targetFile = file.replace('.md', commandExtension);
130
+ await fs.copy(path.join(commandsSourceDir, file), path.join(commandsTargetDir, targetFile));
131
+ copiedFiles.push(path.join(commandsTargetDir, targetFile));
132
+ }));
133
+ }
134
+ else {
135
+ console.warn(`Warning: Commands directory not found: ${commandsSourceDir}`);
136
+ }
137
+ }
122
138
  async copyCursorSpecificFiles(copiedFiles) {
123
- const rulesSourceDir = path.join(this.templatesDir, 'env', 'cursor', 'rules');
124
- const rulesTargetDir = path.join(this.targetDir, '.cursor', 'rules');
139
+ const rulesSourceDir = path.join(this.templatesDir, "env", "cursor", "rules");
140
+ const rulesTargetDir = path.join(this.targetDir, ".cursor", "rules");
125
141
  if (await fs.pathExists(rulesSourceDir)) {
126
142
  await fs.ensureDir(rulesTargetDir);
127
143
  await fs.copy(rulesSourceDir, rulesTargetDir);
128
144
  const ruleFiles = await fs.readdir(rulesSourceDir);
129
- ruleFiles.forEach(file => {
145
+ ruleFiles.forEach((file) => {
130
146
  copiedFiles.push(path.join(rulesTargetDir, file));
131
147
  });
132
148
  }
133
149
  }
150
+ async copyGeminiSpecificFiles(copiedFiles) {
151
+ const commandFiles = await fs.readdir(path.join(this.templatesDir, "commands"));
152
+ const commandTargetDir = path.join(this.targetDir, ".gemini", "commands");
153
+ await fs.ensureDir(commandTargetDir);
154
+ await Promise.all(commandFiles
155
+ .filter((file) => file.endsWith(".toml"))
156
+ .map(async (file) => {
157
+ await fs.copy(path.join(this.templatesDir, "commands", file), path.join(commandTargetDir, file));
158
+ copiedFiles.push(path.join(commandTargetDir, file));
159
+ }));
160
+ }
134
161
  }
135
162
  exports.TemplateManager = TemplateManager;
136
163
  //# sourceMappingURL=TemplateManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -5,6 +5,8 @@ export interface EnvironmentDefinition {
5
5
  contextFileName: string;
6
6
  commandPath: string;
7
7
  description?: string;
8
+ isCustomCommandPath?: boolean;
9
+ customCommandExtension?: string;
8
10
  }
9
11
  export type EnvironmentCode = 'cursor' | 'claude' | 'github' | 'gemini' | 'codex' | 'windsurf' | 'kilocode' | 'amp' | 'opencode' | 'roo';
10
12
  export interface DevKitConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GACb,cAAc,GACd,QAAQ,GACR,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;AAEzI,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAQnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAQrD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GACb,cAAc,GACd,QAAQ,GACR,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;AAEzI,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAQnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAQrD,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAiCa,QAAA,gBAAgB,GAAY;IACvC,cAAc;IACd,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,YAAY;IACZ,YAAY;CACb,CAAC;AAEW,QAAA,mBAAmB,GAA0B;IACxD,YAAY,EAAE,sCAAsC;IACpD,MAAM,EAAE,8BAA8B;IACtC,QAAQ,EAAE,mCAAmC;IAC7C,cAAc,EAAE,sBAAsB;IACtC,OAAO,EAAE,kBAAkB;IAC3B,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,4BAA4B;CACzC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAmCa,QAAA,gBAAgB,GAAY;IACvC,cAAc;IACd,QAAQ;IACR,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,YAAY;IACZ,YAAY;CACb,CAAC;AAEW,QAAA,mBAAmB,GAA0B;IACxD,YAAY,EAAE,sCAAsC;IACpD,MAAM,EAAE,8BAA8B;IACtC,QAAQ,EAAE,mCAAmC;IAC7C,cAAc,EAAE,sBAAsB;IACtC,OAAO,EAAE,kBAAkB;IAC3B,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,4BAA4B;CACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CA6DlF,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAA8D,CAAC;AAElH,wBAAgB,kBAAkB,IAAI,qBAAqB,EAAE,CAE5D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,qBAAqB,GAAG,SAAS,CAE1F;AAED,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,qBAAqB,EAAE,CAExF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAE9E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG1E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAiB9E"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CA+DlF,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAA8D,CAAC;AAElH,wBAAgB,kBAAkB,IAAI,qBAAqB,EAAE,CAE5D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,qBAAqB,GAAG,SAAS,CAE1F;AAED,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,qBAAqB,EAAE,CAExF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAE9E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG1E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAiB9E"}
package/dist/util/env.js CHANGED
@@ -25,13 +25,15 @@ exports.ENVIRONMENT_DEFINITIONS = {
25
25
  code: 'github',
26
26
  name: 'GitHub Copilot',
27
27
  contextFileName: 'AGENTS.md',
28
- commandPath: '.github/commands',
28
+ commandPath: '.github/prompts',
29
+ customCommandExtension: '.prompt.md',
29
30
  },
30
31
  gemini: {
31
32
  code: 'gemini',
32
33
  name: 'Google Gemini',
33
34
  contextFileName: 'AGENTS.md',
34
35
  commandPath: '.gemini/commands',
36
+ isCustomCommandPath: true,
35
37
  },
36
38
  codex: {
37
39
  code: 'codex',
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/util/env.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-devkit",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "A CLI toolkit for AI-assisted software development with phase templates and environment setup",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -0,0 +1,49 @@
1
+ description='''Capture structured knowledge about a code entry point and save it
2
+ to the knowledge docs.'''
3
+ prompt='''# Knowledge Capture Assistant
4
+
5
+ Guide me through creating a structured understanding of a code entry point and saving it to the knowledge docs.
6
+
7
+ ## Step 1: Gather Context
8
+ - Entry point (file, folder, function, API)
9
+ - Why this entry point matters (feature, bug, investigation)
10
+ - Relevant requirements/design docs (if any)
11
+ - Desired depth or focus areas (logic, dependencies, data flow)
12
+
13
+ ## Step 2: Validate Entry Point
14
+ - Determine entry point type and confirm it exists
15
+ - Surface ambiguity (multiple matches) and ask for clarification
16
+ - If not found, suggest likely alternatives or spelling fixes
17
+
18
+ ## Step 3: Collect Source Context
19
+ - Read the primary file/module and summarize purpose, exports, key patterns
20
+ - For folders: list structure, highlight key modules
21
+ - For functions/APIs: capture signature, parameters, return values, error handling
22
+ - Extract essential snippets (avoid large dumps)
23
+
24
+ ## Step 4: Analyze Dependencies
25
+ - Build a dependency view up to depth 3
26
+ - Track visited nodes to avoid loops
27
+ - Categorize dependencies (imports, function calls, services, external packages)
28
+ - Note important external systems or generated code that should be excluded
29
+
30
+ ## Step 5: Synthesize Explanation
31
+ - Draft an overview (purpose, language, high-level behavior)
32
+ - Detail core logic, key components, execution flow, patterns
33
+ - Highlight error handling, performance, security considerations
34
+ - Identify potential improvements or risks discovered during analysis
35
+
36
+ ## Step 6: Create Documentation
37
+ - Normalize entry point name to kebab-case (`calculateTotalPrice` → `calculate-total-price`)
38
+ - Create `docs/ai/implementation/knowledge-{name}.md` using the headings implied in Step 5 (Overview, Implementation Details, Dependencies, Visual Diagrams, Additional Insights, Metadata, Next Steps)
39
+ - Populate sections with findings, diagrams, and metadata (analysis date, depth, files touched)
40
+ - Include mermaid diagrams when they clarify flows or relationships
41
+
42
+ ## Step 7: Review & Next Actions
43
+ - Summarize key insights and open questions for follow-up
44
+ - Suggest related areas for deeper dives or refactors
45
+ - Confirm the knowledge file path and remind to commit it
46
+ - Encourage running `/capture-knowledge` again for related entry points if needed
47
+
48
+ Let me know the entry point and goals when you’re ready to begin the knowledge capture.
49
+ '''
@@ -0,0 +1,21 @@
1
+ Compare the current implementation with the design in docs/ai/design/ and requirements in docs/ai/requirements/. Please follow this structured review:
2
+
3
+ 1. Ask me for:
4
+ - Feature/branch description
5
+ - List of modified files
6
+ - Relevant design doc(s) (feature-specific and/or project-level)
7
+ - Any known constraints or assumptions
8
+
9
+ 2. For each design doc:
10
+ - Summarize key architectural decisions and constraints
11
+ - Highlight components, interfaces, and data flows that must be respected
12
+
13
+ 3. File-by-file comparison:
14
+ - Confirm implementation matches design intent
15
+ - Note deviations or missing pieces
16
+ - Flag logic gaps, edge cases, or security issues
17
+ - Suggest simplifications or refactors
18
+ - Identify missing tests or documentation updates
19
+
20
+ 4. Summarize findings with recommended next steps.
21
+
@@ -0,0 +1,83 @@
1
+ description='''Perform a local code review before pushing changes, ensuring
2
+ alignment with design docs and best practices.'''
3
+ prompt='''# Local Code Review Assistant
4
+
5
+ You are helping me perform a local code review **before** I push changes. Please follow this structured workflow.
6
+
7
+ ## Step 1: Gather Context
8
+ Ask me for:
9
+ - Brief feature/branch description
10
+ - List of modified files (with optional summaries)
11
+ - Relevant design doc(s) (e.g., `docs/ai/design/feature-{name}.md` or project-level design)
12
+ - Any known constraints or risky areas
13
+ - Any open bugs or TODOs linked to this work
14
+ - Which tests have already been run
15
+
16
+ If possible, request the latest diff:
17
+ ```bash
18
+ git status -sb
19
+ git diff --stat
20
+ ```
21
+
22
+ ## Step 2: Understand Design Alignment
23
+ For each provided design doc:
24
+ - Summarize the architectural intent
25
+ - Note critical requirements, patterns, or constraints the design mandates
26
+
27
+ ## Step 3: File-by-File Review
28
+ For every modified file:
29
+ 1. Highlight deviations from the referenced design or requirements
30
+ 2. Spot potential logic or flow issues and edge cases
31
+ 3. Identify redundant or duplicate code
32
+ 4. Suggest simplifications or refactors (prefer clarity over cleverness)
33
+ 5. Flag security concerns (input validation, secrets, auth, data handling)
34
+ 6. Check for performance pitfalls or scalability risks
35
+ 7. Ensure error handling, logging, and observability are appropriate
36
+ 8. Note any missing comments or docs
37
+ 9. Flag missing or outdated tests related to this file
38
+
39
+ ## Step 4: Cross-Cutting Concerns
40
+ - Verify naming consistency and adherence to project conventions
41
+ - Confirm documentation/comments are updated where the behavior changed
42
+ - Identify missing tests (unit, integration, E2E) needed to cover the changes
43
+ - Ensure configuration/migration updates are captured if applicable
44
+
45
+ ## Step 5: Summarize Findings
46
+ Provide results in this structure:
47
+ ```
48
+ ### Summary
49
+ - Blocking issues: [count]
50
+ - Important follow-ups: [count]
51
+ - Nice-to-have improvements: [count]
52
+
53
+ ### Detailed Notes
54
+ 1. **[File or Component]**
55
+ - Issue/Observation: ...
56
+ - Impact: (e.g., blocking / important / nice-to-have)
57
+ - Recommendation: ...
58
+ - Design reference: [...]
59
+
60
+ 2. ... (repeat per finding)
61
+
62
+ ### Recommended Next Steps
63
+ - [ ] Address blocking issues
64
+ - [ ] Update design/implementation docs if needed
65
+ - [ ] Add/adjust tests:
66
+ - Unit:
67
+ - Integration:
68
+ - E2E:
69
+ - [ ] Rerun local test suite
70
+ - [ ] Re-run code review command after fixes
71
+ ```
72
+
73
+ ## Step 6: Final Checklist
74
+ Confirm whether each item is complete (yes/no/needs follow-up):
75
+ - Implementation matches design & requirements
76
+ - No obvious logic or edge-case gaps remain
77
+ - Redundant code removed or justified
78
+ - Security considerations addressed
79
+ - Tests cover new/changed behavior
80
+ - Documentation/design notes updated
81
+
82
+ ---
83
+ Let me know when you're ready to begin the review.'''
@@ -0,0 +1,48 @@
1
+ description='''Guide me through debugging a code issue by clarifying
2
+ expectations, identifying gaps, and agreeing on a fix plan before changing
3
+ code.'''
4
+ prompt='''# Local Debugging Assistant
5
+
6
+ Help me debug an issue by clarifying expectations, identifying gaps, and agreeing on a fix plan before changing code.
7
+
8
+ ## Step 1: Gather Context
9
+ Ask me for:
10
+ - Brief issue description (what is happening?)
11
+ - Expected behavior or acceptance criteria (what should happen?)
12
+ - Current behavior and any error messages/logs
13
+ - Recent related changes or deployments
14
+ - Scope of impact (users, services, environments)
15
+
16
+ ## Step 2: Clarify Reality vs Expectation
17
+ - Restate the observed behavior vs the expected outcome
18
+ - Confirm relevant requirements, tickets, or docs that define the expectation
19
+ - Identify acceptance criteria for the fix (how we know it is resolved)
20
+
21
+ ## Step 3: Reproduce & Isolate
22
+ - Determine reproducibility (always, intermittent, environment-specific)
23
+ - Capture reproduction steps or commands
24
+ - Note any available tests that expose the failure
25
+ - List suspected components, services, or modules
26
+
27
+ ## Step 4: Analyze Potential Causes
28
+ - Brainstorm plausible root causes (data, config, code regressions, external dependencies)
29
+ - Gather supporting evidence (logs, metrics, traces, screenshots)
30
+ - Highlight gaps or unknowns that need investigation
31
+
32
+ ## Step 5: Surface Options
33
+ - Present possible resolution paths (quick fix, deeper refactor, rollback, feature flag, etc.)
34
+ - For each option, list pros/cons, risks, and verification steps
35
+ - Consider required approvals or coordination
36
+
37
+ ## Step 6: Confirm Path Forward
38
+ - Ask which option we should pursue
39
+ - Summarize chosen approach, required pre-work, and success criteria
40
+ - Plan validation steps (tests, monitoring, user sign-off)
41
+
42
+ ## Step 7: Next Actions & Tracking
43
+ - Document tasks, owners, and timelines for the selected option
44
+ - Note follow-up actions after deployment (monitoring, comms, postmortem if needed)
45
+ - Encourage updating relevant docs/tests once resolved
46
+
47
+ Let me know when you're ready to walk through the debugging flow.
48
+ '''
@@ -0,0 +1,74 @@
1
+ description='''Execute a feature plan interactively, guiding me through each
2
+ task while referencing relevant docs and updating status.'''
3
+ prompt='''# Feature Plan Execution Assistant
4
+
5
+ Help me work through a feature plan one task at a time.
6
+
7
+ ## Step 1: Gather Context
8
+ Ask me for:
9
+ - Feature name (kebab-case, e.g., `user-authentication`)
10
+ - Brief feature/branch description
11
+ - Relevant planning doc path (default `docs/ai/planning/feature-{name}.md`)
12
+ - Any supporting design/implementation docs (design, requirements, implementation)
13
+ - Current branch and latest diff summary (`git status -sb`, `git diff --stat`)
14
+
15
+ ## Step 2: Load the Plan
16
+ - Request the planning doc contents or offer commands like:
17
+ ```bash
18
+ cat docs/ai/planning/feature-<name>.md
19
+ ```
20
+ - Parse sections that represent task lists (look for headings + checkboxes `[ ]`, `[x]`).
21
+ - Build an ordered queue of tasks grouped by section (e.g., Foundation, Core Features, Testing).
22
+
23
+ ## Step 3: Present Task Queue
24
+ Show an overview:
25
+ ```
26
+ ### Task Queue: <Feature Name>
27
+ 1. [status] Section • Task title
28
+ 2. ...
29
+ ```
30
+ Status legend: `todo`, `in-progress`, `done`, `blocked` (based on checkbox/notes if present).
31
+
32
+ ## Step 4: Interactive Task Execution
33
+ For each task in order:
34
+ 1. Display the section/context, full bullet text, and any existing notes.
35
+ 2. Suggest relevant docs to reference (requirements/design/implementation).
36
+ 3. Ask: "Plan for this task?" Offer to outline sub-steps using the design doc.
37
+ 4. Prompt to mark status (`done`, `in-progress`, `blocked`, `skipped`) and capture short notes/next steps.
38
+ 5. Encourage code/document edits inside Cursor; offer commands/snippets when useful.
39
+ 6. If blocked, record blocker info and move task to the end or into a "Blocked" list.
40
+
41
+ ## Step 5: Update Planning Doc
42
+ After each status change, generate a Markdown snippet the user can paste back into the planning doc, e.g.:
43
+ ```
44
+ - [x] Task: Implement auth service (Notes: finished POST /auth/login, tests added)
45
+ ```
46
+ Remind the user to keep the source doc updated.
47
+
48
+ ## Step 6: Check for Newly Discovered Work
49
+ After each section, ask if new tasks were discovered. If yes, capture them in a "New Work" list with status `todo` and include in the summary.
50
+
51
+ ## Step 7: Session Summary
52
+ Produce a summary table:
53
+ ```
54
+ ### Execution Summary
55
+ - Completed: (list)
56
+ - In Progress: (list + owners/next steps)
57
+ - Blocked: (list + blockers)
58
+ - Skipped / Deferred: (list + rationale)
59
+ - New Tasks: (list)
60
+ ```
61
+
62
+ ## Step 8: Next Actions
63
+ Remind the user to:
64
+ - Update `docs/ai/planning/feature-{name}.md` with the new statuses
65
+ - Sync related docs (requirements/design/implementation/testing) if decisions changed
66
+ - Run `/check-implementation` to validate changes against design docs
67
+ - Run `/writing-test` to produce unit/integration tests targeting 100% coverage
68
+ - Run `/update-planning` to reconcile the planning doc with the latest status
69
+ - Run `/code-review` when ready for final review
70
+ - Run test suites relevant to completed tasks
71
+
72
+ ---
73
+ Let me know when you're ready to start executing the plan. Provide the feature
74
+ name and planning doc first.'''
@@ -0,0 +1,129 @@
1
+ description='''Add new feature/requirement documentation and guide me through
2
+ the development workflow from requirements to testing.'''
3
+ prompt='''I want to add a new feature/requirement. Please guide me through the complete development workflow:
4
+
5
+ ## Step 1: Capture Requirement
6
+ First, ask me:
7
+ - What is the feature name? (e.g., "user-authentication", "payment-integration")
8
+ - What problem does it solve?
9
+ - Who will use it?
10
+ - What are the key user stories?
11
+
12
+ ## Step 2: Create Feature Documentation Structure
13
+ Once I provide the requirement, create the following files (copy the existing template content so sections/frontmatter match exactly):
14
+ - Start from `docs/ai/requirements/README.md` → save as `docs/ai/requirements/feature-{name}.md`
15
+ - Start from `docs/ai/design/README.md` → save as `docs/ai/design/feature-{name}.md`
16
+ - Start from `docs/ai/planning/README.md` → save as `docs/ai/planning/feature-{name}.md`
17
+ - Start from `docs/ai/implementation/README.md` → save as `docs/ai/implementation/feature-{name}.md`
18
+ - Start from `docs/ai/testing/README.md` → save as `docs/ai/testing/feature-{name}.md`
19
+
20
+ Ensure the YAML frontmatter and section headings remain identical to the templates before filling in feature-specific content.
21
+
22
+ ## Step 3: Requirements Phase
23
+ Help me fill out `docs/ai/requirements/feature-{name}.md`:
24
+ - Clarify the problem statement
25
+ - Define goals and non-goals
26
+ - Write detailed user stories
27
+ - Establish success criteria
28
+ - Identify constraints and assumptions
29
+ - List open questions
30
+
31
+ ## Step 4: Design Phase
32
+ Guide me through `docs/ai/design/feature-{name}.md`:
33
+ - Propose system architecture changes needed
34
+ - Define data models/schema changes
35
+ - Design API endpoints or interfaces
36
+ - Identify components to create/modify
37
+ - Document key design decisions
38
+ - Note security and performance considerations
39
+
40
+ ## Step 5: Planning Phase
41
+ Help me break down work in `docs/ai/planning/feature-{name}.md`:
42
+ - Create task breakdown with subtasks
43
+ - Identify dependencies (on other features, APIs, etc.)
44
+ - Estimate effort for each task
45
+ - Suggest implementation order
46
+ - Identify risks and mitigation strategies
47
+
48
+ ## Step 6: Documentation Review (Chained Commands)
49
+ Once the docs above are drafted, run the following commands to tighten them up:
50
+ - `/review-requirements` to validate the requirements doc for completeness and clarity
51
+ - `/review-design` to ensure the design doc aligns with requirements and highlights key decisions
52
+
53
+ (If you are using Claude Code, reference the `review-requirements` and `review-design` commands instead.)
54
+
55
+ ## Step 7: Implementation Phase (Deferred)
56
+ This command focuses on documentation only. Actual implementation happens later via `/execute-plan`.
57
+ For each task in the plan:
58
+ 1. Review the task requirements and design
59
+ 2. Ask me to confirm I'm starting this task
60
+ 3. Guide implementation with reference to design docs
61
+ 4. Suggest code structure and patterns
62
+ 5. Help with error handling and edge cases
63
+ 6. Update `docs/ai/implementation/feature-{name}.md` with notes
64
+
65
+ ## Step 8: Testing Phase
66
+ Guide testing in `docs/ai/testing/feature-{name}.md`:
67
+ - Draft unit test cases with `/writing-test`
68
+ - Draft integration test scenarios with `/writing-test`
69
+ - Recommend manual testing steps
70
+ - Help write test code
71
+ - Verify all success criteria are testable
72
+
73
+ ## Step 9: Local Testing & Verification
74
+ Guide me through:
75
+ 1. Running all tests locally
76
+ 2. Manual testing checklist
77
+ 3. Reviewing against requirements
78
+ 4. Checking design compliance
79
+ 5. Preparing for code review (diff summary, list of files, design references)
80
+
81
+ ## Step 10: Local Code Review (Optional but recommended)
82
+ Before pushing, ask me to run `/code-review` with the modified file list and relevant docs.
83
+
84
+ ## Step 11: Implementation Execution Reminder
85
+ When ready to implement, run `/execute-plan` to work through the planning doc tasks interactively. That command will orchestrate implementation, testing, and follow-up documentation.
86
+
87
+ ## Step 12: Create Merge/Pull Request
88
+ Provide the MR/PR description:
89
+ ```markdown
90
+ ## Feature: [Feature Name]
91
+
92
+ ### Summary
93
+ [Brief description of what this feature does]
94
+
95
+ ### Requirements
96
+ - Documented in: `docs/ai/requirements/feature-{name}.md`
97
+ - Related to: [issue/ticket number if applicable]
98
+
99
+ ### Changes
100
+ - [List key changes]
101
+ - [List new files/components]
102
+ - [List modified files]
103
+
104
+ ### Design
105
+ - Architecture: [Link to design doc section]
106
+ - Key decisions: [Brief summary]
107
+
108
+ ### Testing
109
+ - Unit tests: [coverage/status]
110
+ - Integration tests: [status]
111
+ - Manual testing: Completed
112
+ - Test documentation: `docs/ai/testing/feature-{name}.md`
113
+
114
+ ### Checklist
115
+ - [ ] Code follows project standards
116
+ - [ ] All tests pass
117
+ - [ ] Documentation updated
118
+ - [ ] No breaking changes (or documented if any)
119
+ - [ ] Ready for review
120
+ ```
121
+
122
+ Then provide the appropriate command:
123
+ - **GitHub**: `gh pr create --title "feat: [feature-name]" --body-file pr-description.md`
124
+ - **GitLab**: `glab mr create --title "feat: [feature-name]" --description "$(cat mr-description.md)"`
125
+
126
+ ---
127
+
128
+ **Let's start! Tell me about the feature you want to build.**
129
+ '''
@@ -0,0 +1,13 @@
1
+ description='''Review the design documentation for a feature to ensure
2
+ completeness and accuracy.'''
3
+ prompt='''Review the design documentation in docs/ai/design/feature-{name}.md (and the project-level README if relevant). Summarize:
4
+ - Architecture overview (ensure mermaid diagram is present and accurate)
5
+ - Key components and their responsibilities
6
+ - Technology choices and rationale
7
+ - Data models and relationships
8
+ - API/interface contracts (inputs, outputs, auth)
9
+ - Major design decisions and trade-offs
10
+ - Non-functional requirements that must be preserved
11
+
12
+ Highlight any inconsistencies, missing sections, or diagrams that need updates.
13
+ '''