@sienklogic/plan-build-run 2.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/CHANGELOG.md +56 -0
- package/CLAUDE.md +149 -0
- package/LICENSE +21 -0
- package/README.md +247 -0
- package/dashboard/bin/cli.js +25 -0
- package/dashboard/package.json +34 -0
- package/dashboard/public/.gitkeep +0 -0
- package/dashboard/public/css/layout.css +406 -0
- package/dashboard/public/css/status-colors.css +98 -0
- package/dashboard/public/js/htmx-title.js +5 -0
- package/dashboard/public/js/sidebar-toggle.js +20 -0
- package/dashboard/src/app.js +78 -0
- package/dashboard/src/middleware/errorHandler.js +52 -0
- package/dashboard/src/middleware/notFoundHandler.js +9 -0
- package/dashboard/src/repositories/planning.repository.js +128 -0
- package/dashboard/src/routes/events.routes.js +40 -0
- package/dashboard/src/routes/index.routes.js +31 -0
- package/dashboard/src/routes/pages.routes.js +195 -0
- package/dashboard/src/server.js +42 -0
- package/dashboard/src/services/dashboard.service.js +222 -0
- package/dashboard/src/services/phase.service.js +167 -0
- package/dashboard/src/services/project.service.js +57 -0
- package/dashboard/src/services/roadmap.service.js +171 -0
- package/dashboard/src/services/sse.service.js +58 -0
- package/dashboard/src/services/todo.service.js +254 -0
- package/dashboard/src/services/watcher.service.js +48 -0
- package/dashboard/src/views/coming-soon.ejs +11 -0
- package/dashboard/src/views/error.ejs +13 -0
- package/dashboard/src/views/index.ejs +5 -0
- package/dashboard/src/views/layout.ejs +1 -0
- package/dashboard/src/views/partials/dashboard-content.ejs +77 -0
- package/dashboard/src/views/partials/footer.ejs +3 -0
- package/dashboard/src/views/partials/head.ejs +21 -0
- package/dashboard/src/views/partials/header.ejs +12 -0
- package/dashboard/src/views/partials/layout-bottom.ejs +15 -0
- package/dashboard/src/views/partials/layout-top.ejs +8 -0
- package/dashboard/src/views/partials/phase-content.ejs +181 -0
- package/dashboard/src/views/partials/phases-content.ejs +117 -0
- package/dashboard/src/views/partials/roadmap-content.ejs +142 -0
- package/dashboard/src/views/partials/sidebar.ejs +38 -0
- package/dashboard/src/views/partials/todo-create-content.ejs +53 -0
- package/dashboard/src/views/partials/todo-detail-content.ejs +38 -0
- package/dashboard/src/views/partials/todos-content.ejs +53 -0
- package/dashboard/src/views/phase-detail.ejs +5 -0
- package/dashboard/src/views/phases.ejs +5 -0
- package/dashboard/src/views/roadmap.ejs +5 -0
- package/dashboard/src/views/todo-create.ejs +5 -0
- package/dashboard/src/views/todo-detail.ejs +5 -0
- package/dashboard/src/views/todos.ejs +5 -0
- package/package.json +57 -0
- package/plugins/pbr/.claude-plugin/plugin.json +13 -0
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -0
- package/plugins/pbr/agents/codebase-mapper.md +271 -0
- package/plugins/pbr/agents/debugger.md +281 -0
- package/plugins/pbr/agents/executor.md +407 -0
- package/plugins/pbr/agents/general.md +164 -0
- package/plugins/pbr/agents/integration-checker.md +141 -0
- package/plugins/pbr/agents/plan-checker.md +280 -0
- package/plugins/pbr/agents/planner.md +358 -0
- package/plugins/pbr/agents/researcher.md +363 -0
- package/plugins/pbr/agents/synthesizer.md +230 -0
- package/plugins/pbr/agents/verifier.md +454 -0
- package/plugins/pbr/commands/begin.md +5 -0
- package/plugins/pbr/commands/build.md +5 -0
- package/plugins/pbr/commands/config.md +5 -0
- package/plugins/pbr/commands/continue.md +5 -0
- package/plugins/pbr/commands/debug.md +5 -0
- package/plugins/pbr/commands/discuss.md +5 -0
- package/plugins/pbr/commands/explore.md +5 -0
- package/plugins/pbr/commands/health.md +5 -0
- package/plugins/pbr/commands/help.md +5 -0
- package/plugins/pbr/commands/import.md +5 -0
- package/plugins/pbr/commands/milestone.md +5 -0
- package/plugins/pbr/commands/note.md +5 -0
- package/plugins/pbr/commands/pause.md +5 -0
- package/plugins/pbr/commands/plan.md +5 -0
- package/plugins/pbr/commands/quick.md +5 -0
- package/plugins/pbr/commands/resume.md +5 -0
- package/plugins/pbr/commands/review.md +5 -0
- package/plugins/pbr/commands/scan.md +5 -0
- package/plugins/pbr/commands/setup.md +5 -0
- package/plugins/pbr/commands/status.md +5 -0
- package/plugins/pbr/commands/todo.md +5 -0
- package/plugins/pbr/contexts/dev.md +27 -0
- package/plugins/pbr/contexts/research.md +28 -0
- package/plugins/pbr/contexts/review.md +36 -0
- package/plugins/pbr/hooks/hooks.json +183 -0
- package/plugins/pbr/references/agent-anti-patterns.md +24 -0
- package/plugins/pbr/references/agent-interactions.md +134 -0
- package/plugins/pbr/references/agent-teams.md +54 -0
- package/plugins/pbr/references/checkpoints.md +157 -0
- package/plugins/pbr/references/common-bug-patterns.md +13 -0
- package/plugins/pbr/references/continuation-format.md +212 -0
- package/plugins/pbr/references/deviation-rules.md +112 -0
- package/plugins/pbr/references/git-integration.md +226 -0
- package/plugins/pbr/references/integration-patterns.md +117 -0
- package/plugins/pbr/references/model-profiles.md +99 -0
- package/plugins/pbr/references/model-selection.md +31 -0
- package/plugins/pbr/references/pbr-rules.md +193 -0
- package/plugins/pbr/references/plan-authoring.md +181 -0
- package/plugins/pbr/references/plan-format.md +283 -0
- package/plugins/pbr/references/planning-config.md +213 -0
- package/plugins/pbr/references/questioning.md +214 -0
- package/plugins/pbr/references/reading-verification.md +127 -0
- package/plugins/pbr/references/stub-patterns.md +160 -0
- package/plugins/pbr/references/subagent-coordination.md +119 -0
- package/plugins/pbr/references/ui-formatting.md +399 -0
- package/plugins/pbr/references/verification-patterns.md +198 -0
- package/plugins/pbr/references/wave-execution.md +95 -0
- package/plugins/pbr/scripts/auto-continue.js +80 -0
- package/plugins/pbr/scripts/check-dangerous-commands.js +136 -0
- package/plugins/pbr/scripts/check-doc-sprawl.js +102 -0
- package/plugins/pbr/scripts/check-phase-boundary.js +196 -0
- package/plugins/pbr/scripts/check-plan-format.js +270 -0
- package/plugins/pbr/scripts/check-roadmap-sync.js +252 -0
- package/plugins/pbr/scripts/check-skill-workflow.js +262 -0
- package/plugins/pbr/scripts/check-state-sync.js +476 -0
- package/plugins/pbr/scripts/check-subagent-output.js +144 -0
- package/plugins/pbr/scripts/config-schema.json +251 -0
- package/plugins/pbr/scripts/context-budget-check.js +287 -0
- package/plugins/pbr/scripts/event-handler.js +151 -0
- package/plugins/pbr/scripts/event-logger.js +92 -0
- package/plugins/pbr/scripts/hook-logger.js +76 -0
- package/plugins/pbr/scripts/hooks-schema.json +79 -0
- package/plugins/pbr/scripts/log-subagent.js +152 -0
- package/plugins/pbr/scripts/log-tool-failure.js +88 -0
- package/plugins/pbr/scripts/pbr-tools.js +1301 -0
- package/plugins/pbr/scripts/post-write-dispatch.js +66 -0
- package/plugins/pbr/scripts/post-write-quality.js +207 -0
- package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -0
- package/plugins/pbr/scripts/pre-write-dispatch.js +62 -0
- package/plugins/pbr/scripts/progress-tracker.js +228 -0
- package/plugins/pbr/scripts/session-cleanup.js +254 -0
- package/plugins/pbr/scripts/status-line.js +285 -0
- package/plugins/pbr/scripts/suggest-compact.js +119 -0
- package/plugins/pbr/scripts/task-completed.js +45 -0
- package/plugins/pbr/scripts/track-context-budget.js +119 -0
- package/plugins/pbr/scripts/validate-commit.js +200 -0
- package/plugins/pbr/scripts/validate-plugin-structure.js +172 -0
- package/plugins/pbr/skills/begin/SKILL.md +545 -0
- package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -0
- package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -0
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -0
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +63 -0
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -0
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -0
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -0
- package/plugins/pbr/skills/build/SKILL.md +962 -0
- package/plugins/pbr/skills/config/SKILL.md +241 -0
- package/plugins/pbr/skills/continue/SKILL.md +127 -0
- package/plugins/pbr/skills/debug/SKILL.md +489 -0
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -0
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -0
- package/plugins/pbr/skills/discuss/SKILL.md +338 -0
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -0
- package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -0
- package/plugins/pbr/skills/explore/SKILL.md +362 -0
- package/plugins/pbr/skills/health/SKILL.md +186 -0
- package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -0
- package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -0
- package/plugins/pbr/skills/help/SKILL.md +140 -0
- package/plugins/pbr/skills/import/SKILL.md +490 -0
- package/plugins/pbr/skills/milestone/SKILL.md +673 -0
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -0
- package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -0
- package/plugins/pbr/skills/note/SKILL.md +212 -0
- package/plugins/pbr/skills/pause/SKILL.md +235 -0
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -0
- package/plugins/pbr/skills/plan/SKILL.md +628 -0
- package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -0
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -0
- package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -0
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -0
- package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -0
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -0
- package/plugins/pbr/skills/quick/SKILL.md +335 -0
- package/plugins/pbr/skills/resume/SKILL.md +388 -0
- package/plugins/pbr/skills/review/SKILL.md +652 -0
- package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -0
- package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -0
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -0
- package/plugins/pbr/skills/scan/SKILL.md +269 -0
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -0
- package/plugins/pbr/skills/setup/SKILL.md +227 -0
- package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -0
- package/plugins/pbr/skills/shared/config-loading.md +102 -0
- package/plugins/pbr/skills/shared/context-budget.md +40 -0
- package/plugins/pbr/skills/shared/context-loader-task.md +86 -0
- package/plugins/pbr/skills/shared/digest-select.md +79 -0
- package/plugins/pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/pbr/skills/shared/error-reporting.md +79 -0
- package/plugins/pbr/skills/shared/gate-prompts.md +388 -0
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/pbr/skills/shared/progress-display.md +53 -0
- package/plugins/pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/pbr/skills/shared/state-loading.md +62 -0
- package/plugins/pbr/skills/shared/state-update.md +161 -0
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -0
- package/plugins/pbr/skills/status/SKILL.md +353 -0
- package/plugins/pbr/skills/todo/SKILL.md +181 -0
- package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -0
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -0
- package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -0
- package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -0
- package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
- package/plugins/pbr/templates/research/STACK.md.tmpl +71 -0
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -0
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -0
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!-- Source: review/SKILL.md | Purpose: Prompt template for spawning debugger agent during auto-fix diagnosis -->
|
|
2
|
+
<!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
3
|
+
<!-- Optionally include <project_context> if locked decisions are relevant to debugging -->
|
|
4
|
+
<!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
5
|
+
|
|
6
|
+
You are a debugging agent. Analyze these verification failures and determine root causes.
|
|
7
|
+
|
|
8
|
+
<verification_report>
|
|
9
|
+
Read the verification report for gap details:
|
|
10
|
+
File: {absolute path to VERIFICATION.md}
|
|
11
|
+
|
|
12
|
+
Focus on the "Gaps Found" section — each gap has the must-have that failed, the layer, and evidence.
|
|
13
|
+
</verification_report>
|
|
14
|
+
|
|
15
|
+
<build_summaries>
|
|
16
|
+
Build summaries available (read via Read tool for deviation and issue details):
|
|
17
|
+
|
|
18
|
+
| Plan | Summary File |
|
|
19
|
+
|------|-------------|
|
|
20
|
+
{For each SUMMARY.md in the phase:}
|
|
21
|
+
| {plan_id} | {absolute path to SUMMARY.md} |
|
|
22
|
+
</build_summaries>
|
|
23
|
+
|
|
24
|
+
<plans>
|
|
25
|
+
Original plans available (read via Read tool to check what was supposed to be built):
|
|
26
|
+
|
|
27
|
+
| Plan | Plan File |
|
|
28
|
+
|------|-----------|
|
|
29
|
+
{For each PLAN.md in the phase:}
|
|
30
|
+
| {plan_id} | {absolute path to PLAN.md} |
|
|
31
|
+
</plans>
|
|
32
|
+
|
|
33
|
+
<instructions>
|
|
34
|
+
For each gap:
|
|
35
|
+
1. Read the gap details
|
|
36
|
+
2. Check the relevant source files (use Read, Grep tools)
|
|
37
|
+
3. Determine root cause:
|
|
38
|
+
- Was the code not written?
|
|
39
|
+
- Was the code written incorrectly?
|
|
40
|
+
- Was the wiring missed?
|
|
41
|
+
- Was there a dependency issue?
|
|
42
|
+
4. Classify the fix difficulty:
|
|
43
|
+
- TRIVIAL: < 5 lines of code change
|
|
44
|
+
- MODERATE: New function or file needed
|
|
45
|
+
- SIGNIFICANT: Architecture-level change needed
|
|
46
|
+
|
|
47
|
+
Return your analysis as text (do not write files). Format:
|
|
48
|
+
|
|
49
|
+
# Root Cause Analysis
|
|
50
|
+
|
|
51
|
+
## Gap 1: {description}
|
|
52
|
+
- **Root cause**: {what went wrong}
|
|
53
|
+
- **Evidence**: {file/line references}
|
|
54
|
+
- **Fix difficulty**: {TRIVIAL | MODERATE | SIGNIFICANT}
|
|
55
|
+
- **Suggested approach**: {how to fix it}
|
|
56
|
+
|
|
57
|
+
## Gap 2: ...
|
|
58
|
+
</instructions>
|
|
59
|
+
|
|
60
|
+
Use Read, Grep, Glob, and Bash tools to investigate. Return your analysis as text.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- Source: review/SKILL.md | Purpose: Prompt template for spawning planner agent in gap-closure mode -->
|
|
2
|
+
<!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
3
|
+
|
|
4
|
+
You are the planner agent operating in Gap Closure mode.
|
|
5
|
+
|
|
6
|
+
<verification_report>
|
|
7
|
+
Read the verification report for gap details:
|
|
8
|
+
File: {absolute path to VERIFICATION.md}
|
|
9
|
+
</verification_report>
|
|
10
|
+
|
|
11
|
+
<root_cause_analysis>
|
|
12
|
+
[Inline the debugger's root cause analysis]
|
|
13
|
+
</root_cause_analysis>
|
|
14
|
+
|
|
15
|
+
<existing_plans>
|
|
16
|
+
Read existing plans for context on what was already built:
|
|
17
|
+
|
|
18
|
+
| Plan | File Path |
|
|
19
|
+
|------|-----------|
|
|
20
|
+
{For each PLAN.md in the phase directory:}
|
|
21
|
+
| {plan_id} | {absolute path to PLAN.md} |
|
|
22
|
+
</existing_plans>
|
|
23
|
+
|
|
24
|
+
<!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
25
|
+
<!-- Include <project_context> only -- gap planner gets phase context from verification report -->
|
|
26
|
+
|
|
27
|
+
<gap_closure_instructions>
|
|
28
|
+
Create targeted gap-closure plans to fix each verified gap.
|
|
29
|
+
|
|
30
|
+
Rules:
|
|
31
|
+
1. Number new plans starting after the last existing plan number
|
|
32
|
+
2. Set gap_closure: true in frontmatter
|
|
33
|
+
3. Keep plans small — one gap per plan if possible
|
|
34
|
+
4. Set wave: 1 for all gap-closure plans (they should be independent)
|
|
35
|
+
5. Include specific fix instructions in <action> — not vague descriptions
|
|
36
|
+
6. Reference the root cause analysis for each fix
|
|
37
|
+
|
|
38
|
+
Write gap-closure plan files to: .planning/phases/{NN}-{slug}/
|
|
39
|
+
Use the Write tool.
|
|
40
|
+
</gap_closure_instructions>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<!-- Source: review/SKILL.md | Purpose: Prompt template for spawning verifier agent during phase review -->
|
|
2
|
+
<!-- Depends on: templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
3
|
+
<!-- Include <phase_context> only -- verifier uses <phase_plans> and <build_results> instead of project_context -->
|
|
4
|
+
<!-- Context blocks: Read and fill templates/prompt-partials/phase-project-context.md.tmpl -->
|
|
5
|
+
|
|
6
|
+
You are a verification agent. Your job is to verify that a phase build matches its plans.
|
|
7
|
+
|
|
8
|
+
<verification_methodology>
|
|
9
|
+
For each must-have, perform a three-layer check:
|
|
10
|
+
|
|
11
|
+
Layer 1 — Existence: Does the artifact exist?
|
|
12
|
+
- Use `ls` to check file existence
|
|
13
|
+
- Use `grep` to check for exported functions/classes
|
|
14
|
+
- Use `Bash` to check database tables, routes, etc.
|
|
15
|
+
|
|
16
|
+
Layer 2 — Substantiveness: Is it more than a stub?
|
|
17
|
+
- Check file has meaningful content (not just empty exports)
|
|
18
|
+
- Check functions have implementations (not just signatures)
|
|
19
|
+
- Check tests have actual test cases
|
|
20
|
+
|
|
21
|
+
Layer 3 — Wiring: Is it connected to the rest of the system?
|
|
22
|
+
- Check imports: is the module imported where needed?
|
|
23
|
+
- Check usage: is the function called where expected?
|
|
24
|
+
- Check configuration: is the component configured in app initialization?
|
|
25
|
+
</verification_methodology>
|
|
26
|
+
|
|
27
|
+
<phase_plans>
|
|
28
|
+
These are the plans that were executed. Extract must-haves from each plan's frontmatter.
|
|
29
|
+
|
|
30
|
+
{For each PLAN.md file in the phase directory:}
|
|
31
|
+
--- Plan: {filename} ---
|
|
32
|
+
{Inline the YAML frontmatter section only — specifically the must_haves block}
|
|
33
|
+
--- End Plan ---
|
|
34
|
+
</phase_plans>
|
|
35
|
+
|
|
36
|
+
<build_results>
|
|
37
|
+
These are the build results. Read each summary via the Read tool to check what was built.
|
|
38
|
+
|
|
39
|
+
| Plan | Summary File | Status |
|
|
40
|
+
|------|-------------|--------|
|
|
41
|
+
{For each SUMMARY.md file in the phase directory:}
|
|
42
|
+
| {plan_id} | {absolute path to SUMMARY.md} | {status from frontmatter} |
|
|
43
|
+
|
|
44
|
+
Read each summary file to compare actual build output against the must-haves above.
|
|
45
|
+
</build_results>
|
|
46
|
+
|
|
47
|
+
<instructions>
|
|
48
|
+
1. Extract ALL must-haves across all plans:
|
|
49
|
+
- Collect all truths
|
|
50
|
+
- Collect all artifacts
|
|
51
|
+
- Collect all key_links
|
|
52
|
+
|
|
53
|
+
2. For each must-have, run the three-layer check:
|
|
54
|
+
- Use Bash tool to execute verification commands
|
|
55
|
+
- Use Grep to search for patterns in files
|
|
56
|
+
- Use Glob to find files
|
|
57
|
+
- Record PASS or FAIL for each layer
|
|
58
|
+
|
|
59
|
+
3. Write your verification report to:
|
|
60
|
+
.planning/phases/{NN}-{slug}/VERIFICATION.md
|
|
61
|
+
|
|
62
|
+
Report format:
|
|
63
|
+
---
|
|
64
|
+
status: "passed" | "gaps_found" | "human_needed"
|
|
65
|
+
phase: "{NN}-{slug}"
|
|
66
|
+
checked_at: "{date}"
|
|
67
|
+
must_haves_total: {count}
|
|
68
|
+
must_haves_passed: {count}
|
|
69
|
+
must_haves_failed: {count}
|
|
70
|
+
must_haves_human: {count}
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
# Phase {N} Verification: {phase name}
|
|
74
|
+
|
|
75
|
+
## Summary
|
|
76
|
+
{One paragraph: overall assessment}
|
|
77
|
+
|
|
78
|
+
## Results
|
|
79
|
+
|
|
80
|
+
### Must-Have Truths
|
|
81
|
+
|
|
82
|
+
| # | Truth | Layer 1 | Layer 2 | Layer 3 | Status |
|
|
83
|
+
|---|-------|---------|---------|---------|--------|
|
|
84
|
+
| 1 | {truth text} | PASS | PASS | PASS | PASSED |
|
|
85
|
+
| 2 | {truth text} | PASS | FAIL | -- | GAP |
|
|
86
|
+
|
|
87
|
+
### Must-Have Artifacts
|
|
88
|
+
|
|
89
|
+
| # | Artifact | Exists | Substantive | Wired | Status |
|
|
90
|
+
|---|----------|--------|-------------|-------|--------|
|
|
91
|
+
| 1 | {file path} | YES | YES | YES | PASSED |
|
|
92
|
+
| 2 | {file path} | YES | NO | -- | GAP |
|
|
93
|
+
|
|
94
|
+
### Must-Have Key Links
|
|
95
|
+
|
|
96
|
+
| # | Key Link | Connected | Status |
|
|
97
|
+
|---|----------|-----------|--------|
|
|
98
|
+
| 1 | {link description} | YES | PASSED |
|
|
99
|
+
| 2 | {link description} | NO | GAP |
|
|
100
|
+
|
|
101
|
+
## Gaps Found
|
|
102
|
+
{For each gap:}
|
|
103
|
+
|
|
104
|
+
### Gap {N}: {short description}
|
|
105
|
+
- **Must-have**: {the must-have that failed}
|
|
106
|
+
- **Failed layer**: {1-Existence | 2-Substantiveness | 3-Wiring}
|
|
107
|
+
- **Details**: {what the check found}
|
|
108
|
+
- **Evidence**: {command output or grep results}
|
|
109
|
+
- **Suggested fix**: {what needs to be done}
|
|
110
|
+
|
|
111
|
+
## Verification Commands Run
|
|
112
|
+
{List of all commands executed with their results — for auditability}
|
|
113
|
+
</instructions>
|
|
114
|
+
|
|
115
|
+
Use the Write tool to create the verification report. Use Bash, Grep, and Glob for checks.
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scan
|
|
3
|
+
description: "Analyze an existing codebase. Maps structure, architecture, conventions, and concerns."
|
|
4
|
+
allowed-tools: Read, Write, Bash, Glob, Grep, Task, AskUserQuestion
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /pbr:scan — Codebase Analysis
|
|
8
|
+
|
|
9
|
+
You are running the **scan** skill. Your job is to analyze an existing codebase and produce a comprehensive map of its structure, architecture, conventions, and concerns. This is the entry point for brownfield projects — codebases that already have code before Plan-Build-Run is introduced.
|
|
10
|
+
|
|
11
|
+
This skill **spawns 4 parallel Task(subagent_type: "pbr:codebase-mapper")** agents for analysis.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Context Budget
|
|
16
|
+
|
|
17
|
+
Reference: `skills/shared/context-budget.md` for the universal orchestrator rules.
|
|
18
|
+
|
|
19
|
+
Additionally for this skill:
|
|
20
|
+
- **Never** analyze the codebase yourself — delegate ALL analysis to the 4 parallel codebase-mapper subagents
|
|
21
|
+
- **Minimize** reading mapper outputs — read only frontmatter or first 20 lines of each output document
|
|
22
|
+
- **Delegate** all file reading, pattern analysis, and architecture mapping to the codebase-mapper subagents
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Core Principle
|
|
27
|
+
|
|
28
|
+
**Understand before you change.** Scanning a codebase is about building a mental model of what exists. Every file produced by this skill becomes context that the planner and executor use to make informed decisions. Accuracy matters more than speed.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Flow
|
|
33
|
+
|
|
34
|
+
### Step 1: Check for Existing Analysis
|
|
35
|
+
|
|
36
|
+
Check if `.planning/codebase/` directory exists:
|
|
37
|
+
|
|
38
|
+
**If it exists and has files:**
|
|
39
|
+
- Present to user via AskUserQuestion:
|
|
40
|
+
```
|
|
41
|
+
A codebase analysis already exists (from {date based on file modification}).
|
|
42
|
+
|
|
43
|
+
Files found:
|
|
44
|
+
- {list of .md files in the directory}
|
|
45
|
+
|
|
46
|
+
Options:
|
|
47
|
+
1. Refresh the full analysis (overwrites existing)
|
|
48
|
+
2. Refresh a specific area (available areas depend on depth profile: quick mode only offers tech/arch)
|
|
49
|
+
3. Keep existing analysis
|
|
50
|
+
```
|
|
51
|
+
- If user chooses "Keep": display a summary of existing analysis and stop
|
|
52
|
+
- If user chooses "Refresh specific": only spawn that agent (Step 3)
|
|
53
|
+
- If user chooses "Refresh all": proceed with full scan
|
|
54
|
+
|
|
55
|
+
**If it doesn't exist:**
|
|
56
|
+
- Create `.planning/codebase/` directory
|
|
57
|
+
- Also create `.planning/` if it doesn't exist (scan can be run before begin)
|
|
58
|
+
- Proceed with full scan
|
|
59
|
+
|
|
60
|
+
### Step 2: Initial Reconnaissance
|
|
61
|
+
|
|
62
|
+
Reference: `skills/shared/context-loader-task.md` (Scan Reconnaissance variation) for the underlying pattern.
|
|
63
|
+
|
|
64
|
+
Before spawning agents, do a quick scan to identify what we're working with. This gives agents better context.
|
|
65
|
+
|
|
66
|
+
1. **Detect project type** — check for language-specific config files (package.json, requirements.txt, go.mod, Cargo.toml, etc.)
|
|
67
|
+
2. **Detect project scale** — count source files (exclude node_modules, venv, .git, build, dist). Categories: Small (<50), Medium (50-200), Large (200-1000), Very Large (1000+)
|
|
68
|
+
3. **Detect key directories** — identify src, test, docs, config, scripts, public, migrations directories
|
|
69
|
+
4. **Read existing docs** — README.md, architecture docs, .env.example
|
|
70
|
+
5. **Write `.planning/codebase/RECON.md`** with project type, scale, key directories, entry points, and quick stats
|
|
71
|
+
|
|
72
|
+
Refer to the "Reconnaissance Detection Reference" section of `skills/scan/templates/mapper-prompt.md.tmpl` for the full detection checklists.
|
|
73
|
+
|
|
74
|
+
### Step 3: Spawn Analysis Agents
|
|
75
|
+
|
|
76
|
+
**Resolve mapper configuration:** Before spawning, resolve the depth profile:
|
|
77
|
+
```bash
|
|
78
|
+
node ${CLAUDE_PLUGIN_ROOT}/scripts/pbr-tools.js config resolve-depth
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Read `profile["scan.mapper_count"]` and `profile["scan.mapper_areas"]` to determine how many mappers to spawn and which focus areas to cover.
|
|
82
|
+
|
|
83
|
+
**Default mappings by depth:**
|
|
84
|
+
- `quick` (budget): 2 mappers -- `tech` and `arch` only. Produces STACK.md, INTEGRATIONS.md, ARCHITECTURE.md, STRUCTURE.md. Skips quality and concerns analysis.
|
|
85
|
+
- `standard` (balanced): 4 mappers -- all areas. Full analysis.
|
|
86
|
+
- `comprehensive` (thorough): 4 mappers -- all areas. Full analysis.
|
|
87
|
+
|
|
88
|
+
Display to the user: `◐ Spawning {mapper_count} codebase mapper(s) in parallel...`
|
|
89
|
+
|
|
90
|
+
Spawn `{mapper_count}` parallel `Task(subagent_type: "pbr:codebase-mapper")` agents, one for each area in `scan.mapper_areas`. All should be spawned in a single response for maximum parallelism.
|
|
91
|
+
|
|
92
|
+
For each agent, read `skills/scan/templates/mapper-prompt.md.tmpl` and fill in the placeholders:
|
|
93
|
+
- `{focus_area}`: one of `tech`, `arch`, `quality`, `concerns`
|
|
94
|
+
- `{project_path}`: the working directory
|
|
95
|
+
- `{recon_data}`: contents of RECON.md
|
|
96
|
+
- `{scale}`: detected scale from Step 2
|
|
97
|
+
- `{output_path}`: `.planning/codebase/`
|
|
98
|
+
|
|
99
|
+
| Agent | Focus | Output Files | When |
|
|
100
|
+
|-------|-------|-------------|------|
|
|
101
|
+
| 1 | tech | STACK.md, INTEGRATIONS.md | Always |
|
|
102
|
+
| 2 | arch | ARCHITECTURE.md, STRUCTURE.md | Always |
|
|
103
|
+
| 3 | quality | CONVENTIONS.md, TESTING.md | standard + comprehensive |
|
|
104
|
+
| 4 | concerns | CONCERNS.md | standard + comprehensive |
|
|
105
|
+
|
|
106
|
+
### Step 4: Wait for Agents
|
|
107
|
+
|
|
108
|
+
All 4 agents run in parallel. Report progress as each completes:
|
|
109
|
+
```
|
|
110
|
+
Scanning codebase...
|
|
111
|
+
[1/4] Technology stack... done
|
|
112
|
+
[2/4] Architecture... done
|
|
113
|
+
[3/4] Code quality... done
|
|
114
|
+
[4/4] Concerns... done
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Step 5: Verify Output
|
|
118
|
+
|
|
119
|
+
After all agents complete, verify the expected files exist:
|
|
120
|
+
|
|
121
|
+
**Required files (always):**
|
|
122
|
+
- `.planning/codebase/RECON.md` (created in Step 2)
|
|
123
|
+
- `.planning/codebase/STACK.md` (tech mapper)
|
|
124
|
+
- `.planning/codebase/INTEGRATIONS.md` (tech mapper)
|
|
125
|
+
- `.planning/codebase/ARCHITECTURE.md` (arch mapper)
|
|
126
|
+
- `.planning/codebase/STRUCTURE.md` (arch mapper)
|
|
127
|
+
|
|
128
|
+
**Required files (standard + comprehensive only):**
|
|
129
|
+
- `.planning/codebase/CONVENTIONS.md` (quality mapper)
|
|
130
|
+
- `.planning/codebase/TESTING.md` (quality mapper)
|
|
131
|
+
- `.planning/codebase/CONCERNS.md` (concerns mapper)
|
|
132
|
+
|
|
133
|
+
Check only the files that correspond to the mapper areas that were actually spawned.
|
|
134
|
+
|
|
135
|
+
For any missing files, display:
|
|
136
|
+
```
|
|
137
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
138
|
+
║ ERROR ║
|
|
139
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
140
|
+
|
|
141
|
+
Missing analysis output: {filename}
|
|
142
|
+
Agent that failed: {focus_area} mapper
|
|
143
|
+
|
|
144
|
+
**To fix:** Re-run with `/pbr:scan` and select "Refresh a specific area" → {focus_area}.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Step 6: Present Summary
|
|
148
|
+
|
|
149
|
+
Read key findings from each file (frontmatter or first section) and display using the branded stage banner from `references/ui-formatting.md`:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
153
|
+
PLAN-BUILD-RUN ► SCAN COMPLETE ✓
|
|
154
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
155
|
+
|
|
156
|
+
Project: {type} ({scale})
|
|
157
|
+
Stack: {primary language} + {framework}
|
|
158
|
+
Architecture: {style}
|
|
159
|
+
|
|
160
|
+
Key Stats:
|
|
161
|
+
- {file count} source files, {test count} test files
|
|
162
|
+
- {dependency count} dependencies
|
|
163
|
+
- {integration count} external integrations
|
|
164
|
+
|
|
165
|
+
Concerns: {critical} critical, {high} high, {medium} medium
|
|
166
|
+
|
|
167
|
+
Top concerns:
|
|
168
|
+
1. {most critical concern}
|
|
169
|
+
2. {second concern}
|
|
170
|
+
3. {third concern}
|
|
171
|
+
|
|
172
|
+
Full analysis: .planning/codebase/
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Then use the "Next Up" routing block:
|
|
176
|
+
```
|
|
177
|
+
───────────────────────────────────────────────────────────────
|
|
178
|
+
|
|
179
|
+
## ▶ Next Up
|
|
180
|
+
|
|
181
|
+
**Start a project** — use the scan results to plan your work
|
|
182
|
+
|
|
183
|
+
`/pbr:begin`
|
|
184
|
+
|
|
185
|
+
<sub>`/clear` first → fresh context window</sub>
|
|
186
|
+
|
|
187
|
+
───────────────────────────────────────────────────────────────
|
|
188
|
+
|
|
189
|
+
**Also available:**
|
|
190
|
+
- `/pbr:milestone new` — create a milestone to address concerns
|
|
191
|
+
- `/pbr:status` — see project status
|
|
192
|
+
|
|
193
|
+
───────────────────────────────────────────────────────────────
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Step 7: Git Integration
|
|
197
|
+
|
|
198
|
+
Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
|
|
199
|
+
|
|
200
|
+
If `.planning/config.json` exists and `planning.commit_docs: true`:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
git add .planning/codebase/
|
|
204
|
+
git commit -m "docs(planning): map existing codebase"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
If no config exists yet (scan before begin), use AskUserQuestion (pattern: yes-no from `skills/shared/gate-prompts.md`):
|
|
208
|
+
question: "Commit the codebase analysis to git?"
|
|
209
|
+
header: "Commit?"
|
|
210
|
+
options:
|
|
211
|
+
- label: "Yes" description: "Stage and commit .planning/codebase/ files"
|
|
212
|
+
- label: "No" description: "Skip commit — files are saved but not committed"
|
|
213
|
+
- If "Yes": run `git add .planning/codebase/ && git commit -m "docs(planning): map existing codebase"`
|
|
214
|
+
- If "No" or "Other": skip commit
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Edge Cases
|
|
219
|
+
|
|
220
|
+
### Monorepo with multiple projects
|
|
221
|
+
- Detect by multiple package.json, separate src directories, workspace config
|
|
222
|
+
- Ask user via AskUserQuestion: "This looks like a monorepo. Scan the whole repo or a specific project?"
|
|
223
|
+
- If specific: scope all agents to that subdirectory
|
|
224
|
+
- If whole: note the monorepo structure in ARCHITECTURE.md
|
|
225
|
+
|
|
226
|
+
### Empty or near-empty codebase
|
|
227
|
+
- If fewer than 5 source files: "This codebase is very small. A scan may not be necessary."
|
|
228
|
+
- Still allow it if user wants
|
|
229
|
+
- Output will be minimal
|
|
230
|
+
|
|
231
|
+
### No source code (config-only repo, docs repo)
|
|
232
|
+
- Detect: no recognized source file extensions
|
|
233
|
+
- Adapt: focus on documentation quality, config structure
|
|
234
|
+
- Skip code quality analysis
|
|
235
|
+
|
|
236
|
+
### Codebase has existing analysis
|
|
237
|
+
- Check for architectural docs, ADRs, design docs
|
|
238
|
+
- Reference them in the scan output
|
|
239
|
+
- Don't contradict existing docs without strong evidence
|
|
240
|
+
|
|
241
|
+
### Binary files, large assets
|
|
242
|
+
- Skip binary files in analysis
|
|
243
|
+
- Note their existence in STRUCTURE.md
|
|
244
|
+
- Flag large committed binaries as a concern
|
|
245
|
+
|
|
246
|
+
### Scan before /pbr:begin
|
|
247
|
+
- This is a valid and encouraged workflow
|
|
248
|
+
- Scan results become input for the begin skill
|
|
249
|
+
- Create `.planning/` and `.planning/codebase/` if needed
|
|
250
|
+
- Don't require config.json
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Anti-Patterns
|
|
255
|
+
|
|
256
|
+
Reference: `skills/shared/universal-anti-patterns.md` for rules that apply to ALL skills.
|
|
257
|
+
|
|
258
|
+
Additionally for this skill:
|
|
259
|
+
|
|
260
|
+
1. **DO NOT** modify any source code — scan is read-only analysis
|
|
261
|
+
2. **DO NOT** run the project (no `npm start`, `python app.py`, etc.) — analyze statically
|
|
262
|
+
3. **DO NOT** install dependencies — analyze package files, don't install
|
|
263
|
+
4. **DO NOT** generate concerns without evidence — every concern needs a file reference
|
|
264
|
+
5. **DO NOT** ignore positive observations — knowing what works well is valuable
|
|
265
|
+
6. **DO NOT** produce generic output — every finding should be specific to THIS codebase
|
|
266
|
+
7. **DO NOT** scan node_modules, venv, .git, or build output directories
|
|
267
|
+
8. **DO NOT** read every file in large codebases — sample and extrapolate
|
|
268
|
+
9. **DO NOT** skip the RECON step — agents need baseline context
|
|
269
|
+
10. **DO NOT** combine agents — the 4 agents must run in parallel with separate focuses
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<!-- Source: scan/SKILL.md | Purpose: Prompt template for spawning codebase-mapper agents during /pbr:scan -->
|
|
2
|
+
|
|
3
|
+
You are codebase-mapper with focus="{focus_area}".
|
|
4
|
+
|
|
5
|
+
<reconnaissance>
|
|
6
|
+
{recon_data}
|
|
7
|
+
</reconnaissance>
|
|
8
|
+
|
|
9
|
+
<project>
|
|
10
|
+
Working directory: {project_path}
|
|
11
|
+
Scale: {scale}
|
|
12
|
+
</project>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Scale-Aware Guidance
|
|
17
|
+
|
|
18
|
+
### Small projects (< 50 files)
|
|
19
|
+
- Be thorough — read most files
|
|
20
|
+
- Output should be concise (don't pad)
|
|
21
|
+
- Findings lists may be short — that's fine
|
|
22
|
+
|
|
23
|
+
### Medium projects (50-200 files)
|
|
24
|
+
- Sample representative files
|
|
25
|
+
- Focus on entry points, configuration, and key modules
|
|
26
|
+
- Use Grep patterns to find conventions rather than reading every file
|
|
27
|
+
|
|
28
|
+
### Large projects (200-1000 files)
|
|
29
|
+
- Be selective — read key files only
|
|
30
|
+
- Use Glob and Grep extensively for pattern detection
|
|
31
|
+
- Focus on architecture and module boundaries
|
|
32
|
+
- Sample 3-5 files per module for conventions
|
|
33
|
+
|
|
34
|
+
### Very large projects (1000+ files)
|
|
35
|
+
- Limit file reads aggressively
|
|
36
|
+
- Architecture focus > file-level detail
|
|
37
|
+
- Sample at most 2-3 files per module
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Focus Area Instructions
|
|
42
|
+
|
|
43
|
+
### If focus="tech"
|
|
44
|
+
|
|
45
|
+
Analyze the codebase technology stack and external integrations.
|
|
46
|
+
|
|
47
|
+
1. STACK.md — Technology inventory
|
|
48
|
+
- Languages and versions (from config files, shebang lines, etc.)
|
|
49
|
+
- Frameworks and their versions
|
|
50
|
+
- Build tools and configuration
|
|
51
|
+
- Package manager and dependency count
|
|
52
|
+
- Runtime requirements
|
|
53
|
+
- Development tools (linters, formatters, type checkers)
|
|
54
|
+
|
|
55
|
+
2. INTEGRATIONS.md — External connections
|
|
56
|
+
- APIs consumed (look for HTTP clients, SDK imports, API keys)
|
|
57
|
+
- Databases used (look for connection strings, ORM configs, migrations)
|
|
58
|
+
- Third-party services (auth providers, payment, email, etc.)
|
|
59
|
+
- Message queues, caches, file storage
|
|
60
|
+
- CI/CD pipelines (GitHub Actions, Jenkins, etc.)
|
|
61
|
+
- Deployment targets (Docker, Kubernetes, serverless, etc.)
|
|
62
|
+
|
|
63
|
+
Write both files to .planning/codebase/
|
|
64
|
+
|
|
65
|
+
Read `templates/codebase/STACK.md.tmpl` for the STACK.md output format.
|
|
66
|
+
Read `templates/codebase/INTEGRATIONS.md.tmpl` for the INTEGRATIONS.md output format.
|
|
67
|
+
Fill in all placeholder fields with data from your codebase analysis.
|
|
68
|
+
|
|
69
|
+
### If focus="arch"
|
|
70
|
+
|
|
71
|
+
Analyze the codebase architecture and structure.
|
|
72
|
+
|
|
73
|
+
1. ARCHITECTURE.md — High-level architecture
|
|
74
|
+
- Architecture style (monolith, microservices, serverless, MVC, etc.)
|
|
75
|
+
- Layer structure (presentation, business logic, data access)
|
|
76
|
+
- Module boundaries and how they communicate
|
|
77
|
+
- Data flow through the system
|
|
78
|
+
- Key abstractions and interfaces
|
|
79
|
+
- State management approach
|
|
80
|
+
- Error handling strategy
|
|
81
|
+
- Authentication/authorization architecture
|
|
82
|
+
|
|
83
|
+
2. STRUCTURE.md — Directory and file organization
|
|
84
|
+
- Directory tree with annotations
|
|
85
|
+
- File naming conventions
|
|
86
|
+
- Module organization pattern
|
|
87
|
+
- Entry points and their roles
|
|
88
|
+
- Configuration file locations
|
|
89
|
+
- Environment-specific files
|
|
90
|
+
|
|
91
|
+
Write both files to .planning/codebase/
|
|
92
|
+
|
|
93
|
+
Read `templates/codebase/ARCHITECTURE.md.tmpl` for the ARCHITECTURE.md output format.
|
|
94
|
+
Read `templates/codebase/STRUCTURE.md.tmpl` for the STRUCTURE.md output format.
|
|
95
|
+
Fill in all placeholder fields with data from your codebase analysis.
|
|
96
|
+
|
|
97
|
+
### If focus="quality"
|
|
98
|
+
|
|
99
|
+
Analyze the codebase quality, conventions, and testing approach.
|
|
100
|
+
|
|
101
|
+
1. CONVENTIONS.md — Coding standards in practice
|
|
102
|
+
- Naming conventions (files, functions, variables, classes)
|
|
103
|
+
- Code style (indentation, quotes, semicolons, etc.)
|
|
104
|
+
- Import/export patterns
|
|
105
|
+
- Comment style and documentation patterns
|
|
106
|
+
- Error handling patterns
|
|
107
|
+
- Logging patterns
|
|
108
|
+
- Configuration patterns (env vars, config files, constants)
|
|
109
|
+
|
|
110
|
+
IMPORTANT: Document what the codebase ACTUALLY does, not what it should do.
|
|
111
|
+
Look at multiple files to identify the dominant pattern.
|
|
112
|
+
|
|
113
|
+
2. TESTING.md — Test infrastructure and coverage
|
|
114
|
+
- Test framework(s) used
|
|
115
|
+
- Test file organization
|
|
116
|
+
- Test types present (unit, integration, e2e)
|
|
117
|
+
- Test coverage (rough estimate from test file count vs source file count)
|
|
118
|
+
- Mocking patterns
|
|
119
|
+
- Test data management
|
|
120
|
+
- CI test configuration
|
|
121
|
+
- Notable gaps in testing
|
|
122
|
+
|
|
123
|
+
Write both files to .planning/codebase/
|
|
124
|
+
|
|
125
|
+
Read `templates/codebase/CONVENTIONS.md.tmpl` for the CONVENTIONS.md output format.
|
|
126
|
+
Read `templates/codebase/TESTING.md.tmpl` for the TESTING.md output format.
|
|
127
|
+
Fill in all placeholder fields with data from your codebase analysis.
|
|
128
|
+
|
|
129
|
+
### If focus="concerns"
|
|
130
|
+
|
|
131
|
+
Identify concerns, risks, and improvement opportunities in the codebase.
|
|
132
|
+
|
|
133
|
+
Write CONCERNS.md to .planning/codebase/
|
|
134
|
+
|
|
135
|
+
Analyze the codebase for:
|
|
136
|
+
|
|
137
|
+
1. Security concerns
|
|
138
|
+
- Hardcoded secrets or credentials
|
|
139
|
+
- Injection vulnerabilities
|
|
140
|
+
- Insecure authentication patterns
|
|
141
|
+
- Missing input validation
|
|
142
|
+
- Outdated dependencies with known vulnerabilities
|
|
143
|
+
|
|
144
|
+
2. Technical debt
|
|
145
|
+
- TODO/FIXME/HACK comments
|
|
146
|
+
- Dead code (unused exports, unreachable branches)
|
|
147
|
+
- Copy-pasted code (duplication)
|
|
148
|
+
- Overly complex functions
|
|
149
|
+
- Missing error handling
|
|
150
|
+
- Inconsistent patterns
|
|
151
|
+
|
|
152
|
+
3. Scalability concerns
|
|
153
|
+
- N+1 query patterns
|
|
154
|
+
- Missing pagination
|
|
155
|
+
- Unbounded data loading
|
|
156
|
+
- Synchronous blocking operations
|
|
157
|
+
- Missing caching opportunities
|
|
158
|
+
|
|
159
|
+
4. Maintainability concerns
|
|
160
|
+
- Missing documentation
|
|
161
|
+
- Complex inheritance hierarchies
|
|
162
|
+
- Tight coupling between modules
|
|
163
|
+
- Magic numbers/strings
|
|
164
|
+
- Missing type safety
|
|
165
|
+
|
|
166
|
+
5. Operational concerns
|
|
167
|
+
- Missing health checks
|
|
168
|
+
- Insufficient logging
|
|
169
|
+
- No monitoring hooks
|
|
170
|
+
- Unclear deployment process
|
|
171
|
+
|
|
172
|
+
Read `templates/codebase/CONCERNS.md.tmpl` for the CONCERNS.md output format.
|
|
173
|
+
Fill in all placeholder fields with data from your codebase analysis.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Reconnaissance Detection Reference
|
|
178
|
+
|
|
179
|
+
### Project Type Detection
|
|
180
|
+
Look for:
|
|
181
|
+
- package.json -> Node.js/JavaScript/TypeScript
|
|
182
|
+
- requirements.txt / setup.py / pyproject.toml -> Python
|
|
183
|
+
- CMakeLists.txt -> C/C++
|
|
184
|
+
- go.mod -> Go
|
|
185
|
+
- Cargo.toml -> Rust
|
|
186
|
+
- pom.xml / build.gradle -> Java
|
|
187
|
+
- *.sln / *.csproj -> .NET
|
|
188
|
+
- Gemfile -> Ruby
|
|
189
|
+
- composer.json -> PHP
|
|
190
|
+
|
|
191
|
+
### Key Directory Detection
|
|
192
|
+
Look for:
|
|
193
|
+
- src/, lib/, app/ -> source code
|
|
194
|
+
- test/, tests/, __tests__/, spec/ -> tests
|
|
195
|
+
- docs/ -> documentation
|
|
196
|
+
- config/, .config/ -> configuration
|
|
197
|
+
- scripts/ -> build/deploy scripts
|
|
198
|
+
- public/, static/, assets/ -> static assets
|
|
199
|
+
- migrations/ -> database migrations
|
|
200
|
+
|
|
201
|
+
Write output to: {output_path}
|