@ai-coders/context 0.3.1 → 0.4.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 (210) hide show
  1. package/README.md +25 -23
  2. package/dist/generators/agents/agentConfig.d.ts.map +1 -1
  3. package/dist/generators/agents/agentConfig.js +42 -0
  4. package/dist/generators/agents/agentConfig.js.map +1 -1
  5. package/dist/generators/agents/agentGenerator.d.ts +0 -1
  6. package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
  7. package/dist/generators/agents/agentGenerator.js +7 -47
  8. package/dist/generators/agents/agentGenerator.js.map +1 -1
  9. package/dist/generators/agents/agentTypes.d.ts +1 -1
  10. package/dist/generators/agents/agentTypes.d.ts.map +1 -1
  11. package/dist/generators/agents/agentTypes.js +4 -1
  12. package/dist/generators/agents/agentTypes.js.map +1 -1
  13. package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -1
  14. package/dist/generators/agents/templates/indexTemplate.js +2 -1
  15. package/dist/generators/agents/templates/indexTemplate.js.map +1 -1
  16. package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
  17. package/dist/generators/agents/templates/playbookTemplate.js +39 -3
  18. package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
  19. package/dist/generators/documentation/documentationGenerator.d.ts +3 -1
  20. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  21. package/dist/generators/documentation/documentationGenerator.js +88 -15
  22. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  23. package/dist/generators/documentation/guideRegistry.js +8 -8
  24. package/dist/generators/documentation/guideRegistry.js.map +1 -1
  25. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +2 -0
  26. package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -0
  27. package/dist/generators/documentation/templates/apiReferenceTemplate.js +490 -0
  28. package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -0
  29. package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
  30. package/dist/generators/documentation/templates/architectureTemplate.js +27 -27
  31. package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
  32. package/dist/generators/documentation/templates/common.js +2 -2
  33. package/dist/generators/documentation/templates/common.js.map +1 -1
  34. package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
  35. package/dist/generators/documentation/templates/dataFlowTemplate.js +5 -20
  36. package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
  37. package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
  38. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +5 -20
  39. package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
  40. package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
  41. package/dist/generators/documentation/templates/glossaryTemplate.js +9 -23
  42. package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
  43. package/dist/generators/documentation/templates/index.d.ts +4 -0
  44. package/dist/generators/documentation/templates/index.d.ts.map +1 -1
  45. package/dist/generators/documentation/templates/index.js +9 -1
  46. package/dist/generators/documentation/templates/index.js.map +1 -1
  47. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -1
  48. package/dist/generators/documentation/templates/indexTemplate.js +5 -19
  49. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -1
  50. package/dist/generators/documentation/templates/migrationTemplate.d.ts +2 -0
  51. package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -0
  52. package/dist/generators/documentation/templates/migrationTemplate.js +422 -0
  53. package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -0
  54. package/dist/generators/documentation/templates/onboardingTemplate.d.ts +2 -0
  55. package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -0
  56. package/dist/generators/documentation/templates/onboardingTemplate.js +431 -0
  57. package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -0
  58. package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
  59. package/dist/generators/documentation/templates/projectOverviewTemplate.js +22 -25
  60. package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
  61. package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
  62. package/dist/generators/documentation/templates/securityTemplate.js +5 -19
  63. package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
  64. package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
  65. package/dist/generators/documentation/templates/testingTemplate.js +5 -19
  66. package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
  67. package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
  68. package/dist/generators/documentation/templates/toolingTemplate.js +6 -20
  69. package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
  70. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +2 -0
  71. package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -0
  72. package/dist/generators/documentation/templates/troubleshootingTemplate.js +292 -0
  73. package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -0
  74. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -1
  75. package/dist/generators/plans/templates/indexTemplate.js +3 -2
  76. package/dist/generators/plans/templates/indexTemplate.js.map +1 -1
  77. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
  78. package/dist/generators/plans/templates/planTemplate.js +74 -3
  79. package/dist/generators/plans/templates/planTemplate.js.map +1 -1
  80. package/dist/generators/shared/generatorUtils.d.ts +1 -1
  81. package/dist/generators/shared/generatorUtils.d.ts.map +1 -1
  82. package/dist/generators/shared/generatorUtils.js +1 -1
  83. package/dist/generators/shared/generatorUtils.js.map +1 -1
  84. package/dist/index.d.ts +2 -2
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +46 -1000
  87. package/dist/index.js.map +1 -1
  88. package/dist/prompts/defaults.d.ts +2 -2
  89. package/dist/prompts/defaults.d.ts.map +1 -1
  90. package/dist/prompts/defaults.js +11 -11
  91. package/dist/services/baseLLMClient.d.ts +3 -3
  92. package/dist/services/baseLLMClient.d.ts.map +1 -1
  93. package/dist/services/baseLLMClient.js +44 -5
  94. package/dist/services/baseLLMClient.js.map +1 -1
  95. package/dist/services/fill/fillService.d.ts +0 -4
  96. package/dist/services/fill/fillService.d.ts.map +1 -1
  97. package/dist/services/fill/fillService.js +6 -54
  98. package/dist/services/fill/fillService.js.map +1 -1
  99. package/dist/services/init/initService.d.ts +2 -2
  100. package/dist/services/init/initService.d.ts.map +1 -1
  101. package/dist/services/init/initService.js +45 -15
  102. package/dist/services/init/initService.js.map +1 -1
  103. package/dist/services/llmClientFactory.d.ts +2 -8
  104. package/dist/services/llmClientFactory.d.ts.map +1 -1
  105. package/dist/services/llmClientFactory.js +10 -96
  106. package/dist/services/llmClientFactory.js.map +1 -1
  107. package/dist/services/openRouterClient.d.ts +0 -3
  108. package/dist/services/openRouterClient.d.ts.map +1 -1
  109. package/dist/services/openRouterClient.js +2 -49
  110. package/dist/services/openRouterClient.js.map +1 -1
  111. package/dist/services/plan/planService.d.ts +2 -4
  112. package/dist/services/plan/planService.d.ts.map +1 -1
  113. package/dist/services/plan/planService.js +3 -12
  114. package/dist/services/plan/planService.js.map +1 -1
  115. package/dist/services/shared/llmConfig.d.ts.map +1 -1
  116. package/dist/services/shared/llmConfig.js +11 -53
  117. package/dist/services/shared/llmConfig.js.map +1 -1
  118. package/dist/types.d.ts +7 -2
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/utils/fileMapper.d.ts +1 -1
  121. package/dist/utils/fileMapper.d.ts.map +1 -1
  122. package/dist/utils/fileMapper.js +40 -19
  123. package/dist/utils/fileMapper.js.map +1 -1
  124. package/dist/utils/i18n.d.ts +11 -32
  125. package/dist/utils/i18n.d.ts.map +1 -1
  126. package/dist/utils/i18n.js +22 -64
  127. package/dist/utils/i18n.js.map +1 -1
  128. package/package.json +9 -12
  129. package/prompts/update_plan_prompt.md +4 -5
  130. package/prompts/update_scaffold_prompt.md +7 -8
  131. package/dist/generators/agents/contextUtils.d.ts +0 -8
  132. package/dist/generators/agents/contextUtils.d.ts.map +0 -1
  133. package/dist/generators/agents/contextUtils.js +0 -15
  134. package/dist/generators/agents/contextUtils.js.map +0 -1
  135. package/dist/generators/agents/promptFormatter.d.ts +0 -9
  136. package/dist/generators/agents/promptFormatter.d.ts.map +0 -1
  137. package/dist/generators/agents/promptFormatter.js +0 -84
  138. package/dist/generators/agents/promptFormatter.js.map +0 -1
  139. package/dist/generators/analyzers/codebaseAnalyzer.d.ts +0 -45
  140. package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +0 -1
  141. package/dist/generators/analyzers/codebaseAnalyzer.js +0 -293
  142. package/dist/generators/analyzers/codebaseAnalyzer.js.map +0 -1
  143. package/dist/generators/analyzers/index.d.ts +0 -3
  144. package/dist/generators/analyzers/index.d.ts.map +0 -1
  145. package/dist/generators/analyzers/index.js +0 -6
  146. package/dist/generators/analyzers/index.js.map +0 -1
  147. package/dist/generators/documentation/documentationTemplates.d.ts +0 -21
  148. package/dist/generators/documentation/documentationTemplates.d.ts.map +0 -1
  149. package/dist/generators/documentation/documentationTemplates.js +0 -359
  150. package/dist/generators/documentation/documentationTemplates.js.map +0 -1
  151. package/dist/generators/documentation/documentationTypes.d.ts +0 -11
  152. package/dist/generators/documentation/documentationTypes.d.ts.map +0 -1
  153. package/dist/generators/documentation/documentationTypes.js +0 -22
  154. package/dist/generators/documentation/documentationTypes.js.map +0 -1
  155. package/dist/generators/documentation/documentationUtils.d.ts +0 -7
  156. package/dist/generators/documentation/documentationUtils.d.ts.map +0 -1
  157. package/dist/generators/documentation/documentationUtils.js +0 -28
  158. package/dist/generators/documentation/documentationUtils.js.map +0 -1
  159. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts +0 -33
  160. package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +0 -1
  161. package/dist/generators/documentation/incrementalDocumentationGenerator.js +0 -400
  162. package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +0 -1
  163. package/dist/generators/documentation/templates.d.ts +0 -31
  164. package/dist/generators/documentation/templates.d.ts.map +0 -1
  165. package/dist/generators/documentation/templates.js +0 -566
  166. package/dist/generators/documentation/templates.js.map +0 -1
  167. package/dist/generators/guidelines/agentIntegration.d.ts +0 -43
  168. package/dist/generators/guidelines/agentIntegration.d.ts.map +0 -1
  169. package/dist/generators/guidelines/agentIntegration.js +0 -157
  170. package/dist/generators/guidelines/agentIntegration.js.map +0 -1
  171. package/dist/generators/guidelines/guidelineTypes.d.ts +0 -40
  172. package/dist/generators/guidelines/guidelineTypes.d.ts.map +0 -1
  173. package/dist/generators/guidelines/guidelineTypes.js +0 -144
  174. package/dist/generators/guidelines/guidelineTypes.js.map +0 -1
  175. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +0 -30
  176. package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +0 -1
  177. package/dist/generators/guidelines/guidelinesAnalyzer.js +0 -263
  178. package/dist/generators/guidelines/guidelinesAnalyzer.js.map +0 -1
  179. package/dist/generators/guidelines/guidelinesGenerator.d.ts +0 -30
  180. package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +0 -1
  181. package/dist/generators/guidelines/guidelinesGenerator.js +0 -249
  182. package/dist/generators/guidelines/guidelinesGenerator.js.map +0 -1
  183. package/dist/generators/guidelines/guidelinesTemplates.d.ts +0 -23
  184. package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +0 -1
  185. package/dist/generators/guidelines/guidelinesTemplates.js +0 -304
  186. package/dist/generators/guidelines/guidelinesTemplates.js.map +0 -1
  187. package/dist/generators/guidelines/index.d.ts +0 -6
  188. package/dist/generators/guidelines/index.d.ts.map +0 -1
  189. package/dist/generators/guidelines/index.js +0 -16
  190. package/dist/generators/guidelines/index.js.map +0 -1
  191. package/dist/generators/moduleGrouper.d.ts +0 -14
  192. package/dist/generators/moduleGrouper.d.ts.map +0 -1
  193. package/dist/generators/moduleGrouper.js +0 -82
  194. package/dist/generators/moduleGrouper.js.map +0 -1
  195. package/dist/generators/projectAnalyzer.d.ts +0 -14
  196. package/dist/generators/projectAnalyzer.d.ts.map +0 -1
  197. package/dist/generators/projectAnalyzer.js +0 -217
  198. package/dist/generators/projectAnalyzer.js.map +0 -1
  199. package/dist/services/changeAnalyzer.d.ts +0 -44
  200. package/dist/services/changeAnalyzer.d.ts.map +0 -1
  201. package/dist/services/changeAnalyzer.js +0 -344
  202. package/dist/services/changeAnalyzer.js.map +0 -1
  203. package/dist/utils/interactiveMode.d.ts +0 -21
  204. package/dist/utils/interactiveMode.d.ts.map +0 -1
  205. package/dist/utils/interactiveMode.js +0 -737
  206. package/dist/utils/interactiveMode.js.map +0 -1
  207. package/dist/utils/tokenEstimator.d.ts +0 -28
  208. package/dist/utils/tokenEstimator.d.ts.map +0 -1
  209. package/dist/utils/tokenEstimator.js +0 -134
  210. package/dist/utils/tokenEstimator.js.map +0 -1
