@ai-coders/context 0.3.0 → 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 +32 -25
- package/dist/commands/shared/agents.d.ts +2 -0
- package/dist/commands/shared/agents.d.ts.map +1 -0
- package/dist/commands/shared/agents.js +15 -0
- package/dist/commands/shared/agents.js.map +1 -0
- package/dist/commands/shared/selection.d.ts +12 -0
- package/dist/commands/shared/selection.d.ts.map +1 -0
- package/dist/commands/shared/selection.js +95 -0
- package/dist/commands/shared/selection.js.map +1 -0
- 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 +96 -13
- 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 +111 -1007
- package/dist/index.js.map +1 -1
- package/dist/prompts/defaults.d.ts +3 -0
- package/dist/prompts/defaults.d.ts.map +1 -0
- package/dist/prompts/defaults.js +95 -0
- package/dist/prompts/defaults.js.map +1 -0
- 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 +46 -0
- package/dist/services/fill/fillService.d.ts.map +1 -0
- package/dist/services/fill/fillService.js +254 -0
- package/dist/services/fill/fillService.js.map +1 -0
- package/dist/services/init/initService.d.ts +37 -0
- package/dist/services/init/initService.d.ts.map +1 -0
- package/dist/services/init/initService.js +167 -0
- package/dist/services/init/initService.js.map +1 -0
- 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 +57 -0
- package/dist/services/plan/planService.d.ts.map +1 -0
- package/dist/services/plan/planService.js +334 -0
- package/dist/services/plan/planService.js.map +1 -0
- package/dist/services/shared/llmConfig.d.ts +22 -0
- package/dist/services/shared/llmConfig.d.ts.map +1 -0
- package/dist/services/shared/llmConfig.js +38 -0
- package/dist/services/shared/llmConfig.js.map +1 -0
- 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 +23 -33
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +48 -68
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/promptLoader.d.ts +12 -0
- package/dist/utils/promptLoader.d.ts.map +1 -0
- package/dist/utils/promptLoader.js +81 -0
- package/dist/utils/promptLoader.js.map +1 -0
- package/dist/utils/versionChecker.d.ts +15 -0
- package/dist/utils/versionChecker.d.ts.map +1 -0
- package/dist/utils/versionChecker.js +49 -0
- package/dist/utils/versionChecker.js.map +1 -0
- package/package.json +9 -10
- 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
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
[](https://github.com/vinilana/ai-coders-context/actions/workflows/ci.yml)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
|
+
<img width="663" height="192" alt="image" src="https://github.com/user-attachments/assets/4b07f61d-6800-420a-ae91-6e952cbc790d" />
|
|
8
|
+
|
|
9
|
+
|
|
7
10
|
A lightweight CLI that scaffolds living documentation and AI-agent playbooks for any repository—no LLMs or API keys required. The generated structure gives teams a consistent starting point for knowledge sharing while keeping everything under version control.
|
|
8
11
|
|
|
9
12
|
## ⚙️ Requirements
|
|
@@ -16,14 +19,14 @@ A lightweight CLI that scaffolds living documentation and AI-agent playbooks for
|
|
|
16
19
|
- 🤖 `agents/` folder containing playbooks for common engineering agents and a handy index
|
|
17
20
|
- 🔁 Repeatable scaffolding that you can re-run as the project evolves
|
|
18
21
|
- 🧭 Repository-aware templates that highlight top-level directories for quick orientation
|
|
19
|
-
- 🧠 AI-ready front matter and `
|
|
22
|
+
- 🧠 AI-ready front matter and `agent-update` markers so assistants know exactly what to refresh
|
|
20
23
|
|
|
21
24
|
## 📦 Installation
|
|
22
25
|
|
|
23
26
|
Use `npx` to run the CLI without installing globally:
|
|
24
27
|
|
|
25
28
|
```bash
|
|
26
|
-
npx @ai-coders/context
|
|
29
|
+
npx @ai-coders/context
|
|
27
30
|
```
|
|
28
31
|
|
|
29
32
|
Or add it to your dev dependencies:
|
|
@@ -35,6 +38,10 @@ npm install --save-dev @ai-coders/context
|
|
|
35
38
|
## 🚀 Quick Start
|
|
36
39
|
|
|
37
40
|
```bash
|
|
41
|
+
# Launch the interactive wizard
|
|
42
|
+
npx @ai-coders/context
|
|
43
|
+
|
|
44
|
+
|
|
38
45
|
# Scaffold docs and agents into ./.context
|
|
39
46
|
npx @ai-coders/context init ./my-repo
|
|
40
47
|
|
|
@@ -45,7 +52,7 @@ npx @ai-coders/context init ./my-repo docs
|
|
|
45
52
|
npx @ai-coders/context init ./my-repo agents --output ./knowledge-base
|
|
46
53
|
|
|
47
54
|
# Fill docs and agents with the repo context (preview the first 3 updates)
|
|
48
|
-
npx @ai-coders/context fill ./my-repo --output ./.context --
|
|
55
|
+
npx @ai-coders/context fill ./my-repo --output ./.context --limit 3
|
|
49
56
|
|
|
50
57
|
# Draft a collaboration plan seeded with agent and doc touchpoints
|
|
51
58
|
npx @ai-coders/context plan release-readiness --output ./.context
|
|
@@ -54,6 +61,8 @@ npx @ai-coders/context plan release-readiness --output ./.context
|
|
|
54
61
|
npx @ai-coders/context plan release-readiness --output ./.context --fill --dry-run
|
|
55
62
|
```
|
|
56
63
|
|
|
64
|
+
> ℹ️ The CLI pings npm for fresh releases at startup. Set `AI_CONTEXT_DISABLE_UPDATE_CHECK=true` to skip the check.
|
|
65
|
+
|
|
57
66
|
After running the command, inspect the generated structure:
|
|
58
67
|
|
|
59
68
|
```
|
|
@@ -74,19 +83,27 @@ Customize the Markdown files to reflect your project’s specifics and commit th
|
|
|
74
83
|
|
|
75
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:
|
|
76
85
|
|
|
77
|
-
- Gathering repository context and locating `
|
|
86
|
+
- Gathering repository context and locating `agent-update`/`agent-fill` markers.
|
|
78
87
|
- Updating documentation sections while satisfying the YAML front matter criteria.
|
|
79
88
|
- Aligning agent playbooks with the refreshed docs and recording evidence for maintainers.
|
|
80
89
|
|
|
81
90
|
Share that prompt verbatim with your assistant to keep updates consistent across teams.
|
|
82
91
|
|
|
83
|
-
### Available Doc
|
|
92
|
+
### Available Doc Guides & Agent Types
|
|
84
93
|
|
|
85
|
-
|
|
94
|
+
The scaffold includes the following guides and playbooks out of the box:
|
|
86
95
|
|
|
87
96
|
- Docs: `project-overview`, `architecture`, `development-workflow`, `testing-strategy`, `glossary`, `data-flow`, `security`, `tooling`
|
|
88
97
|
- Agents: `code-reviewer`, `bug-fixer`, `feature-developer`, `refactoring-specialist`, `test-writer`, `documentation-writer`, `performance-optimizer`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `architect-specialist`
|
|
89
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
|
+
|
|
90
107
|
## 🛠 Commands
|
|
91
108
|
|
|
92
109
|
### `init`
|
|
@@ -101,17 +118,12 @@ Arguments:
|
|
|
101
118
|
|
|
102
119
|
Options:
|
|
103
120
|
-o, --output <dir> Output directory (default: ./.context)
|
|
104
|
-
--docs <keys...> Doc keys to scaffold (e.g., project-overview, security)
|
|
105
|
-
--agents <keys...> Agent types to scaffold (e.g., code-reviewer, feature-developer)
|
|
106
121
|
--exclude <patterns...> Glob patterns to skip during the scan
|
|
107
122
|
--include <patterns...> Glob patterns to explicitly include
|
|
108
123
|
-v, --verbose Print detailed progress information
|
|
109
124
|
-h, --help Display help for command
|
|
110
125
|
```
|
|
111
126
|
|
|
112
|
-
### `scaffold`
|
|
113
|
-
Alias for `init`. Use whichever verb fits your workflow.
|
|
114
|
-
|
|
115
127
|
### `fill`
|
|
116
128
|
Use an LLM to refresh scaffolded docs and agent playbooks automatically.
|
|
117
129
|
|
|
@@ -121,18 +133,15 @@ Usage: ai-context fill <repo-path>
|
|
|
121
133
|
Options:
|
|
122
134
|
-o, --output <dir> Scaffold directory containing docs/ and agents/ (default: ./.context)
|
|
123
135
|
-k, --api-key <key> API key for the selected LLM provider
|
|
124
|
-
-m, --model <model> LLM model to use (default:
|
|
125
|
-
-p, --provider <name> Provider (openrouter
|
|
126
|
-
--
|
|
127
|
-
--
|
|
128
|
-
--agents <keys...> Agent types to update (default: all)
|
|
129
|
-
--dry-run Preview changes without writing files
|
|
130
|
-
--all Process every Markdown file even if no TODO markers remain
|
|
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
|
|
139
|
+
--prompt <file> Instruction prompt to follow (optional; uses bundled instructions when omitted)
|
|
131
140
|
--limit <number> Maximum number of files to update in one run
|
|
132
141
|
-h, --help Display help for command
|
|
133
142
|
```
|
|
134
143
|
|
|
135
|
-
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.
|
|
136
145
|
|
|
137
146
|
### `plan`
|
|
138
147
|
Create a collaboration plan that links documentation guides and agent playbooks, or fill an existing plan with LLM assistance.
|
|
@@ -144,16 +153,14 @@ Options:
|
|
|
144
153
|
-o, --output <dir> Scaffold directory containing docs/ and agents/ (default: ./.context)
|
|
145
154
|
--title <title> Custom title for the plan document
|
|
146
155
|
--summary <text> Seed the plan with a short summary or goal statement
|
|
147
|
-
--agents <types...> Agent playbooks to highlight (default: all)
|
|
148
|
-
--docs <keys...> Documentation guides to reference (default: all)
|
|
149
156
|
-f, --force Overwrite the plan if it already exists (scaffold mode)
|
|
150
157
|
--fill Use an LLM to fill or update the plan instead of scaffolding
|
|
151
158
|
-r, --repo <path> Repository root to summarize for additional context (fill mode)
|
|
152
159
|
-k, --api-key <key> API key for the selected LLM provider (fill mode)
|
|
153
|
-
-m, --model <model> LLM model to use (default: x-ai/grok-4-fast
|
|
154
|
-
-p, --provider <name> Provider (openrouter
|
|
155
|
-
--base-url <url> Custom base URL for
|
|
156
|
-
--prompt <file> Instruction prompt to follow (
|
|
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
|
|
163
|
+
--prompt <file> Instruction prompt to follow (optional; uses bundled instructions when omitted)
|
|
157
164
|
--dry-run Preview changes without writing files
|
|
158
165
|
--include <patterns...> Glob patterns to include during repository analysis
|
|
159
166
|
--exclude <patterns...> Glob patterns to exclude from repository analysis
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/agents.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAW9E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAgentFilesByTypes = getAgentFilesByTypes;
|
|
4
|
+
const agentTypes_1 = require("../../generators/agents/agentTypes");
|
|
5
|
+
function getAgentFilesByTypes(types) {
|
|
6
|
+
if (!types || types.length === 0) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const allowed = new Set(agentTypes_1.AGENT_TYPES);
|
|
10
|
+
const files = types
|
|
11
|
+
.filter(type => allowed.has(type))
|
|
12
|
+
.map(type => `${type}.md`);
|
|
13
|
+
return files.length ? new Set(files) : undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/commands/shared/agents.ts"],"names":[],"mappings":";;AAEA,oDAWC;AAbD,mEAAiE;AAEjE,SAAgB,oBAAoB,CAAC,KAAgB;IACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,wBAAW,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK;SAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAkC,CAAC,CAAC;SAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SelectionParseResult {
|
|
2
|
+
selected?: string[];
|
|
3
|
+
invalid: string[];
|
|
4
|
+
provided: boolean;
|
|
5
|
+
explicitNone: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function parseDocSelection(input: unknown): SelectionParseResult;
|
|
8
|
+
export declare function parseAgentSelection(input: unknown): SelectionParseResult;
|
|
9
|
+
export declare function shouldGenerateDocs(resolvedType: 'docs' | 'agents' | 'both', selection: SelectionParseResult): boolean;
|
|
10
|
+
export declare function shouldGenerateAgents(resolvedType: 'docs' | 'agents' | 'both', selection: SelectionParseResult): boolean;
|
|
11
|
+
export declare function determineScaffoldType(docSelection?: string[], agentSelection?: string[]): 'docs' | 'agents' | 'both';
|
|
12
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/selection.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAmBtE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAoBxE;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAkBrH;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAkBvH;AAED,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAOpH"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDocSelection = parseDocSelection;
|
|
4
|
+
exports.parseAgentSelection = parseAgentSelection;
|
|
5
|
+
exports.shouldGenerateDocs = shouldGenerateDocs;
|
|
6
|
+
exports.shouldGenerateAgents = shouldGenerateAgents;
|
|
7
|
+
exports.determineScaffoldType = determineScaffoldType;
|
|
8
|
+
const guideRegistry_1 = require("../../generators/documentation/guideRegistry");
|
|
9
|
+
const agentTypes_1 = require("../../generators/agents/agentTypes");
|
|
10
|
+
function parseDocSelection(input) {
|
|
11
|
+
if (input === undefined) {
|
|
12
|
+
return { selected: undefined, invalid: [], provided: false, explicitNone: false };
|
|
13
|
+
}
|
|
14
|
+
if (Array.isArray(input) && input.length === 0) {
|
|
15
|
+
return { selected: [], invalid: [], provided: true, explicitNone: true };
|
|
16
|
+
}
|
|
17
|
+
const values = toStringArray(input);
|
|
18
|
+
const normalized = values.map(value => value.toLowerCase().replace(/\.md$/, ''));
|
|
19
|
+
const valid = Array.from(new Set(normalized.filter(key => guideRegistry_1.DOCUMENT_GUIDE_KEYS.includes(key))));
|
|
20
|
+
const invalid = normalized.filter(key => !guideRegistry_1.DOCUMENT_GUIDE_KEYS.includes(key));
|
|
21
|
+
if (values.length > 0 && valid.length === 0 && invalid.length > 0) {
|
|
22
|
+
return { selected: undefined, invalid, provided: true, explicitNone: false };
|
|
23
|
+
}
|
|
24
|
+
return { selected: valid.length > 0 ? valid : undefined, invalid, provided: true, explicitNone: false };
|
|
25
|
+
}
|
|
26
|
+
function parseAgentSelection(input) {
|
|
27
|
+
if (input === undefined) {
|
|
28
|
+
return { selected: undefined, invalid: [], provided: false, explicitNone: false };
|
|
29
|
+
}
|
|
30
|
+
if (Array.isArray(input) && input.length === 0) {
|
|
31
|
+
return { selected: [], invalid: [], provided: true, explicitNone: true };
|
|
32
|
+
}
|
|
33
|
+
const values = toStringArray(input);
|
|
34
|
+
const normalized = values.map(value => value.toLowerCase().replace(/\.md$/, ''));
|
|
35
|
+
const allowed = new Set(agentTypes_1.AGENT_TYPES);
|
|
36
|
+
const valid = Array.from(new Set(normalized.filter(value => allowed.has(value))));
|
|
37
|
+
const invalid = normalized.filter(value => !allowed.has(value));
|
|
38
|
+
if (values.length > 0 && valid.length === 0 && invalid.length > 0) {
|
|
39
|
+
return { selected: undefined, invalid, provided: true, explicitNone: false };
|
|
40
|
+
}
|
|
41
|
+
return { selected: valid.length > 0 ? valid : undefined, invalid, provided: true, explicitNone: false };
|
|
42
|
+
}
|
|
43
|
+
function shouldGenerateDocs(resolvedType, selection) {
|
|
44
|
+
if (selection.explicitNone) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
if (resolvedType === 'agents') {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (!selection.provided) {
|
|
51
|
+
return resolvedType === 'docs' || resolvedType === 'both';
|
|
52
|
+
}
|
|
53
|
+
if (selection.selected && selection.selected.length === 0) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return resolvedType === 'docs' || resolvedType === 'both';
|
|
57
|
+
}
|
|
58
|
+
function shouldGenerateAgents(resolvedType, selection) {
|
|
59
|
+
if (selection.explicitNone) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (resolvedType === 'docs') {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (!selection.provided) {
|
|
66
|
+
return resolvedType === 'agents' || resolvedType === 'both';
|
|
67
|
+
}
|
|
68
|
+
if (selection.selected && selection.selected.length === 0) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return resolvedType === 'agents' || resolvedType === 'both';
|
|
72
|
+
}
|
|
73
|
+
function determineScaffoldType(docSelection, agentSelection) {
|
|
74
|
+
const docsSelected = docSelection === undefined ? true : docSelection.length > 0;
|
|
75
|
+
const agentsSelected = agentSelection === undefined ? true : agentSelection.length > 0;
|
|
76
|
+
if (docsSelected && agentsSelected)
|
|
77
|
+
return 'both';
|
|
78
|
+
if (docsSelected)
|
|
79
|
+
return 'docs';
|
|
80
|
+
return 'agents';
|
|
81
|
+
}
|
|
82
|
+
function toStringArray(input) {
|
|
83
|
+
if (Array.isArray(input)) {
|
|
84
|
+
return input.map(item => item.toString().trim()).filter(Boolean);
|
|
85
|
+
}
|
|
86
|
+
if (input === null || input === undefined) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
return input
|
|
90
|
+
.toString()
|
|
91
|
+
.split(',')
|
|
92
|
+
.map(part => part.trim())
|
|
93
|
+
.filter(Boolean);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/commands/shared/selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -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) {
|