@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.
Files changed (221) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/CLAUDE.md +149 -0
  3. package/LICENSE +21 -0
  4. package/README.md +247 -0
  5. package/dashboard/bin/cli.js +25 -0
  6. package/dashboard/package.json +34 -0
  7. package/dashboard/public/.gitkeep +0 -0
  8. package/dashboard/public/css/layout.css +406 -0
  9. package/dashboard/public/css/status-colors.css +98 -0
  10. package/dashboard/public/js/htmx-title.js +5 -0
  11. package/dashboard/public/js/sidebar-toggle.js +20 -0
  12. package/dashboard/src/app.js +78 -0
  13. package/dashboard/src/middleware/errorHandler.js +52 -0
  14. package/dashboard/src/middleware/notFoundHandler.js +9 -0
  15. package/dashboard/src/repositories/planning.repository.js +128 -0
  16. package/dashboard/src/routes/events.routes.js +40 -0
  17. package/dashboard/src/routes/index.routes.js +31 -0
  18. package/dashboard/src/routes/pages.routes.js +195 -0
  19. package/dashboard/src/server.js +42 -0
  20. package/dashboard/src/services/dashboard.service.js +222 -0
  21. package/dashboard/src/services/phase.service.js +167 -0
  22. package/dashboard/src/services/project.service.js +57 -0
  23. package/dashboard/src/services/roadmap.service.js +171 -0
  24. package/dashboard/src/services/sse.service.js +58 -0
  25. package/dashboard/src/services/todo.service.js +254 -0
  26. package/dashboard/src/services/watcher.service.js +48 -0
  27. package/dashboard/src/views/coming-soon.ejs +11 -0
  28. package/dashboard/src/views/error.ejs +13 -0
  29. package/dashboard/src/views/index.ejs +5 -0
  30. package/dashboard/src/views/layout.ejs +1 -0
  31. package/dashboard/src/views/partials/dashboard-content.ejs +77 -0
  32. package/dashboard/src/views/partials/footer.ejs +3 -0
  33. package/dashboard/src/views/partials/head.ejs +21 -0
  34. package/dashboard/src/views/partials/header.ejs +12 -0
  35. package/dashboard/src/views/partials/layout-bottom.ejs +15 -0
  36. package/dashboard/src/views/partials/layout-top.ejs +8 -0
  37. package/dashboard/src/views/partials/phase-content.ejs +181 -0
  38. package/dashboard/src/views/partials/phases-content.ejs +117 -0
  39. package/dashboard/src/views/partials/roadmap-content.ejs +142 -0
  40. package/dashboard/src/views/partials/sidebar.ejs +38 -0
  41. package/dashboard/src/views/partials/todo-create-content.ejs +53 -0
  42. package/dashboard/src/views/partials/todo-detail-content.ejs +38 -0
  43. package/dashboard/src/views/partials/todos-content.ejs +53 -0
  44. package/dashboard/src/views/phase-detail.ejs +5 -0
  45. package/dashboard/src/views/phases.ejs +5 -0
  46. package/dashboard/src/views/roadmap.ejs +5 -0
  47. package/dashboard/src/views/todo-create.ejs +5 -0
  48. package/dashboard/src/views/todo-detail.ejs +5 -0
  49. package/dashboard/src/views/todos.ejs +5 -0
  50. package/package.json +57 -0
  51. package/plugins/pbr/.claude-plugin/plugin.json +13 -0
  52. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -0
  53. package/plugins/pbr/agents/codebase-mapper.md +271 -0
  54. package/plugins/pbr/agents/debugger.md +281 -0
  55. package/plugins/pbr/agents/executor.md +407 -0
  56. package/plugins/pbr/agents/general.md +164 -0
  57. package/plugins/pbr/agents/integration-checker.md +141 -0
  58. package/plugins/pbr/agents/plan-checker.md +280 -0
  59. package/plugins/pbr/agents/planner.md +358 -0
  60. package/plugins/pbr/agents/researcher.md +363 -0
  61. package/plugins/pbr/agents/synthesizer.md +230 -0
  62. package/plugins/pbr/agents/verifier.md +454 -0
  63. package/plugins/pbr/commands/begin.md +5 -0
  64. package/plugins/pbr/commands/build.md +5 -0
  65. package/plugins/pbr/commands/config.md +5 -0
  66. package/plugins/pbr/commands/continue.md +5 -0
  67. package/plugins/pbr/commands/debug.md +5 -0
  68. package/plugins/pbr/commands/discuss.md +5 -0
  69. package/plugins/pbr/commands/explore.md +5 -0
  70. package/plugins/pbr/commands/health.md +5 -0
  71. package/plugins/pbr/commands/help.md +5 -0
  72. package/plugins/pbr/commands/import.md +5 -0
  73. package/plugins/pbr/commands/milestone.md +5 -0
  74. package/plugins/pbr/commands/note.md +5 -0
  75. package/plugins/pbr/commands/pause.md +5 -0
  76. package/plugins/pbr/commands/plan.md +5 -0
  77. package/plugins/pbr/commands/quick.md +5 -0
  78. package/plugins/pbr/commands/resume.md +5 -0
  79. package/plugins/pbr/commands/review.md +5 -0
  80. package/plugins/pbr/commands/scan.md +5 -0
  81. package/plugins/pbr/commands/setup.md +5 -0
  82. package/plugins/pbr/commands/status.md +5 -0
  83. package/plugins/pbr/commands/todo.md +5 -0
  84. package/plugins/pbr/contexts/dev.md +27 -0
  85. package/plugins/pbr/contexts/research.md +28 -0
  86. package/plugins/pbr/contexts/review.md +36 -0
  87. package/plugins/pbr/hooks/hooks.json +183 -0
  88. package/plugins/pbr/references/agent-anti-patterns.md +24 -0
  89. package/plugins/pbr/references/agent-interactions.md +134 -0
  90. package/plugins/pbr/references/agent-teams.md +54 -0
  91. package/plugins/pbr/references/checkpoints.md +157 -0
  92. package/plugins/pbr/references/common-bug-patterns.md +13 -0
  93. package/plugins/pbr/references/continuation-format.md +212 -0
  94. package/plugins/pbr/references/deviation-rules.md +112 -0
  95. package/plugins/pbr/references/git-integration.md +226 -0
  96. package/plugins/pbr/references/integration-patterns.md +117 -0
  97. package/plugins/pbr/references/model-profiles.md +99 -0
  98. package/plugins/pbr/references/model-selection.md +31 -0
  99. package/plugins/pbr/references/pbr-rules.md +193 -0
  100. package/plugins/pbr/references/plan-authoring.md +181 -0
  101. package/plugins/pbr/references/plan-format.md +283 -0
  102. package/plugins/pbr/references/planning-config.md +213 -0
  103. package/plugins/pbr/references/questioning.md +214 -0
  104. package/plugins/pbr/references/reading-verification.md +127 -0
  105. package/plugins/pbr/references/stub-patterns.md +160 -0
  106. package/plugins/pbr/references/subagent-coordination.md +119 -0
  107. package/plugins/pbr/references/ui-formatting.md +399 -0
  108. package/plugins/pbr/references/verification-patterns.md +198 -0
  109. package/plugins/pbr/references/wave-execution.md +95 -0
  110. package/plugins/pbr/scripts/auto-continue.js +80 -0
  111. package/plugins/pbr/scripts/check-dangerous-commands.js +136 -0
  112. package/plugins/pbr/scripts/check-doc-sprawl.js +102 -0
  113. package/plugins/pbr/scripts/check-phase-boundary.js +196 -0
  114. package/plugins/pbr/scripts/check-plan-format.js +270 -0
  115. package/plugins/pbr/scripts/check-roadmap-sync.js +252 -0
  116. package/plugins/pbr/scripts/check-skill-workflow.js +262 -0
  117. package/plugins/pbr/scripts/check-state-sync.js +476 -0
  118. package/plugins/pbr/scripts/check-subagent-output.js +144 -0
  119. package/plugins/pbr/scripts/config-schema.json +251 -0
  120. package/plugins/pbr/scripts/context-budget-check.js +287 -0
  121. package/plugins/pbr/scripts/event-handler.js +151 -0
  122. package/plugins/pbr/scripts/event-logger.js +92 -0
  123. package/plugins/pbr/scripts/hook-logger.js +76 -0
  124. package/plugins/pbr/scripts/hooks-schema.json +79 -0
  125. package/plugins/pbr/scripts/log-subagent.js +152 -0
  126. package/plugins/pbr/scripts/log-tool-failure.js +88 -0
  127. package/plugins/pbr/scripts/pbr-tools.js +1301 -0
  128. package/plugins/pbr/scripts/post-write-dispatch.js +66 -0
  129. package/plugins/pbr/scripts/post-write-quality.js +207 -0
  130. package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -0
  131. package/plugins/pbr/scripts/pre-write-dispatch.js +62 -0
  132. package/plugins/pbr/scripts/progress-tracker.js +228 -0
  133. package/plugins/pbr/scripts/session-cleanup.js +254 -0
  134. package/plugins/pbr/scripts/status-line.js +285 -0
  135. package/plugins/pbr/scripts/suggest-compact.js +119 -0
  136. package/plugins/pbr/scripts/task-completed.js +45 -0
  137. package/plugins/pbr/scripts/track-context-budget.js +119 -0
  138. package/plugins/pbr/scripts/validate-commit.js +200 -0
  139. package/plugins/pbr/scripts/validate-plugin-structure.js +172 -0
  140. package/plugins/pbr/skills/begin/SKILL.md +545 -0
  141. package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -0
  142. package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -0
  143. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -0
  144. package/plugins/pbr/skills/begin/templates/config.json.tmpl +63 -0
  145. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -0
  146. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -0
  147. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -0
  148. package/plugins/pbr/skills/build/SKILL.md +962 -0
  149. package/plugins/pbr/skills/config/SKILL.md +241 -0
  150. package/plugins/pbr/skills/continue/SKILL.md +127 -0
  151. package/plugins/pbr/skills/debug/SKILL.md +489 -0
  152. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -0
  153. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -0
  154. package/plugins/pbr/skills/discuss/SKILL.md +338 -0
  155. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -0
  156. package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -0
  157. package/plugins/pbr/skills/explore/SKILL.md +362 -0
  158. package/plugins/pbr/skills/health/SKILL.md +186 -0
  159. package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -0
  160. package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -0
  161. package/plugins/pbr/skills/help/SKILL.md +140 -0
  162. package/plugins/pbr/skills/import/SKILL.md +490 -0
  163. package/plugins/pbr/skills/milestone/SKILL.md +673 -0
  164. package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -0
  165. package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -0
  166. package/plugins/pbr/skills/note/SKILL.md +212 -0
  167. package/plugins/pbr/skills/pause/SKILL.md +235 -0
  168. package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -0
  169. package/plugins/pbr/skills/plan/SKILL.md +628 -0
  170. package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -0
  171. package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -0
  172. package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -0
  173. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -0
  174. package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -0
  175. package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -0
  176. package/plugins/pbr/skills/quick/SKILL.md +335 -0
  177. package/plugins/pbr/skills/resume/SKILL.md +388 -0
  178. package/plugins/pbr/skills/review/SKILL.md +652 -0
  179. package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -0
  180. package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -0
  181. package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -0
  182. package/plugins/pbr/skills/scan/SKILL.md +269 -0
  183. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -0
  184. package/plugins/pbr/skills/setup/SKILL.md +227 -0
  185. package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -0
  186. package/plugins/pbr/skills/shared/config-loading.md +102 -0
  187. package/plugins/pbr/skills/shared/context-budget.md +40 -0
  188. package/plugins/pbr/skills/shared/context-loader-task.md +86 -0
  189. package/plugins/pbr/skills/shared/digest-select.md +79 -0
  190. package/plugins/pbr/skills/shared/domain-probes.md +125 -0
  191. package/plugins/pbr/skills/shared/error-reporting.md +79 -0
  192. package/plugins/pbr/skills/shared/gate-prompts.md +388 -0
  193. package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -0
  194. package/plugins/pbr/skills/shared/progress-display.md +53 -0
  195. package/plugins/pbr/skills/shared/revision-loop.md +81 -0
  196. package/plugins/pbr/skills/shared/state-loading.md +62 -0
  197. package/plugins/pbr/skills/shared/state-update.md +161 -0
  198. package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -0
  199. package/plugins/pbr/skills/status/SKILL.md +353 -0
  200. package/plugins/pbr/skills/todo/SKILL.md +181 -0
  201. package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -0
  202. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -0
  203. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -0
  204. package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -0
  205. package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -0
  206. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -0
  207. package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  208. package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  209. package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  210. package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  211. package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -0
  212. package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  213. package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -0
  214. package/plugins/pbr/templates/continue-here.md.tmpl +73 -0
  215. package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
  216. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
  217. package/plugins/pbr/templates/research/STACK.md.tmpl +71 -0
  218. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -0
  219. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
  220. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -0
  221. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