package/README.md CHANGED
@@ -19,14 +19,14 @@ A lightweight CLI that scaffolds living documentation and AI-agent playbooks for
19
19
  - 🤖 `agents/` folder containing playbooks for common engineering agents and a handy index
20
20
  - 🔁 Repeatable scaffolding that you can re-run as the project evolves
21
21
  - 🧭 Repository-aware templates that highlight top-level directories for quick orientation
22
- - 🧠 AI-ready front matter and `ai-task` markers so assistants know exactly what to refresh
22
+ - 🧠 AI-ready front matter and `agent-update` markers so assistants know exactly what to refresh
23
23
 
24
24
  ## 📦 Installation
25
25
 
26
26
  Use `npx` to run the CLI without installing globally:
27
27
 
28
28
  ```bash
29
- npx @ai-coders/context init /path/to/repo
29
+ npx @ai-coders/context
30
30
  ```
31
31
 
32
32
  Or add it to your dev dependencies:
@@ -38,6 +38,10 @@ npm install --save-dev @ai-coders/context
38
38
  ## 🚀 Quick Start
39
39
 
40
40
  ```bash
41
+ # Launch the interactive wizard
42
+ npx @ai-coders/context
43
+
44
+
41
45
  # Scaffold docs and agents into ./.context
42
46
  npx @ai-coders/context init ./my-repo
43
47
 
@@ -48,7 +52,7 @@ npx @ai-coders/context init ./my-repo docs
48
52
  npx @ai-coders/context init ./my-repo agents --output ./knowledge-base
49
53
 
50
54
  # Fill docs and agents with the repo context (preview the first 3 updates)
51
- npx @ai-coders/context fill ./my-repo --output ./.context --dry-run --limit 3
55
+ npx @ai-coders/context fill ./my-repo --output ./.context --limit 3
52
56
 
53
57
  # Draft a collaboration plan seeded with agent and doc touchpoints
54
58
  npx @ai-coders/context plan release-readiness --output ./.context
@@ -79,19 +83,27 @@ Customize the Markdown files to reflect your project’s specifics and commit th
79
83
 
80
84
  Need help filling in the scaffold? Use [`prompts/update_scaffold_prompt.md`](./prompts/update_scaffold_prompt.md) as the canonical instruction set for any LLM or CLI agent. It walks through:
81
85
 
82
- - Gathering repository context and locating `ai-task`/`ai-slot` markers.
86
+ - Gathering repository context and locating `agent-update`/`agent-fill` markers.
83
87
  - Updating documentation sections while satisfying the YAML front matter criteria.
84
88
  - Aligning agent playbooks with the refreshed docs and recording evidence for maintainers.
85
89
 
86
90
  Share that prompt verbatim with your assistant to keep updates consistent across teams.
87
91
 
88
- ### Available Doc Keys & Agent Types
92
+ ### Available Doc Guides & Agent Types
89
93
 
90
- Pass these values to `--docs` / `--agents` (or pick them interactively):
94
+ The scaffold includes the following guides and playbooks out of the box:
91
95
 
92
96
  - Docs: `project-overview`, `architecture`, `development-workflow`, `testing-strategy`, `glossary`, `data-flow`, `security`, `tooling`
93
97
  - Agents: `code-reviewer`, `bug-fixer`, `feature-developer`, `refactoring-specialist`, `test-writer`, `documentation-writer`, `performance-optimizer`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `architect-specialist`
94
98
 
99
+ ### AI Marker Reference
100
+
101
+ - `<!-- agent-update:start:section-id --> … <!-- agent-update:end -->` wrap the sections that AI assistants should rewrite with up-to-date project knowledge.
102
+ - `<!-- agent-fill:slot-id --> … <!-- /agent-fill -->` highlight inline placeholders that must be replaced with concrete details before removing the wrapper.
103
+ - `<!-- agent-readonly:context -->` flags guidance that should remain as-is; treat the adjacent content as instructions rather than editable prose.
104
+
105
+ When contributing, focus edits inside `agent-update` regions or `agent-fill` placeholders and leave `agent-readonly` guidance untouched unless you have explicit maintainer approval.
106
+
95
107
  ## 🛠 Commands
96
108
 
97
109
  ### `init`
@@ -106,17 +118,12 @@ Arguments:
106
118
 
107
119
  Options:
108
120
  -o, --output <dir> Output directory (default: ./.context)
109
- --docs <keys...> Doc keys to scaffold (e.g., project-overview, security)
110
- --agents <keys...> Agent types to scaffold (e.g., code-reviewer, feature-developer)
111
121
  --exclude <patterns...> Glob patterns to skip during the scan
112
122
  --include <patterns...> Glob patterns to explicitly include
113
123
  -v, --verbose Print detailed progress information
114
124
  -h, --help Display help for command
115
125
  ```
