@sienklogic/plan-build-run 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -56
- package/CLAUDE.md +149 -149
- package/LICENSE +21 -21
- package/README.md +247 -247
- package/dashboard/bin/cli.js +25 -25
- package/dashboard/package.json +34 -34
- package/dashboard/public/css/layout.css +406 -406
- package/dashboard/public/css/status-colors.css +98 -98
- package/dashboard/public/js/htmx-title.js +5 -5
- package/dashboard/public/js/sidebar-toggle.js +20 -20
- package/dashboard/src/app.js +78 -78
- package/dashboard/src/middleware/errorHandler.js +52 -52
- package/dashboard/src/middleware/notFoundHandler.js +9 -9
- package/dashboard/src/repositories/planning.repository.js +128 -128
- package/dashboard/src/routes/events.routes.js +40 -40
- package/dashboard/src/routes/index.routes.js +31 -31
- package/dashboard/src/routes/pages.routes.js +245 -195
- package/dashboard/src/server.js +42 -42
- package/dashboard/src/services/dashboard.service.js +222 -222
- package/dashboard/src/services/phase.service.js +220 -167
- package/dashboard/src/services/project.service.js +57 -57
- package/dashboard/src/services/roadmap.service.js +171 -171
- package/dashboard/src/services/sse.service.js +58 -58
- package/dashboard/src/services/todo.service.js +254 -254
- package/dashboard/src/services/watcher.service.js +48 -48
- package/dashboard/src/views/coming-soon.ejs +11 -11
- package/dashboard/src/views/error.ejs +13 -13
- package/dashboard/src/views/index.ejs +5 -5
- package/dashboard/src/views/layout.ejs +1 -1
- package/dashboard/src/views/partials/dashboard-content.ejs +77 -77
- package/dashboard/src/views/partials/footer.ejs +3 -3
- package/dashboard/src/views/partials/head.ejs +21 -21
- package/dashboard/src/views/partials/header.ejs +12 -12
- package/dashboard/src/views/partials/layout-bottom.ejs +15 -15
- package/dashboard/src/views/partials/layout-top.ejs +8 -8
- package/dashboard/src/views/partials/phase-content.ejs +188 -181
- package/dashboard/src/views/partials/phase-doc-content.ejs +38 -0
- package/dashboard/src/views/partials/phases-content.ejs +117 -117
- package/dashboard/src/views/partials/roadmap-content.ejs +142 -142
- package/dashboard/src/views/partials/sidebar.ejs +38 -38
- package/dashboard/src/views/partials/todo-create-content.ejs +53 -53
- package/dashboard/src/views/partials/todo-detail-content.ejs +38 -38
- package/dashboard/src/views/partials/todos-content.ejs +53 -53
- package/dashboard/src/views/phase-detail.ejs +5 -5
- package/dashboard/src/views/phase-doc.ejs +5 -0
- package/dashboard/src/views/phases.ejs +5 -5
- package/dashboard/src/views/roadmap.ejs +5 -5
- package/dashboard/src/views/todo-create.ejs +5 -5
- package/dashboard/src/views/todo-detail.ejs +5 -5
- package/dashboard/src/views/todos.ejs +5 -5
- package/package.json +57 -57
- package/plugins/pbr/.claude-plugin/plugin.json +13 -13
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -61
- package/plugins/pbr/agents/codebase-mapper.md +279 -271
- package/plugins/pbr/agents/debugger.md +281 -281
- package/plugins/pbr/agents/executor.md +428 -407
- package/plugins/pbr/agents/general.md +164 -164
- package/plugins/pbr/agents/integration-checker.md +169 -141
- package/plugins/pbr/agents/plan-checker.md +296 -280
- package/plugins/pbr/agents/planner.md +358 -358
- package/plugins/pbr/agents/researcher.md +363 -363
- package/plugins/pbr/agents/synthesizer.md +230 -230
- package/plugins/pbr/agents/verifier.md +489 -454
- package/plugins/pbr/commands/begin.md +5 -5
- package/plugins/pbr/commands/build.md +5 -5
- package/plugins/pbr/commands/config.md +5 -5
- package/plugins/pbr/commands/continue.md +5 -5
- package/plugins/pbr/commands/debug.md +5 -5
- package/plugins/pbr/commands/discuss.md +5 -5
- package/plugins/pbr/commands/explore.md +5 -5
- package/plugins/pbr/commands/health.md +5 -5
- package/plugins/pbr/commands/help.md +5 -5
- package/plugins/pbr/commands/import.md +5 -5
- package/plugins/pbr/commands/milestone.md +5 -5
- package/plugins/pbr/commands/note.md +5 -5
- package/plugins/pbr/commands/pause.md +5 -5
- package/plugins/pbr/commands/plan.md +5 -5
- package/plugins/pbr/commands/quick.md +5 -5
- package/plugins/pbr/commands/resume.md +5 -5
- package/plugins/pbr/commands/review.md +5 -5
- package/plugins/pbr/commands/scan.md +5 -5
- package/plugins/pbr/commands/setup.md +5 -5
- package/plugins/pbr/commands/status.md +5 -5
- package/plugins/pbr/commands/todo.md +5 -5
- package/plugins/pbr/contexts/dev.md +27 -27
- package/plugins/pbr/contexts/research.md +28 -28
- package/plugins/pbr/contexts/review.md +36 -36
- package/plugins/pbr/hooks/hooks.json +183 -183
- package/plugins/pbr/references/agent-anti-patterns.md +24 -24
- package/plugins/pbr/references/agent-interactions.md +134 -134
- package/plugins/pbr/references/agent-teams.md +54 -54
- package/plugins/pbr/references/checkpoints.md +157 -157
- package/plugins/pbr/references/common-bug-patterns.md +13 -13
- package/plugins/pbr/references/config-reference.md +441 -0
- package/plugins/pbr/references/continuation-format.md +212 -212
- package/plugins/pbr/references/deviation-rules.md +112 -112
- package/plugins/pbr/references/git-integration.md +226 -226
- package/plugins/pbr/references/integration-patterns.md +117 -117
- package/plugins/pbr/references/model-profiles.md +99 -99
- package/plugins/pbr/references/model-selection.md +31 -31
- package/plugins/pbr/references/pbr-rules.md +193 -193
- package/plugins/pbr/references/plan-authoring.md +181 -181
- package/plugins/pbr/references/plan-format.md +287 -283
- package/plugins/pbr/references/planning-config.md +213 -213
- package/plugins/pbr/references/questioning.md +214 -214
- package/plugins/pbr/references/reading-verification.md +127 -127
- package/plugins/pbr/references/stub-patterns.md +160 -160
- package/plugins/pbr/references/subagent-coordination.md +119 -119
- package/plugins/pbr/references/ui-formatting.md +461 -399
- package/plugins/pbr/references/verification-patterns.md +198 -198
- package/plugins/pbr/references/wave-execution.md +95 -95
- package/plugins/pbr/scripts/auto-continue.js +80 -80
- package/plugins/pbr/scripts/check-dangerous-commands.js +136 -136
- package/plugins/pbr/scripts/check-doc-sprawl.js +102 -102
- package/plugins/pbr/scripts/check-phase-boundary.js +196 -196
- package/plugins/pbr/scripts/check-plan-format.js +270 -270
- package/plugins/pbr/scripts/check-roadmap-sync.js +322 -252
- package/plugins/pbr/scripts/check-skill-workflow.js +262 -262
- package/plugins/pbr/scripts/check-state-sync.js +476 -476
- package/plugins/pbr/scripts/check-subagent-output.js +144 -144
- package/plugins/pbr/scripts/config-schema.json +251 -251
- package/plugins/pbr/scripts/context-budget-check.js +287 -287
- package/plugins/pbr/scripts/event-handler.js +151 -151
- package/plugins/pbr/scripts/event-logger.js +92 -92
- package/plugins/pbr/scripts/hook-logger.js +80 -76
- package/plugins/pbr/scripts/hooks-schema.json +79 -79
- package/plugins/pbr/scripts/log-subagent.js +164 -152
- package/plugins/pbr/scripts/log-tool-failure.js +88 -88
- package/plugins/pbr/scripts/pbr-tools.js +1378 -1301
- package/plugins/pbr/scripts/post-write-dispatch.js +66 -66
- package/plugins/pbr/scripts/post-write-quality.js +207 -207
- package/plugins/pbr/scripts/pre-bash-dispatch.js +86 -56
- package/plugins/pbr/scripts/pre-write-dispatch.js +97 -62
- package/plugins/pbr/scripts/progress-tracker.js +281 -228
- package/plugins/pbr/scripts/run-hook.js +92 -0
- package/plugins/pbr/scripts/session-cleanup.js +254 -254
- package/plugins/pbr/scripts/status-line.js +288 -285
- package/plugins/pbr/scripts/suggest-compact.js +119 -119
- package/plugins/pbr/scripts/task-completed.js +45 -45
- package/plugins/pbr/scripts/track-context-budget.js +149 -119
- package/plugins/pbr/scripts/validate-commit.js +200 -200
- package/plugins/pbr/scripts/validate-plugin-structure.js +183 -172
- package/plugins/pbr/scripts/validate-task.js +106 -0
- package/plugins/pbr/skills/begin/SKILL.md +594 -545
- package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -33
- package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -18
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -49
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +64 -63
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -30
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/build/SKILL.md +943 -962
- package/plugins/pbr/skills/config/SKILL.md +256 -241
- package/plugins/pbr/skills/continue/SKILL.md +164 -127
- package/plugins/pbr/skills/debug/SKILL.md +515 -489
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -27
- package/plugins/pbr/skills/discuss/SKILL.md +347 -338
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -61
- package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -9
- package/plugins/pbr/skills/explore/SKILL.md +378 -362
- package/plugins/pbr/skills/health/SKILL.md +221 -186
- package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -30
- package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -63
- package/plugins/pbr/skills/help/SKILL.md +155 -140
- package/plugins/pbr/skills/import/SKILL.md +504 -490
- package/plugins/pbr/skills/milestone/SKILL.md +704 -673
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -48
- package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -30
- package/plugins/pbr/skills/note/SKILL.md +231 -212
- package/plugins/pbr/skills/pause/SKILL.md +249 -235
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -71
- package/plugins/pbr/skills/plan/SKILL.md +685 -628
- package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -98
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -21
- package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -32
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -38
- package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -23
- package/plugins/pbr/skills/quick/SKILL.md +354 -335
- package/plugins/pbr/skills/resume/SKILL.md +402 -388
- package/plugins/pbr/skills/review/SKILL.md +686 -652
- package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -60
- package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -40
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -115
- package/plugins/pbr/skills/scan/SKILL.md +304 -269
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -201
- package/plugins/pbr/skills/setup/SKILL.md +253 -227
- package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -35
- package/plugins/pbr/skills/shared/config-loading.md +102 -102
- package/plugins/pbr/skills/shared/context-budget.md +40 -40
- package/plugins/pbr/skills/shared/context-loader-task.md +86 -86
- package/plugins/pbr/skills/shared/digest-select.md +79 -79
- package/plugins/pbr/skills/shared/domain-probes.md +125 -125
- package/plugins/pbr/skills/shared/error-reporting.md +79 -79
- package/plugins/pbr/skills/shared/gate-prompts.md +388 -388
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -45
- package/plugins/pbr/skills/shared/progress-display.md +53 -53
- package/plugins/pbr/skills/shared/revision-loop.md +81 -81
- package/plugins/pbr/skills/shared/state-loading.md +62 -62
- package/plugins/pbr/skills/shared/state-update.md +161 -161
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -33
- package/plugins/pbr/skills/status/SKILL.md +367 -353
- package/plugins/pbr/skills/todo/SKILL.md +198 -181
- package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -52
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -151
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -97
- package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -40
- package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -81
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -116
- package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -98
- package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -93
- package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -104
- package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -80
- package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -107
- package/plugins/pbr/templates/continue-here.md.tmpl +73 -73
- package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -37
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +71 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -36
|
@@ -1,93 +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}
|
|
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}
|
|
@@ -1,104 +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` |
|
|
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` |
|
|
@@ -1,78 +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} | - | - |
|
|
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} | - | - |
|