@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,48 +1,48 @@
|
|
|
1
|
-
# Template: Milestone Audit Report
|
|
2
|
-
# Used by: milestone/SKILL.md (audit subcommand, Step 5)
|
|
3
|
-
# Variables: {version}, {status}, {date}, {phase entries}, {integration results}, {requirements}, {tech debt}
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
milestone: "{version}"
|
|
7
|
-
status: "{passed | gaps_found | tech_debt}"
|
|
8
|
-
date: "{ISO date}"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Milestone Audit: {version}
|
|
12
|
-
|
|
13
|
-
## Overall Status: {PASSED / GAPS FOUND / TECH DEBT}
|
|
14
|
-
|
|
15
|
-
## Phase Verification Summary
|
|
16
|
-
|
|
17
|
-
| Phase | Verified | Gaps | Integration |
|
|
18
|
-
|-------|----------|------|-------------|
|
|
19
|
-
| {N}. {name} | {yes/no} | {count} | {ok/issues} |
|
|
20
|
-
|
|
21
|
-
## Integration Check Results
|
|
22
|
-
|
|
23
|
-
### Dependency Graph
|
|
24
|
-
{Mermaid or ASCII representation of phase dependencies}
|
|
25
|
-
|
|
26
|
-
### Integration Issues
|
|
27
|
-
{List of integration problems found, or "None"}
|
|
28
|
-
|
|
29
|
-
- **{Issue}**: {description}
|
|
30
|
-
- Affected phases: {list}
|
|
31
|
-
- Severity: {critical/high/medium/low}
|
|
32
|
-
- Suggested fix: {brief suggestion}
|
|
33
|
-
|
|
34
|
-
## Requirements Coverage
|
|
35
|
-
|
|
36
|
-
| Requirement | Status | Verified By |
|
|
37
|
-
|-------------|--------|-------------|
|
|
38
|
-
| {req} | {covered/uncovered} | {phase/plan or "N/A"} |
|
|
39
|
-
|
|
40
|
-
## Tech Debt Identified
|
|
41
|
-
|
|
42
|
-
{Issues that don't block the milestone but should be addressed}
|
|
43
|
-
|
|
44
|
-
- {debt item}: {description}
|
|
45
|
-
|
|
46
|
-
## Recommendations
|
|
47
|
-
|
|
48
|
-
{Summary of what needs to be done, if anything}
|
|
1
|
+
# Template: Milestone Audit Report
|
|
2
|
+
# Used by: milestone/SKILL.md (audit subcommand, Step 5)
|
|
3
|
+
# Variables: {version}, {status}, {date}, {phase entries}, {integration results}, {requirements}, {tech debt}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
milestone: "{version}"
|
|
7
|
+
status: "{passed | gaps_found | tech_debt}"
|
|
8
|
+
date: "{ISO date}"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Milestone Audit: {version}
|
|
12
|
+
|
|
13
|
+
## Overall Status: {PASSED / GAPS FOUND / TECH DEBT}
|
|
14
|
+
|
|
15
|
+
## Phase Verification Summary
|
|
16
|
+
|
|
17
|
+
| Phase | Verified | Gaps | Integration |
|
|
18
|
+
|-------|----------|------|-------------|
|
|
19
|
+
| {N}. {name} | {yes/no} | {count} | {ok/issues} |
|
|
20
|
+
|
|
21
|
+
## Integration Check Results
|
|
22
|
+
|
|
23
|
+
### Dependency Graph
|
|
24
|
+
{Mermaid or ASCII representation of phase dependencies}
|
|
25
|
+
|
|
26
|
+
### Integration Issues
|
|
27
|
+
{List of integration problems found, or "None"}
|
|
28
|
+
|
|
29
|
+
- **{Issue}**: {description}
|
|
30
|
+
- Affected phases: {list}
|
|
31
|
+
- Severity: {critical/high/medium/low}
|
|
32
|
+
- Suggested fix: {brief suggestion}
|
|
33
|
+
|
|
34
|
+
## Requirements Coverage
|
|
35
|
+
|
|
36
|
+
| Requirement | Status | Verified By |
|
|
37
|
+
|-------------|--------|-------------|
|
|
38
|
+
| {req} | {covered/uncovered} | {phase/plan or "N/A"} |
|
|
39
|
+
|
|
40
|
+
## Tech Debt Identified
|
|
41
|
+
|
|
42
|
+
{Issues that don't block the milestone but should be addressed}
|
|
43
|
+
|
|
44
|
+
- {debt item}: {description}
|
|
45
|
+
|
|
46
|
+
## Recommendations
|
|
47
|
+
|
|
48
|
+
{Summary of what needs to be done, if anything}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# Template: Milestone Stats File
|
|
2
|
-
# Used by: milestone/SKILL.md (complete subcommand, Step 5)
|
|
3
|
-
# Variables: {version}, {name}, {date}, {days}, {counts}, {accomplishments}, {decisions}, {tech stack}, {patterns}
|
|
4
|
-
|
|
5
|
-
# Milestone {version} Stats
|
|
6
|
-
|
|
7
|
-
**Name:** {milestone name}
|
|
8
|
-
**Completed:** {ISO date}
|
|
9
|
-
**Duration:** {days}
|
|
10
|
-
|
|
11
|
-
## Metrics
|
|
12
|
-
- Phases: {count}
|
|
13
|
-
- Plans executed: {count}
|
|
14
|
-
- Quick tasks: {count}
|
|
15
|
-
- Total commits: {count}
|
|
16
|
-
- Files changed: {count}
|
|
17
|
-
- Lines added: {count}
|
|
18
|
-
- Lines removed: {count}
|
|
19
|
-
|
|
20
|
-
## Accomplishments
|
|
21
|
-
{bulleted list of key features/capabilities built}
|
|
22
|
-
|
|
23
|
-
## Key Decisions
|
|
24
|
-
{bulleted list of important decisions made}
|
|
25
|
-
|
|
26
|
-
## Technology Stack
|
|
27
|
-
{list of technologies used}
|
|
28
|
-
|
|
29
|
-
## Patterns Established
|
|
30
|
-
{list of patterns applied}
|
|
1
|
+
# Template: Milestone Stats File
|
|
2
|
+
# Used by: milestone/SKILL.md (complete subcommand, Step 5)
|
|
3
|
+
# Variables: {version}, {name}, {date}, {days}, {counts}, {accomplishments}, {decisions}, {tech stack}, {patterns}
|
|
4
|
+
|
|
5
|
+
# Milestone {version} Stats
|
|
6
|
+
|
|
7
|
+
**Name:** {milestone name}
|
|
8
|
+
**Completed:** {ISO date}
|
|
9
|
+
**Duration:** {days}
|
|
10
|
+
|
|
11
|
+
## Metrics
|
|
12
|
+
- Phases: {count}
|
|
13
|
+
- Plans executed: {count}
|
|
14
|
+
- Quick tasks: {count}
|
|
15
|
+
- Total commits: {count}
|
|
16
|
+
- Files changed: {count}
|
|
17
|
+
- Lines added: {count}
|
|
18
|
+
- Lines removed: {count}
|
|
19
|
+
|
|
20
|
+
## Accomplishments
|
|
21
|
+
{bulleted list of key features/capabilities built}
|
|
22
|
+
|
|
23
|
+
## Key Decisions
|
|
24
|
+
{bulleted list of important decisions made}
|
|
25
|
+
|
|
26
|
+
## Technology Stack
|
|
27
|
+
{list of technologies used}
|
|
28
|
+
|
|
29
|
+
## Patterns Established
|
|
30
|
+
{list of patterns applied}
|
|
@@ -1,212 +1,231 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: note
|
|
3
|
-
description: "Zero-friction idea capture. Append, list, or promote notes to todos."
|
|
4
|
-
allowed-tools: Read, Write, Glob, Grep
|
|
5
|
-
argument-hint: "<text> | list | promote <index> [--global]"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
- [
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
**
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
1
|
+
---
|
|
2
|
+
name: note
|
|
3
|
+
description: "Zero-friction idea capture. Append, list, or promote notes to todos."
|
|
4
|
+
allowed-tools: Read, Write, Glob, Grep
|
|
5
|
+
argument-hint: "<text> | list | promote <index> [--global]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes ~7,600 tokens. Begin executing Step 1 immediately.**
|
|
9
|
+
|
|
10
|
+
## Step 0 — Immediate Output
|
|
11
|
+
|
|
12
|
+
**Before ANY tool calls**, display this banner:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
PLAN-BUILD-RUN ► NOTE
|
|
17
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then proceed to Step 1.
|
|
21
|
+
|
|
22
|
+
# /pbr:note — Quick Note Capture
|
|
23
|
+
|
|
24
|
+
You are running the **note** skill. Your job is zero-friction idea capture. One Write call, one confirmation line. No questions, no prompts.
|
|
25
|
+
|
|
26
|
+
This skill runs **inline** — no Task, no AskUserQuestion, no Bash.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Scope Detection
|
|
31
|
+
|
|
32
|
+
Two scopes exist. Auto-detect which to use:
|
|
33
|
+
|
|
34
|
+
1. **Project scope**: `.planning/NOTES.md` — used when `.planning/` directory exists in cwd
|
|
35
|
+
2. **Global scope**: `~/.claude/notes.md` — used as fallback when no `.planning/`, or when `--global` flag is present
|
|
36
|
+
|
|
37
|
+
**`--global` flag**: Strip `--global` from anywhere in `$ARGUMENTS` before parsing. When present, force global scope regardless of whether `.planning/` exists.
|
|
38
|
+
|
|
39
|
+
**Important**: Do NOT create `.planning/` if it doesn't exist. If there's no `.planning/` directory, fall back to global scope silently.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Subcommand Parsing
|
|
44
|
+
|
|
45
|
+
Parse `$ARGUMENTS` after stripping `--global`:
|
|
46
|
+
|
|
47
|
+
| Condition | Subcommand |
|
|
48
|
+
|-----------|------------|
|
|
49
|
+
| Arguments are exactly `list` (case-insensitive) | **list** |
|
|
50
|
+
| Arguments are exactly `promote <N>` where N is a number | **promote** |
|
|
51
|
+
| Arguments are empty (no text at all) | **list** |
|
|
52
|
+
| Anything else | **append** (the text IS the note) |
|
|
53
|
+
|
|
54
|
+
**Critical**: `list` is only a subcommand when it's the ENTIRE argument. `/pbr:note list of groceries` saves a note with text "list of groceries". Same for `promote` — only a subcommand when followed by exactly one number.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Subcommand: append
|
|
59
|
+
|
|
60
|
+
Append a timestamped note to the target file.
|
|
61
|
+
|
|
62
|
+
### Steps
|
|
63
|
+
|
|
64
|
+
1. Determine scope (project or global) per Scope Detection above
|
|
65
|
+
2. Read the target file if it exists
|
|
66
|
+
3. If the file doesn't exist, create it with this header:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# Notes
|
|
70
|
+
|
|
71
|
+
Quick captures from `/pbr:note`. Ideas worth remembering.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
4. Ensure the file content ends with a newline before appending
|
|
78
|
+
5. Append: `- [YYYY-MM-DD HH:mm] {note text verbatim}`
|
|
79
|
+
6. Write the file
|
|
80
|
+
7. Confirm with exactly one line: `Noted ({scope}): {note text}`
|
|
81
|
+
- Where `{scope}` is "project" or "global"
|
|
82
|
+
|
|
83
|
+
### Constraints
|
|
84
|
+
|
|
85
|
+
- **Never modify the note text** — capture verbatim, including typos
|
|
86
|
+
- **Never ask questions** — just write and confirm
|
|
87
|
+
- **Timestamp format**: Use local time, `YYYY-MM-DD HH:mm` (24-hour, no seconds)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Subcommand: list
|
|
92
|
+
|
|
93
|
+
Show notes from both project and global scopes.
|
|
94
|
+
|
|
95
|
+
### Steps
|
|
96
|
+
|
|
97
|
+
1. Read `.planning/NOTES.md` (if exists) — these are "project" notes
|
|
98
|
+
2. Read `~/.claude/notes.md` (if exists) — these are "global" notes
|
|
99
|
+
3. Parse entries: lines matching `^- \[` are notes
|
|
100
|
+
4. Exclude lines containing `[promoted]` from active counts (but still show them, dimmed)
|
|
101
|
+
5. Number all active entries sequentially starting at 1, using plain integers (1, 2, 3...) for display (across both scopes)
|
|
102
|
+
6. If total active entries > 20, show only the last 10 with a note about how many were omitted
|
|
103
|
+
|
|
104
|
+
### Display Format
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Notes:
|
|
108
|
+
|
|
109
|
+
Project (.planning/NOTES.md):
|
|
110
|
+
1. [2026-02-08 14:32] refactor the hook system to support async validators
|
|
111
|
+
2. [promoted] [2026-02-08 14:40] add rate limiting to the API endpoints
|
|
112
|
+
3. [2026-02-08 15:10] consider adding a --dry-run flag to build
|
|
113
|
+
|
|
114
|
+
Global (~/.claude/notes.md):
|
|
115
|
+
4. [2026-02-08 10:00] cross-project idea about shared config
|
|
116
|
+
|
|
117
|
+
{count} active note(s). Use `/pbr:note promote <N>` to convert to a todo.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
If a scope has no file or no entries, show: `(no notes)`
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Subcommand: promote
|
|
125
|
+
|
|
126
|
+
Convert a note into a todo file.
|
|
127
|
+
|
|
128
|
+
### Steps
|
|
129
|
+
|
|
130
|
+
1. Run the **list** logic to build the numbered index (both scopes)
|
|
131
|
+
2. Find entry N from the numbered list
|
|
132
|
+
3. If N is invalid or refers to an already-promoted note, tell the user and stop
|
|
133
|
+
4. **Requires `.planning/` directory** — if it doesn't exist, warn: "Todos require a Plan-Build-Run project. Run `/pbr:begin` to initialize one, or use `/pbr:todo add` in an existing project."
|
|
134
|
+
5. Ensure `.planning/todos/pending/` directory exists
|
|
135
|
+
6. Generate todo ID: `{NNN}-{slug}` where NNN is the next sequential number (scan both `.planning/todos/pending/` and `.planning/todos/done/` for the highest existing number, increment by 1, zero-pad to 3 digits) and slug is the first ~4 meaningful words of the note text, lowercase, hyphen-separated
|
|
136
|
+
7. Extract the note text (everything after the timestamp)
|
|
137
|
+
8. Create `.planning/todos/pending/{id}.md`:
|
|
138
|
+
|
|
139
|
+
```yaml
|
|
140
|
+
---
|
|
141
|
+
title: "{note text}"
|
|
142
|
+
status: pending
|
|
143
|
+
priority: P2
|
|
144
|
+
source: "promoted from /pbr:note"
|
|
145
|
+
created: {YYYY-MM-DD}
|
|
146
|
+
theme: general
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Goal
|
|
150
|
+
|
|
151
|
+
{note text}
|
|
152
|
+
|
|
153
|
+
## Context
|
|
154
|
+
|
|
155
|
+
Promoted from quick note captured on {original date}.
|
|
156
|
+
|
|
157
|
+
## Acceptance Criteria
|
|
158
|
+
|
|
159
|
+
- [ ] {primary criterion derived from note text}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
9. Mark the original note as promoted: replace `- [` with `- [promoted] [` on that line
|
|
163
|
+
10. Confirm: `Promoted note {N} to todo {id}: {note text}`
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## NOTES.md Format Reference
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
# Notes
|
|
171
|
+
|
|
172
|
+
Quick captures from `/pbr:note`. Ideas worth remembering.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
- [2026-02-08 14:32] refactor the hook system to support async validators
|
|
177
|
+
- [promoted] [2026-02-08 14:40] add rate limiting to the API endpoints
|
|
178
|
+
- [2026-02-08 15:10] consider adding a --dry-run flag to build
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Edge Cases
|
|
184
|
+
|
|
185
|
+
1. **"list" as note text**: `/pbr:note list of things` → saves note "list of things" (subcommand only when `list` is the entire arg)
|
|
186
|
+
2. **No `.planning/`**: Falls back to global `~/.claude/notes.md` — works in any directory
|
|
187
|
+
3. **Promote without project**: Warns that todos require `.planning/`, suggests `/pbr:begin`
|
|
188
|
+
4. **Large files**: `list` shows last 10 when >20 active entries
|
|
189
|
+
5. **Missing newline**: Always ensure trailing newline before appending
|
|
190
|
+
6. **`--global` position**: Stripped from anywhere — `--global my idea` and `my idea --global` both save "my idea" globally
|
|
191
|
+
7. **Promote already-promoted**: Tell user "Note {N} is already promoted" and stop
|
|
192
|
+
8. **Empty note text after stripping flags**: Treat as `list` subcommand
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Error Handling
|
|
197
|
+
|
|
198
|
+
### Write failure
|
|
199
|
+
If the Write tool fails (permissions, disk full, etc.), display:
|
|
200
|
+
```
|
|
201
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
202
|
+
║ ERROR ║
|
|
203
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
204
|
+
|
|
205
|
+
Failed to write note to {target_file}.
|
|
206
|
+
|
|
207
|
+
**To fix:** Check file permissions or disk space.
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Promote target not found
|
|
211
|
+
If the specified note index is invalid, display:
|
|
212
|
+
```
|
|
213
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
214
|
+
║ ERROR ║
|
|
215
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
216
|
+
|
|
217
|
+
Note {N} not found. Valid range: 1-{max}.
|
|
218
|
+
|
|
219
|
+
**To fix:** Run `/pbr:note list` to see available notes.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Anti-Patterns
|
|
225
|
+
|
|
226
|
+
1. **DO NOT** ask questions on append — just write and confirm
|
|
227
|
+
2. **DO NOT** modify note text — capture verbatim
|
|
228
|
+
3. **DO NOT** use Task, AskUserQuestion, or Bash
|
|
229
|
+
4. **DO NOT** create `.planning/` if it doesn't exist — fall back to global
|
|
230
|
+
5. **DO NOT** number promoted notes in the active count (but still display them)
|
|
231
|
+
6. **DO NOT** over-format the confirmation — one line is enough
|