@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,125 @@
|
|
|
1
|
+
# Domain-Aware Probing Patterns
|
|
2
|
+
|
|
3
|
+
Shared reference for `/pbr:explore`, `/pbr:begin`, and `/pbr:discuss`.
|
|
4
|
+
|
|
5
|
+
When the user mentions a technology area, use these probes to ask insightful follow-up questions. Don't run through them as a checklist — pick the 2-3 most relevant based on context. The goal is to surface hidden assumptions and trade-offs the user may not have considered yet.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Authentication
|
|
10
|
+
|
|
11
|
+
| User mentions | Agent probes with domain knowledge |
|
|
12
|
+
|---|---|
|
|
13
|
+
| "login" or "auth" | OAuth (which providers?), JWT, or session-based? Do you need social login or just email/password? |
|
|
14
|
+
| "users" or "accounts" | MFA required? Password reset flow? Email verification? |
|
|
15
|
+
| "sessions" | Session duration and refresh strategy? Server-side sessions or stateless tokens? |
|
|
16
|
+
| "roles" or "permissions" | RBAC, ABAC, or simple role checks? How many distinct roles? |
|
|
17
|
+
| "API keys" | Key rotation strategy? Scoped permissions per key? Rate limiting per key? |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Real-Time Updates
|
|
22
|
+
|
|
23
|
+
| User mentions | Agent probes with domain knowledge |
|
|
24
|
+
|---|---|
|
|
25
|
+
| "real-time" or "live updates" | WebSockets, SSE, or polling? What specifically needs to be real-time vs. eventual? |
|
|
26
|
+
| "notifications" | Push notifications (browser/mobile), in-app only, or both? Persistence and read receipts? |
|
|
27
|
+
| "collaboration" or "multiplayer" | Conflict resolution strategy? Operational transforms or CRDTs? Expected concurrent users? |
|
|
28
|
+
| "chat" or "messaging" | Message history and search? Typing indicators? Read receipts? |
|
|
29
|
+
| "streaming" | Reconnection strategy? What happens when the connection drops — queue or discard? |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Dashboard
|
|
34
|
+
|
|
35
|
+
| User mentions | Agent probes with domain knowledge |
|
|
36
|
+
|---|---|
|
|
37
|
+
| "dashboard" | What data sources feed it? How many distinct views? |
|
|
38
|
+
| "charts" or "graphs" | Interactive or static? Drill-down capability? Export to CSV/PDF? |
|
|
39
|
+
| "metrics" or "KPIs" | Refresh strategy — real-time, periodic polling, or on-demand? Acceptable staleness? |
|
|
40
|
+
| "admin panel" | Role-based visibility? Which actions beyond viewing (edit, delete, approve)? |
|
|
41
|
+
| "mobile" or "responsive" | Simplified mobile view or full parity? Touch interactions for charts? |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## API Design
|
|
46
|
+
|
|
47
|
+
| User mentions | Agent probes with domain knowledge |
|
|
48
|
+
|---|---|
|
|
49
|
+
| "API" | REST, GraphQL, or RPC-style? Internal only or public-facing? |
|
|
50
|
+
| "endpoints" or "routes" | Versioning strategy (URL path, header, query param)? Breaking change policy? |
|
|
51
|
+
| "pagination" | Cursor-based or offset? Expected result set sizes? Stable ordering guarantee? |
|
|
52
|
+
| "rate limiting" | Per-user, per-IP, or per-API-key? Burst allowance? How to communicate limits to clients? |
|
|
53
|
+
| "errors" | Structured error format? Error codes vs. messages? How much detail in production errors? |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Database
|
|
58
|
+
|
|
59
|
+
| User mentions | Agent probes with domain knowledge |
|
|
60
|
+
|---|---|
|
|
61
|
+
| "database" or "storage" | SQL or NoSQL? What drives the choice — relational integrity, flexibility, scale? |
|
|
62
|
+
| "ORM" or "queries" | ORM (which one?) or raw queries? Query builder as middle ground? |
|
|
63
|
+
| "migrations" | Migration tool? Rollback strategy? How do you handle data migrations vs. schema migrations? |
|
|
64
|
+
| "seeding" or "test data" | Seed data for development? Realistic fake data or minimal fixtures? |
|
|
65
|
+
| "scale" or "performance" | Read/write ratio? Read replicas? Connection pooling strategy? |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Search
|
|
70
|
+
|
|
71
|
+
| User mentions | Agent probes with domain knowledge |
|
|
72
|
+
|---|---|
|
|
73
|
+
| "search" | Full-text or exact match? Dedicated search engine (Elasticsearch, Meilisearch) or database-level? |
|
|
74
|
+
| "filtering" or "facets" | Faceted filtering? How many filter dimensions? Combined filters (AND/OR)? |
|
|
75
|
+
| "autocomplete" or "typeahead" | Debounce strategy? Minimum character threshold? Result ranking? |
|
|
76
|
+
| "indexing" | Index size and update frequency? Real-time indexing or batch? Acceptable index lag? |
|
|
77
|
+
| "fuzzy" or "typo tolerance" | Fuzzy matching? Synonym support? Language-specific stemming? |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## File Upload/Storage
|
|
82
|
+
|
|
83
|
+
| User mentions | Agent probes with domain knowledge |
|
|
84
|
+
|---|---|
|
|
85
|
+
| "upload" or "file upload" | Local filesystem or cloud (S3, GCS, Azure Blob)? Direct upload or through server? |
|
|
86
|
+
| "images" or "media" | Processing pipeline — resize, compress, thumbnail generation? Format conversion? |
|
|
87
|
+
| "size limits" | Max file size? Max total storage per user? What happens when limits are hit? |
|
|
88
|
+
| "CDN" | CDN for delivery? Cache invalidation for updated files? Signed URLs for access control? |
|
|
89
|
+
| "documents" or "attachments" | Virus scanning? Preview generation? Versioning of uploaded files? |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Caching
|
|
94
|
+
|
|
95
|
+
| User mentions | Agent probes with domain knowledge |
|
|
96
|
+
|---|---|
|
|
97
|
+
| "caching" or "performance" | Where to cache — browser, CDN, application layer, database query cache? |
|
|
98
|
+
| "invalidation" | Invalidation strategy — TTL, event-driven, or manual? Cache-aside vs. write-through? |
|
|
99
|
+
| "stale data" | Acceptable staleness window? Stale-while-revalidate pattern? |
|
|
100
|
+
| "Redis" or "Memcached" | Cache topology — single node or clustered? Persistence needed or pure cache? |
|
|
101
|
+
| "CDN" or "edge" | Edge caching for static assets? Dynamic content at the edge? Cache key strategy? |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Testing
|
|
106
|
+
|
|
107
|
+
| User mentions | Agent probes with domain knowledge |
|
|
108
|
+
|---|---|
|
|
109
|
+
| "testing" or "tests" | Unit, integration, and E2E balance? Where do you invest most testing effort? |
|
|
110
|
+
| "mocking" or "stubs" | Mock external services or use test containers? Database mocking strategy? |
|
|
111
|
+
| "CI" or "pipeline" | Tests in CI? Parallel test execution? Test-on-PR or test-on-push? |
|
|
112
|
+
| "coverage" | Coverage targets? Coverage as gate or advisory? Which metrics (line, branch, function)? |
|
|
113
|
+
| "E2E" or "browser testing" | Playwright, Cypress, or other? Headed vs. headless? Visual regression testing? |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Deployment
|
|
118
|
+
|
|
119
|
+
| User mentions | Agent probes with domain knowledge |
|
|
120
|
+
|---|---|
|
|
121
|
+
| "deploy" or "hosting" | Container, serverless, or traditional VM/VPS? Managed platform (Vercel, Railway) or self-hosted? |
|
|
122
|
+
| "CI/CD" or "pipeline" | GitHub Actions, GitLab CI, or other? Deploy on merge to main or manual trigger? |
|
|
123
|
+
| "environments" | How many environments (dev, staging, prod)? Environment parity strategy? |
|
|
124
|
+
| "rollback" | Rollback strategy? Blue-green, canary, or instant rollback? Database rollback considerations? |
|
|
125
|
+
| "secrets" or "config" | Secret management — env vars, vault, or platform-native? Per-environment config strategy? |
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Error Reporting Fragment
|
|
2
|
+
|
|
3
|
+
Standard error display formats for all skills. Reference `references/ui-formatting.md` for the full brand guide.
|
|
4
|
+
|
|
5
|
+
## Recoverable Error
|
|
6
|
+
|
|
7
|
+
For errors that don't halt the workflow — skill can suggest a fix or retry:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
⚠ Warning: {short description}
|
|
11
|
+
|
|
12
|
+
{1-2 line explanation of what went wrong}
|
|
13
|
+
|
|
14
|
+
To fix: {actionable instruction}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Example:
|
|
18
|
+
```
|
|
19
|
+
⚠ Warning: STATE.md is 180 lines (limit: 150)
|
|
20
|
+
|
|
21
|
+
The state file has grown beyond the recommended size, which increases context usage on load.
|
|
22
|
+
|
|
23
|
+
To fix: Run /pbr:health to compact the Accumulated Context section.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Fatal Error
|
|
27
|
+
|
|
28
|
+
For errors that stop execution — skill cannot continue:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
✗ Error: {short description}
|
|
32
|
+
|
|
33
|
+
{1-2 line explanation}
|
|
34
|
+
|
|
35
|
+
What to try:
|
|
36
|
+
1. {first suggestion}
|
|
37
|
+
2. {second suggestion}
|
|
38
|
+
3. {fallback — often /pbr:health or manual fix}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Example:
|
|
42
|
+
```
|
|
43
|
+
✗ Error: PLAN.md not found for phase 03
|
|
44
|
+
|
|
45
|
+
No plan files exist in .planning/phases/03-auth/. The executor cannot run without a plan.
|
|
46
|
+
|
|
47
|
+
What to try:
|
|
48
|
+
1. Run /pbr:plan 3 to create a plan first
|
|
49
|
+
2. Check if the phase directory exists: ls .planning/phases/03-*
|
|
50
|
+
3. Run /pbr:health to check planning directory integrity
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Validation Error
|
|
54
|
+
|
|
55
|
+
For format or schema validation failures (config, plan format, commit message):
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
✗ Validation failed: {what was validated}
|
|
59
|
+
|
|
60
|
+
Issues:
|
|
61
|
+
- {specific issue 1}
|
|
62
|
+
- {specific issue 2}
|
|
63
|
+
|
|
64
|
+
Expected format: {brief format description or example}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Hook Block Message
|
|
68
|
+
|
|
69
|
+
For PreToolUse hooks that reject a tool call:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Blocked: {short reason}
|
|
73
|
+
|
|
74
|
+
{explanation}
|
|
75
|
+
|
|
76
|
+
{how to fix or alternative approach}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This format is used by validate-commit.js and check-dangerous-commands.js. The `decision: "block"` and `reason` fields in the JSON output follow this pattern.
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
# Gate Prompt Patterns
|
|
2
|
+
|
|
3
|
+
> Referenced by: plan, build, import, scan, review, milestone, config, status, resume, quick, begin, discuss, explore, debug skills
|
|
4
|
+
> Purpose: Reusable AskUserQuestion patterns for structured gate checks
|
|
5
|
+
|
|
6
|
+
These patterns provide consistent, structured prompts for user decision points. Skills reference these patterns by name to ensure all gate checks use the same format.
|
|
7
|
+
|
|
8
|
+
## Rules
|
|
9
|
+
|
|
10
|
+
- `header` must be max 12 characters
|
|
11
|
+
- `multiSelect` is always `false` for gate checks
|
|
12
|
+
- Always handle the "Other" case (user typed a freeform response instead of selecting)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Pattern: approve-revise-abort
|
|
17
|
+
|
|
18
|
+
3-option gate for plan approval, gap-closure approval.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Use AskUserQuestion:
|
|
22
|
+
question: "Approve these {noun}?"
|
|
23
|
+
header: "Approve?"
|
|
24
|
+
options:
|
|
25
|
+
- label: "Approve" description: "Proceed with {action}"
|
|
26
|
+
- label: "Request changes" description: "Discuss adjustments before proceeding"
|
|
27
|
+
- label: "Abort" description: "Cancel this operation"
|
|
28
|
+
multiSelect: false
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Pattern: yes-no
|
|
34
|
+
|
|
35
|
+
Simple 2-option confirmation for re-planning, rebuild, replace plans, commit.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Use AskUserQuestion:
|
|
39
|
+
question: "{Specific question about the action}"
|
|
40
|
+
header: "Confirm"
|
|
41
|
+
options:
|
|
42
|
+
- label: "Yes" description: "{What happens if yes}"
|
|
43
|
+
- label: "No" description: "{What happens if no}"
|
|
44
|
+
multiSelect: false
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Pattern: stale-continue
|
|
50
|
+
|
|
51
|
+
2-option refresh gate for staleness warnings, timestamp freshness.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Use AskUserQuestion:
|
|
55
|
+
question: "{Artifact} may be outdated. Refresh or continue?"
|
|
56
|
+
header: "Stale"
|
|
57
|
+
options:
|
|
58
|
+
- label: "Refresh" description: "Update before proceeding (recommended)"
|
|
59
|
+
- label: "Continue anyway" description: "Proceed with current version"
|
|
60
|
+
multiSelect: false
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Pattern: yes-no-pick
|
|
66
|
+
|
|
67
|
+
3-option selection for seed selection, item inclusion.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Use AskUserQuestion:
|
|
71
|
+
question: "Include {items} in planning?"
|
|
72
|
+
header: "Include?"
|
|
73
|
+
options:
|
|
74
|
+
- label: "Yes, all" description: "Include all matching items"
|
|
75
|
+
- label: "Let me pick" description: "Choose which items to include"
|
|
76
|
+
- label: "No" description: "Proceed without these items"
|
|
77
|
+
multiSelect: false
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Pattern: multi-option-failure
|
|
83
|
+
|
|
84
|
+
4-option failure handler for build failures.
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Use AskUserQuestion:
|
|
88
|
+
question: "Plan {id} failed. How should we proceed?"
|
|
89
|
+
header: "Failed"
|
|
90
|
+
options:
|
|
91
|
+
- label: "Retry" description: "Re-run this plan's executor"
|
|
92
|
+
- label: "Skip" description: "Mark as skipped, continue to next wave"
|
|
93
|
+
- label: "Rollback" description: "Undo commits, revert to last good state"
|
|
94
|
+
- label: "Abort" description: "Stop the entire build"
|
|
95
|
+
multiSelect: false
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Pattern: multi-option-escalation
|
|
101
|
+
|
|
102
|
+
4-option escalation for review escalation (max AskUserQuestion supports).
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Use AskUserQuestion:
|
|
106
|
+
question: "Phase {N} has failed verification {attempt} times. How should we proceed?"
|
|
107
|
+
header: "Escalate"
|
|
108
|
+
options:
|
|
109
|
+
- label: "Accept gaps" description: "Mark as complete-with-gaps and move on"
|
|
110
|
+
- label: "Re-plan" description: "Go back to /pbr:plan with gap context"
|
|
111
|
+
- label: "Debug" description: "Spawn /pbr:debug to investigate root causes"
|
|
112
|
+
- label: "Retry" description: "Try one more verification cycle"
|
|
113
|
+
multiSelect: false
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Note: AskUserQuestion supports max 4 options. The original review escalation had 5 options (accept-gaps/re-plan/debug/override/retry). The "override" option is folded into the post-selection flow: if user selects "Accept gaps", offer a follow-up AskUserQuestion asking whether to accept all gaps or pick specific ones (the "override" behavior).
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Pattern: multi-option-gaps
|
|
121
|
+
|
|
122
|
+
4-option gap handler for review gaps-found.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Use AskUserQuestion:
|
|
126
|
+
question: "{count} verification gaps need attention. How should we proceed?"
|
|
127
|
+
header: "Gaps"
|
|
128
|
+
options:
|
|
129
|
+
- label: "Auto-fix" description: "Diagnose root causes and create fix plans (recommended)"
|
|
130
|
+
- label: "Override" description: "Accept specific gaps as false positives"
|
|
131
|
+
- label: "Manual" description: "I'll fix these myself"
|
|
132
|
+
- label: "Skip" description: "Save results for later"
|
|
133
|
+
multiSelect: false
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Pattern: multi-option-priority
|
|
139
|
+
|
|
140
|
+
4-option priority selection for milestone gap priority.
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
Use AskUserQuestion:
|
|
144
|
+
question: "Which gaps should we address?"
|
|
145
|
+
header: "Priority"
|
|
146
|
+
options:
|
|
147
|
+
- label: "Must-fix only" description: "Address critical/high gaps only"
|
|
148
|
+
- label: "Must + should" description: "Address critical, high, and medium gaps"
|
|
149
|
+
- label: "Everything" description: "Address all gaps including low priority"
|
|
150
|
+
- label: "Let me pick" description: "Choose specific gaps to address"
|
|
151
|
+
multiSelect: false
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Pattern: settings-category-select
|
|
157
|
+
|
|
158
|
+
4-option menu for configuration category selection (config skill).
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Use AskUserQuestion:
|
|
162
|
+
question: "What would you like to configure?"
|
|
163
|
+
header: "Configure"
|
|
164
|
+
options:
|
|
165
|
+
- label: "Depth" description: "quick/standard/comprehensive"
|
|
166
|
+
- label: "Model profile" description: "quality/balanced/budget/adaptive"
|
|
167
|
+
- label: "Features" description: "Toggle workflow features and gates"
|
|
168
|
+
- label: "Git settings" description: "branching strategy, commit mode"
|
|
169
|
+
multiSelect: false
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Note: Original 7 categories condensed to 4. "Models" (per-agent) merged into "Model profile". "Gates" and "Parallelization" merged into "Features". After selection, show a category-specific follow-up AskUserQuestion.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Pattern: toggle-confirm
|
|
177
|
+
|
|
178
|
+
2-option confirmation for enabling/disabling boolean features (config skill).
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
Use AskUserQuestion:
|
|
182
|
+
question: "Enable {feature_name}?"
|
|
183
|
+
header: "Toggle"
|
|
184
|
+
options:
|
|
185
|
+
- label: "Enable" description: "Turn this feature on"
|
|
186
|
+
- label: "Disable" description: "Turn this feature off"
|
|
187
|
+
multiSelect: false
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Pattern: model-profile-select
|
|
193
|
+
|
|
194
|
+
4-option selection for model profile presets (config skill).
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
Use AskUserQuestion:
|
|
198
|
+
question: "Select model profile"
|
|
199
|
+
header: "Profile"
|
|
200
|
+
options:
|
|
201
|
+
- label: "Quality" description: "opus for all agents (highest cost)"
|
|
202
|
+
- label: "Balanced" description: "sonnet/inherit mix (default)"
|
|
203
|
+
- label: "Budget" description: "haiku for all agents (lowest cost)"
|
|
204
|
+
- label: "Adaptive" description: "sonnet planning, haiku execution"
|
|
205
|
+
multiSelect: false
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Pattern: action-routing
|
|
211
|
+
|
|
212
|
+
Up to 4 suggested next actions with selection (status, resume skills).
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
Use AskUserQuestion:
|
|
216
|
+
question: "What would you like to do next?"
|
|
217
|
+
header: "Next Step"
|
|
218
|
+
options:
|
|
219
|
+
- label: "{primary action}" description: "{explanation}"
|
|
220
|
+
- label: "{alternative 1}" description: "{explanation}"
|
|
221
|
+
- label: "{alternative 2}" description: "{explanation}"
|
|
222
|
+
- label: "Something else" description: "Enter a different command"
|
|
223
|
+
multiSelect: false
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Note: Dynamically generate options from workflow state. The "Something else" option allows freeform input. Build 1-3 real options + always include "Something else" as the last option. If only 1 real option exists, use the yes-no pattern instead.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Pattern: pause-point-select
|
|
231
|
+
|
|
232
|
+
Select from multiple resume points (resume skill).
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
Use AskUserQuestion:
|
|
236
|
+
question: "Found multiple pause points. Which would you like to resume?"
|
|
237
|
+
header: "Resume"
|
|
238
|
+
options:
|
|
239
|
+
- label: "Phase {A}" description: "Paused {date}"
|
|
240
|
+
- label: "Phase {B}" description: "Paused {date}"
|
|
241
|
+
- label: "Phase {C}" description: "Paused {date}"
|
|
242
|
+
- label: "Phase {D}" description: "Paused {date}"
|
|
243
|
+
multiSelect: false
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Note: If more than 4 pause points exist, show the 4 most recent. The oldest option becomes "Show earlier" which re-prompts with the next batch.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Pattern: scope-confirm
|
|
251
|
+
|
|
252
|
+
3-option confirmation for quick task scope validation (quick skill).
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
Use AskUserQuestion:
|
|
256
|
+
question: "This task looks complex. Proceed as quick task or use full planning?"
|
|
257
|
+
header: "Scope"
|
|
258
|
+
options:
|
|
259
|
+
- label: "Quick task" description: "Execute as lightweight task"
|
|
260
|
+
- label: "Full plan" description: "Switch to /pbr:plan for proper planning"
|
|
261
|
+
- label: "Revise" description: "Let me rewrite the task description"
|
|
262
|
+
multiSelect: false
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Pattern: depth-select
|
|
268
|
+
|
|
269
|
+
3-option depth selection for begin skill workflow preferences.
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
Use AskUserQuestion:
|
|
273
|
+
question: "How thorough should planning be?"
|
|
274
|
+
header: "Depth"
|
|
275
|
+
options:
|
|
276
|
+
- label: "Quick" description: "3-5 phases, skip research, ~50% cheaper"
|
|
277
|
+
- label: "Standard" description: "5-8 phases with research (default)"
|
|
278
|
+
- label: "Comprehensive" description: "8-12 phases, deep research, ~2x cost"
|
|
279
|
+
multiSelect: false
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Pattern: git-strategy-select
|
|
285
|
+
|
|
286
|
+
3-option git branching strategy for begin skill.
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Use AskUserQuestion:
|
|
290
|
+
question: "Git branching strategy?"
|
|
291
|
+
header: "Git"
|
|
292
|
+
options:
|
|
293
|
+
- label: "None" description: "Commit to current branch (default)"
|
|
294
|
+
- label: "Phase branches" description: "Create a branch per phase"
|
|
295
|
+
- label: "Milestone branches" description: "Create a branch per milestone"
|
|
296
|
+
multiSelect: false
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Pattern: context-handling
|
|
302
|
+
|
|
303
|
+
3-option handler for existing CONTEXT.md in discuss skill.
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
Use AskUserQuestion:
|
|
307
|
+
question: "Phase {N} already has a CONTEXT.md. How should we handle it?"
|
|
308
|
+
header: "Context"
|
|
309
|
+
options:
|
|
310
|
+
- label: "Overwrite" description: "Replace with new decisions"
|
|
311
|
+
- label: "Append" description: "Add new decisions below existing ones"
|
|
312
|
+
- label: "Cancel" description: "Keep existing and stop"
|
|
313
|
+
multiSelect: false
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Pattern: gray-area-option
|
|
319
|
+
|
|
320
|
+
Dynamic template for presenting gray area choices in discuss skill.
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
Use AskUserQuestion:
|
|
324
|
+
question: "{Gray area title}"
|
|
325
|
+
header: "Decision"
|
|
326
|
+
options:
|
|
327
|
+
- label: "{Option 1}" description: "{Concrete approach 1}"
|
|
328
|
+
- label: "{Option 2}" description: "{Concrete approach 2}"
|
|
329
|
+
- label: "Let Claude decide" description: "Mark as Claude's Discretion"
|
|
330
|
+
multiSelect: false
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Note: Options are generated at runtime based on phase analysis. The pattern defines the structure; the skill fills in options per gray area. Always include "Let Claude decide" as the last option. If more than 4 options are identified, split into a 2-step flow (AskUserQuestion supports max 4 options).
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Pattern: output-routing
|
|
338
|
+
|
|
339
|
+
4-option confirmation for explore skill output proposals.
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
Use AskUserQuestion:
|
|
343
|
+
question: "How do you want to handle these proposed outputs?"
|
|
344
|
+
header: "Outputs"
|
|
345
|
+
options:
|
|
346
|
+
- label: "Approve all" description: "Create all suggested artifacts"
|
|
347
|
+
- label: "Adjust" description: "Modify the proposals before creating"
|
|
348
|
+
- label: "Add more" description: "I have additional outputs to capture"
|
|
349
|
+
- label: "Skip" description: "Don't create any artifacts from this session"
|
|
350
|
+
multiSelect: false
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Pattern: debug-session-select
|
|
356
|
+
|
|
357
|
+
Dynamic template for debug session selection.
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
Use AskUserQuestion:
|
|
361
|
+
question: "Found active debug sessions. Which would you like?"
|
|
362
|
+
header: "Debug"
|
|
363
|
+
options:
|
|
364
|
+
- label: "#{NNN}: {title}" description: "Started {date}, last: {hypothesis}"
|
|
365
|
+
- label: "#{NNN}: {title}" description: "Started {date}, last: {hypothesis}"
|
|
366
|
+
- label: "#{NNN}: {title}" description: "Started {date}, last: {hypothesis}"
|
|
367
|
+
- label: "New session" description: "Start a fresh debug investigation"
|
|
368
|
+
multiSelect: false
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Note: Options are generated at runtime from active debug sessions. If more than 3 active sessions exist, show the 3 most recent plus "New session" (max 4 options). Older sessions can be accessed by running `/pbr:debug` with the session number.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Pattern: debug-checkpoint
|
|
376
|
+
|
|
377
|
+
3-option checkpoint response during debug investigation.
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
Use AskUserQuestion:
|
|
381
|
+
question: "Investigation has reached a checkpoint. How should we proceed?"
|
|
382
|
+
header: "Continue?"
|
|
383
|
+
options:
|
|
384
|
+
- label: "Continue" description: "Keep investigating with current findings"
|
|
385
|
+
- label: "More info" description: "I have additional context to share"
|
|
386
|
+
- label: "New approach" description: "Try a different investigation angle"
|
|
387
|
+
multiSelect: false
|
|
388
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Phase Argument Parsing
|
|
2
|
+
|
|
3
|
+
How skills parse and validate phase number arguments from `$ARGUMENTS`.
|
|
4
|
+
|
|
5
|
+
## Parsing Rules
|
|
6
|
+
|
|
7
|
+
1. **Integer phases**: `3` → Phase 3 (standard phase)
|
|
8
|
+
2. **Decimal phases**: `3.1` → Phase 3.1 (inserted phase)
|
|
9
|
+
3. **Zero-padded**: `03` → Phase 3 (strip leading zeros for display, keep for file paths)
|
|
10
|
+
4. **No argument**: Use current phase from STATE.md
|
|
11
|
+
|
|
12
|
+
## Normalization
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Input → Normalized → Directory Name
|
|
16
|
+
"3" → 3 → 03-{slug}
|
|
17
|
+
"03" → 3 → 03-{slug}
|
|
18
|
+
"3.1" → 3.1 → 03.1-{slug}
|
|
19
|
+
"" → (current) → (read from STATE.md)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Validation
|
|
23
|
+
|
|
24
|
+
1. Phase number must be numeric (integer or decimal with one decimal place)
|
|
25
|
+
2. Phase must exist in ROADMAP.md (or be a valid target for insert/add)
|
|
26
|
+
3. Phase must be in the expected state for the operation:
|
|
27
|
+
- `/pbr:plan N` — phase must not already have plans (unless re-planning)
|
|
28
|
+
- `/pbr:build N` — phase must have plans
|
|
29
|
+
- `/pbr:review N` — phase must have been built (SUMMARY.md files exist)
|
|
30
|
+
|
|
31
|
+
## Finding Phase Directory
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Given phase number N:
|
|
35
|
+
1. List directories in .planning/phases/
|
|
36
|
+
2. Find directory matching pattern: {NN}-* or {N.M}-*
|
|
37
|
+
3. If not found, check ROADMAP.md for phase name
|
|
38
|
+
4. If still not found, error: "Phase N not found"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Error Messages
|
|
42
|
+
|
|
43
|
+
- No argument and no current phase: "Which phase? Specify a number or run /pbr:status to see where you are."
|
|
44
|
+
- Phase not found: "Phase {N} not found in .planning/phases/. Run /pbr:status to see available phases."
|
|
45
|
+
- Wrong state: "Phase {N} hasn't been planned yet. Run /pbr:plan {N} first."
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Progress Display Fragment
|
|
2
|
+
|
|
3
|
+
Standard progress display formats for all skills. Reference `references/ui-formatting.md` for the full brand guide.
|
|
4
|
+
|
|
5
|
+
## Progress Bar
|
|
6
|
+
|
|
7
|
+
Always 20 characters wide using `█` (filled) and `░` (empty):
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Progress: [████████████░░░░░░░░] 60%
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Calculate: `filled = Math.round(percent / 5)`, `empty = 20 - filled`
|
|
14
|
+
|
|
15
|
+
## Phase Table
|
|
16
|
+
|
|
17
|
+
Use when displaying multiple phases (status, milestone skills):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
| Phase | Name | Status | Plans | Progress |
|
|
21
|
+
|-------|------------------|-----------|-------|----------|
|
|
22
|
+
| 01 | Setup | ✓ complete | 2/2 | 100% |
|
|
23
|
+
| 02 | Authentication | ◐ building | 1/3 | 33% |
|
|
24
|
+
| 03 | Dashboard | ○ pending | 0/4 | 0% |
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Status Indicators
|
|
28
|
+
|
|
29
|
+
| Symbol | Meaning | When to use |
|
|
30
|
+
|--------|---------|-------------|
|
|
31
|
+
| `✓` | Complete | Phase/plan/task finished |
|
|
32
|
+
| `✗` | Failed | Verification failed |
|
|
33
|
+
| `○` | Pending | Not started |
|
|
34
|
+
| `◐` | In Progress | Currently executing |
|
|
35
|
+
| `?` | Needs Human | Checkpoint requiring user action |
|
|
36
|
+
| `⚠` | Warning | Non-blocking issue |
|
|
37
|
+
| `⊘` | Blocked | Waiting on dependency |
|
|
38
|
+
|
|
39
|
+
## Wave Progress (build skill)
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Wave 1: ✓ Plan 01, ✓ Plan 02
|
|
43
|
+
Wave 2: ◐ Plan 03 (executing)
|
|
44
|
+
Wave 3: ○ Plan 04, ○ Plan 05
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Compact Status Line
|
|
48
|
+
|
|
49
|
+
For inline status updates:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Phase 3 of 8 (Auth) — building — [████████░░░░░░░░░░░░] 40%
|
|
53
|
+
```
|