agents-reverse-engineer 0.4.0 → 0.4.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/integration/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/integration/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2kBtD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D"}
|
|
@@ -9,117 +9,38 @@
|
|
|
9
9
|
const COMMANDS = {
|
|
10
10
|
generate: {
|
|
11
11
|
description: 'Generate AI-friendly documentation for the entire codebase',
|
|
12
|
-
argumentHint: '[--budget N] [--dry-run]',
|
|
12
|
+
argumentHint: '[--budget N] [--dry-run] [--concurrency N] [--verbose] [--fail-fast]',
|
|
13
13
|
content: `Generate comprehensive documentation for this codebase using agents-reverse-engineer.
|
|
14
14
|
|
|
15
15
|
<execution>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
First, check if a resumable plan exists:
|
|
16
|
+
Run the agents-reverse-engineer generate command:
|
|
19
17
|
|
|
20
18
|
\`\`\`bash
|
|
21
|
-
|
|
22
|
-
\`\`\`
|
|
23
|
-
|
|
24
|
-
**If NO plan exists**: Run \`/are:discover --plan\` first to create the GENERATION-PLAN.md, then return here.
|
|
25
|
-
|
|
26
|
-
**If plan exists**: Continue to **Resume Execution** below.
|
|
27
|
-
|
|
28
|
-
## Resume Execution
|
|
29
|
-
|
|
30
|
-
Read \`.agents-reverse-engineer/GENERATION-PLAN.md\` and find unchecked tasks (\`- [ ]\`).
|
|
31
|
-
|
|
32
|
-
### For Each Unchecked File Task:
|
|
33
|
-
|
|
34
|
-
1. **Spawn ONE subagent PER FILE** (Task tool with model="sonnet") to:
|
|
35
|
-
- Read the source file
|
|
36
|
-
- Generate summary following guidelines below
|
|
37
|
-
- Write the .sum file using the Write tool
|
|
38
|
-
- **VERIFY**: Read back the .sum file to confirm it was written correctly
|
|
39
|
-
- Report success/failure
|
|
40
|
-
|
|
41
|
-
2. **Mark complete** in the plan file: change \`- [ ]\` to \`- [x]\` (only after verification)
|
|
42
|
-
|
|
43
|
-
3. **Parallel execution**: Spawn all file tasks in parallel (one agent per file) for maximum efficiency and easy resumption
|
|
44
|
-
|
|
45
|
-
### Subagent Prompt Template:
|
|
46
|
-
|
|
47
|
-
\`\`\`
|
|
48
|
-
Analyze and document this file:
|
|
49
|
-
1. Compute content hash: sha256sum <file_path> | cut -d' ' -f1
|
|
50
|
-
2. Read: <file_path>
|
|
51
|
-
3. Generate .sum content following the format below (include the content_hash)
|
|
52
|
-
4. Write to: <file_path>.sum
|
|
53
|
-
5. Verify: Read back the .sum file to confirm success
|
|
54
|
-
6. Report: "SUCCESS: <file_path>.sum created" or "FAILED: <reason>"
|
|
19
|
+
npx agents-reverse-engineer@latest generate $ARGUMENTS
|
|
55
20
|
\`\`\`
|
|
56
21
|
|
|
57
|
-
|
|
22
|
+
This executes a three-phase pipeline:
|
|
58
23
|
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
file_type: <generic|type|config|test|component|service|api|hook|model|schema>
|
|
62
|
-
generated_at: <ISO timestamp>
|
|
63
|
-
content_hash: <SHA-256 hash - compute with: sha256sum <file> | cut -d' ' -f1>
|
|
64
|
-
purpose: <1-2 sentence description of what this file does>
|
|
65
|
-
public_interface: [func1(), func2(), ClassName]
|
|
66
|
-
dependencies: [express, lodash, ./utils]
|
|
67
|
-
patterns: [singleton, factory, observer]
|
|
68
|
-
related_files: [./types.ts, ./utils.ts]
|
|
69
|
-
---
|
|
24
|
+
1. **Discovery & Planning**: Walks the directory tree, applies filters (gitignore, vendor, binary, custom), detects file types, and creates a generation plan with token budget tracking.
|
|
70
25
|
|
|
71
|
-
|
|
72
|
-
- What the code does and how it works
|
|
73
|
-
- Key implementation details
|
|
74
|
-
- Important usage patterns
|
|
75
|
-
- Notable edge cases or gotchas>
|
|
76
|
-
\`\`\`
|
|
26
|
+
2. **File Analysis** (concurrent): Analyzes each source file via AI and writes \`.sum\` summary files with YAML frontmatter (\`content_hash\`, \`file_type\`, \`purpose\`, \`public_interface\`, \`dependencies\`, \`patterns\`).
|
|
77
27
|
|
|
78
|
-
**
|
|
79
|
-
- \`
|
|
80
|
-
- \`
|
|
81
|
-
- \`
|
|
82
|
-
- \`patterns\`: Design patterns used (singleton, factory, etc.)
|
|
83
|
-
- \`related_files\`: Tightly coupled files (optional)
|
|
28
|
+
3. **Directory & Root Documents** (sequential):
|
|
29
|
+
- Generates \`AGENTS.md\` per directory in post-order traversal (deepest first, so child summaries feed into parents)
|
|
30
|
+
- Creates root documents: \`CLAUDE.md\`, \`ARCHITECTURE.md\` (if 20+ source files)
|
|
31
|
+
- Creates per-package documents at each manifest location (package.json, go.mod, Cargo.toml): \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`, \`CONCERNS.md\`
|
|
84
32
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
2. Read all .sum files in the directory
|
|
92
|
-
3. **Read AGENTS.md from any subdirectories** (already generated due to post-order)
|
|
93
|
-
4. Generate AGENTS.md with:
|
|
94
|
-
- Directory description synthesized from file summaries
|
|
95
|
-
- Files grouped by purpose (Types, Services, Utils, etc.)
|
|
96
|
-
- Subdirectories section listing child directories with descriptions
|
|
97
|
-
5. Mark the directory task complete in the plan
|
|
98
|
-
|
|
99
|
-
### After All Directories Complete:
|
|
100
|
-
|
|
101
|
-
Generate root documents:
|
|
102
|
-
|
|
103
|
-
1. **CLAUDE.md** - Synthesize all AGENTS.md into project overview
|
|
104
|
-
2. **ARCHITECTURE.md** - Document system architecture (if 20+ source files)
|
|
105
|
-
|
|
106
|
-
Generate per-package documents (at each directory containing package.json, requirements.txt, Cargo.toml, etc.):
|
|
107
|
-
|
|
108
|
-
1. **STACK.md** - Technology stack from manifest file
|
|
109
|
-
2. **STRUCTURE.md** - Codebase structure and organization
|
|
110
|
-
3. **CONVENTIONS.md** - Coding conventions and patterns
|
|
111
|
-
4. **TESTING.md** - Test setup and patterns
|
|
112
|
-
5. **INTEGRATIONS.md** - External services and APIs
|
|
113
|
-
|
|
114
|
-
In monorepos, these appear in each package directory (e.g., \`packages/api/STACK.md\`).
|
|
115
|
-
|
|
116
|
-
## Completion
|
|
117
|
-
|
|
118
|
-
After all tasks complete:
|
|
33
|
+
**Options:**
|
|
34
|
+
- \`--dry-run\`: Preview the plan without making AI calls
|
|
35
|
+
- \`--budget N\`: Override token budget
|
|
36
|
+
- \`--concurrency N\`: Control number of parallel AI calls
|
|
37
|
+
- \`--verbose\`: Show detailed task breakdown
|
|
38
|
+
- \`--fail-fast\`: Stop on first file analysis failure
|
|
119
39
|
|
|
120
|
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
40
|
+
After completion, summarize:
|
|
41
|
+
- Number of files analyzed and any failures
|
|
42
|
+
- Number of directories documented
|
|
43
|
+
- Root and per-package documents generated
|
|
123
44
|
</execution>`,
|
|
124
45
|
},
|
|
125
46
|
update: {
|
|
@@ -174,7 +95,7 @@ npx agents-reverse-engineer install
|
|
|
174
95
|
1. Run ONLY this exact command: \`npx agents-reverse-engineer@latest discover $ARGUMENTS\`
|
|
175
96
|
2. DO NOT add \`--plan\` unless user typed \`--plan\`
|
|
176
97
|
3. DO NOT add ANY flags the user did not explicitly type
|
|
177
|
-
4. If user typed nothing after
|
|
98
|
+
4. If user typed nothing after \`COMMAND_PREFIXdiscover\`, run with ZERO flags
|
|
178
99
|
|
|
179
100
|
\`\`\`bash
|
|
180
101
|
npx agents-reverse-engineer@latest discover $ARGUMENTS
|
|
@@ -194,7 +115,8 @@ Report number of files found.
|
|
|
194
115
|
1. **Plan file**: \`.agents-reverse-engineer/GENERATION-PLAN.md\`
|
|
195
116
|
2. **Summary files**: All \`*.sum\` files
|
|
196
117
|
3. **Directory docs**: All \`AGENTS.md\` files
|
|
197
|
-
4. **Root docs**: \`CLAUDE.md\`, \`ARCHITECTURE.md
|
|
118
|
+
4. **Root docs**: \`CLAUDE.md\`, \`ARCHITECTURE.md\`
|
|
119
|
+
5. **Per-package docs**: \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`, \`CONCERNS.md\`
|
|
198
120
|
|
|
199
121
|
## Dry Run (Preview)
|
|
200
122
|
|
|
@@ -204,7 +126,8 @@ First, show what would be deleted:
|
|
|
204
126
|
echo "=== Files to delete ===" && \\
|
|
205
127
|
find . -name "*.sum" -not -path "./node_modules/*" -not -path "./.git/*" 2>/dev/null && \\
|
|
206
128
|
find . -name "AGENTS.md" -not -path "./node_modules/*" -not -path "./.git/*" 2>/dev/null && \\
|
|
207
|
-
|
|
129
|
+
find . \\( -name "STACK.md" -o -name "STRUCTURE.md" -o -name "CONVENTIONS.md" -o -name "TESTING.md" -o -name "INTEGRATIONS.md" -o -name "CONCERNS.md" \\) -not -path "./node_modules/*" -not -path "./.git/*" 2>/dev/null && \\
|
|
130
|
+
ls -la CLAUDE.md ARCHITECTURE.md .agents-reverse-engineer/GENERATION-PLAN.md 2>/dev/null || true
|
|
208
131
|
\`\`\`
|
|
209
132
|
|
|
210
133
|
Report the count of files that would be deleted.
|
|
@@ -218,7 +141,8 @@ After confirming with the user (or if no --dry-run flag):
|
|
|
218
141
|
\`\`\`bash
|
|
219
142
|
find . -name "*.sum" -not -path "./node_modules/*" -not -path "./.git/*" -delete 2>/dev/null
|
|
220
143
|
find . -name "AGENTS.md" -not -path "./node_modules/*" -not -path "./.git/*" -delete 2>/dev/null
|
|
221
|
-
|
|
144
|
+
find . \\( -name "STACK.md" -o -name "STRUCTURE.md" -o -name "CONVENTIONS.md" -o -name "TESTING.md" -o -name "INTEGRATIONS.md" -o -name "CONCERNS.md" \\) -not -path "./node_modules/*" -not -path "./.git/*" -delete 2>/dev/null
|
|
145
|
+
rm -f CLAUDE.md ARCHITECTURE.md
|
|
222
146
|
rm -f .agents-reverse-engineer/GENERATION-PLAN.md
|
|
223
147
|
\`\`\`
|
|
224
148
|
|
|
@@ -226,9 +150,10 @@ Report:
|
|
|
226
150
|
- Number of .sum files deleted
|
|
227
151
|
- Number of AGENTS.md files deleted
|
|
228
152
|
- Root documents deleted
|
|
153
|
+
- Per-package documents deleted
|
|
229
154
|
- Plan file deleted
|
|
230
155
|
|
|
231
|
-
Suggest running
|
|
156
|
+
Suggest running \`COMMAND_PREFIXgenerate\` to start fresh.
|
|
232
157
|
</execution>`,
|
|
233
158
|
},
|
|
234
159
|
help: {
|
|
@@ -253,9 +178,8 @@ Output ONLY the reference content below. Do NOT add:
|
|
|
253
178
|
## Quick Start
|
|
254
179
|
|
|
255
180
|
1. \`COMMAND_PREFIXinit\` — Create configuration file
|
|
256
|
-
2. \`
|
|
257
|
-
3. \`
|
|
258
|
-
4. \`COMMAND_PREFIXupdate\` — Keep docs in sync after code changes
|
|
181
|
+
2. \`COMMAND_PREFIXgenerate\` — Generate documentation for the codebase
|
|
182
|
+
3. \`COMMAND_PREFIXupdate\` — Keep docs in sync after code changes
|
|
259
183
|
|
|
260
184
|
## Commands Reference
|
|
261
185
|
|
|
@@ -297,20 +221,18 @@ npx are discover ./src --show-excluded
|
|
|
297
221
|
### \`COMMAND_PREFIXgenerate\`
|
|
298
222
|
Generate comprehensive documentation for the codebase.
|
|
299
223
|
|
|
300
|
-
**Requires:** Run \`COMMAND_PREFIXdiscover --plan\` first to create \`GENERATION-PLAN.md\`.
|
|
301
|
-
|
|
302
224
|
**Options:**
|
|
303
225
|
| Flag | Description |
|
|
304
226
|
|------|-------------|
|
|
305
227
|
| \`--budget N\` | Override token budget (default: from config) |
|
|
306
228
|
| \`--dry-run\` | Show what would be generated without writing |
|
|
307
|
-
| \`--
|
|
308
|
-
| \`--
|
|
229
|
+
| \`--concurrency N\` | Control number of parallel AI calls |
|
|
230
|
+
| \`--fail-fast\` | Stop on first file analysis failure |
|
|
309
231
|
| \`--verbose, -v\` | Show detailed task breakdown |
|
|
310
232
|
| \`--quiet, -q\` | Suppress output except errors |
|
|
311
233
|
|
|
312
234
|
**Usage:**
|
|
313
|
-
- \`COMMAND_PREFIXgenerate\` — Generate docs
|
|
235
|
+
- \`COMMAND_PREFIXgenerate\` — Generate docs
|
|
314
236
|
- \`COMMAND_PREFIXgenerate --dry-run\` — Preview without writing
|
|
315
237
|
|
|
316
238
|
**CLI:**
|
|
@@ -318,16 +240,15 @@ Generate comprehensive documentation for the codebase.
|
|
|
318
240
|
npx are generate
|
|
319
241
|
npx are generate --dry-run
|
|
320
242
|
npx are generate --budget 50000
|
|
321
|
-
npx are generate --
|
|
243
|
+
npx are generate --concurrency 4
|
|
322
244
|
\`\`\`
|
|
323
245
|
|
|
324
246
|
**How it works:**
|
|
325
|
-
1.
|
|
326
|
-
2.
|
|
327
|
-
3.
|
|
328
|
-
4.
|
|
329
|
-
5. Creates
|
|
330
|
-
6. Creates per-package documents at each manifest location: \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`
|
|
247
|
+
1. Discovers files, applies filters, detects file types, and creates a generation plan
|
|
248
|
+
2. Analyzes each file via concurrent AI calls, writes \`.sum\` summary files
|
|
249
|
+
3. Generates \`AGENTS.md\` for each directory (post-order traversal)
|
|
250
|
+
4. Creates root documents: \`CLAUDE.md\`, \`ARCHITECTURE.md\` (if 20+ files)
|
|
251
|
+
5. Creates per-package documents at each manifest location: \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`, \`CONCERNS.md\`
|
|
331
252
|
|
|
332
253
|
---
|
|
333
254
|
|
|
@@ -369,7 +290,7 @@ Remove all generated documentation artifacts.
|
|
|
369
290
|
- All \`*.sum\` files
|
|
370
291
|
- All \`AGENTS.md\` files
|
|
371
292
|
- Root docs: \`CLAUDE.md\`, \`ARCHITECTURE.md\`
|
|
372
|
-
- Per-package docs: \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`
|
|
293
|
+
- Per-package docs: \`STACK.md\`, \`STRUCTURE.md\`, \`CONVENTIONS.md\`, \`TESTING.md\`, \`INTEGRATIONS.md\`, \`CONCERNS.md\`
|
|
373
294
|
|
|
374
295
|
**Usage:**
|
|
375
296
|
- \`COMMAND_PREFIXclean --dry-run\` — Preview deletions
|
|
@@ -476,6 +397,7 @@ Generated alongside \`package.json\`, \`requirements.txt\`, \`Cargo.toml\`, etc.
|
|
|
476
397
|
| \`CONVENTIONS.md\` | Coding conventions and patterns |
|
|
477
398
|
| \`TESTING.md\` | Test setup and patterns |
|
|
478
399
|
| \`INTEGRATIONS.md\` | External services and APIs |
|
|
400
|
+
| \`CONCERNS.md\` | Technical debt and known issues |
|
|
479
401
|
|
|
480
402
|
In monorepos, these appear in each package directory (e.g., \`packages/api/STACK.md\`).
|
|
481
403
|
|
|
@@ -484,7 +406,6 @@ In monorepos, these appear in each package directory (e.g., \`packages/api/STACK
|
|
|
484
406
|
**Initial documentation:**
|
|
485
407
|
\`\`\`
|
|
486
408
|
COMMAND_PREFIXinit
|
|
487
|
-
COMMAND_PREFIXdiscover --plan
|
|
488
409
|
COMMAND_PREFIXgenerate
|
|
489
410
|
\`\`\`
|
|
490
411
|
|
|
@@ -496,7 +417,6 @@ COMMAND_PREFIXupdate
|
|
|
496
417
|
**Full regeneration:**
|
|
497
418
|
\`\`\`
|
|
498
419
|
COMMAND_PREFIXclean
|
|
499
|
-
COMMAND_PREFIXdiscover --plan
|
|
500
420
|
COMMAND_PREFIXgenerate
|
|
501
421
|
\`\`\`
|
|
502
422
|
|
|
@@ -508,7 +428,6 @@ COMMAND_PREFIXgenerate --dry-run # Preview generation
|
|
|
508
428
|
|
|
509
429
|
## Tips
|
|
510
430
|
|
|
511
|
-
- **Resume generation**: If interrupted, run \`COMMAND_PREFIXgenerate\` again — it resumes from unchecked tasks in \`GENERATION-PLAN.md\`
|
|
512
431
|
- **Large codebases**: Use \`--budget N\` to limit token usage per run
|
|
513
432
|
- **Custom exclusions**: Edit \`.agents-reverse-engineer/config.yaml\` to skip files
|
|
514
433
|
- **Hook auto-update**: Install creates a session-end hook that auto-runs update
|
|
@@ -522,7 +441,7 @@ COMMAND_PREFIXgenerate --dry-run # Preview generation
|
|
|
522
441
|
};
|
|
523
442
|
const PLATFORM_CONFIGS = {
|
|
524
443
|
claude: {
|
|
525
|
-
commandPrefix: '/are
|
|
444
|
+
commandPrefix: '/are-',
|
|
526
445
|
pathPrefix: '.claude/skills/',
|
|
527
446
|
filenameSeparator: '.',
|
|
528
447
|
usesName: true,
|
|
@@ -541,16 +460,13 @@ const PLATFORM_CONFIGS = {
|
|
|
541
460
|
usesName: false,
|
|
542
461
|
},
|
|
543
462
|
};
|
|
544
|
-
function buildFrontmatter(platform, commandName, description
|
|
463
|
+
function buildFrontmatter(platform, commandName, description) {
|
|
545
464
|
const config = PLATFORM_CONFIGS[platform];
|
|
546
465
|
const lines = ['---'];
|
|
547
466
|
if (config.usesName) {
|
|
548
|
-
lines.push(`name: are
|
|
467
|
+
lines.push(`name: are-${commandName}`);
|
|
549
468
|
}
|
|
550
469
|
lines.push(`description: ${description}`);
|
|
551
|
-
if (argumentHint) {
|
|
552
|
-
lines.push(`argument-hint: "${argumentHint}"`);
|
|
553
|
-
}
|
|
554
470
|
if (config.extraFrontmatter) {
|
|
555
471
|
lines.push(config.extraFrontmatter);
|
|
556
472
|
}
|
|
@@ -598,7 +514,7 @@ function buildTemplate(platform, commandName, command) {
|
|
|
598
514
|
const path = platform === 'claude'
|
|
599
515
|
? `${config.pathPrefix}are-${commandName}/${filename}`
|
|
600
516
|
: `${config.pathPrefix}${filename}`;
|
|
601
|
-
const frontmatter = buildFrontmatter(platform, commandName, command.description
|
|
517
|
+
const frontmatter = buildFrontmatter(platform, commandName, command.description);
|
|
602
518
|
// Replace command prefix placeholder in help content
|
|
603
519
|
const content = command.content.replace(/COMMAND_PREFIX/g, config.commandPrefix);
|
|
604
520
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/integration/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE;QACR,WAAW,EAAE,4DAA4D;QACzE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/integration/templates.ts"],"names":[],"mappings":"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"}
|