ai-devkit 0.4.1 → 0.5.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 (45) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +11 -10
  3. package/dist/lib/EnvironmentSelector.js +1 -1
  4. package/dist/lib/EnvironmentSelector.js.map +1 -1
  5. package/dist/lib/PhaseSelector.js +1 -1
  6. package/dist/lib/PhaseSelector.js.map +1 -1
  7. package/dist/lib/TemplateManager.d.ts +8 -1
  8. package/dist/lib/TemplateManager.d.ts.map +1 -1
  9. package/dist/lib/TemplateManager.js +71 -23
  10. package/dist/lib/TemplateManager.js.map +1 -1
  11. package/dist/types.d.ts +3 -1
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/types.js.map +1 -1
  14. package/dist/util/env.d.ts.map +1 -1
  15. package/dist/util/env.js +10 -2
  16. package/dist/util/env.js.map +1 -1
  17. package/package.json +2 -1
  18. package/templates/commands/capture-knowledge.md +4 -0
  19. package/templates/commands/check-implementation.md +4 -0
  20. package/templates/commands/code-review.md +4 -0
  21. package/templates/commands/debug.md +4 -0
  22. package/templates/commands/execute-plan.md +4 -0
  23. package/templates/commands/new-requirement.md +4 -0
  24. package/templates/commands/review-design.md +4 -0
  25. package/templates/commands/review-requirements.md +4 -0
  26. package/templates/commands/simplify-implementation.md +148 -0
  27. package/templates/commands/update-planning.md +4 -0
  28. package/templates/commands/writing-test.md +4 -0
  29. package/web/content/pages/vision.md +2 -0
  30. package/dist/__tests__/lib/Config.test.d.ts +0 -2
  31. package/dist/__tests__/lib/Config.test.d.ts.map +0 -1
  32. package/dist/__tests__/lib/Config.test.js +0 -281
  33. package/dist/__tests__/lib/Config.test.js.map +0 -1
  34. package/dist/__tests__/lib/EnvironmentSelector.test.d.ts +0 -2
  35. package/dist/__tests__/lib/EnvironmentSelector.test.d.ts.map +0 -1
  36. package/dist/__tests__/lib/EnvironmentSelector.test.js +0 -117
  37. package/dist/__tests__/lib/EnvironmentSelector.test.js.map +0 -1
  38. package/dist/__tests__/lib/PhaseSelector.test.d.ts +0 -2
  39. package/dist/__tests__/lib/PhaseSelector.test.d.ts.map +0 -1
  40. package/dist/__tests__/lib/PhaseSelector.test.js +0 -77
  41. package/dist/__tests__/lib/PhaseSelector.test.js.map +0 -1
  42. package/dist/__tests__/util/env.test.d.ts +0 -2
  43. package/dist/__tests__/util/env.test.d.ts.map +0 -1
  44. package/dist/__tests__/util/env.test.js +0 -166
  45. package/dist/__tests__/util/env.test.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.4.2] - 2025-11-05
9
+
10
+ - Fixed Gemini CLI integration https://github.com/codeaholicguy/ai-devkit/issues/3
11
+ - Added test for TemplateManager.ts
12
+ - Fixed Github Copilot integration https://github.com/codeaholicguy/ai-devkit/issues/4
13
+
8
14
  ## [0.4.0] - 2025-10-31
9
15
 
10
16
  ### Added
package/README.md CHANGED
@@ -121,16 +121,17 @@ your-project/
121
121
  Supported Tools & Agents:
122
122
  | Agent | Support | Notes |
123
123
  |-----------------------------------------------------------|---------|---------------------------------------------------|
