@rryando/arcs 3.0.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 +448 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts +16 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -0
- package/dist/cli/arcs-orchestrate-caveman.js +109 -0
- package/dist/cli/arcs-orchestrate-caveman.js.map +1 -0
- package/dist/cli/arcs-orchestrate.d.ts +2 -0
- package/dist/cli/arcs-orchestrate.d.ts.map +1 -0
- package/dist/cli/arcs-orchestrate.js +431 -0
- package/dist/cli/arcs-orchestrate.js.map +1 -0
- package/dist/cli/arg-parser.d.ts +20 -0
- package/dist/cli/arg-parser.d.ts.map +1 -0
- package/dist/cli/arg-parser.js +216 -0
- package/dist/cli/arg-parser.js.map +1 -0
- package/dist/cli/brief-renderer.d.ts +32 -0
- package/dist/cli/brief-renderer.d.ts.map +1 -0
- package/dist/cli/brief-renderer.js +67 -0
- package/dist/cli/brief-renderer.js.map +1 -0
- package/dist/cli/bundle-installer.d.ts +77 -0
- package/dist/cli/bundle-installer.d.ts.map +1 -0
- package/dist/cli/bundle-installer.js +328 -0
- package/dist/cli/bundle-installer.js.map +1 -0
- package/dist/cli/command-registry.d.ts +52 -0
- package/dist/cli/command-registry.d.ts.map +1 -0
- package/dist/cli/command-registry.js +68 -0
- package/dist/cli/command-registry.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +2 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +307 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/brief.d.ts +2 -0
- package/dist/cli/commands/brief.d.ts.map +1 -0
- package/dist/cli/commands/brief.js +146 -0
- package/dist/cli/commands/brief.js.map +1 -0
- package/dist/cli/commands/bundle.d.ts +2 -0
- package/dist/cli/commands/bundle.d.ts.map +1 -0
- package/dist/cli/commands/bundle.js +90 -0
- package/dist/cli/commands/bundle.js.map +1 -0
- package/dist/cli/commands/dependency.d.ts +2 -0
- package/dist/cli/commands/dependency.d.ts.map +1 -0
- package/dist/cli/commands/dependency.js +260 -0
- package/dist/cli/commands/dependency.js.map +1 -0
- package/dist/cli/commands/diagnostics.d.ts +2 -0
- package/dist/cli/commands/diagnostics.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics.js +91 -0
- package/dist/cli/commands/diagnostics.js.map +1 -0
- package/dist/cli/commands/diagram.d.ts +2 -0
- package/dist/cli/commands/diagram.d.ts.map +1 -0
- package/dist/cli/commands/diagram.js +305 -0
- package/dist/cli/commands/diagram.js.map +1 -0
- package/dist/cli/commands/done.d.ts +2 -0
- package/dist/cli/commands/done.d.ts.map +1 -0
- package/dist/cli/commands/done.js +140 -0
- package/dist/cli/commands/done.js.map +1 -0
- package/dist/cli/commands/graph.d.ts +2 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +105 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/index.d.ts +21 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/knowledge-search.d.ts +2 -0
- package/dist/cli/commands/knowledge-search.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-search.js +43 -0
- package/dist/cli/commands/knowledge-search.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +2 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +416 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/loop.d.ts +2 -0
- package/dist/cli/commands/loop.d.ts.map +1 -0
- package/dist/cli/commands/loop.js +192 -0
- package/dist/cli/commands/loop.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +2 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +231 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/next.d.ts +2 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +116 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +340 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/project-updates.d.ts +2 -0
- package/dist/cli/commands/project-updates.d.ts.map +1 -0
- package/dist/cli/commands/project-updates.js +243 -0
- package/dist/cli/commands/project-updates.js.map +1 -0
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +362 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/remember.d.ts +2 -0
- package/dist/cli/commands/remember.d.ts.map +1 -0
- package/dist/cli/commands/remember.js +70 -0
- package/dist/cli/commands/remember.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +104 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/task.d.ts +6 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +361 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/utility.d.ts +9 -0
- package/dist/cli/commands/utility.d.ts.map +1 -0
- package/dist/cli/commands/utility.js +302 -0
- package/dist/cli/commands/utility.js.map +1 -0
- package/dist/cli/config.d.ts +42 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +134 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/dag-commands.d.ts +7 -0
- package/dist/cli/dag-commands.d.ts.map +1 -0
- package/dist/cli/dag-commands.js +152 -0
- package/dist/cli/dag-commands.js.map +1 -0
- package/dist/cli/diagram-renderer.d.ts +26 -0
- package/dist/cli/diagram-renderer.d.ts.map +1 -0
- package/dist/cli/diagram-renderer.js +118 -0
- package/dist/cli/diagram-renderer.js.map +1 -0
- package/dist/cli/help-generator.d.ts +21 -0
- package/dist/cli/help-generator.d.ts.map +1 -0
- package/dist/cli/help-generator.js +100 -0
- package/dist/cli/help-generator.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +95 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/instructions.d.ts +53 -0
- package/dist/cli/instructions.d.ts.map +1 -0
- package/dist/cli/instructions.js +219 -0
- package/dist/cli/instructions.js.map +1 -0
- package/dist/cli/lean-output.d.ts +15 -0
- package/dist/cli/lean-output.d.ts.map +1 -0
- package/dist/cli/lean-output.js +66 -0
- package/dist/cli/lean-output.js.map +1 -0
- package/dist/cli/md-renderer.d.ts +6 -0
- package/dist/cli/md-renderer.d.ts.map +1 -0
- package/dist/cli/md-renderer.js +396 -0
- package/dist/cli/md-renderer.js.map +1 -0
- package/dist/cli/output-envelope.d.ts +15 -0
- package/dist/cli/output-envelope.d.ts.map +1 -0
- package/dist/cli/output-envelope.js +61 -0
- package/dist/cli/output-envelope.js.map +1 -0
- package/dist/cli/setup.d.ts +11 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +415 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/status-dashboard.d.ts +5 -0
- package/dist/cli/status-dashboard.d.ts.map +1 -0
- package/dist/cli/status-dashboard.js +248 -0
- package/dist/cli/status-dashboard.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/retrieval/bm25.d.ts +23 -0
- package/dist/retrieval/bm25.d.ts.map +1 -0
- package/dist/retrieval/bm25.js +92 -0
- package/dist/retrieval/bm25.js.map +1 -0
- package/dist/retrieval/cross-project-search.d.ts +30 -0
- package/dist/retrieval/cross-project-search.d.ts.map +1 -0
- package/dist/retrieval/cross-project-search.js +109 -0
- package/dist/retrieval/cross-project-search.js.map +1 -0
- package/dist/retrieval/graph-builder.d.ts +6 -0
- package/dist/retrieval/graph-builder.d.ts.map +1 -0
- package/dist/retrieval/graph-builder.js +196 -0
- package/dist/retrieval/graph-builder.js.map +1 -0
- package/dist/retrieval/graph-cache.d.ts +15 -0
- package/dist/retrieval/graph-cache.d.ts.map +1 -0
- package/dist/retrieval/graph-cache.js +66 -0
- package/dist/retrieval/graph-cache.js.map +1 -0
- package/dist/retrieval/graph-invalidate.d.ts +18 -0
- package/dist/retrieval/graph-invalidate.d.ts.map +1 -0
- package/dist/retrieval/graph-invalidate.js +23 -0
- package/dist/retrieval/graph-invalidate.js.map +1 -0
- package/dist/retrieval/graph-retrieval.d.ts +24 -0
- package/dist/retrieval/graph-retrieval.d.ts.map +1 -0
- package/dist/retrieval/graph-retrieval.js +165 -0
- package/dist/retrieval/graph-retrieval.js.map +1 -0
- package/dist/retrieval/graph-traverse.d.ts +3 -0
- package/dist/retrieval/graph-traverse.d.ts.map +1 -0
- package/dist/retrieval/graph-traverse.js +53 -0
- package/dist/retrieval/graph-traverse.js.map +1 -0
- package/dist/retrieval/graph-types.d.ts +37 -0
- package/dist/retrieval/graph-types.d.ts.map +1 -0
- package/dist/retrieval/graph-types.js +12 -0
- package/dist/retrieval/graph-types.js.map +1 -0
- package/dist/retrieval/index-builder.d.ts +21 -0
- package/dist/retrieval/index-builder.d.ts.map +1 -0
- package/dist/retrieval/index-builder.js +94 -0
- package/dist/retrieval/index-builder.js.map +1 -0
- package/dist/retrieval/knowledge-selection.d.ts +7 -0
- package/dist/retrieval/knowledge-selection.d.ts.map +1 -0
- package/dist/retrieval/knowledge-selection.js +80 -0
- package/dist/retrieval/knowledge-selection.js.map +1 -0
- package/dist/retrieval/task-scoped.d.ts +23 -0
- package/dist/retrieval/task-scoped.d.ts.map +1 -0
- package/dist/retrieval/task-scoped.js +51 -0
- package/dist/retrieval/task-scoped.js.map +1 -0
- package/dist/utils/content-assembly.d.ts +44 -0
- package/dist/utils/content-assembly.d.ts.map +1 -0
- package/dist/utils/content-assembly.js +101 -0
- package/dist/utils/content-assembly.js.map +1 -0
- package/dist/utils/dag.d.ts +28 -0
- package/dist/utils/dag.d.ts.map +1 -0
- package/dist/utils/dag.js +68 -0
- package/dist/utils/dag.js.map +1 -0
- package/dist/utils/diagram-generator.d.ts +17 -0
- package/dist/utils/diagram-generator.d.ts.map +1 -0
- package/dist/utils/diagram-generator.js +38 -0
- package/dist/utils/diagram-generator.js.map +1 -0
- package/dist/utils/errors.d.ts +40 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +83 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-lock.d.ts +13 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +80 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/git.d.ts +14 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +56 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/graphify-knowledge.d.ts +6 -0
- package/dist/utils/graphify-knowledge.d.ts.map +1 -0
- package/dist/utils/graphify-knowledge.js +60 -0
- package/dist/utils/graphify-knowledge.js.map +1 -0
- package/dist/utils/graphify.d.ts +49 -0
- package/dist/utils/graphify.d.ts.map +1 -0
- package/dist/utils/graphify.js +306 -0
- package/dist/utils/graphify.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +723 -0
- package/dist/utils/json-schemas.d.ts.map +1 -0
- package/dist/utils/json-schemas.js +147 -0
- package/dist/utils/json-schemas.js.map +1 -0
- package/dist/utils/json.d.ts +15 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +39 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/knowledge-store.d.ts +49 -0
- package/dist/utils/knowledge-store.d.ts.map +1 -0
- package/dist/utils/knowledge-store.js +191 -0
- package/dist/utils/knowledge-store.js.map +1 -0
- package/dist/utils/loop-state.d.ts +51 -0
- package/dist/utils/loop-state.d.ts.map +1 -0
- package/dist/utils/loop-state.js +123 -0
- package/dist/utils/loop-state.js.map +1 -0
- package/dist/utils/paths.d.ts +16 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +66 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/plan-store.d.ts +46 -0
- package/dist/utils/plan-store.d.ts.map +1 -0
- package/dist/utils/plan-store.js +184 -0
- package/dist/utils/plan-store.js.map +1 -0
- package/dist/utils/project-documents.d.ts +20 -0
- package/dist/utils/project-documents.d.ts.map +1 -0
- package/dist/utils/project-documents.js +10 -0
- package/dist/utils/project-documents.js.map +1 -0
- package/dist/utils/project-memory.d.ts +16 -0
- package/dist/utils/project-memory.d.ts.map +1 -0
- package/dist/utils/project-memory.js +16 -0
- package/dist/utils/project-memory.js.map +1 -0
- package/dist/utils/project-resolver.d.ts +28 -0
- package/dist/utils/project-resolver.d.ts.map +1 -0
- package/dist/utils/project-resolver.js +119 -0
- package/dist/utils/project-resolver.js.map +1 -0
- package/dist/utils/quick-scan.d.ts +13 -0
- package/dist/utils/quick-scan.d.ts.map +1 -0
- package/dist/utils/quick-scan.js +156 -0
- package/dist/utils/quick-scan.js.map +1 -0
- package/dist/utils/schemas.d.ts +13 -0
- package/dist/utils/schemas.d.ts.map +1 -0
- package/dist/utils/schemas.js +6 -0
- package/dist/utils/schemas.js.map +1 -0
- package/dist/utils/slug.d.ts +10 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +18 -0
- package/dist/utils/slug.js.map +1 -0
- package/dist/utils/stdin.d.ts +6 -0
- package/dist/utils/stdin.d.ts.map +1 -0
- package/dist/utils/stdin.js +25 -0
- package/dist/utils/stdin.js.map +1 -0
- package/dist/utils/storage-utils.d.ts +48 -0
- package/dist/utils/storage-utils.d.ts.map +1 -0
- package/dist/utils/storage-utils.js +175 -0
- package/dist/utils/storage-utils.js.map +1 -0
- package/dist/utils/task-store.d.ts +49 -0
- package/dist/utils/task-store.d.ts.map +1 -0
- package/dist/utils/task-store.js +178 -0
- package/dist/utils/task-store.js.map +1 -0
- package/dist/utils/template.d.ts +15 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/utils/template.js +27 -0
- package/dist/utils/template.js.map +1 -0
- package/dist/utils/tool-response.d.ts +37 -0
- package/dist/utils/tool-response.d.ts.map +1 -0
- package/dist/utils/tool-response.js +44 -0
- package/dist/utils/tool-response.js.map +1 -0
- package/dist/utils/workflow-policy.d.ts +50 -0
- package/dist/utils/workflow-policy.d.ts.map +1 -0
- package/dist/utils/workflow-policy.js +111 -0
- package/dist/utils/workflow-policy.js.map +1 -0
- package/dist/utils/workspace-match.d.ts +35 -0
- package/dist/utils/workspace-match.d.ts.map +1 -0
- package/dist/utils/workspace-match.js +58 -0
- package/dist/utils/workspace-match.js.map +1 -0
- package/opencode/arcs/.opencode/plugins/arcs.js +348 -0
- package/opencode/arcs/bundle-runtime.json +68 -0
- package/opencode/arcs/manifest.json +279 -0
- package/opencode/arcs/prompts/arcs-docs.txt +124 -0
- package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +529 -0
- package/opencode/arcs/prompts/arcs-orchestrate.txt +437 -0
- package/opencode/arcs/prompts/code-reviewer.txt +55 -0
- package/opencode/arcs/prompts/devil-advocate.txt +121 -0
- package/opencode/arcs/prompts/docs-researcher.txt +54 -0
- package/opencode/arcs/prompts/oncall-ops.txt +54 -0
- package/opencode/arcs/prompts/qa-analyst.txt +54 -0
- package/opencode/arcs/prompts/software-engineer.txt +48 -0
- package/opencode/arcs/prompts/system-architect.txt +60 -0
- package/opencode/arcs/prompts/tech-architect.txt +54 -0
- package/opencode/arcs/skills/brainstorming/SKILL.md +144 -0
- package/opencode/arcs/skills/brainstorming/scripts/frame-template.html +214 -0
- package/opencode/arcs/skills/brainstorming/scripts/helper.js +88 -0
- package/opencode/arcs/skills/brainstorming/scripts/server.js +338 -0
- package/opencode/arcs/skills/brainstorming/scripts/start-server.sh +137 -0
- package/opencode/arcs/skills/brainstorming/scripts/stop-server.sh +31 -0
- package/opencode/arcs/skills/brainstorming/spec-document-reviewer-prompt.md +50 -0
- package/opencode/arcs/skills/brainstorming/visual-companion.md +277 -0
- package/opencode/arcs/skills/caveman-commit/SKILL.md +51 -0
- package/opencode/arcs/skills/code-agent/SKILL.md +58 -0
- package/opencode/arcs/skills/deep-pr-review/SKILL.md +191 -0
- package/opencode/arcs/skills/deep-pr-review/graphify-diff.md +102 -0
- package/opencode/arcs/skills/deep-pr-review/review-template.md +69 -0
- package/opencode/arcs/skills/executing-plans/SKILL.md +91 -0
- package/opencode/arcs/skills/init-project/SKILL.md +150 -0
- package/opencode/arcs/skills/quick-dev/SKILL.md +47 -0
- package/opencode/arcs/skills/requesting-code-review/SKILL.md +47 -0
- package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +179 -0
- package/opencode/arcs/skills/subagent-driven-development/SKILL.md +162 -0
- package/opencode/arcs/skills/subagent-driven-development/code-quality-reviewer-prompt.md +53 -0
- package/opencode/arcs/skills/subagent-driven-development/implementer-prompt.md +148 -0
- package/opencode/arcs/skills/subagent-driven-development/spec-reviewer-prompt.md +85 -0
- package/opencode/arcs/skills/systematic-debugging/SKILL.md +174 -0
- package/opencode/arcs/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/opencode/arcs/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/opencode/arcs/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/opencode/arcs/skills/systematic-debugging/find-polluter.sh +63 -0
- package/opencode/arcs/skills/systematic-debugging/phases-reference.md +168 -0
- package/opencode/arcs/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/opencode/arcs/skills/test-driven-development/SKILL.md +72 -0
- package/opencode/arcs/skills/test-driven-development/tdd-rationalizations-and-examples.md +157 -0
- package/opencode/arcs/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/opencode/arcs/skills/to-diagram/SKILL.md +235 -0
- package/opencode/arcs/skills/to-diagram/scripts/manage-diagram.mjs +963 -0
- package/opencode/arcs/skills/writing-plans/SKILL.md +179 -0
- package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +52 -0
- package/package.json +60 -0
- package/scripts/arcs-cli.mjs +45 -0
- package/skills/explore-dag.md +57 -0
- package/skills/init-project.md +105 -0
- package/skills/orchestrate.md +94 -0
- package/skills/update-docs.md +72 -0
- package/templates/dependency.md.tmpl +9 -0
- package/templates/knowledge.md.tmpl +15 -0
- package/templates/project-meta.json.tmpl +13 -0
- package/templates/project.md.tmpl +11 -0
- package/templates/task.md.tmpl +9 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# GitHub Review Body Template
|
|
2
|
+
|
|
3
|
+
Used as the `body` field of `gh api repos/{owner}/{repo}/pulls/{pull_number}/reviews` when posting. Inline comments live in the `comments[]` array; this is the top-level summary.
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
## Deep PR Review
|
|
9
|
+
|
|
10
|
+
**Scope:** <N files, +X/-Y LOC, modules: <list>>
|
|
11
|
+
**Rubric:** <activated dimensions> — others cleared (not applicable)
|
|
12
|
+
**Posting mode:** <1-Critical-only | 2-Critical+actionable | 3-All | 4-Summary>
|
|
13
|
+
|
|
14
|
+
### Summary
|
|
15
|
+
<1-3 sentences: overall shape of the PR, biggest concern, what's well done>
|
|
16
|
+
|
|
17
|
+
### Findings
|
|
18
|
+
- 🔴 <count> bug(s)
|
|
19
|
+
- 🟠 <count> risk(s)
|
|
20
|
+
- 🟡 <count> suggestion(s)
|
|
21
|
+
- 🔵 <count> nit(s)
|
|
22
|
+
- ❓ <count> question(s)
|
|
23
|
+
|
|
24
|
+
<inline comments below this body provide line-level detail>
|
|
25
|
+
|
|
26
|
+
### Architectural / Performance Handoffs
|
|
27
|
+
<only if any; otherwise omit section>
|
|
28
|
+
- [architecture-review] <reason — e.g. crosses 3 modules, touches god node X>
|
|
29
|
+
- [performance-diagnosis] <reason — e.g. new query in render path>
|
|
30
|
+
|
|
31
|
+
### Citations Used
|
|
32
|
+
- AGENTS.md §<section> — <what was checked>
|
|
33
|
+
- knowledge/<id> — <what was checked>
|
|
34
|
+
- graphify — <observations, if run>
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
<!-- arcs:deep-review:meta version=1 commit=<HEAD_SHA> rubric=<activated> mode=<posting-mode> -->
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Field rules
|
|
41
|
+
|
|
42
|
+
- **Posting mode** field is informational for the author — they see what severity threshold was applied
|
|
43
|
+
- Findings counts are **as posted**, not as found. Mode 1 with 4 nits found shows `🔵 0 nit(s)` — those were dropped
|
|
44
|
+
- Architectural / Performance Handoffs section is omitted entirely if no handoffs (don't show empty headings)
|
|
45
|
+
- The trailing HTML comment is mandatory — used by re-review detection to find prior AI reviews
|
|
46
|
+
|
|
47
|
+
## Inline comment template (per finding)
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
<severity-emoji> <severity>: <one-line problem>. <one-line fix>.
|
|
51
|
+
|
|
52
|
+
<optional 1-2 sentences of why, only if not obvious from problem>
|
|
53
|
+
|
|
54
|
+
Citation: <AGENTS.md §x | knowledge/<id> | graphify | principle: <name>>
|
|
55
|
+
|
|
56
|
+
```suggestion
|
|
57
|
+
<replacement code — only for small line replacements>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
<!-- arcs:deep-review:<finding-id> -->
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Approve-with-comments override
|
|
64
|
+
|
|
65
|
+
If the user explicitly says "approve" / "lgtm" / "post approve":
|
|
66
|
+
- Set `event: "APPROVE"` on the review API call
|
|
67
|
+
- Top-level body must still list any 🟡 / 🔵 findings as advisory notes
|
|
68
|
+
- Append to body: `**Approved with <N> non-blocking suggestion(s).**`
|
|
69
|
+
- Never auto-elevate to APPROVE without explicit user phrase
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: executing-plans
|
|
3
|
+
description: Use when you have a written implementation plan to execute in a separate session with review checkpoints
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: executing-plans
|
|
7
|
+
|
|
8
|
+
## When
|
|
9
|
+
|
|
10
|
+
You have a written implementation plan to execute task-by-task with verification checkpoints.
|
|
11
|
+
|
|
12
|
+
**NOT for:**
|
|
13
|
+
- If subagents are available → use `subagent-driven-development` instead (parallel dispatch, two-stage review)
|
|
14
|
+
- If the task needs iterative self-correction without a structured plan → use `loop` instead
|
|
15
|
+
|
|
16
|
+
> CLI: `arcs --commands --json` for discovery. Mutating commands run directly — no token.
|
|
17
|
+
|
|
18
|
+
## Flow
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart TD
|
|
22
|
+
A[Load plan] --> B{Diagram exists?}
|
|
23
|
+
B -->|Yes| C[arcs diagram ready slug planId]
|
|
24
|
+
B -->|No| D[Read plan body for task list]
|
|
25
|
+
C --> E[Extract per-node metadata]
|
|
26
|
+
D --> E
|
|
27
|
+
E --> F{Concerns about plan?}
|
|
28
|
+
F -->|Yes| G[Raise with human — STOP]
|
|
29
|
+
F -->|No| H[Select next ready task]
|
|
30
|
+
H --> I[Transition task → in_progress]
|
|
31
|
+
I --> J[Execute steps exactly]
|
|
32
|
+
J --> K[Run verification command]
|
|
33
|
+
K --> L{Passes?}
|
|
34
|
+
L -->|No| M{Repeated failure?}
|
|
35
|
+
M -->|Yes| N[STOP — ask for help]
|
|
36
|
+
M -->|No| J
|
|
37
|
+
L -->|Yes| O[Transition task → done]
|
|
38
|
+
O --> P{More ready tasks?}
|
|
39
|
+
P -->|Yes| H
|
|
40
|
+
P -->|No| Q{All tasks done?}
|
|
41
|
+
Q -->|No| R[Re-scan: arcs diagram ready]
|
|
42
|
+
R --> P
|
|
43
|
+
Q -->|Yes| S[Use finishing-a-development-branch skill]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Diagram-First Task Selection
|
|
47
|
+
|
|
48
|
+
When plan has `.diagram.mmd`:
|
|
49
|
+
1. `arcs diagram ready <slug> <planId>` → executable nodes (deps all `:::done`)
|
|
50
|
+
2. Read per-node `%%` metadata: `node`, `skill`, `scope`, `files`, `acceptance`, `verify`
|
|
51
|
+
3. After each transition, re-scan for newly-unblocked nodes
|
|
52
|
+
4. If metadata incomplete → fall back to plan body for that task
|
|
53
|
+
|
|
54
|
+
**Transition requires both flags:** `arcs task transition <slug> <taskId> done --diagramNodeId=T001 --planId=<planId>`
|
|
55
|
+
|
|
56
|
+
## Sub-Agent Context
|
|
57
|
+
|
|
58
|
+
Include in sub-agent prompts:
|
|
59
|
+
```bash
|
|
60
|
+
arcs context <slug> --audience=implementer --lean --json
|
|
61
|
+
arcs search <slug> "<task-keywords>" --lean --json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Sub-agents MUST NOT edit `.mmd` files — orchestrator owns diagram updates.
|
|
65
|
+
|
|
66
|
+
## Review Checkpoint Criteria
|
|
67
|
+
|
|
68
|
+
**STOP executing immediately when:**
|
|
69
|
+
- Missing dependency or unclear instruction
|
|
70
|
+
- Verification fails repeatedly (2+ attempts)
|
|
71
|
+
- Plan has critical gaps preventing progress
|
|
72
|
+
- Fundamental approach needs rethinking
|
|
73
|
+
|
|
74
|
+
Ask for clarification rather than guessing. Don't force through blockers.
|
|
75
|
+
|
|
76
|
+
## Auto-Sync Triggers
|
|
77
|
+
|
|
78
|
+
Post-execution DAG sync fires automatically when:
|
|
79
|
+
- 3+ tasks transitioned this session
|
|
80
|
+
- New knowledge entries created from discoveries
|
|
81
|
+
- `lastSyncedAt` > 7 days ago
|
|
82
|
+
- Plan reached `done` status
|
|
83
|
+
|
|
84
|
+
## Constraints
|
|
85
|
+
|
|
86
|
+
- Review plan critically before starting — raise concerns first
|
|
87
|
+
- Follow plan steps exactly — don't improvise
|
|
88
|
+
- Never skip verifications
|
|
89
|
+
- Never start on main/master without explicit consent
|
|
90
|
+
- Reference sub-skills when plan specifies them
|
|
91
|
+
- Use `finishing-a-development-branch` after all tasks complete
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init-project
|
|
3
|
+
description: Use when initializing a new ARCS project — bootstrapping a repo into the DAG with metadata, docs, and structural knowledge entries. Covers gather → present summary → init → graphify ingestion → fan-out analysis across typed sub-agents.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: init-project
|
|
7
|
+
|
|
8
|
+
## When
|
|
9
|
+
|
|
10
|
+
User wants to track a new project, bootstrap documentation, or connect a repo to the ARCS DAG. Triggers: "new project", "track this repo", "add project X", "init <repo>".
|
|
11
|
+
|
|
12
|
+
> **Canonical orchestrator workflow:** `src/cli/arcs-orchestrate.ts` under `### INIT Workflow` — this skill mirrors that flow with full operational detail. If the two diverge, the orchestrator prompt wins.
|
|
13
|
+
|
|
14
|
+
## Flow
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
flowchart TD
|
|
18
|
+
classDef sub fill:#8b5cf6,color:#fff
|
|
19
|
+
|
|
20
|
+
A[Gather: name, description, repoUrl?, dependsOn?] --> B[arcs project list → conflict check]
|
|
21
|
+
B --> C[Present summary to user]
|
|
22
|
+
C -->|user confirms| D[arcs project init]
|
|
23
|
+
D --> E[arcs project update-doc × 4]
|
|
24
|
+
E --> F{graphify on PATH?}
|
|
25
|
+
F -->|yes| G[graphify update --force --no-cluster]
|
|
26
|
+
F -->|no| H[Skip graph step, log gap]
|
|
27
|
+
G --> G2[ingestGraph → ≤20 proposals]
|
|
28
|
+
G2 --> G3[graphify query / explain for enrichment]:::sub
|
|
29
|
+
H & G3 --> I[Fan out: system-architect + docs-researcher + tech-architect]:::sub
|
|
30
|
+
I --> J[Collect proposals → dedup → arcs knowledge create × N]
|
|
31
|
+
J --> K[Done]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## CLI Primer
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
arcs project init "Foo" --description="..." --path="$(pwd)" --json
|
|
38
|
+
```
|
|
39
|
+
Discovery: `arcs --commands --json`. Mutating commands run directly — no token.
|
|
40
|
+
|
|
41
|
+
## Constraints
|
|
42
|
+
|
|
43
|
+
- Do NOT read repo to infer name/description — gather from user
|
|
44
|
+
- Verify `dependsOn` targets exist via `arcs project list --json`
|
|
45
|
+
- `arcs project init` creates empty `plans/`, `knowledge/`, `tasks/` indexes — don't pre-populate
|
|
46
|
+
- Repo analysis is **fan-out across typed agents**, never a generic "analysis sub-agent" (see Agent Dispatch below)
|
|
47
|
+
- Never block INIT on graphify — it's optional. Skip cleanly if missing.
|
|
48
|
+
|
|
49
|
+
## Graphify Sub-Flow (DEFAULT: ON when binary present)
|
|
50
|
+
|
|
51
|
+
The orchestrator runs graphify directly during INIT to seed knowledge entries with structural evidence before any sub-agent reads code. This is the default path when `graphify` is on PATH; skip cleanly otherwise.
|
|
52
|
+
|
|
53
|
+
1. **Detect:** call `detectGraphify()` from `src/utils/graphify.ts`. If unavailable, log "graphify not on PATH; proceeding without graph signal" and skip steps 3–5.
|
|
54
|
+
2. **Trust the gitignore guarantee:** `runExtraction()` already auto-appends `graphify-out/` to `.gitignore` via `ensureGitignoreEntry`. Do NOT redundantly check or modify `.gitignore` from agents — running extraction is sufficient.
|
|
55
|
+
3. **Extract** (AST-only, no LLM API key required):
|
|
56
|
+
```bash
|
|
57
|
+
graphify update <workspacePath> --force --no-cluster
|
|
58
|
+
```
|
|
59
|
+
Produces `<workspacePath>/graphify-out/graph.json`.
|
|
60
|
+
4. **Ingest:** call internal `ingestGraph(graphJsonPath, slug)` → up to 20 `KnowledgeProposal` records (test files filtered):
|
|
61
|
+
- 8 god nodes (`kind=module`, top 5% degree)
|
|
62
|
+
- 8 architecture clusters (`kind=architecture`, by community or directory grouping)
|
|
63
|
+
- 5 cross-module couplings (`kind=gotcha`, high-degree links across top-level dirs)
|
|
64
|
+
5. **Enrich** with read-only graph queries (sub-agents may run these):
|
|
65
|
+
- `graphify query "entry points and main commands" --graph graphify-out/graph.json --budget 2000` → seeds for "key files" reference entries
|
|
66
|
+
- `graphify query "core data flow" --graph graphify-out/graph.json --budget 2000` → seeds for "core modules" entries
|
|
67
|
+
- `graphify explain "<godNodeLabel>" --graph graphify-out/graph.json` → plain-language summary for module entry bodies
|
|
68
|
+
- `graphify affected "<critical-symbol>" --graph graphify-out/graph.json --depth 2` → reverse-impact map for high-risk modules
|
|
69
|
+
- `graphify path "<A>" "<B>" --graph graphify-out/graph.json` → shortest dependency path for architecture entries
|
|
70
|
+
6. **Hand to typed agents:** the proposals + query results go to the sub-agents listed in **Agent Dispatch** below; they merge graph evidence with code reading and return finalized knowledge entries.
|
|
71
|
+
7. **Write** the entries directly: `arcs batch --file=ops.json` for one batched invocation, or repeated `arcs knowledge create` per entry.
|
|
72
|
+
|
|
73
|
+
## Content Guidelines
|
|
74
|
+
|
|
75
|
+
| Doc | Format |
|
|
76
|
+
|-----|--------|
|
|
77
|
+
| `overview.md` | 2-3 sentence summary + goals |
|
|
78
|
+
| `tasks.md` | `[ ]` backlog / `[/]` in-progress / `[x]` done |
|
|
79
|
+
| `dependencies.md` | Upstream + downstream sections |
|
|
80
|
+
| `knowledge.md` | High-level context + pointers to structured entries |
|
|
81
|
+
|
|
82
|
+
Update via `arcs project update-doc <slug> <doc> --content="..."`.
|
|
83
|
+
|
|
84
|
+
## Agent Dispatch (named typed agents — DO NOT default to a generic analysis agent)
|
|
85
|
+
|
|
86
|
+
| Sub-agent | Owns | Knowledge kinds it produces |
|
|
87
|
+
|-----------|------|----------------------------|
|
|
88
|
+
| `system-architect` | Module boundaries, clusters, dependency direction | `architecture`, `module` |
|
|
89
|
+
| `docs-researcher` | Tech stack, third-party libraries, key files, features | `reference`, `feature` |
|
|
90
|
+
| `tech-architect` | Cross-module couplings, structural gotchas, lessons | `gotcha`, `lesson` |
|
|
91
|
+
| `qa-analyst` (optional) | Coding-style + convention scan from existing code | `pattern` |
|
|
92
|
+
|
|
93
|
+
Dispatch in parallel — load `dispatching-parallel-agents`. Each agent receives:
|
|
94
|
+
- The relevant `KnowledgeProposal` records from `ingestGraph` (so they don't rediscover what graphify already found)
|
|
95
|
+
- Targeted graphify queries for evidence (e.g., `graphify explain` output for the modules they own)
|
|
96
|
+
- Explicit scope (which files / which kinds to produce)
|
|
97
|
+
|
|
98
|
+
Each agent returns finalized proposals: `{title, kind, summary, keywords, sourceFiles, body}`. The orchestrator dedups, then writes the entries directly via `arcs knowledge create` (or `arcs batch`).
|
|
99
|
+
|
|
100
|
+
## Knowledge Categories for Analysis Sub-Agents
|
|
101
|
+
|
|
102
|
+
| Category | Kind | What to discover | Primary agent |
|
|
103
|
+
|----------|------|------------------|---------------|
|
|
104
|
+
| tech stack | `architecture` | Languages, frameworks, runtimes, build tools, versions | `docs-researcher` |
|
|
105
|
+
| key files | `reference` | Entry points, config files, main modules, purposes | `docs-researcher` (use `graphify query "entry points"`) |
|
|
106
|
+
| code patterns | `pattern` | Recurring design patterns, abstractions, error handling | `qa-analyst` or `system-architect` |
|
|
107
|
+
| coding style | `pattern` | Formatting, linting, import ordering, file organization | `qa-analyst` |
|
|
108
|
+
| core modules | `module` | Core modules / shared functions — what, where, interconnections | `system-architect` (god nodes from graphify) |
|
|
109
|
+
| external services | `module` | APIs, databases, message queues the project interacts with | `docs-researcher` |
|
|
110
|
+
| third-party libraries | `reference` | Key dependencies and why they are used | `docs-researcher` |
|
|
111
|
+
| features | `feature` | Major user-facing or system-facing features | `docs-researcher` |
|
|
112
|
+
| cross-module couplings | `gotcha` | Hot edges between modules surfaced by graphify | `tech-architect` (auto from `ingestGraph`) |
|
|
113
|
+
| architecture clusters | `architecture` | Community / directory groupings from graphify | `system-architect` (auto from `ingestGraph`) |
|
|
114
|
+
|
|
115
|
+
## Worked Example
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# 1. Conflict check
|
|
119
|
+
arcs project list --json
|
|
120
|
+
|
|
121
|
+
# 2. Present summary to user; on confirmation, init
|
|
122
|
+
arcs project init "Foo" --description="Foo CLI tool" --path="$(pwd)" --json
|
|
123
|
+
|
|
124
|
+
# 3. Update docs
|
|
125
|
+
arcs project update-doc foo overview --content="..." --json
|
|
126
|
+
# ... repeat for tasks, dependencies, knowledge
|
|
127
|
+
|
|
128
|
+
# 4. Graphify (if available)
|
|
129
|
+
graphify update . --force --no-cluster
|
|
130
|
+
# ingestGraph produces proposals; enrich with graphify query/explain
|
|
131
|
+
|
|
132
|
+
# 5. Fan out typed agents (parallel)
|
|
133
|
+
# system-architect → architecture/module entries
|
|
134
|
+
# docs-researcher → reference/feature entries
|
|
135
|
+
# tech-architect → gotcha/lesson entries
|
|
136
|
+
|
|
137
|
+
# 6. Write knowledge entries directly
|
|
138
|
+
arcs knowledge create foo "Tech stack: TypeScript + Node 20" --kind=architecture --summary="..." --body="..." --json
|
|
139
|
+
# ... repeat per entry, or use arcs batch
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Exit Conditions
|
|
143
|
+
|
|
144
|
+
| Condition | Action |
|
|
145
|
+
|-----------|--------|
|
|
146
|
+
| Project already in DAG (slug collision) | Stop. Surface conflict; ask user to rename or use existing |
|
|
147
|
+
| User declines summary | Stop. No mutations performed |
|
|
148
|
+
| `graphify` missing | Continue without graph signal; sub-agents run with code reading only |
|
|
149
|
+
| `dependsOn` target missing | Stop. Ask user to init dependencies first or remove the link |
|
|
150
|
+
| Init succeeds but knowledge fan-out fails | Project exists in DAG; rerun knowledge phase later via SYNC |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quick-dev
|
|
3
|
+
description: Use when the task is fully bounded with no open decisions — rename, refactor, extract, multi-var/multi-file change, API shape already known, config nudge, copy update, trivial targeted bugfix
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: quick-dev
|
|
7
|
+
|
|
8
|
+
## When
|
|
9
|
+
|
|
10
|
+
Task is fully bounded — no open decisions, success criteria derivable without asking.
|
|
11
|
+
|
|
12
|
+
## Flow
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
flowchart TD
|
|
16
|
+
A[Orient: arcs brief --lean --json] --> K[Knowledge: arcs knowledge search slug keywords]
|
|
17
|
+
K --> B{Fully bounded?}
|
|
18
|
+
B -->|Yes| C[Execute change directly]
|
|
19
|
+
B -->|No| D[Escalate to code-agent or brainstorming]
|
|
20
|
+
C --> E[Verify: typecheck + lint + affected tests]
|
|
21
|
+
E --> F[Done — commit only when asked]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Phase 0: Knowledge Check
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
arcs knowledge search <slug> "<keywords>" --lean --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Check for patterns, gotchas, and lessons before implementing. Skip only if the change is purely mechanical (rename, config nudge).
|
|
31
|
+
|
|
32
|
+
## Behaviour
|
|
33
|
+
|
|
34
|
+
1. Orient with ARCS context + search if pattern-related
|
|
35
|
+
2. Execute directly — no planning doc, no brainstorming, no TDD ritual
|
|
36
|
+
3. Run focused verification (not full suite unless pervasive)
|
|
37
|
+
|
|
38
|
+
## Escalation
|
|
39
|
+
|
|
40
|
+
If hidden complexity surfaces mid-task — **pause immediately**, state the issue, offer to switch to `code-agent` or `brainstorming`. Do not silently expand scope.
|
|
41
|
+
|
|
42
|
+
If self-confidence drops below 80% per `confidence-gate` (open decision, unverified assumption, sibling pattern unclear), escalate to `code-agent` — `quick-dev` does not permit exploration loops; `code-agent` does.
|
|
43
|
+
|
|
44
|
+
## NOT for
|
|
45
|
+
|
|
46
|
+
- Tasks with open design decisions → `code-agent`
|
|
47
|
+
- New behaviour or UX changes → `brainstorming`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requesting-code-review
|
|
3
|
+
description: Use when completing tasks, implementing major features, or before merging to verify work meets requirements
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: requesting-code-review
|
|
7
|
+
|
|
8
|
+
## When
|
|
9
|
+
|
|
10
|
+
After completing a task, major feature, or before merge. Dispatch `arcs:code-reviewer` subagent.
|
|
11
|
+
|
|
12
|
+
## Flow
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
flowchart TD
|
|
16
|
+
A[Work complete] --> B[Get BASE_SHA and HEAD_SHA]
|
|
17
|
+
B --> C[Gather project conventions]
|
|
18
|
+
C --> D[Fill code-reviewer.md template]
|
|
19
|
+
D --> E[Dispatch arcs:code-reviewer subagent]
|
|
20
|
+
E --> F{Review results}
|
|
21
|
+
F -->|Critical| G[Fix immediately]
|
|
22
|
+
F -->|Important| H[Fix before proceeding]
|
|
23
|
+
F -->|Minor| I[Note for later]
|
|
24
|
+
G --> E
|
|
25
|
+
H --> E
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Template Placeholders
|
|
29
|
+
|
|
30
|
+
- `{WHAT_WAS_IMPLEMENTED}` — what you built
|
|
31
|
+
- `{PLAN_OR_REQUIREMENTS}` — what it should do
|
|
32
|
+
- `{BASE_SHA}` / `{HEAD_SHA}` — commit range
|
|
33
|
+
- `{PROJECT_CONVENTIONS}` — CLAUDE.md / linter configs / style guides
|
|
34
|
+
|
|
35
|
+
## When to Request
|
|
36
|
+
|
|
37
|
+
**Mandatory:** after each subagent task, after major features, before merge to main.
|
|
38
|
+
**Optional:** when stuck, before refactoring, after complex bugfix.
|
|
39
|
+
|
|
40
|
+
## Red Flags
|
|
41
|
+
|
|
42
|
+
- Never skip because "it's simple"
|
|
43
|
+
- Never ignore Critical issues
|
|
44
|
+
- Never proceed with unfixed Important issues
|
|
45
|
+
- Always include project conventions in reviewer context
|
|
46
|
+
|
|
47
|
+
See template at: `requesting-code-review/code-reviewer.md`
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Code Review Agent
|
|
2
|
+
|
|
3
|
+
You are reviewing code changes for production readiness. Write your findings like a thoughtful teammate, not a linter.
|
|
4
|
+
|
|
5
|
+
**Your task:**
|
|
6
|
+
1. Read the project conventions below **before judging anything**
|
|
7
|
+
2. Review {WHAT_WAS_IMPLEMENTED}
|
|
8
|
+
3. Compare against {PLAN_OR_REQUIREMENTS}
|
|
9
|
+
4. Check code quality, architecture, testing
|
|
10
|
+
5. Categorize issues by severity with inline diff anchors
|
|
11
|
+
6. Assess production readiness
|
|
12
|
+
|
|
13
|
+
## Project Conventions
|
|
14
|
+
|
|
15
|
+
{PROJECT_CONVENTIONS}
|
|
16
|
+
|
|
17
|
+
**Rule:** Never flag something as wrong if it matches the project's own established patterns.
|
|
18
|
+
|
|
19
|
+
## What Was Implemented
|
|
20
|
+
|
|
21
|
+
{DESCRIPTION}
|
|
22
|
+
|
|
23
|
+
## Requirements/Plan
|
|
24
|
+
|
|
25
|
+
{PLAN_REFERENCE}
|
|
26
|
+
|
|
27
|
+
## Git Range to Review
|
|
28
|
+
|
|
29
|
+
**Base:** {BASE_SHA}
|
|
30
|
+
**Head:** {HEAD_SHA}
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
git diff --stat {BASE_SHA}..{HEAD_SHA}
|
|
34
|
+
git diff {BASE_SHA}..{HEAD_SHA}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Review Checklist
|
|
38
|
+
|
|
39
|
+
**Project Conventions (check first):**
|
|
40
|
+
- Does the code follow naming, structure, and style patterns already established in this repo?
|
|
41
|
+
- Any deviation from the patterns documented in {PROJECT_CONVENTIONS}?
|
|
42
|
+
|
|
43
|
+
**Code Quality:**
|
|
44
|
+
- Clean separation of concerns?
|
|
45
|
+
- Proper error handling?
|
|
46
|
+
- Type safety (if applicable)?
|
|
47
|
+
- DRY principle followed?
|
|
48
|
+
- Edge cases handled?
|
|
49
|
+
|
|
50
|
+
**Architecture:**
|
|
51
|
+
- Sound design decisions?
|
|
52
|
+
- Scalability considerations?
|
|
53
|
+
- Performance implications?
|
|
54
|
+
- Security concerns?
|
|
55
|
+
|
|
56
|
+
**Testing:**
|
|
57
|
+
- Tests actually test logic (not mocks)?
|
|
58
|
+
- Edge cases covered?
|
|
59
|
+
- Integration tests where needed?
|
|
60
|
+
- All tests passing?
|
|
61
|
+
|
|
62
|
+
**Requirements:**
|
|
63
|
+
- All plan requirements met?
|
|
64
|
+
- Implementation matches spec?
|
|
65
|
+
- No scope creep?
|
|
66
|
+
- Breaking changes documented?
|
|
67
|
+
|
|
68
|
+
**Production Readiness:**
|
|
69
|
+
- Migration strategy (if schema changes)?
|
|
70
|
+
- Backward compatibility considered?
|
|
71
|
+
- Documentation complete?
|
|
72
|
+
- No obvious bugs?
|
|
73
|
+
|
|
74
|
+
## Output Format
|
|
75
|
+
|
|
76
|
+
### Strengths
|
|
77
|
+
[What's well done? Be specific. Sound like a colleague giving genuine praise, not a form response.]
|
|
78
|
+
|
|
79
|
+
### Issues
|
|
80
|
+
|
|
81
|
+
All issues must include a **file:line anchor** pointing to the specific diff line. Write in a collegial tone — direct but not harsh.
|
|
82
|
+
|
|
83
|
+
#### Critical (Must Fix)
|
|
84
|
+
[Bugs, security issues, data loss risks, broken functionality]
|
|
85
|
+
|
|
86
|
+
#### Important (Should Fix)
|
|
87
|
+
[Architecture problems, missing features, poor error handling, test gaps]
|
|
88
|
+
|
|
89
|
+
#### Minor (Nice to Have)
|
|
90
|
+
[Code style, optimization opportunities, documentation improvements]
|
|
91
|
+
|
|
92
|
+
**For each issue:**
|
|
93
|
+
```
|
|
94
|
+
📍 path/to/file.ts:42
|
|
95
|
+
Change: [what changed — show old → new if helpful]
|
|
96
|
+
Finding: [what looks off]
|
|
97
|
+
Why it matters: [practical impact]
|
|
98
|
+
Suggested direction: [concrete fix or question]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Tone guide:**
|
|
102
|
+
- "Heads up — this can throw if X is null (line 42), since you removed the guard"
|
|
103
|
+
- "Worth double-checking: the fallback here (line 88) looks unreachable given the condition above"
|
|
104
|
+
- "Minor nit: this magic number (line 130) could be a named constant for readability"
|
|
105
|
+
|
|
106
|
+
Not:
|
|
107
|
+
- "VIOLATION: null check missing"
|
|
108
|
+
- "This is wrong"
|
|
109
|
+
|
|
110
|
+
### Recommendations
|
|
111
|
+
[Improvements for code quality, architecture, or process — written as suggestions, not mandates]
|
|
112
|
+
|
|
113
|
+
### Assessment
|
|
114
|
+
|
|
115
|
+
**Ready to merge?** [Yes/No/With fixes]
|
|
116
|
+
|
|
117
|
+
**Reasoning:** [Technical assessment in 1-2 sentences]
|
|
118
|
+
|
|
119
|
+
## Critical Rules
|
|
120
|
+
|
|
121
|
+
**DO:**
|
|
122
|
+
- Read project conventions before evaluating style or patterns
|
|
123
|
+
- Categorize by actual severity (not everything is Critical)
|
|
124
|
+
- Be specific with file:line anchors
|
|
125
|
+
- Explain WHY issues matter
|
|
126
|
+
- Acknowledge strengths
|
|
127
|
+
- Give clear verdict
|
|
128
|
+
- Sound like a teammate, not a linter
|
|
129
|
+
|
|
130
|
+
**DON'T:**
|
|
131
|
+
- Flag something as wrong if it matches the project's own conventions
|
|
132
|
+
- Say "looks good" without checking
|
|
133
|
+
- Mark nitpicks as Critical
|
|
134
|
+
- Give feedback on code you didn't review
|
|
135
|
+
- Be vague ("improve error handling")
|
|
136
|
+
- Avoid giving a clear verdict
|
|
137
|
+
- Use harsh or robotic phrasing
|
|
138
|
+
|
|
139
|
+
## Example Output
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
### Strengths
|
|
143
|
+
- Clean database schema with proper migrations (db.ts:15-42) — easy to follow
|
|
144
|
+
- Comprehensive test coverage (18 tests, all edge cases hit)
|
|
145
|
+
- Good error handling with fallbacks (summarizer.ts:85-92)
|
|
146
|
+
|
|
147
|
+
### Issues
|
|
148
|
+
|
|
149
|
+
#### Important
|
|
150
|
+
|
|
151
|
+
1. 📍 index-conversations:1-31
|
|
152
|
+
Change: Added CLI wrapper without help flag
|
|
153
|
+
Finding: No --help flag; users won't discover --concurrency
|
|
154
|
+
Why it matters: Discoverability — first-time users will hit a wall
|
|
155
|
+
Suggested direction: Add `--help` case with a short usage example
|
|
156
|
+
|
|
157
|
+
2. 📍 search.ts:25-27
|
|
158
|
+
Change: Added date filtering without validation
|
|
159
|
+
Finding: Invalid dates silently return no results instead of erroring
|
|
160
|
+
Why it matters: Silent failures are hard to debug
|
|
161
|
+
Suggested direction: Validate ISO format and throw with an example date
|
|
162
|
+
|
|
163
|
+
#### Minor
|
|
164
|
+
|
|
165
|
+
1. 📍 indexer.ts:130
|
|
166
|
+
Change: Added batch loop with no progress output
|
|
167
|
+
Finding: Long operations give no feedback
|
|
168
|
+
Suggested direction: A simple "X of Y" counter would help
|
|
169
|
+
|
|
170
|
+
### Recommendations
|
|
171
|
+
- Consider a config file for excluded projects — hardcoded list will grow
|
|
172
|
+
- Progress reporting would meaningfully improve UX for large repos
|
|
173
|
+
|
|
174
|
+
### Assessment
|
|
175
|
+
|
|
176
|
+
**Ready to merge: With fixes**
|
|
177
|
+
|
|
178
|
+
**Reasoning:** Core implementation is solid with good architecture and tests. The Important issues (help text, date validation) are quick fixes and don't affect core functionality.
|
|
179
|
+
```
|