@@ -0,0 +1,116 @@
1
+ <!-- Source: agents/verifier.md | Purpose: Detailed output format for verification reports produced by the verifier agent -->
2
+
3
+ ```yaml
4
+ ---
5
+ phase: "{phase_id}"
6
+ verified: "{ISO timestamp}"
7
+ status: "passed" # passed | gaps_found | human_needed
8
+ is_re_verification: false # true if re-verifying after gap closure
9
+ score:
10
+ total_must_haves: {n}
11
+ verified: {n}
12
+ failed: {n}
13
+ partial: {n}
14
+ human_needed: {n}
15
+ gaps:
16
+ - must_have: "{description of the failed must-have}"
17
+ level: "{existence | substantive | wired}"
18
+ evidence: "{what you found}"
19
+ recommendation: "{specific action to fix}"
20
+ anti_patterns:
21
+ todos: {count}
22
+ stubs: {count}
23
+ console_logs: {count}
24
+ skipped_tests: {count}
25
+ hardcoded_secrets: {count}
26
+ ---
27
+
28
+ # Phase Verification: {phase_name}
29
+
30
+ > Verified: {date}
31
+ > Status: **{STATUS}**
32
+ > Score: {verified}/{total} must-haves verified
33
+ > Re-verification: {yes/no}
34
+
35
+ ## Observable Truths
36
+
37
+ | # | Truth | Status | Evidence |
38
+ |---|-------|--------|----------|
39
+ | 1 | {truth statement} | VERIFIED | {evidence summary with file paths and line numbers} |
40
+ | 2 | {truth statement} | FAILED | {what's wrong, what was expected, what was found} |
41
+ | 3 | {truth statement} | HUMAN_NEEDED | {why it can't be verified programmatically} |
42
+
43
+ ## Artifact Verification
44
+
45
+ | # | Artifact | L1: Exists | L2: Substantive | L3: Wired | Status |
46
+ |---|----------|-----------|-----------------|-----------|--------|
47
+ | 1 | `{file/export}` | YES | YES (142 lines, real logic) | WIRED (imported by 3 files) | PASS |
48
+ | 2 | `{file/export}` | YES | STUB (TODO at L42, empty handler L67) | N/A | FAIL |
49
+ | 3 | `{file/export}` | YES | YES | ORPHANED (not imported anywhere) | FAIL |
50
+ | 4 | `{file/export}` | NO | N/A | N/A | FAIL |
51
+
52
+ ## Key Link Verification
53
+
54
+ | # | Link Description | Source | Target | Status | Evidence |
55
+ |---|-----------------|--------|--------|--------|----------|
56
+ | 1 | {what connects to what} | `{source_file}` | `{target_file}` | WIRED | Import at L12, called at L45 |
57
+ | 2 | {what connects to what} | `{source_file}` | `{target_file}` | BROKEN | Imported but never called |
58
+
59
+ ## Gaps Found
60
+
61
+ {Only present if status is gaps_found}
62
+
63
+ ### Gap 1: {Short description}
64
+
65
+ - **Must-Have**: {which must-have this gap blocks}
66
+ - **Level Failed**: {existence / substantive / wired}
67
+ - **Evidence**: {specific evidence — file paths, line numbers, command output}
68
+ - **Impact**: {what doesn't work because of this gap}
69
+ - **Recommendation**: {specific action to close this gap}
70
+
71
+ ### Gap 2: {Short description}
72
+ ...
73
+
74
+ ## Human Verification Items
75
+
76
+ {Only present if there are items requiring human verification}
77
+
78
+ ### Item 1: {What needs checking}
79
+
80
+ - **Must-Have**: {which must-have this relates to}
81
+ - **Why Manual**: {why it can't be verified automatically}
82
+ - **How to Test**: {step-by-step instructions}
83
+ - **Expected Result**: {what success looks like}
84
+
85
+ ## Anti-Pattern Scan
86
+
87
+ | Pattern | Count | Severity | Files |
88
+ |---------|-------|----------|-------|
89
+ | TODO/FIXME comments | {n} | {low/medium/high} | {file list} |
90
+ | Stub implementations | {n} | {high} | {file list} |
91
+ | Console.log in production | {n} | {low} | {file list} |
92
+ | Skipped tests | {n} | {medium} | {file list} |
93
+ | Hardcoded secrets | {n} | {critical} | {file list} |
94
+ | Empty catch blocks | {n} | {medium} | {file list} |
95
+
96
+ ## Regressions
97
+
98
+ {Only present in re-verification mode}
99
+
100
+ | # | Must-Have | Previous Status | Current Status | Evidence |
101
+ |---|----------|----------------|----------------|----------|
102
+ | 1 | {must-have} | VERIFIED | FAILED | {what changed} |
103
+
104
+ ## Summary
105
+
106
+ ### Phase Health
107
+ - **Must-haves**: {n}/{total} verified ({percentage}%)
108
+ - **Gaps**: {n} blocking, {n} non-blocking
109
+ - **Anti-patterns**: {n} total ({n} critical)
110
+ - **Human items**: {n} pending
111
+
112
+ ### Recommendations
113
+ 1. {Most important action to take}
114
+ 2. {Second most important}
115
+ 3. ...
116
+ ```
@@ -0,0 +1,98 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for ARCHITECTURE.md codebase analysis -->
2
+ # Architecture
3
+
4
+ > Analyzed: {date}
5
+ > Pattern: {MVC / Layered / Hexagonal / Microservices / Monolith / etc.}
6
+
7
+ ## Pattern Overview
8
+
9
+ {2-3 paragraphs describing the overall architectural pattern with evidence from the codebase}
10
+
11
+ **Evidence**: {file paths, import patterns, directory structure that support this classification}
12
+
13
+ ## Layers
14
+
15
+ | Layer | Purpose | Directory | Key Files |
16
+ |-------|---------|-----------|-----------|
17
+ | {Presentation} | {UI rendering} | {src/components/} | {App.tsx, Layout.tsx} |
18
+ | {API/Routes} | {HTTP handling} | {src/routes/ or src/app/api/} | {users.ts, auth.ts} |
19
+ | {Business Logic} | {Core domain} | {src/services/} | {UserService.ts} |
20
+ | {Data Access} | {Database interaction} | {src/repositories/ or src/db/} | {UserRepo.ts} |
21
+ | {Infrastructure} | {External services} | {src/lib/ or src/integrations/} | {email.ts, storage.ts} |
22
+
23
+ ### Layer Rules
24
+
25
+ {How layers communicate — what imports what? What are the dependency rules?}
26
+
27
+ ```
28
+ Presentation → API → Business → Data Access → Database
29
+
30
+ Infrastructure
31
+ ```
32
+
33
+ ## Data Flow
34
+
35
+ ### Request Lifecycle
36
+
37
+ {How a typical request flows through the system}
38
+
39
+ ```
40
+ 1. Client sends request
41
+ 2. → {Router/Framework} routes to handler
42
+ 3. → {Middleware} runs (auth, validation, logging)
43
+ 4. → {Controller/Handler} processes request
44
+ 5. → {Service} executes business logic
45
+ 6. → {Repository/Model} queries database
46
+ 7. → Response returns through the stack
47
+ ```
48
+
49
+ ### State Management
50
+
51
+ | Context | Approach | Implementation | Files |
52
+ |---------|----------|---------------|-------|
53
+ | Client state | {Redux / Zustand / Context / etc.} | {how it's structured} | {store files} |
54
+ | Server state | {React Query / SWR / etc.} | {how it's used} | {hook files} |
55
+ | Session state | {JWT / cookies / etc.} | {how it's managed} | {auth files} |
56
+
57
+ ## Key Abstractions
58
+
59
+ | Abstraction | Purpose | Implementation | Used By |
60
+ |-------------|---------|---------------|---------|
61
+ | {Repository} | {Database access} | {Abstract class + implementations} | {Services} |
62
+ | {Middleware} | {Cross-cutting concerns} | {Function signature} | {Routes} |
63
+ | {DTO/Schema} | {Data validation} | {Zod schemas / class-validator} | {Routes, Services} |
64
+
65
+ ## Entry Points
66
+
67
+ | Type | File | Config | Notes |
68
+ |------|------|--------|-------|
69
+ | Web app | {src/app/page.tsx} | {port 3000} | {Next.js App Router} |
70
+ | API server | {src/server.ts} | {port 8080} | {Express server} |
71
+ | CLI | {src/cli.ts} | - | {Commander.js} |
72
+ | Workers | {src/workers/} | {queue config} | {Bull/BullMQ} |
73
+ | Cron | {src/cron/} | {schedule} | {node-cron} |
74
+
75
+ ## Error Handling Strategy
76
+
77
+ | Layer | Pattern | Implementation |
78
+ |-------|---------|---------------|
79
+ | API | {Error middleware + HTTP status codes} | {src/middleware/error.ts} |
80
+ | Service | {Custom error classes} | {src/errors/} |
81
+ | Client | {Error boundaries + toast notifications} | {src/components/ErrorBoundary.tsx} |
82
+
83
+ ### Error Flow
84
+
85
+ ```
86
+ Service throws AppError → Controller catches → Error middleware formats response → Client displays
87
+ ```
88
+
89
+ ## Security Architecture
90
+
91
+ | Aspect | Implementation | Files |
92
+ |--------|---------------|-------|
93
+ | Authentication | {how auth works} | {files} |
94
+ | Authorization | {RBAC / ABAC / etc.} | {files} |
95
+ | Input validation | {where and how} | {files} |
96
+ | CORS | {configuration} | {files} |
97
+ | Rate limiting | {if present} | {files} |
98
+ | CSRF protection | {if present} | {files} |
@@ -0,0 +1,93 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for CONCERNS.md codebase analysis -->
2
+ # Concerns & Technical Debt
3
+
4
+ > Analyzed: {date}
5
+ > Severity summary: {n critical, n high, n medium, n low}
6
+
7
+ ## Technical Debt
8
+
9
+ | # | Area | Issue | Severity | Files | Evidence |
10
+ |---|------|-------|----------|-------|----------|
11
+ | 1 | {area} | {what's wrong} | critical/high/medium/low | {file paths} | {what you saw} |
12
+ | 2 | {area} | {what's wrong} | {severity} | {file paths} | {what you saw} |
13
+
14
+ ### Debt Details
15
+
16
+ #### TD-1: {Issue Title}
17
+
18
+ **Severity**: {critical / high / medium / low}
19
+ **Files**: {list of affected files}
20
+ **Description**: {detailed description of the issue}
21
+ **Evidence**: {specific code examples, line numbers}
22
+ **Impact**: {what problems this causes or could cause}
23
+ **Recommendation**: {specific action to fix}
24
+
25
+ ## Known Bugs
26
+
27
+ | # | Description | Severity | Location | Reproduction |
28
+ |---|-------------|----------|----------|--------------|
29
+ | 1 | {bug description} | {severity} | {file:line} | {how to trigger} |
30
+
31
+ ## Security Considerations
32
+
33
+ | # | Issue | Severity | Location | Recommendation |
34
+ |---|-------|----------|----------|----------------|
35
+ | 1 | {Missing input validation on API} | high | {src/routes/users.ts} | {Add zod schema validation} |
36
+ | 2 | {Hardcoded secret in source} | critical | {src/config.ts:42} | {Move to environment variable} |
37
+ | 3 | {SQL injection risk} | critical | {src/db/queries.ts:15} | {Use parameterized queries} |
38
+ | 4 | {No rate limiting} | medium | {src/server.ts} | {Add express-rate-limit} |
39
+ | 5 | {No CSRF protection} | medium | {src/routes/} | {Add csrf tokens} |
40
+
41
+ ## Performance Risks
42
+
43
+ | # | Issue | Location | Impact | Recommendation |
44
+ |---|-------|----------|--------|----------------|
45
+ | 1 | {N+1 query in user list} | {src/routes/users.ts:30} | {Slow page load} | {Use eager loading} |
46
+ | 2 | {No pagination on large queries} | {src/routes/posts.ts:15} | {Memory exhaustion} | {Add cursor pagination} |
47
+ | 3 | {Synchronous file operations} | {src/utils/file.ts} | {Blocks event loop} | {Use async fs methods} |
48
+
49
+ ## Fragile Areas
50
+
51
+ | # | Area | Why Fragile | Impact of Breaking | Files |
52
+ |---|------|-------------|-------------------|-------|
53
+ | 1 | {Auth middleware} | {Tightly coupled to 5 services} | {All protected routes fail} | {files} |
54
+ | 2 | {Data migration} | {No rollback mechanism} | {Data loss on failure} | {files} |
55
+
56
+ ## Dependency Risks
57
+
58
+ | Package | Version | Issue | Recommendation |
59
+ |---------|---------|-------|----------------|
60
+ | {package} | {version} | {Deprecated / EOL / Known vulnerability} | {Update to X / Replace with Y} |
61
+
62
+ ## Scaling Limitations
63
+
64
+ | # | Limitation | When It Breaks | Current State | Fix Approach |
65
+ |---|-----------|---------------|---------------|-------------|
66
+ | 1 | {Single database instance} | {>1000 concurrent users} | {adequate for current load} | {Read replicas} |
67
+ | 2 | {In-memory session store} | {Multiple server instances} | {single instance} | {Redis session store} |
68
+
69
+ ## Missing Infrastructure
70
+
71
+ | Category | Status | Impact | Priority |
72
+ |----------|--------|--------|----------|
73
+ | Error monitoring | {absent/partial/present} | {bugs go unnoticed} | {high} |
74
+ | Logging | {absent/partial/present} | {hard to debug production} | {high} |
75
+ | CI/CD | {absent/partial/present} | {manual deployments} | {medium} |
76
+ | Automated tests | {absent/partial/present} | {regressions not caught} | {high} |
77
+ | Documentation | {absent/partial/present} | {onboarding difficulty} | {low} |
78
+ | Backup/Recovery | {absent/partial/present} | {data loss risk} | {critical} |
79
+ | Health checks | {absent/partial/present} | {outages not detected} | {medium} |
80
+
81
+ ## Recommendations (Prioritized)
82
+
83
+ ### Critical (Fix Immediately)
84
+ 1. {Recommendation with specific action}
85
+
86
+ ### High (Fix Soon)
87
+ 1. {Recommendation with specific action}
88
+
89
+ ### Medium (Plan to Fix)
90
+ 1. {Recommendation with specific action}
91
+
92
+ ### Low (When Convenient)
93
+ 1. {Recommendation with specific action}
@@ -0,0 +1,104 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for CONVENTIONS.md codebase analysis -->
2
+ # Code Conventions
3
+
4
+ > Analyzed: {date}
5
+ > Based on: {n} files inspected
6
+
7
+ ## Naming Conventions
8
+
9
+ | Entity | Convention | Example |
10
+ |--------|-----------|---------|
11
+ | Files (components) | {PascalCase.tsx} | `UserProfile.tsx` |
12
+ | Files (utilities) | {camelCase.ts} | `formatDate.ts` |
13
+ | Functions | {camelCase} | `getUserById` |
14
+ | Classes | {PascalCase} | `UserService` |
15
+ | Interfaces | {PascalCase, no I prefix} | `UserProfile` |
16
+ | Types | {PascalCase} | `CreateUserInput` |
17
+ | Constants | {SCREAMING_SNAKE_CASE or camelCase} | `MAX_RETRIES` or `maxRetries` |
18
+ | Enum members | {PascalCase} | `UserRole.Admin` |
19
+ | Environment variables | {SCREAMING_SNAKE_CASE} | `DATABASE_URL` |
20
+ | CSS classes | {kebab-case or camelCase modules} | `user-profile` |
21
+ | Database tables | {snake_case} | `user_profiles` |
22
+ | API endpoints | {kebab-case} | `/api/user-profiles` |
23
+
24
+ ## Code Style
25
+
26
+ | Aspect | Setting | Config File |
27
+ |--------|---------|-------------|
28
+ | Indentation | {2 spaces / 4 spaces / tabs} | {.editorconfig / .prettierrc} |
29
+ | Quotes | {single / double} | {.prettierrc} |
30
+ | Semicolons | {yes / no} | {.prettierrc} |
31
+ | Trailing commas | {all / es5 / none} | {.prettierrc} |
32
+ | Line width | {80 / 100 / 120} | {.prettierrc} |
33
+ | Line endings | {LF / CRLF} | {.editorconfig} |
34
+
35
+ ## Import Organization
36
+
37
+ {Observed import order pattern from the codebase}
38
+
39
+ ```{language}
40
+ // 1. Node.js built-in modules
41
+ import path from 'path';
42
+
43
+ // 2. External packages
44
+ import React from 'react';
45
+ import { z } from 'zod';
46
+
47
+ // 3. Internal aliases
48
+ import { Button } from '@/components/ui';
49
+ import { useAuth } from '@/hooks/useAuth';
50
+
51
+ // 4. Relative imports
52
+ import { UserCard } from './UserCard';
53
+ import type { User } from './types';
54
+
55
+ // 5. Style imports
56
+ import styles from './UserProfile.module.css';
57
+ ```
58
+
59
+ ## Function Patterns
60
+
61
+ ### Async Functions
62
+
63
+ ```{language}
64
+ // Pattern used in this codebase: {evidence file:line}
65
+ {actual code pattern from codebase}
66
+ ```
67
+
68
+ ### Error Handling
69
+
70
+ ```{language}
71
+ // Pattern used in this codebase: {evidence file:line}
72
+ {actual code pattern from codebase}
73
+ ```
74
+
75
+ ### API Route Handlers
76
+
77
+ ```{language}
78
+ // Pattern used in this codebase: {evidence file:line}
79
+ {actual code pattern from codebase}
80
+ ```
81
+
82
+ ### React Components
83
+
84
+ ```{language}
85
+ // Pattern used in this codebase: {evidence file:line}
86
+ {actual code pattern from codebase}
87
+ ```
88
+
89
+ ## Comment Conventions
90
+
91
+ | When | Style | Example |
92
+ |------|-------|---------|
93
+ | {Complex logic} | {inline comment} | `// Calculate tax with progressive rates` |
94
+ | {Public API} | {JSDoc} | `/** @param user - The user to validate */` |
95
+ | {Temporary} | {TODO with ticket} | `// TODO(#123): refactor after migration` |
96
+ | {Warning} | {IMPORTANT prefix} | `// IMPORTANT: this must run before auth` |
97
+
98
+ ## Git Conventions
99
+
100
+ | Aspect | Convention | Example |
101
+ |--------|-----------|---------|
102
+ | Branch naming | {pattern} | `feature/add-user-auth` |
103
+ | Commit format | {conventional commits / custom} | `feat(auth): add login flow` |
104
+ | PR titles | {pattern} | `[Feature] Add user authentication` |
@@ -0,0 +1,78 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for INTEGRATIONS.md codebase analysis -->
2
+ # External Integrations
3
+
4
+ > Analyzed: {date}
5
+ > Total integrations: {n}
6
+
7
+ ## APIs
8
+
9
+ | Service | Type | Auth Method | Config Var | Used In | Documentation |
10
+ |---------|------|-------------|------------|---------|---------------|
11
+ | {Discord API} | REST | {OAuth2} | DISCORD_TOKEN | {src/integrations/discord.ts} | {URL} |
12
+ | {Stripe} | REST | {API Key} | STRIPE_SECRET_KEY | {src/payments/} | {URL} |
13
+
14
+ ### API Client Patterns
15
+
16
+ {How API calls are made in this codebase — fetch wrapper? axios instance? SDK?}
17
+
18
+ ```{language}
19
+ // Example from codebase: {file:line}
20
+ {actual code pattern}
21
+ ```
22
+
23
+ ## Databases
24
+
25
+ | Database | Type | ORM/Driver | Config | Schema Location | Migrations |
26
+ |----------|------|-----------|--------|-----------------|------------|
27
+ | {PostgreSQL} | {Relational} | {Prisma} | DATABASE_URL | {prisma/schema.prisma} | {prisma/migrations/} |
28
+ | {Redis} | {Key-value} | {ioredis} | REDIS_URL | - | - |
29
+
30
+ ### Database Patterns
31
+
32
+ {How database access is structured — repository pattern? direct queries? ORM models?}
33
+
34
+ ## Authentication & Authorization
35
+
36
+ | Aspect | Implementation | Config | Files |
37
+ |--------|---------------|--------|-------|
38
+ | Method | {JWT / Session / OAuth} | {env vars} | {files} |
39
+ | Provider | {self / Auth0 / Clerk / etc.} | {env vars} | {files} |
40
+ | Storage | {cookie / localStorage / header} | - | {files} |
41
+ | Roles | {admin, user, etc.} | {where defined} | {files} |
42
+
43
+ ## Email/Notifications
44
+
45
+ | Service | Purpose | Config | Used In |
46
+ |---------|---------|--------|---------|
47
+ | {SendGrid} | {Transactional email} | SENDGRID_KEY | {src/email/} |
48
+
49
+ ## File Storage
50
+
51
+ | Service | Purpose | Config | Used In |
52
+ |---------|---------|--------|---------|
53
+ | {S3} | {User uploads} | AWS_* vars | {src/storage/} |
54
+
55
+ ## Monitoring & Logging
56
+
57
+ | Tool | Purpose | Config | Used In |
58
+ |------|---------|--------|---------|
59
+ | {Sentry} | {Error tracking} | SENTRY_DSN | {src/lib/sentry.ts} |
60
+ | {Winston} | {Logging} | - | {src/lib/logger.ts} |
61
+
62
+ ## CI/CD
63
+
64
+ | Platform | Config | Stages | Deployment |
65
+ |----------|--------|--------|------------|
66
+ | {GitHub Actions} | {.github/workflows/} | {lint, test, build, deploy} | {Vercel / AWS / etc.} |
67
+
68
+ ### Pipeline Details
69
+
70
+ {Description of the CI/CD pipeline flow}
71
+
72
+ ## Infrastructure
73
+
74
+ | Component | Provider | Config | Notes |
75
+ |-----------|----------|--------|-------|
76
+ | {Hosting} | {Vercel} | {vercel.json} | {auto-deploy from main} |
77
+ | {DNS} | {Cloudflare} | - | {if relevant} |
78
+ | {CDN} | {included with host} | - | - |
@@ -0,0 +1,78 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for STACK.md codebase analysis -->
2
+ # Technology Stack
3
+
4
+ > Analyzed: {date}
5
+ > Project: {project name from package.json or directory}
6
+
7
+ ## Languages & Runtime
8
+
9
+ | Language | Version | Config | Notes |
10
+ |----------|---------|--------|-------|
11
+ | TypeScript | {version from tsconfig target or dep} | `tsconfig.json` | {strict mode? path aliases?} |
12
+ | Node.js | {version from engines or .nvmrc} | `.nvmrc` / `package.json engines` | {LTS?} |
13
+
14
+ ## Frameworks
15
+
16
+ | Framework | Version | Role | Entry Point | Config |
17
+ |-----------|---------|------|-------------|--------|
18
+ | {Next.js} | {14.x} | {Web framework} | {src/app/} | {next.config.js} |
19
+ | {Express} | {4.x} | {API server} | {src/server.ts} | - |
20
+
21
+ ## Key Dependencies
22
+
23
+ ### Production Dependencies
24
+
25
+ | Package | Version | Purpose | Used In |
26
+ |---------|---------|---------|---------|
27
+ | {prisma} | {5.x} | {ORM / database} | {src/db/} |
28
+ | {zod} | {3.x} | {Validation} | {src/validators/} |
29
+
30
+ ### Development Dependencies
31
+
32
+ | Package | Version | Purpose | Config |
33
+ |---------|---------|---------|--------|
34
+ | {jest} | {29.x} | {Testing} | {jest.config.ts} |
35
+ | {eslint} | {8.x} | {Linting} | {.eslintrc.js} |
36
+
37
+ ## Build & Tooling
38
+
39
+ | Tool | Config File | Purpose | Commands |
40
+ |------|-------------|---------|----------|
41
+ | {TypeScript} | `tsconfig.json` | {Compilation} | `npx tsc --noEmit` |
42
+ | {ESLint} | `.eslintrc.js` | {Linting} | `npm run lint` |
43
+ | {Prettier} | `.prettierrc` | {Formatting} | `npm run format` |
44
+ | {Jest} | `jest.config.ts` | {Testing} | `npm test` |
45
+
46
+ ## Package Manager
47
+
48
+ - **Manager**: {npm / yarn / pnpm / bun}
49
+ - **Lock file**: {package-lock.json / yarn.lock / pnpm-lock.yaml}
50
+ - **Workspaces**: {yes/no, if yes: list workspace paths}
51
+
52
+ ## Environment Configuration
53
+
54
+ | Variable | Required | Default | Purpose | Where Used |
55
+ |----------|----------|---------|---------|------------|
56
+ | DATABASE_URL | YES | - | Database connection | {src/db/} |
57
+ | {VAR_NAME} | {YES/NO} | {value} | {purpose} | {files} |
58
+
59
+ **Template**: {`.env.example` exists? Y/N}
60
+
61
+ ## Platform Requirements
62
+
63
+ | Requirement | Value | Source |
64
+ |------------|-------|--------|
65
+ | Node version | {>=18} | {package.json engines} |
66
+ | OS | {any / linux only / etc.} | {evidence} |
67
+ | Memory | {if specified} | {evidence} |
68
+ | External services | {list databases, caches, etc.} | {docker-compose, docs} |
69
+
70
+ ## Scripts
71
+
72
+ | Script | Command | Purpose |
73
+ |--------|---------|---------|
74
+ | `dev` | {command} | {Start dev server} |
75
+ | `build` | {command} | {Build for production} |
76
+ | `test` | {command} | {Run tests} |
77
+ | `lint` | {command} | {Run linter} |
78
+ | {others} | {command} | {purpose} |
@@ -0,0 +1,80 @@
1
+ <!-- Source: agents/codebase-mapper.md | Purpose: Output format for STRUCTURE.md codebase analysis -->
2
+ # Project Structure
3
+
4
+ > Analyzed: {date}
5
+
6
+ ## Directory Layout
7
+
8
+ ```
9
+ {project_root}/
10
+ ├── src/ # Source code
11
+ │ ├── app/ # {Purpose: Next.js App Router pages}
12
+ │ │ ├── api/ # {API route handlers}
13
+ │ │ ├── (auth)/ # {Auth-related pages}
14
+ │ │ └── layout.tsx # {Root layout}
15
+ │ ├── components/ # {Shared UI components}
16
+ │ │ ├── ui/ # {Primitive UI components}
17
+ │ │ └── features/ # {Feature-specific components}
18
+ │ ├── lib/ # {Shared utilities and configurations}
19
+ │ ├── services/ # {Business logic}
20
+ │ ├── models/ # {Data models / types}
21
+ │ ├── hooks/ # {Custom React hooks}
22
+ │ └── styles/ # {Global styles}
23
+ ├── prisma/ # {Database schema and migrations}
24
+ ├── public/ # {Static assets}
25
+ ├── tests/ # {Test files}
26
+ ├── docs/ # {Documentation}
27
+ └── scripts/ # {Build/deploy scripts}
28
+ ```
29
+
30
+ ## File Naming Conventions
31
+
32
+ | Type | Pattern | Example |
33
+ |------|---------|---------|
34
+ | React components | {PascalCase.tsx} | `UserProfile.tsx` |
35
+ | Hooks | {camelCase.ts, use* prefix} | `useAuth.ts` |
36
+ | Utilities | {camelCase.ts} | `formatDate.ts` |
37
+ | Types | {PascalCase.ts or types.ts} | `User.ts`, `types.ts` |
38
+ | Tests | {*.test.ts or *.spec.ts} | `UserProfile.test.tsx` |
39
+ | API routes | {route.ts in directory} | `app/api/users/route.ts` |
40
+ | Config | {lowercase with dots} | `jest.config.ts` |
41
+ | Constants | {UPPER_CASE or camelCase} | `constants.ts` |
42
+
43
+ ## Module Boundaries
44
+
45
+ {How the code is organized into modules/features and what the boundaries are}
46
+
47
+ | Module | Directory | Responsibility | Dependencies |
48
+ |--------|-----------|---------------|-------------|
49
+ | {Auth} | {src/auth/} | {Authentication & session} | {Database, Config} |
50
+ | {Users} | {src/users/} | {User CRUD} | {Auth, Database} |
51
+
52
+ ## Import Patterns
53
+
54
+ {How imports are organized in this codebase}
55
+
56
+ ```{language}
57
+ // Standard import order observed in this project:
58
+ // {example from actual codebase}
59
+ ```
60
+
61
+ ### Path Aliases
62
+
63
+ | Alias | Maps To | Config |
64
+ |-------|---------|--------|
65
+ | `@/` | `src/` | `tsconfig.json paths` |
66
+ | `@components/` | `src/components/` | `tsconfig.json paths` |
67
+
68
+ ## Where to Add Code
69
+
70
+ | Type of Code | Location | Convention | Example |
71
+ |-------------|----------|------------|---------|
72
+ | New API route | `src/app/api/{resource}/route.ts` | {pattern} | {example} |
73
+ | New component | `src/components/{feature}/` | {pattern} | {example} |
74
+ | New service | `src/services/` | {pattern} | {example} |
75
+ | New model | `src/models/` | {pattern} | {example} |
76
+ | New test | `{co-located or tests/}` | {pattern} | {example} |
77
+ | New utility | `src/lib/` or `src/utils/` | {pattern} | {example} |
78
+ | New hook | `src/hooks/` | {pattern} | {example} |
79
+ | New migration | `prisma/migrations/` | `npx prisma migrate dev` | - |
80
+ | New env var | `.env` + `.env.example` | {pattern} | {example} |