124
- | [Claude Code](https://www.anthropic.com/claude-code) | ✅ | |
125
- | [GitHub Copilot](https://code.visualstudio.com/) | ✅ | |
126
- | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ | |
127
- | [Cursor](https://cursor.sh/) | ✅ | |
128
- | [opencode](https://opencode.ai/) | ✅ | |
129
- | [Windsurf](https://windsurf.com/) | ✅ | |
130
- | [Kilo Code](https://github.com/Kilo-Org/kilocode) | | |
131
- | [Roo Code](https://roocode.com/) | | |
132
- | [Codex CLI](https://github.com/openai/codex) | | |
133
- | [Amp](https://ampcode.com/) | | |
124
+ | [Claude Code](https://www.anthropic.com/claude-code) | ✅ | |
125
+ | [GitHub Copilot](https://code.visualstudio.com/) | ✅ | VSCode only |
126
+ | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | ✅ | |
127
+ | [Cursor](https://cursor.sh/) | ✅ | |
128
+ | [opencode](https://opencode.ai/) | ✅ | |
129
+ | [Antigravity](https://antigravity.google/) | ✅ | |
130
+ | [Windsurf](https://windsurf.com/) | 🚧 | Testing |
131
+ | [Kilo Code](https://github.com/Kilo-Org/kilocode) | 🚧 | Testing |
132
+ | [Roo Code](https://roocode.com/) | 🚧 | Testing |
133
+ | [Codex CLI](https://github.com/openai/codex) | 🚧 | Testing |
134
+ | [Amp](https://ampcode.com/) | 🚧 | Testing |
134
135
 
135
136
  Templates are designed to provide structure while remaining concise and AI-friendly.
136
137
 
@@ -53,7 +53,7 @@ class EnvironmentSelector {
53
53
  }
54
54
  console.log('\nSelected environments:');
55
55
  selected.forEach(envId => {
56
- console.log(` [OK] ${(0, env_1.getEnvironmentDisplayName)(envId)}`);
56
+ console.log(` ${(0, env_1.getEnvironmentDisplayName)(envId)}`);
57
57
  });
58
58
  console.log('');
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,qCAAoG;AAEpG,MAAa,mBAAmB;IAC9B,KAAK,CAAC,kBAAkB;QACtB,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,IAAuB;YAClC,KAAK,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,2EAA2E;gBACpF,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;oBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,yCAAyC,CAAC;oBACnD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAA4B;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6EAA6E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B;gBAC5I,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,uBAAuB,CAAC,QAA2B;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU,IAAA,+BAAyB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AA5DD,kDA4DC"}
1
+ {"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,qCAAoG;AAEpG,MAAa,mBAAmB;IAC9B,KAAK,CAAC,kBAAkB;QACtB,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,IAAuB;YAClC,KAAK,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,2EAA2E;gBACpF,OAAO;gBACP,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;oBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO,yCAAyC,CAAC;oBACnD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAA4B;QAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,+BAAyB,EAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,6EAA6E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B;gBAC5I,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,uBAAuB,CAAC,QAA2B;QACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,+BAAyB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AA5DD,kDA4DC"}
@@ -49,7 +49,7 @@ class PhaseSelector {
49
49
  }
50
50
  console.log('\nSelected phases:');
51
51
  selected.forEach(phase => {
52
- console.log(` [OK] ${types_1.PHASE_DISPLAY_NAMES[phase]}`);
52
+ console.log(` ${types_1.PHASE_DISPLAY_NAMES[phase]}`);
53
53
  });
54
54
  console.log('');
55
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PhaseSelector.js","sourceRoot":"","sources":["../../src/lib/PhaseSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oCAAwE;AAExE,MAAa,aAAa;IACxB,KAAK,CAAC,YAAY,CAAC,GAAa,EAAE,MAAe;QAC/C,IAAI,cAAc,GAAY,EAAE,CAAC;QAEjC,IAAI,GAAG,EAAE,CAAC;YACR,cAAc,GAAG,CAAC,GAAG,wBAAgB,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,wBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,2BAAmB,CAAC,KAAK,CAAC;oBAChC,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAY,CAAC;IACzD,CAAC;IACD,uBAAuB,CAAC,QAAiB;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU,2BAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AApDD,sCAoDC"}
1
+ {"version":3,"file":"PhaseSelector.js","sourceRoot":"","sources":["../../src/lib/PhaseSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oCAAwE;AAExE,MAAa,aAAa;IACxB,KAAK,CAAC,YAAY,CAAC,GAAa,EAAE,MAAe;QAC/C,IAAI,cAAc,GAAY,EAAE,CAAC;QAEjC,IAAI,GAAG,EAAE,CAAC;YACR,cAAc,GAAG,CAAC,GAAG,wBAAgB,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,wBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,2BAAmB,CAAC,KAAK,CAAC;oBAChC,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAY,CAAC;IACzD,CAAC;IACD,uBAAuB,CAAC,QAAiB;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,2BAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AApDD,sCAoDC"}
@@ -1,4 +1,4 @@
1
- import { Phase, EnvironmentCode } from '../types';
1
+ import { Phase, EnvironmentCode } from "../types";
2
2
  export declare class TemplateManager {
3
3
  private templatesDir;
4
4
  private targetDir;
@@ -8,6 +8,13 @@ export declare class TemplateManager {
8
8
  setupMultipleEnvironments(environmentIds: EnvironmentCode[]): Promise<string[]>;
9
9
  checkEnvironmentExists(envId: EnvironmentCode): Promise<boolean>;
10
10
  private setupSingleEnvironment;
11
+ private copyCommands;
11
12
  private copyCursorSpecificFiles;
13
+ private copyGeminiSpecificFiles;
14
+ /**
15
+ * Generate TOML content for Gemini commands.
16
+ * Uses triple quotes for multi-line strings.
17
+ */
18
+ private generateTomlContent;
12
19
  }
13
20
  //# sourceMappingURL=TemplateManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAGzE,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAsB;IAKvC,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYhD,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1C,yBAAyB,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsB/E,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;YAgBxD,sBAAsB;YAyCtB,uBAAuB;CActC"}
1
+ {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAGzE,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAsB;IAKvC,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAWhD,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,yBAAyB,CAC7B,cAAc,EAAE,eAAe,EAAE,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBd,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;YAgBxD,sBAAsB;YAsCtB,YAAY;YA+BZ,uBAAuB;YAoBvB,uBAAuB;IA8BrC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAS5B"}
@@ -32,26 +32,30 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.TemplateManager = void 0;
37
40
  const fs = __importStar(require("fs-extra"));
38
41
  const path = __importStar(require("path"));
42
+ const gray_matter_1 = __importDefault(require("gray-matter"));
39
43
  const env_1 = require("../util/env");
40
44
  class TemplateManager {
41
45
  constructor(targetDir = process.cwd()) {
42
- this.templatesDir = path.join(__dirname, '../../templates');
46
+ this.templatesDir = path.join(__dirname, "../../templates");
43
47
  this.targetDir = targetDir;
44
48
  }
45
49
  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');
50
+ const sourceFile = path.join(this.templatesDir, "phases", `${phase}.md`);
51
+ const targetDir = path.join(this.targetDir, "docs", "ai", phase);
52
+ const targetFile = path.join(targetDir, "README.md");
49
53
  await fs.ensureDir(targetDir);
50
54
  await fs.copy(sourceFile, targetFile);
51
55
  return targetFile;
52
56
  }
53
57
  async fileExists(phase) {
54
- const targetFile = path.join(this.targetDir, 'docs', 'ai', phase, 'README.md');
58
+ const targetFile = path.join(this.targetDir, "docs", "ai", phase, "README.md");
55
59
  return fs.pathExists(targetFile);
56
60
  }
57
61
  async setupMultipleEnvironments(environmentIds) {
@@ -87,7 +91,7 @@ class TemplateManager {
87
91
  async setupSingleEnvironment(env) {
88
92
  const copiedFiles = [];
89
93
  try {
90
- const contextSource = path.join(this.templatesDir, 'env', 'base.md');
94
+ const contextSource = path.join(this.templatesDir, "env", "base.md");
91
95
  const contextTarget = path.join(this.targetDir, env.contextFileName);
92
96
  if (await fs.pathExists(contextSource)) {
93
97
  await fs.copy(contextSource, contextTarget);
@@ -96,21 +100,18 @@ class TemplateManager {
96
100
  else {
97
101
  console.warn(`Warning: Context file not found: ${contextSource}`);
98
102
  }
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
- });
103
+ if (!env.isCustomCommandPath) {
104
+ await this.copyCommands(env, copiedFiles);
108
105
  }
109
- else {
110
- console.warn(`Warning: Commands directory not found: ${commandsSourceDir}`);
111
- }
112
- if (env.code === 'cursor') {
113
- await this.copyCursorSpecificFiles(copiedFiles);
106
+ switch (env.code) {
107
+ case "cursor":
108
+ await this.copyCursorSpecificFiles(copiedFiles);
109
+ break;
110
+ case "gemini":
111
+ await this.copyGeminiSpecificFiles(copiedFiles);
112
+ break;
113
+ default:
114
+ break;
114
115
  }
115
116
  }
116
117
  catch (error) {
@@ -119,18 +120,65 @@ class TemplateManager {
119
120
  }
120
121
  return copiedFiles;
121
122
  }
123
+ async copyCommands(env, copiedFiles) {
124
+ const commandsSourceDir = path.join(this.templatesDir, "commands");
125
+ const commandExtension = env.customCommandExtension || ".md";
126
+ const commandsTargetDir = path.join(this.targetDir, env.commandPath);
127
+ if (await fs.pathExists(commandsSourceDir)) {
128
+ await fs.ensureDir(commandsTargetDir);
129
+ const commandFiles = await fs.readdir(commandsSourceDir);
130
+ await Promise.all(commandFiles
131
+ .filter((file) => file.endsWith(".md"))
132
+ .map(async (file) => {
133
+ const targetFile = file.replace('.md', commandExtension);
134
+ await fs.copy(path.join(commandsSourceDir, file), path.join(commandsTargetDir, targetFile));
135
+ copiedFiles.push(path.join(commandsTargetDir, targetFile));
136
+ }));
137
+ }
138
+ else {
139
+ console.warn(`Warning: Commands directory not found: ${commandsSourceDir}`);
140
+ }
141
+ }
122
142
  async copyCursorSpecificFiles(copiedFiles) {
123
- const rulesSourceDir = path.join(this.templatesDir, 'env', 'cursor', 'rules');
124
- const rulesTargetDir = path.join(this.targetDir, '.cursor', 'rules');
143
+ const rulesSourceDir = path.join(this.templatesDir, "env", "cursor", "rules");
144
+ const rulesTargetDir = path.join(this.targetDir, ".cursor", "rules");
125
145
  if (await fs.pathExists(rulesSourceDir)) {
126
146
  await fs.ensureDir(rulesTargetDir);
127
147
  await fs.copy(rulesSourceDir, rulesTargetDir);
128
148
  const ruleFiles = await fs.readdir(rulesSourceDir);
129
- ruleFiles.forEach(file => {
149
+ ruleFiles.forEach((file) => {
130
150
  copiedFiles.push(path.join(rulesTargetDir, file));
131
151
  });
132
152
  }
133
153
  }
154
+ async copyGeminiSpecificFiles(copiedFiles) {
155
+ const commandFiles = await fs.readdir(path.join(this.templatesDir, "commands"));
156
+ const commandTargetDir = path.join(this.targetDir, ".gemini", "commands");
157
+ await fs.ensureDir(commandTargetDir);
158
+ await Promise.all(commandFiles
159
+ .filter((file) => file.endsWith(".md"))
160
+ .map(async (file) => {
161
+ const mdContent = await fs.readFile(path.join(this.templatesDir, "commands", file), "utf-8");
162
+ const { data, content } = (0, gray_matter_1.default)(mdContent);
163
+ const description = data.description || "";
164
+ const tomlContent = this.generateTomlContent(description, content.trim());
165
+ const tomlFile = file.replace(".md", ".toml");
166
+ await fs.writeFile(path.join(commandTargetDir, tomlFile), tomlContent);
167
+ copiedFiles.push(path.join(commandTargetDir, tomlFile));
168
+ }));
169
+ }
170
+ /**
171
+ * Generate TOML content for Gemini commands.
172
+ * Uses triple quotes for multi-line strings.
173
+ */
174
+ generateTomlContent(description, prompt) {
175
+ // Escape any triple quotes in the content
176
+ const escapedDescription = description.replace(/'''/g, "'''");
177
+ const escapedPrompt = prompt.replace(/'''/g, "'''");
178
+ return `description='''${escapedDescription}'''
179
+ prompt='''${escapedPrompt}'''
180
+ `;
181
+ }
134
182
  }
135
183
  exports.TemplateManager = TemplateManager;
136
184
  //# 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,8 +5,10 @@ export interface EnvironmentDefinition {
5
5
  contextFileName: string;
6
6
  commandPath: string;
7
7
  description?: string;
8
+ isCustomCommandPath?: boolean;
9
+ customCommandExtension?: string;
8
10
  }
9
- export type EnvironmentCode = 'cursor' | 'claude' | 'github' | 'gemini' | 'codex' | 'windsurf' | 'kilocode' | 'amp' | 'opencode' | 'roo';
11
+ export type EnvironmentCode = 'cursor' | 'claude' | 'github' | 'gemini' | 'codex' | 'windsurf' | 'kilocode' | 'amp' | 'opencode' | 'roo' | 'antigravity';
10
12
  export interface DevKitConfig {
11
13
  version: string;
12
14
  environments: EnvironmentCode[];
@@ -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,GAAG,aAAa,CAAC;AAEzJ,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,CAqElF,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
- contextFileName: 'AGENTS.md',
34
+ contextFileName: 'GEMINI.md',
34
35
  commandPath: '.gemini/commands',
36
+ isCustomCommandPath: true,
35
37
  },
36
38
  codex: {
37
39
  code: 'codex',
@@ -68,6 +70,12 @@ exports.ENVIRONMENT_DEFINITIONS = {
68
70
  name: 'Roo Code',
69
71
  contextFileName: 'AGENTS.md',
70
72
  commandPath: '.roo/commands',
73
+ },
74
+ antigravity: {
75
+ code: 'antigravity',
76
+ name: 'Antigravity',
77
+ contextFileName: 'AGENTS.md',
78
+ commandPath: '.agent/workflows',
71
79
  }
72
80
  };
73
81
  exports.ALL_ENVIRONMENT_CODES = Object.keys(exports.ENVIRONMENT_DEFINITIONS);
@@ -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.5.0",
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": {
@@ -29,6 +29,7 @@
29
29
  "chalk": "^4.1.2",
30
30
  "commander": "^11.1.0",
31
31
  "fs-extra": "^11.2.0",
32
+ "gray-matter": "^4.0.3",
32
33
  "inquirer": "^8.2.6",
33
34
  "yaml": "^2.3.4"
34
35
  },
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Capture structured knowledge about a code entry point and save it to the knowledge docs.
3
+ ---
4
+
1
5
  # Knowledge Capture Assistant
2
6
 
3
7
  Guide me through creating a structured understanding of a code entry point and saving it to the knowledge docs.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Compare implementation with design and requirements docs to ensure alignment.
3
+ ---
4
+
1
5
  Compare the current implementation with the design in docs/ai/design/ and requirements in docs/ai/requirements/. Please follow this structured review:
2
6
 
3
7
  1. Ask me for:
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Perform a local code review before pushing changes, ensuring alignment with design docs and best practices.
3
+ ---
4
+
1
5
  # Local Code Review Assistant
2
6
 
3
7
  You are helping me perform a local code review **before** I push changes. Please follow this structured workflow.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Guide me through debugging a code issue by clarifying expectations, identifying gaps, and agreeing on a fix plan before changing code.
3
+ ---
4
+
1
5
  # Local Debugging Assistant
2
6
 
3
7
  Help me debug an issue by clarifying expectations, identifying gaps, and agreeing on a fix plan before changing code.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Execute a feature plan interactively, guiding me through each task while referencing relevant docs and updating status.
3
+ ---
4
+
1
5
  # Feature Plan Execution Assistant
2
6
 
3
7
  Help me work through a feature plan one task at a time.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Add new feature/requirement documentation and guide me through the development workflow from requirements to testing.
3
+ ---
4
+
1
5
  I want to add a new feature/requirement. Please guide me through the complete development workflow:
2
6
 
3
7
  ## Step 1: Capture Requirement
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Review the design documentation for a feature to ensure completeness and accuracy.
3
+ ---
4
+
1
5
  Review the design documentation in docs/ai/design/feature-{name}.md (and the project-level README if relevant). Summarize:
2
6
  - Architecture overview (ensure mermaid diagram is present and accurate)
3
7
  - Key components and their responsibilities
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Review the requirements documentation for a feature to ensure completeness and alignment with project standards.
3
+ ---
4
+
1
5
  Please review `docs/ai/requirements/feature-{name}.md` and the project-level template `docs/ai/requirements/README.md` to ensure structure and content alignment. Summarize:
2
6
  - Core problem statement and affected users
3
7
  - Goals, non-goals, and success criteria
@@ -0,0 +1,148 @@
1
+ ---
2
+ description: Analyze and simplify existing implementations to reduce complexity, improve maintainability, and enhance scalability.
3
+ ---
4
+
5
+ # Simplify Implementation Assistant
6
+
7
+ You are an expert engineer focused on reducing complexity and improving scalability. Help me simplify an existing implementation while maintaining or improving its functionality.
8
+
9
+ ## Step 1: Gather Context
10
+ Ask me for:
11
+ - Target file(s) or component(s) to simplify
12
+ - Current pain points (hard to understand, maintain, or extend?)
13
+ - Performance or scalability concerns
14
+ - Any constraints (backward compatibility, API stability, deadlines)
15
+ - Relevant design docs or requirements
16
+
17
+ If available, request the current implementation:
18
+ ```bash
19
+ # For a specific file
20
+ cat <file_path>
21
+
22
+ # For recent changes
23
+ git diff HEAD~5 --stat
24
+ ```
25
+
26
+ ## Step 2: Analyze Current Complexity
27
+ For each target file or component:
28
+ 1. **Identify complexity sources:**
29
+ - Deep nesting or long functions
30
+ - Duplicate or redundant code
31
+ - Unclear abstractions or leaky interfaces
32
+ - Tightly coupled components
33
+ - Over-engineering or premature optimization
34
+ - Magic numbers, hardcoded values, or scattered configuration
35
+
36
+ 2. **Measure impact:**
37
+ - Lines of code that could be reduced
38
+ - Number of dependencies that could be removed
39
+ - Cognitive load for future maintainers
40
+
41
+ 3. **Assess scalability blockers:**
42
+ - Single points of failure
43
+ - Synchronous operations that should be async
44
+ - Missing caching or memoization opportunities
45
+ - Inefficient data structures or algorithms
46
+
47
+ ## Step 3: Apply Readability Principles
48
+
49
+ **Core Philosophy: Good code reads like a good book — naturally, from left to right, top to bottom.**
50
+
51
+ When simplifying, prioritize readability over brevity. The goal is not to write the shortest code, but to write code that communicates intent clearly.
52
+
53
+ ### ✅ DO: Embrace Readability
54
+ - **Linear flow:** Code should tell a story. A reader should understand the logic by reading top-to-bottom without jumping around.
55
+ - **Explicit over implicit:** Favor clear, explicit code over clever shortcuts that require mental decoding.
56
+ - **Meaningful names:** Variables, functions, and classes should describe their purpose without needing comments.
57
+ - **Consistent patterns:** Use the same patterns throughout the codebase so readers build familiarity.
58
+ - **Appropriate abstraction level:** Each function should operate at one level of abstraction.
59
+ - **White space and grouping:** Use blank lines to separate logical blocks, like paragraphs in prose.
60
+
61
+ ### ❌ AVOID: Over-Optimization for Brevity
62
+ Reducing line count is NOT the goal. These patterns often harm readability:
63
+
64
+ | Anti-Pattern | Problem | Better Alternative |
65
+ |--------------|---------|--------------------|
66
+ | **Nested ternaries** | `a ? b ? c : d : e` is cryptic | Use explicit if/else blocks |
67
+ | **Chained one-liners** | `x.map().filter().reduce().flat()` is hard to debug | Break into named intermediate steps |
68
+ | **Clever bitwise tricks** | `n & 1` instead of `n % 2 === 1` obscures intent | Use readable arithmetic unless performance-critical |
69
+ | **Overly short variable names** | `const x = getData(); const y = x.filter(z => z.a);` | Use descriptive names like `users`, `activeUsers` |
70
+ | **Implicit returns everywhere** | Arrow functions without braces hide complexity | Add braces and explicit returns for complex logic |
71
+ | **Magic one-liners** | Regex or reduce expressions that "do everything" | Split into documented steps |
72
+ | **Premature DRY** | Forcing abstraction to avoid 2-3 lines of duplication | Some duplication is clearer than wrong abstraction |
73
+
74
+ ### 📖 The "Reading Test"
75
+ For each simplification, ask:
76
+ 1. Can a new team member understand this in under 30 seconds?
77
+ 2. Does the code flow naturally without needing to jump to other files?
78
+ 3. Are there any "wait, what does this do?" moments?
79
+ 4. Would this code still be clear 6 months from now?
80
+
81
+ If the answer is "no" to any of these, the code needs more clarity, not more optimization.
82
+
83
+ ## Step 4: Propose Simplifications
84
+ For each identified issue, suggest concrete improvements:
85
+
86
+ | Category | Pattern |
87
+ |----------|---------|
88
+ | **Extract** | Long functions → smaller, focused functions |
89
+ | **Consolidate** | Duplicate code → shared utilities or base classes |
90
+ | **Flatten** | Deep nesting → early returns, guard clauses |
91
+ | **Decouple** | Tight coupling → dependency injection, interfaces |
92
+ | **Remove** | Dead code, unused features, excessive abstractions |
93
+ | **Replace** | Complex logic → built-in language/library features |
94
+ | **Defer** | Premature optimization → measure-first approach |
95
+
96
+ ## Step 5: Prioritize Changes
97
+ Rank suggestions by:
98
+ 1. **High impact, low risk** — Do first
99
+ 2. **High impact, higher risk** — Plan carefully
100
+ 3. **Low impact, low risk** — Quick wins if time permits
101
+ 4. **Low impact, high risk** — Skip or defer
102
+
103
+ For each change, specify:
104
+ - Before/after code snippets
105
+ - Risk level (breaking change? needs migration?)
106
+ - Testing requirements
107
+ - Estimated effort
108
+
109
+ ## Step 6: Create Simplification Plan
110
+ Provide a structured action plan:
111
+
112
+ ```
113
+ ### Simplification Summary
114
+ - Total suggestions: [count]
115
+ - Estimated LOC reduction: [estimate]
116
+ - Complexity score before/after: [if measurable]
117
+
118
+ ### Prioritized Actions
119
+ 1. **[Component/Function Name]**
120
+ - Issue: ...
121
+ - Solution: ...
122
+ - Risk: Low/Medium/High
123
+ - Effort: S/M/L
124
+
125
+ 2. ... (repeat)
126
+
127
+ ### Recommended Order
128
+ 1. [ ] [First change - safest, unlocks others]
129
+ 2. [ ] [Second change]
130
+ 3. [ ] ...
131
+
132
+ ### Post-Simplification Checklist
133
+ - [ ] Run existing tests to verify no regressions
134
+ - [ ] Add tests for any new helper functions
135
+ - [ ] Update documentation if interfaces changed
136
+ - [ ] Review with team before merging larger refactors
137
+ ```
138
+
139
+ ## Step 7: Scalability Recommendations
140
+ Beyond immediate simplification, suggest patterns for future scalability:
141
+ - Modular architecture improvements
142
+ - Caching strategies
143
+ - Async/parallel processing opportunities
144
+ - Configuration externalization
145
+ - Feature flags for gradual rollouts
146
+
147
+ ---
148
+ Let me know when you're ready to simplify your implementation.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Assist in updating planning documentation to reflect current implementation progress for a feature.
3
+ ---
4
+
1
5
  # Planning Update Assistant
2
6
 
3
7
  Please help me reconcile the current implementation progress with our planning documentation.
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Add tests for a new feature.
3
+ ---
4
+
1
5
  Review `docs/ai/testing/feature-{name}.md` and ensure it mirrors the base template before writing tests.
2
6
 
3
7
  ## Step 1: Gather Context