116
126
 
117
- ### `scaffold`
118
- Alias for `init`. Use whichever verb fits your workflow.
119
-
120
127
  ### `fill`
121
128
  Use an LLM to refresh scaffolded docs and agent playbooks automatically.
122
129
 
@@ -126,18 +133,15 @@ Usage: ai-context fill <repo-path>
126
133
  Options:
127
134
  -o, --output <dir> Scaffold directory containing docs/ and agents/ (default: ./.context)
128
135
  -k, --api-key <key> API key for the selected LLM provider
129
- -m, --model <model> LLM model to use (default: google/gemini-2.5-flash-preview-05-20)
130
- -p, --provider <name> Provider (openrouter, openai, anthropic, gemini, grok)
136
+ -m, --model <model> LLM model to use (default: x-ai/grok-4-fast)
137
+ -p, --provider <name> Provider (openrouter only)
138
+ --base-url <url> Custom base URL for OpenRouter
131
139
  --prompt <file> Instruction prompt to follow (optional; uses bundled instructions when omitted)
132
- --docs <keys...> Doc keys to update (default: all)
133
- --agents <keys...> Agent types to update (default: all)
134
- --dry-run Preview changes without writing files
135
- --all Process every Markdown file even if no TODO markers remain
136
140
  --limit <number> Maximum number of files to update in one run
137
141
  -h, --help Display help for command
