@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.
- package/README.md +25 -23
- package/dist/generators/agents/agentConfig.d.ts.map +1 -1
- package/dist/generators/agents/agentConfig.js +42 -0
- package/dist/generators/agents/agentConfig.js.map +1 -1
- package/dist/generators/agents/agentGenerator.d.ts +0 -1
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
- package/dist/generators/agents/agentGenerator.js +7 -47
- package/dist/generators/agents/agentGenerator.js.map +1 -1
- package/dist/generators/agents/agentTypes.d.ts +1 -1
- package/dist/generators/agents/agentTypes.d.ts.map +1 -1
- package/dist/generators/agents/agentTypes.js +4 -1
- package/dist/generators/agents/agentTypes.js.map +1 -1
- package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/indexTemplate.js +2 -1
- package/dist/generators/agents/templates/indexTemplate.js.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -1
- package/dist/generators/agents/templates/playbookTemplate.js +39 -3
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -1
- package/dist/generators/documentation/documentationGenerator.d.ts +3 -1
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.js +88 -15
- package/dist/generators/documentation/documentationGenerator.js.map +1 -1
- package/dist/generators/documentation/guideRegistry.js +8 -8
- package/dist/generators/documentation/guideRegistry.js.map +1 -1
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.js +490 -0
- package/dist/generators/documentation/templates/apiReferenceTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.js +27 -27
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/common.js +2 -2
- package/dist/generators/documentation/templates/common.js.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/dataFlowTemplate.js +5 -20
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +5 -20
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/glossaryTemplate.js +9 -23
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/index.d.ts +4 -0
- package/dist/generators/documentation/templates/index.d.ts.map +1 -1
- package/dist/generators/documentation/templates/index.js +9 -1
- package/dist/generators/documentation/templates/index.js.map +1 -1
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/indexTemplate.js +5 -19
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/migrationTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/migrationTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/migrationTemplate.js +422 -0
- package/dist/generators/documentation/templates/migrationTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/onboardingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/onboardingTemplate.js +431 -0
- package/dist/generators/documentation/templates/onboardingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +22 -25
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/securityTemplate.js +5 -19
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/testingTemplate.js +5 -19
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -1
- package/dist/generators/documentation/templates/toolingTemplate.js +6 -20
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -1
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.js +292 -0
- package/dist/generators/documentation/templates/troubleshootingTemplate.js.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/indexTemplate.js +3 -2
- package/dist/generators/plans/templates/indexTemplate.js.map +1 -1
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -1
- package/dist/generators/plans/templates/planTemplate.js +74 -3
- package/dist/generators/plans/templates/planTemplate.js.map +1 -1
- package/dist/generators/shared/generatorUtils.d.ts +1 -1
- package/dist/generators/shared/generatorUtils.d.ts.map +1 -1
- package/dist/generators/shared/generatorUtils.js +1 -1
- package/dist/generators/shared/generatorUtils.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -1000
- package/dist/index.js.map +1 -1
- package/dist/prompts/defaults.d.ts +2 -2
- package/dist/prompts/defaults.d.ts.map +1 -1
- package/dist/prompts/defaults.js +11 -11
- package/dist/services/baseLLMClient.d.ts +3 -3
- package/dist/services/baseLLMClient.d.ts.map +1 -1
- package/dist/services/baseLLMClient.js +44 -5
- package/dist/services/baseLLMClient.js.map +1 -1
- package/dist/services/fill/fillService.d.ts +0 -4
- package/dist/services/fill/fillService.d.ts.map +1 -1
- package/dist/services/fill/fillService.js +6 -54
- package/dist/services/fill/fillService.js.map +1 -1
- package/dist/services/init/initService.d.ts +2 -2
- package/dist/services/init/initService.d.ts.map +1 -1
- package/dist/services/init/initService.js +45 -15
- package/dist/services/init/initService.js.map +1 -1
- package/dist/services/llmClientFactory.d.ts +2 -8
- package/dist/services/llmClientFactory.d.ts.map +1 -1
- package/dist/services/llmClientFactory.js +10 -96
- package/dist/services/llmClientFactory.js.map +1 -1
- package/dist/services/openRouterClient.d.ts +0 -3
- package/dist/services/openRouterClient.d.ts.map +1 -1
- package/dist/services/openRouterClient.js +2 -49
- package/dist/services/openRouterClient.js.map +1 -1
- package/dist/services/plan/planService.d.ts +2 -4
- package/dist/services/plan/planService.d.ts.map +1 -1
- package/dist/services/plan/planService.js +3 -12
- package/dist/services/plan/planService.js.map +1 -1
- package/dist/services/shared/llmConfig.d.ts.map +1 -1
- package/dist/services/shared/llmConfig.js +11 -53
- package/dist/services/shared/llmConfig.js.map +1 -1
- package/dist/types.d.ts +7 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/fileMapper.d.ts +1 -1
- package/dist/utils/fileMapper.d.ts.map +1 -1
- package/dist/utils/fileMapper.js +40 -19
- package/dist/utils/fileMapper.js.map +1 -1
- package/dist/utils/i18n.d.ts +11 -32
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +22 -64
- package/dist/utils/i18n.js.map +1 -1
- package/package.json +9 -12
- package/prompts/update_plan_prompt.md +4 -5
- package/prompts/update_scaffold_prompt.md +7 -8
- package/dist/generators/agents/contextUtils.d.ts +0 -8
- package/dist/generators/agents/contextUtils.d.ts.map +0 -1
- package/dist/generators/agents/contextUtils.js +0 -15
- package/dist/generators/agents/contextUtils.js.map +0 -1
- package/dist/generators/agents/promptFormatter.d.ts +0 -9
- package/dist/generators/agents/promptFormatter.d.ts.map +0 -1
- package/dist/generators/agents/promptFormatter.js +0 -84
- package/dist/generators/agents/promptFormatter.js.map +0 -1
- package/dist/generators/analyzers/codebaseAnalyzer.d.ts +0 -45
- package/dist/generators/analyzers/codebaseAnalyzer.d.ts.map +0 -1
- package/dist/generators/analyzers/codebaseAnalyzer.js +0 -293
- package/dist/generators/analyzers/codebaseAnalyzer.js.map +0 -1
- package/dist/generators/analyzers/index.d.ts +0 -3
- package/dist/generators/analyzers/index.d.ts.map +0 -1
- package/dist/generators/analyzers/index.js +0 -6
- package/dist/generators/analyzers/index.js.map +0 -1
- package/dist/generators/documentation/documentationTemplates.d.ts +0 -21
- package/dist/generators/documentation/documentationTemplates.d.ts.map +0 -1
- package/dist/generators/documentation/documentationTemplates.js +0 -359
- package/dist/generators/documentation/documentationTemplates.js.map +0 -1
- package/dist/generators/documentation/documentationTypes.d.ts +0 -11
- package/dist/generators/documentation/documentationTypes.d.ts.map +0 -1
- package/dist/generators/documentation/documentationTypes.js +0 -22
- package/dist/generators/documentation/documentationTypes.js.map +0 -1
- package/dist/generators/documentation/documentationUtils.d.ts +0 -7
- package/dist/generators/documentation/documentationUtils.d.ts.map +0 -1
- package/dist/generators/documentation/documentationUtils.js +0 -28
- package/dist/generators/documentation/documentationUtils.js.map +0 -1
- package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts +0 -33
- package/dist/generators/documentation/incrementalDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentation/incrementalDocumentationGenerator.js +0 -400
- package/dist/generators/documentation/incrementalDocumentationGenerator.js.map +0 -1
- package/dist/generators/documentation/templates.d.ts +0 -31
- package/dist/generators/documentation/templates.d.ts.map +0 -1
- package/dist/generators/documentation/templates.js +0 -566
- package/dist/generators/documentation/templates.js.map +0 -1
- package/dist/generators/guidelines/agentIntegration.d.ts +0 -43
- package/dist/generators/guidelines/agentIntegration.d.ts.map +0 -1
- package/dist/generators/guidelines/agentIntegration.js +0 -157
- package/dist/generators/guidelines/agentIntegration.js.map +0 -1
- package/dist/generators/guidelines/guidelineTypes.d.ts +0 -40
- package/dist/generators/guidelines/guidelineTypes.d.ts.map +0 -1
- package/dist/generators/guidelines/guidelineTypes.js +0 -144
- package/dist/generators/guidelines/guidelineTypes.js.map +0 -1
- package/dist/generators/guidelines/guidelinesAnalyzer.d.ts +0 -30
- package/dist/generators/guidelines/guidelinesAnalyzer.d.ts.map +0 -1
- package/dist/generators/guidelines/guidelinesAnalyzer.js +0 -263
- package/dist/generators/guidelines/guidelinesAnalyzer.js.map +0 -1
- package/dist/generators/guidelines/guidelinesGenerator.d.ts +0 -30
- package/dist/generators/guidelines/guidelinesGenerator.d.ts.map +0 -1
- package/dist/generators/guidelines/guidelinesGenerator.js +0 -249
- package/dist/generators/guidelines/guidelinesGenerator.js.map +0 -1
- package/dist/generators/guidelines/guidelinesTemplates.d.ts +0 -23
- package/dist/generators/guidelines/guidelinesTemplates.d.ts.map +0 -1
- package/dist/generators/guidelines/guidelinesTemplates.js +0 -304
- package/dist/generators/guidelines/guidelinesTemplates.js.map +0 -1
- package/dist/generators/guidelines/index.d.ts +0 -6
- package/dist/generators/guidelines/index.d.ts.map +0 -1
- package/dist/generators/guidelines/index.js +0 -16
- package/dist/generators/guidelines/index.js.map +0 -1
- package/dist/generators/moduleGrouper.d.ts +0 -14
- package/dist/generators/moduleGrouper.d.ts.map +0 -1
- package/dist/generators/moduleGrouper.js +0 -82
- package/dist/generators/moduleGrouper.js.map +0 -1
- package/dist/generators/projectAnalyzer.d.ts +0 -14
- package/dist/generators/projectAnalyzer.d.ts.map +0 -1
- package/dist/generators/projectAnalyzer.js +0 -217
- package/dist/generators/projectAnalyzer.js.map +0 -1
- package/dist/services/changeAnalyzer.d.ts +0 -44
- package/dist/services/changeAnalyzer.d.ts.map +0 -1
- package/dist/services/changeAnalyzer.js +0 -344
- package/dist/services/changeAnalyzer.js.map +0 -1
- package/dist/utils/interactiveMode.d.ts +0 -21
- package/dist/utils/interactiveMode.d.ts.map +0 -1
- package/dist/utils/interactiveMode.js +0 -737
- package/dist/utils/interactiveMode.js.map +0 -1
- package/dist/utils/tokenEstimator.d.ts +0 -28
- package/dist/utils/tokenEstimator.d.ts.map +0 -1
- package/dist/utils/tokenEstimator.js +0 -134
- 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 `
|
|
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
|
|
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 --
|
|
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 `
|
|
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
|
|
92
|
+
### Available Doc Guides & Agent Types
|
|
89
93
|
|
|
90
|
-
|
|
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:
|
|
130
|
-
-p, --provider <name> Provider (openrouter
|
|
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,
|
|
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
|
|
159
|
-
-p, --provider <name> Provider (openrouter
|
|
160
|
-
--base-url <url> Custom base URL for
|
|
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,
|
|
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":"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"}
|
|
@@ -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;
|
|
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: '
|
|
48
|
+
marker: 'agent-update:docs-index'
|
|
48
49
|
},
|
|
49
|
-
{
|
|
50
|
-
title:
|
|
51
|
-
path:
|
|
52
|
-
marker:
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAE7B,sCAA2C;AAC3C,6CAAsD;AACtD,2CAAoE;
|
|
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,
|
|
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;
|
|
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,
|
|
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
|
-
- [
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
-
|
|
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 \`
|
|
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,
|
|
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":"
|
|
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
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|