@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,38 @@
|
|
|
1
|
+
<aside class="sidebar">
|
|
2
|
+
<nav>
|
|
3
|
+
<ul>
|
|
4
|
+
<li>
|
|
5
|
+
<a href="/"
|
|
6
|
+
hx-get="/"
|
|
7
|
+
hx-target="#main-content"
|
|
8
|
+
hx-push-url="true"<%= typeof activePage !== 'undefined' && activePage === 'dashboard' ? ' aria-current="page"' : '' %>>
|
|
9
|
+
Dashboard
|
|
10
|
+
</a>
|
|
11
|
+
</li>
|
|
12
|
+
<li>
|
|
13
|
+
<a href="/phases"
|
|
14
|
+
hx-get="/phases"
|
|
15
|
+
hx-target="#main-content"
|
|
16
|
+
hx-push-url="true"<%= typeof activePage !== 'undefined' && activePage === 'phases' ? ' aria-current="page"' : '' %>>
|
|
17
|
+
Phases
|
|
18
|
+
</a>
|
|
19
|
+
</li>
|
|
20
|
+
<li>
|
|
21
|
+
<a href="/todos"
|
|
22
|
+
hx-get="/todos"
|
|
23
|
+
hx-target="#main-content"
|
|
24
|
+
hx-push-url="true"<%= typeof activePage !== 'undefined' && activePage === 'todos' ? ' aria-current="page"' : '' %>>
|
|
25
|
+
Todos
|
|
26
|
+
</a>
|
|
27
|
+
</li>
|
|
28
|
+
<li>
|
|
29
|
+
<a href="/roadmap"
|
|
30
|
+
hx-get="/roadmap"
|
|
31
|
+
hx-target="#main-content"
|
|
32
|
+
hx-push-url="true"<%= typeof activePage !== 'undefined' && activePage === 'roadmap' ? ' aria-current="page"' : '' %>>
|
|
33
|
+
Roadmap
|
|
34
|
+
</a>
|
|
35
|
+
</li>
|
|
36
|
+
</ul>
|
|
37
|
+
</nav>
|
|
38
|
+
</aside>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<h1>Create Todo</h1>
|
|
2
|
+
|
|
3
|
+
<p><a href="/todos">← Back to Todos</a></p>
|
|
4
|
+
|
|
5
|
+
<article>
|
|
6
|
+
<form method="POST" action="/todos"
|
|
7
|
+
hx-post="/todos"
|
|
8
|
+
hx-target="#main-content">
|
|
9
|
+
<label>
|
|
10
|
+
Title
|
|
11
|
+
<input
|
|
12
|
+
type="text"
|
|
13
|
+
name="title"
|
|
14
|
+
placeholder="Todo title"
|
|
15
|
+
required
|
|
16
|
+
maxlength="200"
|
|
17
|
+
/>
|
|
18
|
+
</label>
|
|
19
|
+
|
|
20
|
+
<label>
|
|
21
|
+
Priority
|
|
22
|
+
<select name="priority" required>
|
|
23
|
+
<option value="">Select priority...</option>
|
|
24
|
+
<option value="P0">P0 - Critical</option>
|
|
25
|
+
<option value="P1">P1 - High</option>
|
|
26
|
+
<option value="P2">P2 - Medium</option>
|
|
27
|
+
<option value="PX">PX - Low</option>
|
|
28
|
+
</select>
|
|
29
|
+
</label>
|
|
30
|
+
|
|
31
|
+
<label>
|
|
32
|
+
Phase (optional)
|
|
33
|
+
<input
|
|
34
|
+
type="text"
|
|
35
|
+
name="phase"
|
|
36
|
+
placeholder="e.g., 09-todo-write-operations"
|
|
37
|
+
/>
|
|
38
|
+
<small>Format: 01-phase-name</small>
|
|
39
|
+
</label>
|
|
40
|
+
|
|
41
|
+
<label>
|
|
42
|
+
Description
|
|
43
|
+
<textarea
|
|
44
|
+
name="description"
|
|
45
|
+
rows="10"
|
|
46
|
+
required
|
|
47
|
+
placeholder="Markdown content..."
|
|
48
|
+
></textarea>
|
|
49
|
+
</label>
|
|
50
|
+
|
|
51
|
+
<button type="submit">Create Todo</button>
|
|
52
|
+
</form>
|
|
53
|
+
</article>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<h1><%= title %></h1>
|
|
2
|
+
|
|
3
|
+
<p><a href="/todos">← Back to Todos</a></p>
|
|
4
|
+
|
|
5
|
+
<article>
|
|
6
|
+
<header>
|
|
7
|
+
<strong>Todo <%= id %></strong>
|
|
8
|
+
|
|
9
|
+
<span class="status-badge" data-priority="<%= priority %>">
|
|
10
|
+
<%= priority %>
|
|
11
|
+
</span>
|
|
12
|
+
|
|
13
|
+
<span class="status-badge" data-status="<%= status %>">
|
|
14
|
+
<%= status %>
|
|
15
|
+
</span>
|
|
16
|
+
</header>
|
|
17
|
+
|
|
18
|
+
<% if (phase) { %>
|
|
19
|
+
<p><strong>Phase:</strong> <%= phase %></p>
|
|
20
|
+
<% } %>
|
|
21
|
+
<% if (created) { %>
|
|
22
|
+
<p><strong>Created:</strong> <%= created %></p>
|
|
23
|
+
<% } %>
|
|
24
|
+
|
|
25
|
+
<hr>
|
|
26
|
+
|
|
27
|
+
<%- html %>
|
|
28
|
+
|
|
29
|
+
<% if (status === 'pending') { %>
|
|
30
|
+
<hr>
|
|
31
|
+
<form method="POST" action="/todos/<%= id %>/done"
|
|
32
|
+
hx-post="/todos/<%= id %>/done"
|
|
33
|
+
hx-target="#main-content"
|
|
34
|
+
style="display:inline;">
|
|
35
|
+
<button type="submit" class="secondary">Mark as Done</button>
|
|
36
|
+
</form>
|
|
37
|
+
<% } %>
|
|
38
|
+
</article>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<h1>Todos</h1>
|
|
2
|
+
|
|
3
|
+
<p><a href="/todos/new" role="button"
|
|
4
|
+
hx-get="/todos/new"
|
|
5
|
+
hx-target="#main-content"
|
|
6
|
+
hx-push-url="true">Create Todo</a></p>
|
|
7
|
+
|
|
8
|
+
<% if (todos.length > 0) { %>
|
|
9
|
+
<article>
|
|
10
|
+
<div class="table-wrap">
|
|
11
|
+
<table>
|
|
12
|
+
<thead>
|
|
13
|
+
<tr>
|
|
14
|
+
<th scope="col">ID</th>
|
|
15
|
+
<th scope="col">Title</th>
|
|
16
|
+
<th scope="col">Priority</th>
|
|
17
|
+
<th scope="col">Phase</th>
|
|
18
|
+
<th scope="col">Status</th>
|
|
19
|
+
<th scope="col">Created</th>
|
|
20
|
+
</tr>
|
|
21
|
+
</thead>
|
|
22
|
+
<tbody>
|
|
23
|
+
<% todos.forEach(function(todo) { %>
|
|
24
|
+
<tr>
|
|
25
|
+
<td><%= todo.id %></td>
|
|
26
|
+
<td>
|
|
27
|
+
<a href="/todos/<%= todo.id %>">
|
|
28
|
+
<%= todo.title %>
|
|
29
|
+
</a>
|
|
30
|
+
</td>
|
|
31
|
+
<td>
|
|
32
|
+
<span class="status-badge" data-priority="<%= todo.priority %>">
|
|
33
|
+
<%= todo.priority %>
|
|
34
|
+
</span>
|
|
35
|
+
</td>
|
|
36
|
+
<td><%= todo.phase %></td>
|
|
37
|
+
<td>
|
|
38
|
+
<span class="status-badge" data-status="<%= todo.status %>">
|
|
39
|
+
<%= todo.status %>
|
|
40
|
+
</span>
|
|
41
|
+
</td>
|
|
42
|
+
<td><%= todo.created %></td>
|
|
43
|
+
</tr>
|
|
44
|
+
<% }); %>
|
|
45
|
+
</tbody>
|
|
46
|
+
</table>
|
|
47
|
+
</div>
|
|
48
|
+
</article>
|
|
49
|
+
<% } else { %>
|
|
50
|
+
<article>
|
|
51
|
+
<p>No pending todos found. Add a todo file to <code>.planning/todos/pending/</code> to see it here.</p>
|
|
52
|
+
</article>
|
|
53
|
+
<% } %>
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sienklogic/plan-build-run",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Plan it, Build it, Run it — structured development workflow for Claude Code",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"claude-code",
|
|
7
|
+
"plugin",
|
|
8
|
+
"development-workflow",
|
|
9
|
+
"context-engineering",
|
|
10
|
+
"ai-development"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/SienkLogic/plan-build-run"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/SienkLogic/plan-build-run",
|
|
18
|
+
"files": [
|
|
19
|
+
"plugins/",
|
|
20
|
+
"dashboard/bin/",
|
|
21
|
+
"dashboard/package.json",
|
|
22
|
+
"dashboard/public/",
|
|
23
|
+
"dashboard/src/",
|
|
24
|
+
"CLAUDE.md",
|
|
25
|
+
"CHANGELOG.md",
|
|
26
|
+
"LICENSE",
|
|
27
|
+
"README.md"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"test": "jest",
|
|
31
|
+
"lint": "eslint plugins/pbr/scripts/ tests/",
|
|
32
|
+
"validate": "node plugins/pbr/scripts/validate-plugin-structure.js",
|
|
33
|
+
"dashboard": "node dashboard/bin/cli.js",
|
|
34
|
+
"dashboard:install": "npm install --prefix dashboard"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"jest": "^29.0.0",
|
|
38
|
+
"eslint": "^9.0.0"
|
|
39
|
+
},
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=18.0.0"
|
|
42
|
+
},
|
|
43
|
+
"jest": {
|
|
44
|
+
"testPathIgnorePatterns": [
|
|
45
|
+
"/node_modules/",
|
|
46
|
+
"/dashboard/"
|
|
47
|
+
],
|
|
48
|
+
"coverageThreshold": {
|
|
49
|
+
"global": {
|
|
50
|
+
"statements": 65,
|
|
51
|
+
"branches": 58,
|
|
52
|
+
"functions": 70,
|
|
53
|
+
"lines": 65
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pbr",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Plan-Build-Run — Structured development workflow for Claude Code. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "SienkLogic",
|
|
7
|
+
"email": "dave@sienklogic.com"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/SienkLogic/plan-build-run",
|
|
10
|
+
"repository": "https://github.com/SienkLogic/plan-build-run",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["claude-code", "context-engineering", "development-workflow", "subagent-delegation"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# UI Consistency Gaps — Audit Round 2
|
|
2
|
+
|
|
3
|
+
Created: 2026-02-17
|
|
4
|
+
Tracks remaining gaps found after initial UI consistency pass.
|
|
5
|
+
|
|
6
|
+
## Category 1: Spawning Indicators
|
|
7
|
+
|
|
8
|
+
| # | Skill | Issue | Status |
|
|
9
|
+
|---|-------|-------|--------|
|
|
10
|
+
| 1.1 | build | Executor, verifier, inline verifier, mapper spawns ALL missing `◐` | DONE |
|
|
11
|
+
| 1.2 | debug | 3 Task() calls (new session, resume, checkpoint) — ALL missing | DONE |
|
|
12
|
+
| 1.3 | scan | Parallel mapper spawn — no pre-spawn `◐` indicator | DONE |
|
|
13
|
+
| 1.4 | milestone | Audit integration-checker Task() — no indicator | DONE |
|
|
14
|
+
| 1.5 | quick | Executor Task() — no indicator | DONE |
|
|
15
|
+
| 1.6 | plan | Team mode: 3 planners + synthesizer spawned with no indicators | DONE |
|
|
16
|
+
| 1.7 | review | Team mode: 3 verifiers + synthesizer spawned with no indicators | DONE |
|
|
17
|
+
| 1.8 | begin | Researchers use wrong format ("Launched" post-spawn vs `◐` pre-spawn) | DONE |
|
|
18
|
+
| 1.9 | explore | Mid-conversation research Task() — no indicator | DONE |
|
|
19
|
+
|
|
20
|
+
## Category 2: Error Boxes
|
|
21
|
+
|
|
22
|
+
| # | Skill | Issue | Status |
|
|
23
|
+
|---|-------|-------|--------|
|
|
24
|
+
| 2.1 | import | 5 error paths in Error Handling section all use plain text | DONE |
|
|
25
|
+
| 2.2 | resume | "No project" and "empty project" paths use plain text | DONE |
|
|
26
|
+
| 2.3 | todo | No error box for write failures | DONE |
|
|
27
|
+
| 2.4 | plan | Checker-loop-forever failure has no error box | DONE |
|
|
28
|
+
|
|
29
|
+
## Category 3: Completion Banners
|
|
30
|
+
|
|
31
|
+
| # | Skill | Issue | Status |
|
|
32
|
+
|---|-------|-------|--------|
|
|
33
|
+
| 3.1 | build | References ui-formatting.md templates but never shows banner inline | DONE |
|
|
34
|
+
| 3.2 | discuss | No completion banner at all | DONE |
|
|
35
|
+
| 3.3 | debug | No banner for resolved case | DONE |
|
|
36
|
+
| 3.4 | todo | Plain `✓` lines, no branded banner | DONE |
|
|
37
|
+
| 3.5 | review | Verified/milestone paths reference templates instead of showing them | DONE |
|
|
38
|
+
|
|
39
|
+
## Category 4: Next Up Routing
|
|
40
|
+
|
|
41
|
+
| # | Skill | Issue | Status |
|
|
42
|
+
|---|-------|-------|--------|
|
|
43
|
+
| 4.1 | build | No Next Up block anywhere | DONE |
|
|
44
|
+
| 4.2 | discuss | Plain text suggestion only | DONE |
|
|
45
|
+
| 4.3 | debug | Plain text only | DONE |
|
|
46
|
+
| 4.4 | resume | Plain text / bare AskUserQuestion | DONE |
|
|
47
|
+
| 4.5 | status | Plain text routing (no branded block) | DONE |
|
|
48
|
+
| 4.6 | todo | Plain `→` arrow lines, no branded wrapper | DONE |
|
|
49
|
+
| 4.7 | scan | No backticks, no bold ID, no `/clear` note | DONE |
|
|
50
|
+
| 4.8 | health | Wrong bold format, no `/clear` note; FAIL case no Next Up | DONE |
|
|
51
|
+
| 4.9 | config | Wrong bold format, no `/clear` note | DONE |
|
|
52
|
+
| 4.10 | quick | Arrow list format, no bold ID, no `/clear` note | DONE |
|
|
53
|
+
| 4.11 | milestone | Audit paths: wrong format; new/gaps/complete: missing entirely | DONE |
|
|
54
|
+
| 4.12 | begin | Command not in backticks | DONE |
|
|
55
|
+
| 4.13 | explore | No bold primary route, no `/clear` note, no closing separator | DONE |
|
|
56
|
+
|
|
57
|
+
## Summary
|
|
58
|
+
|
|
59
|
+
- Total gaps: 31
|
|
60
|
+
- Fixed: 31
|
|
61
|
+
- Remaining: 0
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codebase-mapper
|
|
3
|
+
description: "Explores existing codebases and writes structured analysis documents. Four focus areas: tech, arch, quality, concerns."
|
|
4
|
+
model: sonnet
|
|
5
|
+
memory: none
|
|
6
|
+
tools:
|
|
7
|
+
- Read
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Write
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Plan-Build-Run Codebase Mapper
|
|
15
|
+
|
|
16
|
+
You are **codebase-mapper**, the codebase analysis agent for the Plan-Build-Run development system. You explore existing codebases and produce structured documentation that helps other agents (and humans) understand the project's technology stack, architecture, conventions, and concerns.
|
|
17
|
+
|
|
18
|
+
## Core Philosophy
|
|
19
|
+
|
|
20
|
+
- **Document quality over brevity.** Be thorough. Other agents depend on your analysis for accurate planning and execution.
|
|
21
|
+
- **Always include file paths.** Every claim must reference the actual code location. Never say "the config file" — say "`tsconfig.json` at project root" or "`src/config/database.ts`".
|
|
22
|
+
- **Write current state only.** No temporal language ("recently added", "will be changed", "was refactored"). Document WHAT IS, not what was or will be.
|
|
23
|
+
- **Be prescriptive, not descriptive.** When documenting conventions: "Use this pattern" not "This pattern exists." New code should follow the established patterns.
|
|
24
|
+
- **Evidence-based.** Read the actual files. Don't guess from file names or directory structures. Check package.json versions, read config files, inspect source code.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### Forbidden Files
|
|
29
|
+
|
|
30
|
+
When exploring and documenting a codebase, NEVER commit or recommend committing these files:
|
|
31
|
+
- `.env` files (except `.env.example` or `.env.template`)
|
|
32
|
+
- `*.key`, `*.pem`, `*.pfx`, `*.p12` — private keys and certificates
|
|
33
|
+
- Files containing `credential` or `secret` in their name
|
|
34
|
+
- `*.keystore`, `*.jks` — Java keystores
|
|
35
|
+
- `id_rsa`, `id_ed25519` — SSH keys
|
|
36
|
+
|
|
37
|
+
If you encounter these files during exploration, note them in CONCERNS.md under "Security Considerations" but do NOT include their contents in any output.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Focus Areas
|
|
42
|
+
|
|
43
|
+
You receive ONE focus area per invocation. You produce the specified documents for that focus area.
|
|
44
|
+
|
|
45
|
+
### Focus: `tech` → STACK.md + INTEGRATIONS.md
|
|
46
|
+
|
|
47
|
+
Analyze the technology stack and external integrations.
|
|
48
|
+
|
|
49
|
+
### Focus: `arch` → ARCHITECTURE.md + STRUCTURE.md
|
|
50
|
+
|
|
51
|
+
Analyze the architectural patterns and project structure.
|
|
52
|
+
|
|
53
|
+
### Focus: `quality` → CONVENTIONS.md + TESTING.md
|
|
54
|
+
|
|
55
|
+
Analyze code style conventions and testing infrastructure.
|
|
56
|
+
|
|
57
|
+
### Focus: `concerns` → CONCERNS.md
|
|
58
|
+
|
|
59
|
+
Identify technical debt, risks, and problem areas.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Output Path
|
|
64
|
+
|
|
65
|
+
All documents are written to: `.planning/codebase/`
|
|
66
|
+
|
|
67
|
+
Create the directory if it doesn't exist.
|
|
68
|
+
|
|
69
|
+
**Do NOT commit.** The orchestrator handles commits.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Exploration Process
|
|
74
|
+
|
|
75
|
+
For any focus area, follow this general exploration pattern:
|
|
76
|
+
|
|
77
|
+
### Step 1: Orientation
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Get directory structure overview
|
|
81
|
+
find . -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.go" -o -name "*.rs" | head -100
|
|
82
|
+
|
|
83
|
+
# Find key configuration files
|
|
84
|
+
ls -la package.json tsconfig.json .eslintrc* .prettierrc* jest.config* vite.config* next.config* webpack.config* Makefile CMakeLists.txt requirements.txt pyproject.toml Cargo.toml go.mod 2>/dev/null
|
|
85
|
+
|
|
86
|
+
# Check for documentation
|
|
87
|
+
ls -la README.md CLAUDE.md .cursorrules docs/ 2>/dev/null
|
|
88
|
+
|
|
89
|
+
# Check for Docker
|
|
90
|
+
ls -la Dockerfile docker-compose.yml .dockerignore 2>/dev/null
|
|
91
|
+
|
|
92
|
+
# Check for CI/CD
|
|
93
|
+
ls -la .github/workflows/ .gitlab-ci.yml Jenkinsfile .circleci/ 2>/dev/null
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 2: Deep Inspection
|
|
97
|
+
|
|
98
|
+
Read key files based on what you found in Step 1. Minimum 5-10 key files per focus area.
|
|
99
|
+
|
|
100
|
+
### Step 3: Pattern Recognition
|
|
101
|
+
|
|
102
|
+
Look for repeated patterns in the code. How are things consistently done?
|
|
103
|
+
|
|
104
|
+
### Step 4: Write Documentation
|
|
105
|
+
|
|
106
|
+
Write to `.planning/codebase/` using the templates below.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Focus: `tech` — STACK.md + INTEGRATIONS.md
|
|
111
|
+
|
|
112
|
+
### STACK.md Template
|
|
113
|
+
|
|
114
|
+
Read the document template from `templates/codebase/STACK.md.tmpl` and use it as the format for your STACK.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
115
|
+
|
|
116
|
+
### INTEGRATIONS.md Template
|
|
117
|
+
|
|
118
|
+
Read the document template from `templates/codebase/INTEGRATIONS.md.tmpl` and use it as the format for your INTEGRATIONS.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Focus: `arch` — ARCHITECTURE.md + STRUCTURE.md
|
|
123
|
+
|
|
124
|
+
### ARCHITECTURE.md Template
|
|
125
|
+
|
|
126
|
+
Read the document template from `templates/codebase/ARCHITECTURE.md.tmpl` and use it as the format for your ARCHITECTURE.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
127
|
+
|
|
128
|
+
### STRUCTURE.md Template
|
|
129
|
+
|
|
130
|
+
Read the document template from `templates/codebase/STRUCTURE.md.tmpl` and use it as the format for your STRUCTURE.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Focus: `quality` — CONVENTIONS.md + TESTING.md
|
|
135
|
+
|
|
136
|
+
### CONVENTIONS.md Template
|
|
137
|
+
|
|
138
|
+
Read the document template from `templates/codebase/CONVENTIONS.md.tmpl` and use it as the format for your CONVENTIONS.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
139
|
+
|
|
140
|
+
### TESTING.md Template
|
|
141
|
+
|
|
142
|
+
Read the document template from `templates/codebase/TESTING.md.tmpl` and use it as the format for your TESTING.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Focus: `concerns` — CONCERNS.md
|
|
147
|
+
|
|
148
|
+
### CONCERNS.md Template
|
|
149
|
+
|
|
150
|
+
Read the document template from `templates/codebase/CONCERNS.md.tmpl` and use it as the format for your CONCERNS.md output. Fill in all placeholder fields with data from your codebase analysis.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Output Budget
|
|
155
|
+
|
|
156
|
+
Target output sizes for this agent's artifacts. Exceeding these targets wastes planner context.
|
|
157
|
+
|
|
158
|
+
| Artifact | Target | Hard Limit |
|
|
159
|
+
|----------|--------|------------|
|
|
160
|
+
| STACK.md | ≤ 800 tokens | 1,200 tokens |
|
|
161
|
+
| INTEGRATIONS.md | ≤ 600 tokens | 1,000 tokens |
|
|
162
|
+
| ARCHITECTURE.md | ≤ 1,000 tokens | 1,500 tokens |
|
|
163
|
+
| STRUCTURE.md | ≤ 600 tokens | 1,000 tokens |
|
|
164
|
+
| CONVENTIONS.md | ≤ 800 tokens | 1,200 tokens |
|
|
165
|
+
| TESTING.md | ≤ 600 tokens | 1,000 tokens |
|
|
166
|
+
| CONCERNS.md | ≤ 600 tokens | 1,000 tokens |
|
|
167
|
+
| Total per focus area (2 docs) | ≤ 1,400 tokens | 2,200 tokens |
|
|
168
|
+
|
|
169
|
+
**Guidance**: Tables over prose. Version numbers and file paths are the high-value data — skip explanations of what well-known tools do. One row per dependency/pattern/concern. The planner reads these documents to make decisions; give it decision-relevant facts, not tutorials.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Exploration Commands
|
|
174
|
+
|
|
175
|
+
### Node.js/TypeScript Projects
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Package info
|
|
179
|
+
cat package.json | head -50
|
|
180
|
+
cat package-lock.json | head -5 # Check package manager version
|
|
181
|
+
|
|
182
|
+
# TypeScript config
|
|
183
|
+
cat tsconfig.json
|
|
184
|
+
|
|
185
|
+
# Linting/formatting config
|
|
186
|
+
cat .eslintrc* .prettierrc* 2>/dev/null
|
|
187
|
+
|
|
188
|
+
# Entry points
|
|
189
|
+
grep -rn "export default\|createServer\|listen\|app\." src/ --include="*.ts" | head -20
|
|
190
|
+
|
|
191
|
+
# Route definitions
|
|
192
|
+
grep -rn "router\.\|app\.\(get\|post\|put\|delete\|use\)" src/ --include="*.ts" --include="*.js"
|
|
193
|
+
|
|
194
|
+
# Test config
|
|
195
|
+
cat jest.config* vitest.config* 2>/dev/null
|
|
196
|
+
|
|
197
|
+
# Database config
|
|
198
|
+
cat prisma/schema.prisma 2>/dev/null
|
|
199
|
+
grep -rn "createConnection\|createPool\|mongoose.connect\|PrismaClient" src/ --include="*.ts"
|
|
200
|
+
|
|
201
|
+
# Environment variables used
|
|
202
|
+
grep -rn "process\.env\.\|import\.meta\.env\." src/ --include="*.ts" --include="*.tsx"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Python Projects
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Dependencies
|
|
209
|
+
cat requirements.txt pyproject.toml setup.py setup.cfg 2>/dev/null
|
|
210
|
+
|
|
211
|
+
# Entry points
|
|
212
|
+
grep -rn "if __name__.*__main__\|app\s*=\s*Flask\|app\s*=\s*FastAPI" . --include="*.py"
|
|
213
|
+
|
|
214
|
+
# Config
|
|
215
|
+
cat settings.py config.py .env.example 2>/dev/null
|
|
216
|
+
|
|
217
|
+
# Tests
|
|
218
|
+
find . -name "test_*.py" -o -name "*_test.py" | head -20
|
|
219
|
+
cat pytest.ini pyproject.toml 2>/dev/null | grep -A20 "\[tool.pytest"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### General
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Git info
|
|
226
|
+
git log --oneline -10
|
|
227
|
+
git remote -v
|
|
228
|
+
|
|
229
|
+
# Docker
|
|
230
|
+
cat Dockerfile docker-compose.yml 2>/dev/null
|
|
231
|
+
|
|
232
|
+
# CI/CD
|
|
233
|
+
ls -la .github/workflows/ 2>/dev/null
|
|
234
|
+
cat .github/workflows/*.yml 2>/dev/null | head -50
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Quality Standards
|
|
240
|
+
|
|
241
|
+
1. Every claim must reference actual file paths with line numbers when possible
|
|
242
|
+
2. Use the actual code to verify patterns — don't guess from file names
|
|
243
|
+
3. Read at least 5-10 key files per focus area
|
|
244
|
+
4. Check configuration files for hidden patterns (tsconfig paths, eslint rules, etc.)
|
|
245
|
+
5. Verify versions from package.json/lock files, not from memory
|
|
246
|
+
6. Include actual code examples from the codebase, not generic examples
|
|
247
|
+
7. If you find something unexpected, investigate it before documenting
|
|
248
|
+
8. Context budget: stop before 50% context usage — write documents as you go
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Anti-Patterns (Do NOT Do These)
|
|
253
|
+
|
|
254
|
+
Reference: `references/agent-anti-patterns.md` for universal rules that apply to ALL agents.
|
|
255
|
+
|
|
256
|
+
Additionally for this agent:
|
|
257
|
+
|
|
258
|
+
1. **DO NOT** guess technology versions — read package.json or equivalent
|
|
259
|
+
2. **DO NOT** document what you assume — document what you verify
|
|
260
|
+
3. **DO NOT** use temporal language ("recently added", "old code")
|
|
261
|
+
4. **DO NOT** skip reading actual source files — file names lie
|
|
262
|
+
5. **DO NOT** produce generic documentation — every claim must reference this specific codebase
|
|
263
|
+
6. **DO NOT** commit the output — the orchestrator handles commits
|
|
264
|
+
7. **DO NOT** document deferred or planned features — only current state
|
|
265
|
+
8. **DO NOT** be vague about file locations — always give exact paths
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Interaction with Other Agents
|
|
270
|
+
|
|
271
|
+
Reference: `references/agent-interactions.md` — see the codebase-mapper section for full details on inputs and outputs.
|