138
142
  ```
139
143
 
140
- Under the hood, the command loads the prompt above, scans for `ai-task` or `ai-slot` markers, and asks the LLM to produce the fully updated Markdown. Combine it with `--dry-run` to review responses before committing.
144
+ Under the hood, the command loads the prompt above, iterates over every Markdown file in `.context/docs` and `.context/agents`, and asks the LLM to produce the fully updated content.
141
145
 
142
146
  ### `plan`
143
147
  Create a collaboration plan that links documentation guides and agent playbooks, or fill an existing plan with LLM assistance.
@@ -149,15 +153,13 @@ Options:
149
153
  -o, --output <dir> Scaffold directory containing docs/ and agents/ (default: ./.context)
150
154
  --title <title> Custom title for the plan document
151
155
  --summary <text> Seed the plan with a short summary or goal statement
152
- --agents <types...> Agent playbooks to highlight (default: all)
153
- --docs <keys...> Documentation guides to reference (default: all)
154
156
  -f, --force Overwrite the plan if it already exists (scaffold mode)
155
157
  --fill Use an LLM to fill or update the plan instead of scaffolding
156
158
  -r, --repo <path> Repository root to summarize for additional context (fill mode)
157
159
  -k, --api-key <key> API key for the selected LLM provider (fill mode)
158
- -m, --model <model> LLM model to use (default: x-ai/grok-4-fast:free)
159
- -p, --provider <name> Provider (openrouter, openai, anthropic, gemini, grok)
160
- --base-url <url> Custom base URL for provider APIs
160
+ -m, --model <model> LLM model to use (default: x-ai/grok-4-fast)
161
+ -p, --provider <name> Provider (openrouter only)
162
+ --base-url <url> Custom base URL for OpenRouter
161
163
  --prompt <file> Instruction prompt to follow (optional; uses bundled instructions when omitted)
162
164
  --dry-run Preview changes without writing files
163
165
  --include <patterns...> Glob patterns to include during repository analysis
@@ -1 +1 @@
1
- {"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAsE9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CA8D5D,CAAC"}
1
+ {"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CA2F9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAmF5D,CAAC"}
@@ -70,6 +70,27 @@ exports.AGENT_RESPONSIBILITIES = {
70
70
  'Evaluate and recommend technology choices',
71
71
  'Plan system scalability and maintainability',
72
72
  'Create architectural documentation and diagrams'
73
+ ],
74
+ 'devops-specialist': [
75
+ 'Design and maintain CI/CD pipelines',
76
+ 'Implement infrastructure as code',
77
+ 'Configure monitoring and alerting systems',
78
+ 'Manage container orchestration and deployments',
79
+ 'Optimize cloud resources and cost efficiency'
80
+ ],
81
+ 'database-specialist': [
82
+ 'Design and optimize database schemas',
83
+ 'Create and manage database migrations',
84
+ 'Optimize query performance and indexing',
85
+ 'Ensure data integrity and consistency',
86
+ 'Implement backup and recovery strategies'
87
+ ],
88
+ 'mobile-specialist': [
89
+ 'Develop native and cross-platform mobile applications',
90
+ 'Optimize mobile app performance and battery usage',
91
+ 'Implement mobile-specific UI/UX patterns',
92
+ 'Handle app store deployment and updates',
93
+ 'Integrate push notifications and offline capabilities'
73
94
  ]
74
95
  };
75
96
  exports.AGENT_BEST_PRACTICES = {
@@ -133,6 +154,27 @@ exports.AGENT_BEST_PRACTICES = {
133
154
  'Document architectural decisions and rationale',
134
155
  'Promote code reusability and modularity',
135
156
  'Stay updated on industry trends and technologies'
157
+ ],
158
+ 'devops-specialist': [
159
+ 'Automate everything that can be automated',
160
+ 'Implement infrastructure as code for reproducibility',
161
+ 'Monitor system health proactively',
162
+ 'Design for failure and implement proper fallbacks',
163
+ 'Keep security and compliance in every deployment'
164
+ ],
165
+ 'database-specialist': [
166
+ 'Always benchmark queries before and after optimization',
167
+ 'Plan migrations with rollback strategies',
168
+ 'Use appropriate indexing strategies for workloads',
169
+ 'Maintain data consistency across transactions',
170
+ 'Document schema changes and their business impact'
171
+ ],
172
+ 'mobile-specialist': [
173
+ 'Test on real devices, not just simulators',
174
+ 'Optimize for battery life and data usage',
175
+ 'Follow platform-specific design guidelines',
176
+ 'Implement proper offline-first strategies',
177
+ 'Plan for app store review requirements early'
136
178
  ]
137
179
  };
138
180
  //# sourceMappingURL=agentConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAgC;IACjE,eAAe,EAAE;QACf,4DAA4D;QAC5D,6CAA6C;QAC7C,yCAAyC;QACzC,+CAA+C;KAChD;IACD,WAAW,EAAE;QACX,wCAAwC;QACxC,gCAAgC;QAChC,oDAAoD;QACpD,yCAAyC;KAC1C;IACD,mBAAmB,EAAE;QACnB,oDAAoD;QACpD,8CAA8C;QAC9C,2CAA2C;QAC3C,iDAAiD;KAClD;IACD,wBAAwB,EAAE;QACxB,oDAAoD;QACpD,+CAA+C;QAC/C,yCAAyC;QACzC,uCAAuC;KACxC;IACD,aAAa,EAAE;QACb,gDAAgD;QAChD,+CAA+C;QAC/C,oCAAoC;QACpC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,2CAA2C;QAC3C,+CAA+C;QAC/C,0CAA0C;QAC1C,uCAAuC;KACxC;IACD,uBAAuB,EAAE;QACvB,kCAAkC;QAClC,wCAAwC;QACxC,8BAA8B;QAC9B,oCAAoC;KACrC;IACD,kBAAkB,EAAE;QAClB,mCAAmC;QACnC,mCAAmC;QACnC,yCAAyC;QACzC,+CAA+C;KAChD;IACD,oBAAoB,EAAE;QACpB,+CAA+C;QAC/C,4CAA4C;QAC5C,2CAA2C;QAC3C,4CAA4C;QAC5C,sCAAsC;KACvC;IACD,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,mDAAmD;QACnD,mDAAmD;QACnD,wCAAwC;QACxC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,iDAAiD;QACjD,+CAA+C;QAC/C,2CAA2C;QAC3C,6CAA6C;QAC7C,iDAAiD;KAClD;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAgC;IAC/D,eAAe,EAAE;QACf,0CAA0C;QAC1C,wCAAwC;QACxC,0CAA0C;KAC3C;IACD,WAAW,EAAE;QACX,iCAAiC;QACjC,mCAAmC;QACnC,uCAAuC;KACxC;IACD,mBAAmB,EAAE;QACnB,0CAA0C;QAC1C,wCAAwC;QACxC,sCAAsC;KACvC;IACD,wBAAwB,EAAE;QACxB,iCAAiC;QACjC,uCAAuC;QACvC,yCAAyC;KAC1C;IACD,aAAa,EAAE;QACb,6CAA6C;QAC7C,qCAAqC;QACrC,4BAA4B;KAC7B;IACD,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,oCAAoC;QACpC,4BAA4B;KAC7B;IACD,uBAAuB,EAAE;QACvB,2BAA2B;QAC3B,6BAA6B;QAC7B,4CAA4C;KAC7C;IACD,kBAAkB,EAAE;QAClB,gCAAgC;QAChC,wCAAwC;QACxC,2CAA2C;KAC5C;IACD,oBAAoB,EAAE;QACpB,wDAAwD;QACxD,6CAA6C;QAC7C,wDAAwD;QACxD,qDAAqD;QACrD,oDAAoD;KACrD;IACD,qBAAqB,EAAE;QACrB,6CAA6C;QAC7C,gDAAgD;QAChD,wCAAwC;QACxC,8CAA8C;QAC9C,wCAAwC;KACzC;IACD,sBAAsB,EAAE;QACtB,oDAAoD;QACpD,mDAAmD;QACnD,gDAAgD;QAChD,yCAAyC;QACzC,kDAAkD;KACnD;CACF,CAAC"}
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/generators/agents/agentConfig.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAgC;IACjE,eAAe,EAAE;QACf,4DAA4D;QAC5D,6CAA6C;QAC7C,yCAAyC;QACzC,+CAA+C;KAChD;IACD,WAAW,EAAE;QACX,wCAAwC;QACxC,gCAAgC;QAChC,oDAAoD;QACpD,yCAAyC;KAC1C;IACD,mBAAmB,EAAE;QACnB,oDAAoD;QACpD,8CAA8C;QAC9C,2CAA2C;QAC3C,iDAAiD;KAClD;IACD,wBAAwB,EAAE;QACxB,oDAAoD;QACpD,+CAA+C;QAC/C,yCAAyC;QACzC,uCAAuC;KACxC;IACD,aAAa,EAAE;QACb,gDAAgD;QAChD,+CAA+C;QAC/C,oCAAoC;QACpC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,2CAA2C;QAC3C,+CAA+C;QAC/C,0CAA0C;QAC1C,uCAAuC;KACxC;IACD,uBAAuB,EAAE;QACvB,kCAAkC;QAClC,wCAAwC;QACxC,8BAA8B;QAC9B,oCAAoC;KACrC;IACD,kBAAkB,EAAE;QAClB,mCAAmC;QACnC,mCAAmC;QACnC,yCAAyC;QACzC,+CAA+C;KAChD;IACD,oBAAoB,EAAE;QACpB,+CAA+C;QAC/C,4CAA4C;QAC5C,2CAA2C;QAC3C,4CAA4C;QAC5C,sCAAsC;KACvC;IACD,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,mDAAmD;QACnD,mDAAmD;QACnD,wCAAwC;QACxC,oCAAoC;KACrC;IACD,sBAAsB,EAAE;QACtB,iDAAiD;QACjD,+CAA+C;QAC/C,2CAA2C;QAC3C,6CAA6C;QAC7C,iDAAiD;KAClD;IACD,mBAAmB,EAAE;QACnB,qCAAqC;QACrC,kCAAkC;QAClC,2CAA2C;QAC3C,gDAAgD;QAChD,8CAA8C;KAC/C;IACD,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,uCAAuC;QACvC,yCAAyC;QACzC,uCAAuC;QACvC,0CAA0C;KAC3C;IACD,mBAAmB,EAAE;QACnB,uDAAuD;QACvD,mDAAmD;QACnD,0CAA0C;QAC1C,yCAAyC;QACzC,uDAAuD;KACxD;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAgC;IAC/D,eAAe,EAAE;QACf,0CAA0C;QAC1C,wCAAwC;QACxC,0CAA0C;KAC3C;IACD,WAAW,EAAE;QACX,iCAAiC;QACjC,mCAAmC;QACnC,uCAAuC;KACxC;IACD,mBAAmB,EAAE;QACnB,0CAA0C;QAC1C,wCAAwC;QACxC,sCAAsC;KACvC;IACD,wBAAwB,EAAE;QACxB,iCAAiC;QACjC,uCAAuC;QACvC,yCAAyC;KAC1C;IACD,aAAa,EAAE;QACb,6CAA6C;QAC7C,qCAAqC;QACrC,4BAA4B;KAC7B;IACD,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,oCAAoC;QACpC,4BAA4B;KAC7B;IACD,uBAAuB,EAAE;QACvB,2BAA2B;QAC3B,6BAA6B;QAC7B,4CAA4C;KAC7C;IACD,kBAAkB,EAAE;QAClB,gCAAgC;QAChC,wCAAwC;QACxC,2CAA2C;KAC5C;IACD,oBAAoB,EAAE;QACpB,wDAAwD;QACxD,6CAA6C;QAC7C,wDAAwD;QACxD,qDAAqD;QACrD,oDAAoD;KACrD;IACD,qBAAqB,EAAE;QACrB,6CAA6C;QAC7C,gDAAgD;QAChD,wCAAwC;QACxC,8CAA8C;QAC9C,wCAAwC;KACzC;IACD,sBAAsB,EAAE;QACtB,oDAAoD;QACpD,mDAAmD;QACnD,gDAAgD;QAChD,yCAAyC;QACzC,kDAAkD;KACnD;IACD,mBAAmB,EAAE;QACnB,2CAA2C;QAC3C,sDAAsD;QACtD,mCAAmC;QACnC,mDAAmD;QACnD,kDAAkD;KACnD;IACD,qBAAqB,EAAE;QACrB,wDAAwD;QACxD,0CAA0C;QAC1C,mDAAmD;QACnD,+CAA+C;QAC/C,mDAAmD;KACpD;IACD,mBAAmB,EAAE;QACnB,2CAA2C;QAC3C,0CAA0C;QAC1C,4CAA4C;QAC5C,2CAA2C;QAC3C,8CAA8C;KAC/C;CACF,CAAC"}
@@ -5,6 +5,5 @@ export declare class AgentGenerator {
5
5
  generateAgentPrompts(repoStructure: RepoStructure, outputDir: string, selectedAgentTypes?: string[], verbose?: boolean): Promise<number>;
6
6
  private resolveAgentSelection;
7
7
  private buildContext;
8
- private formatDirectoryList;
9
8
  }
10
9
  //# sourceMappingURL=agentGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAe5C,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CA8C7B;gBAEU,GAAG,WAAW,EAAE,OAAO,EAAE;IAG/B,oBAAoB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAuBlB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,mBAAmB;CAO5B"}
1
+ {"version":3,"file":"agentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgB5C,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAW7B;gBAEU,GAAG,WAAW,EAAE,OAAO,EAAE;IAG/B,oBAAoB,CACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAuBlB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,YAAY;CAerB"}
@@ -38,54 +38,20 @@ const path = __importStar(require("path"));
38
38
  const shared_1 = require("../shared");
39
39
  const agentTypes_1 = require("./agentTypes");
40
40
  const templates_1 = require("./templates");
41
+ const guideRegistry_1 = require("../documentation/guideRegistry");
41
42
  class AgentGenerator {
42
43
  constructor(..._legacyArgs) {
43
44
  this.docTouchpoints = [
44
45
  {
45
46
  title: 'Documentation Index',
46
47
  path: '../docs/README.md',
47
- marker: 'ai-task:docs-index'
48
+ marker: 'agent-update:docs-index'
48
49
  },
49
- {
50
- title: 'Project Overview',
51
- path: '../docs/project-overview.md',
52
- marker: 'ai-task:project-overview'
53
- },
54
- {
55
- title: 'Architecture Notes',
56
- path: '../docs/architecture.md',
57
- marker: 'ai-task:architecture-notes'
58
- },
59
- {
60
- title: 'Development Workflow',
61
- path: '../docs/development-workflow.md',
62
- marker: 'ai-task:development-workflow'
63
- },
64
- {
65
- title: 'Testing Strategy',
66
- path: '../docs/testing-strategy.md',
67
- marker: 'ai-task:testing-strategy'
68
- },
69
- {
70
- title: 'Glossary & Domain Concepts',
71
- path: '../docs/glossary.md',
72
- marker: 'ai-task:glossary'
73
- },
74
- {
75
- title: 'Data Flow & Integrations',
76
- path: '../docs/data-flow.md',
77
- marker: 'ai-task:data-flow'
78
- },
79
- {
80
- title: 'Security & Compliance Notes',
81
- path: '../docs/security.md',
82
- marker: 'ai-task:security'
83
- },
84
- {
85
- title: 'Tooling & Productivity Guide',
86
- path: '../docs/tooling.md',
87
- marker: 'ai-task:tooling'
88
- }
50
+ ...guideRegistry_1.DOCUMENT_GUIDES.map(guide => ({
51
+ title: guide.title,
52
+ path: `../docs/${guide.file}`,
53
+ marker: guide.marker
54
+ }))
89
55
  ];
90
56
  }
91
57
  async generateAgentPrompts(repoStructure, outputDir, selectedAgentTypes, verbose = false) {
@@ -126,12 +92,6 @@ class AgentGenerator {
126
92
  topLevelDirectories: Array.from(directorySet).sort()
127
93
  };
128
94
  }
129
- formatDirectoryList(topLevelDirectories) {
130
- if (topLevelDirectories.length === 0) {
131
- return '';
132
- }
133
- return topLevelDirectories.map(dir => `- \`${dir}/\` — Note why this directory matters for the agent.`).join('\n');
134
- }
135
95
  }
136
96
  exports.AgentGenerator = AgentGenerator;
137
97
  //# sourceMappingURL=agentGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../src/generators/agents/agentGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const AGENT_TYPES: readonly ["code-reviewer", "bug-fixer", "feature-developer", "refactoring-specialist", "test-writer", "documentation-writer", "performance-optimizer", "security-auditor", "backend-specialist", "frontend-specialist", "architect-specialist"];
1
+ export declare const AGENT_TYPES: readonly ["code-reviewer", "bug-fixer", "feature-developer", "refactoring-specialist", "test-writer", "documentation-writer", "performance-optimizer", "security-auditor", "backend-specialist", "frontend-specialist", "architect-specialist", "devops-specialist", "database-specialist", "mobile-specialist"];
2
2
  export type AgentType = typeof AGENT_TYPES[number];
3
3
  export declare const IMPORTANT_FILES: string[];
4
4
  //# sourceMappingURL=agentTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agentTypes.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,iPAYd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe,UAI3B,CAAC"}
1
+ {"version":3,"file":"agentTypes.d.ts","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,kTAed,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,eAAe,UAI3B,CAAC"}
@@ -12,7 +12,10 @@ exports.AGENT_TYPES = [
12
12
  'security-auditor',
13
13
  'backend-specialist',
14
14
  'frontend-specialist',
15
- 'architect-specialist'
15
+ 'architect-specialist',
16
+ 'devops-specialist',
17
+ 'database-specialist',
18
+ 'mobile-specialist'
16
19
  ];
17
20
  exports.IMPORTANT_FILES = [
18
21
  'package.json', 'tsconfig.json', 'webpack.config.js',
@@ -1 +1 @@
1
- {"version":3,"file":"agentTypes.js","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,eAAe;IACf,WAAW;IACX,mBAAmB;IACnB,wBAAwB;IACxB,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;CACd,CAAC;AAIE,QAAA,eAAe,GAAG;IAC7B,cAAc,EAAE,eAAe,EAAE,mBAAmB;IACpD,gBAAgB,EAAE,oBAAoB,EAAE,WAAW;IACnD,YAAY,EAAE,YAAY,EAAE,oBAAoB;CACjD,CAAC"}
1
+ {"version":3,"file":"agentTypes.js","sourceRoot":"","sources":["../../../src/generators/agents/agentTypes.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,eAAe;IACf,WAAW;IACX,mBAAmB;IACnB,wBAAwB;IACxB,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;CACX,CAAC;AAIE,QAAA,eAAe,GAAG;IAC7B,cAAc,EAAE,eAAe,EAAE,mBAAmB;IACpD,gBAAgB,EAAE,oBAAoB,EAAE,WAAW;IACnD,YAAY,EAAE,YAAY,EAAE,oBAAoB;CACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"indexTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAwBzE"}
1
+ {"version":3,"file":"indexTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAyBzE"}
@@ -23,7 +23,8 @@ ${agentEntries}
23
23
 
24
24
  ## Related Resources
25
25
  - [Documentation Index](../docs/README.md)
26
- - [Contributor Guidelines](../AGENTS.md)
26
+ - [Agent Knowledge Base](../../AGENTS.md)
27
+ - [Contributor Guidelines](../../CONTRIBUTING.md)
27
28
  `;
28
29
  }
29
30
  function formatTitle(agentType) {
@@ -1 +1 @@
1
- {"version":3,"file":"indexTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":";;AAGA,4CAwBC;AA1BD,gDAAwD;AAExD,SAAgB,gBAAgB,CAAC,UAAgC;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,qBAAqB,GAAG,oCAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAAC;QACrG,OAAO,MAAM,KAAK,OAAO,IAAI,UAAU,qBAAqB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;EAKP,YAAY;;;;;;;;;;;CAWb,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"indexTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/indexTemplate.ts"],"names":[],"mappings":";;AAGA,4CAyBC;AA3BD,gDAAwD;AAExD,SAAgB,gBAAgB,CAAC,UAAgC;IAC/D,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,qBAAqB,GAAG,oCAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAAC;QACrG,OAAO,MAAM,KAAK,OAAO,IAAI,UAAU,qBAAqB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;EAKP,YAAY;;;;;;;;;;;;CAYb,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"playbookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,WAAW,EAAE,aAAa,EAAE,GAC3B,MAAM,CA8CR"}
1
+ {"version":3,"file":"playbookTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,MAAM,EAAE,EAC7B,WAAW,EAAE,aAAa,EAAE,GAC3B,MAAM,CAkFR"}
@@ -8,10 +8,12 @@ function renderAgentPlaybook(agentType, topLevelDirectories, touchpoints) {
8
8
  const responsibilities = agentConfig_1.AGENT_RESPONSIBILITIES[agentType] || ['Clarify this agent\'s responsibilities.'];
9
9
  const bestPractices = agentConfig_1.AGENT_BEST_PRACTICES[agentType] || ['Document preferred workflows.'];
10
10
  const directoryList = (0, directoryTemplateHelpers_1.formatDirectoryList)(topLevelDirectories);
11
+ const markerId = `agent-${agentType}`;
11
12
  const touchpointList = touchpoints
12
13
  .map(tp => `- [${tp.title}](${tp.path}) — ${tp.marker}`)
13
14
  .join('\n');
14
- return `# ${title} Agent Playbook
15
+ return `<!-- agent-update:start:${markerId} -->
16
+ # ${title} Agent Playbook
15
17
 
16
18
  ## Mission
17
19
  Describe how the ${title.toLowerCase()} agent supports the team and when to engage it.
@@ -25,7 +27,8 @@ ${formatList(bestPractices)}
25
27
  ## Key Project Resources
26
28
  - Documentation index: [docs/README.md](../docs/README.md)
27
29
  - Agent handbook: [agents/README.md](./README.md)
28
- - Contributor guide: [AGENTS.md](../AGENTS.md)
30
+ - Agent knowledge base: [AGENTS.md](../../AGENTS.md)
31
+ - Contributor guide: [CONTRIBUTING.md](../../CONTRIBUTING.md)
29
32
 
30
33
  ## Repository Starting Points
31
34
  ${directoryList || '- Add directory highlights relevant to this agent.'}
@@ -33,12 +36,43 @@ ${directoryList || '- Add directory highlights relevant to this agent.'}
33
36
  ## Documentation Touchpoints
34
37
  ${touchpointList}
35
38
 
39
+ <!-- agent-readonly:guidance -->
36
40
  ## Collaboration Checklist
37
41
  1. Confirm assumptions with issue reporters or maintainers.
38
42
  2. Review open pull requests affecting this area.
39
- 3. Update the relevant doc section listed above and remove any resolved \`ai-slot\` placeholders.
43
+ 3. Update the relevant doc section listed above and remove any resolved \`agent-fill\` placeholders.
40
44
  4. Capture learnings back in [docs/README.md](../docs/README.md) or the appropriate task marker.
41
45
 
46
+ ## Success Metrics
47
+ Track effectiveness of this agent's contributions:
48
+ - **Code Quality:** Reduced bug count, improved test coverage, decreased technical debt
49
+ - **Velocity:** Time to complete typical tasks, deployment frequency
50
+ - **Documentation:** Coverage of features, accuracy of guides, usage by team
51
+ - **Collaboration:** PR review turnaround time, feedback quality, knowledge sharing
52
+
53
+ **Target Metrics:**
54
+ - TODO: Define measurable goals specific to this agent (e.g., "Reduce bug resolution time by 30%")
55
+ - TODO: Track trends over time to identify improvement areas
56
+
57
+ ## Troubleshooting Common Issues
58
+ Document frequent problems this agent encounters and their solutions:
59
+
60
+ ### Issue: [Common Problem]
61
+ **Symptoms:** Describe what indicates this problem
62
+ **Root Cause:** Why this happens
63
+ **Resolution:** Step-by-step fix
64
+ **Prevention:** How to avoid in the future
65
+
66
+ **Example:**
67
+ ### Issue: Build Failures Due to Outdated Dependencies
68
+ **Symptoms:** Tests fail with module resolution errors
69
+ **Root Cause:** Package versions incompatible with codebase
70
+ **Resolution:**
71
+ 1. Review package.json for version ranges
72
+ 2. Run \`npm update\` to get compatible versions
73
+ 3. Test locally before committing
74
+ **Prevention:** Keep dependencies updated regularly, use lockfiles
75
+
42
76
  ## Hand-off Notes
43
77
  Summarize outcomes, remaining risks, and suggested follow-up actions after the agent completes its work.
44
78
 
@@ -46,6 +80,8 @@ Summarize outcomes, remaining risks, and suggested follow-up actions after the a
46
80
  - Reference commits, issues, or ADRs used to justify updates.
47
81
  - Command output or logs that informed recommendations.
48
82
  - Follow-up items for maintainers or future agent runs.
83
+ - Performance metrics and benchmarks where applicable.
84
+ <!-- agent-update:end -->
49
85
  `;
50
86
  }
51
87
  function formatTitle(agentType) {
@@ -1 +1 @@
1
- {"version":3,"file":"playbookTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":";;AAKA,kDAkDC;AAvDD,gDAA8E;AAE9E,oFAA4E;AAG5E,SAAgB,mBAAmB,CACjC,SAAoB,EACpB,mBAA6B,EAC7B,WAA4B;IAE5B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,oCAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,kCAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,IAAA,8CAAmB,EAAC,mBAAmB,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,WAAW;SAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,KAAK,KAAK;;;mBAGA,KAAK,CAAC,WAAW,EAAE;;;EAGpC,UAAU,CAAC,gBAAgB,CAAC;;;EAG5B,UAAU,CAAC,aAAa,CAAC;;;;;;;;EAQzB,aAAa,IAAI,oDAAoD;;;EAGrE,cAAc;;;;;;;;;;;;;;;CAef,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAe;IACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"playbookTemplate.js","sourceRoot":"","sources":["../../../../src/generators/agents/templates/playbookTemplate.ts"],"names":[],"mappings":";;AAKA,kDAsFC;AA3FD,gDAA8E;AAE9E,oFAA4E;AAG5E,SAAgB,mBAAmB,CACjC,SAAoB,EACpB,mBAA6B,EAC7B,WAA4B;IAE5B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,oCAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,kCAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,IAAA,8CAAmB,EAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAC;IAEtC,MAAM,cAAc,GAAG,WAAW;SAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;SACvD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,2BAA2B,QAAQ;IACxC,KAAK;;;mBAGU,KAAK,CAAC,WAAW,EAAE;;;EAGpC,UAAU,CAAC,gBAAgB,CAAC;;;EAG5B,UAAU,CAAC,aAAa,CAAC;;;;;;;;;EASzB,aAAa,IAAI,oDAAoD;;;EAGrE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDf,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAe;IACjC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
@@ -3,11 +3,13 @@ interface DocumentationGenerationConfig {
3
3
  selectedDocs?: string[];
4
4
  }
5
5
  export declare class DocumentationGenerator {
6
- private readonly guides;
7
6
  constructor(..._legacyArgs: unknown[]);
8
7
  generateDocumentation(repoStructure: RepoStructure, outputDir: string, config?: DocumentationGenerationConfig, verbose?: boolean): Promise<number>;
9
8
  private buildContext;
9
+ private deriveTopLevelDirectories;
10
10
  private getDocSections;
11
+ private updateAgentGuideReferences;
12
+ private createDefaultAgentGuide;
11
13
  }
12
14
  export {};
13
15
  //# sourceMappingURL=documentationGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"documentationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB5C,UAAU,6BAA6B;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,GAAG,WAAW,EAAE,OAAO,EAAE;IAE/B,qBAAqB,CACzB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,6BAAkC,EAC1C,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAmBlB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,cAAc;CAiCvB"}
1
+ {"version":3,"file":"documentationGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB5C,UAAU,6BAA6B;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,sBAAsB;gBACrB,GAAG,WAAW,EAAE,OAAO,EAAE;IAE/B,qBAAqB,CACzB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,6BAAkC,EAC1C,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAqBlB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,cAAc;YAkCR,0BAA0B;IAgCxC,OAAO,CAAC,uBAAuB;CA0ChC"}
@@ -35,13 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DocumentationGenerator = void 0;
37
37
  const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
38
39
  const shared_1 = require("../shared");
39
40
  const templates_1 = require("./templates");
40
41
  const guideRegistry_1 = require("./guideRegistry");
41
42
  class DocumentationGenerator {
42
- constructor(..._legacyArgs) {
43
- this.guides = guideRegistry_1.DOCUMENT_GUIDES;
44
- }
43
+ constructor(..._legacyArgs) { }
45
44
  async generateDocumentation(repoStructure, outputDir, config = {}, verbose = false) {
46
45
  const docsDir = path.join(outputDir, 'docs');
47
46
  await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, 'Generating documentation scaffold in');
@@ -55,21 +54,20 @@ class DocumentationGenerator {
55
54
  await shared_1.GeneratorUtils.writeFileWithLogging(targetPath, content, verbose, `Created ${section.fileName}`);
56
55
  created += 1;
57
56
  }
57
+ await this.updateAgentGuideReferences(repoStructure, verbose);
58
58
  return created;
59
59
  }
60
60
  buildContext(repoStructure, guides) {
61
- const directorySet = new Set();
62
- repoStructure.directories.forEach(dir => {
63
- const [firstSegment] = dir.relativePath.split(/[\\/]/).filter(Boolean);
64
- if (firstSegment) {
65
- directorySet.add(firstSegment);
66
- }
67
- });
68
- const topLevelDirectories = Array.from(directorySet).sort();
69
- const directoryStats = topLevelDirectories.map(name => ({
70
- name,
71
- fileCount: repoStructure.files.filter(file => file.relativePath.startsWith(`${name}/`)).length
72
- }));
61
+ const topLevelStats = repoStructure.topLevelDirectoryStats ?? [];
62
+ const topLevelDirectories = topLevelStats.length
63
+ ? topLevelStats.map(stat => stat.name)
64
+ : this.deriveTopLevelDirectories(repoStructure);
65
+ const directoryStats = topLevelStats.length
66
+ ? topLevelStats.map(stat => ({ name: stat.name, fileCount: stat.fileCount }))
67
+ : topLevelDirectories.map(name => ({
68
+ name,
69
+ fileCount: repoStructure.files.filter(file => file.relativePath.startsWith(`${name}/`)).length
70
+ }));
73
71
  const primaryLanguages = shared_1.GeneratorUtils.getTopFileExtensions(repoStructure, 5)
74
72
  .filter(([ext]) => !!ext)
75
73
  .map(([extension, count]) => ({ extension, count }));
@@ -81,6 +79,16 @@ class DocumentationGenerator {
81
79
  guides
82
80
  };
83
81
  }
82
+ deriveTopLevelDirectories(repoStructure) {
83
+ const directorySet = new Set();
84
+ repoStructure.directories.forEach(dir => {
85
+ const [firstSegment] = dir.relativePath.split(/[\\/]/).filter(Boolean);
86
+ if (firstSegment) {
87
+ directorySet.add(firstSegment);
88
+ }
89
+ });
90
+ return Array.from(directorySet).sort();
91
+ }
84
92
  getDocSections(guides) {
85
93
  const sections = [
86
94
  {
@@ -110,6 +118,71 @@ class DocumentationGenerator {
110
118
  });
111
119
  return sections;
112
120
  }
121
+ async updateAgentGuideReferences(repoStructure, verbose) {
122
+ const repoRoot = repoStructure.rootPath;
123
+ const agentGuidePath = path.join(repoRoot, 'AGENTS.md');
124
+ try {
125
+ const exists = await fs.pathExists(agentGuidePath);
126
+ if (!exists) {
127
+ const template = this.createDefaultAgentGuide(repoStructure);
128
+ await fs.writeFile(agentGuidePath, template, 'utf-8');
129
+ shared_1.GeneratorUtils.logProgress('Created AGENTS.md using the agents.md example starter.', verbose);
130
+ return;
131
+ }
132
+ const content = await fs.readFile(agentGuidePath, 'utf-8');
133
+ const docsReference = '.context/docs/README.md';
134
+ const agentsReference = '.context/agents/README.md';
135
+ if (content.includes(docsReference) && content.includes(agentsReference)) {
136
+ return;
137
+ }
138
+ const referencesBlock = `\n## AI Context References\n- Documentation index: \`${docsReference}\`\n- Agent playbooks: \`${agentsReference}\`\n`;
139
+ const updatedContent = `${content.trimEnd()}${referencesBlock}\n`;
140
+ await fs.writeFile(agentGuidePath, updatedContent, 'utf-8');
141
+ shared_1.GeneratorUtils.logProgress('Linked AGENTS.md to generated docs and agent indexes.', verbose);
142
+ }
143
+ catch (error) {
144
+ shared_1.GeneratorUtils.logError('Failed to update AGENTS.md with documentation references', error, verbose);
145
+ }
146
+ }
147
+ createDefaultAgentGuide(repoStructure) {
148
+ const directories = (repoStructure.topLevelDirectoryStats?.length
149
+ ? repoStructure.topLevelDirectoryStats.map(stat => stat.name)
150
+ : this.deriveTopLevelDirectories(repoStructure)).filter(Boolean);
151
+ const directorySection = directories.length
152
+ ? directories
153
+ .slice(0, 8)
154
+ .map(dir => `- \`${dir}/\` — explain what lives here and when agents should edit it.`)
155
+ .join('\n')
156
+ : '- Document the major directories so agents know where to work.';
157
+ return `# AGENTS.md
158
+
159
+ ## Dev environment tips
160
+ - Install dependencies with \`npm install\` before running scaffolds.
161
+ - Use \`npm run dev\` for the interactive TypeScript session that powers local experimentation.
162
+ - Run \`npm run build\` to refresh the CommonJS bundle in \`dist/\` before shipping changes.
163
+ - Store generated artefacts in \`.context/\` so reruns stay deterministic.
164
+
165
+ ## Testing instructions
166
+ - Execute \`npm run test\` to run the Jest suite.
167
+ - Append \`-- --watch\` while iterating on a failing spec.
168
+ - Trigger \`npm run build && npm run test\` before opening a PR to mimic CI.
169
+ - Add or update tests alongside any generator or CLI changes.
170
+
171
+ ## PR instructions
172
+ - Follow Conventional Commits (for example, \`feat(scaffolding): add doc links\`).
173
+ - Cross-link new scaffolds in \`docs/README.md\` and \`agents/README.md\` so future agents can find them.
174
+ - Attach sample CLI output or generated markdown when behaviour shifts.
175
+ - Confirm the built artefacts in \`dist/\` match the new source changes.
176
+
177
+ ## Repository map
178
+ ${directorySection}
179
+
180
+ ## AI Context References
181
+ - Documentation index: \`.context/docs/README.md\`
182
+ - Agent playbooks: \`.context/agents/README.md\`
183
+ - Contributor guide: \`CONTRIBUTING.md\`
184
+ `;
185
+ }
113
186
  }
114
187
  exports.DocumentationGenerator = DocumentationGenerator;
115
188
  //# sourceMappingURL=documentationGenerator.js.map