context-planning 0.7.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/LICENSE +21 -0
- package/README.md +454 -0
- package/bin/commands/_helpers.js +53 -0
- package/bin/commands/_usage.js +67 -0
- package/bin/commands/capture.js +46 -0
- package/bin/commands/codebase-status.js +41 -0
- package/bin/commands/complete-milestone.js +57 -0
- package/bin/commands/config.js +70 -0
- package/bin/commands/doctor.js +139 -0
- package/bin/commands/gsd-import.js +90 -0
- package/bin/commands/inbox.js +81 -0
- package/bin/commands/index.js +33 -0
- package/bin/commands/init.js +87 -0
- package/bin/commands/install.js +43 -0
- package/bin/commands/scaffold-codebase.js +53 -0
- package/bin/commands/scaffold-milestone.js +58 -0
- package/bin/commands/scaffold-phase.js +65 -0
- package/bin/commands/status.js +42 -0
- package/bin/commands/statusline.js +108 -0
- package/bin/commands/tick.js +49 -0
- package/bin/commands/version.js +9 -0
- package/bin/commands/worktree.js +218 -0
- package/bin/commands/write-summary.js +54 -0
- package/bin/cp.cmd +2 -0
- package/bin/cp.js +54 -0
- package/commands/cp/capture.md +107 -0
- package/commands/cp/complete-milestone.md +166 -0
- package/commands/cp/execute-phase.md +220 -0
- package/commands/cp/map-codebase.md +211 -0
- package/commands/cp/new-milestone.md +136 -0
- package/commands/cp/new-project.md +132 -0
- package/commands/cp/plan-phase.md +195 -0
- package/commands/cp/progress.md +147 -0
- package/commands/cp/quick.md +104 -0
- package/commands/cp/resume.md +125 -0
- package/commands/cp/write-summary.md +33 -0
- package/docs/MIGRATION-v0.5.md +140 -0
- package/docs/architecture.md +189 -0
- package/docs/superpowers/plans/2026-05-20-v0-7-plan-16-01-design-md-infrastructure.md +1064 -0
- package/docs/superpowers/plans/2026-05-20-v0-7-plan-16-02-review-log-infrastructure.md +418 -0
- package/docs/superpowers/plans/2026-05-20-v0-7-plan-16-03-key-decisions-hard-block.md +295 -0
- package/docs/superpowers/specs/2026-05-20-generic-provider-harness-detection-design.md +380 -0
- package/docs/superpowers/specs/2026-05-20-v0-7-design-capture-design.md +400 -0
- package/docs/writing-providers.md +76 -0
- package/install/aider.js +204 -0
- package/install/claude.js +116 -0
- package/install/common.js +65 -0
- package/install/copilot.js +86 -0
- package/install/cursor.js +120 -0
- package/install/echo-provider.js +50 -0
- package/lib/codebase-mapper.js +169 -0
- package/lib/detect.js +280 -0
- package/lib/frontmatter.js +72 -0
- package/lib/gsd-compat.js +165 -0
- package/lib/import.js +543 -0
- package/lib/inbox.js +226 -0
- package/lib/lifecycle.js +929 -0
- package/lib/merge.js +157 -0
- package/lib/milestone.js +595 -0
- package/lib/paths.js +191 -0
- package/lib/provider.js +168 -0
- package/lib/roadmap.js +134 -0
- package/lib/state.js +99 -0
- package/lib/worktree.js +253 -0
- package/package.json +45 -0
- package/templates/DESIGN.md +78 -0
- package/templates/INBOX.md +13 -0
- package/templates/MILESTONE-CONTEXT.md +40 -0
- package/templates/MILESTONES.md +29 -0
- package/templates/PLAN.md +84 -0
- package/templates/PROJECT.md +43 -0
- package/templates/REVIEW-LOG.md +38 -0
- package/templates/ROADMAP.md +34 -0
- package/templates/STATE.md +78 -0
- package/templates/SUMMARY.md +75 -0
- package/templates/codebase/ARCHITECTURE.md +30 -0
- package/templates/codebase/CONCERNS.md +30 -0
- package/templates/codebase/CONVENTIONS.md +30 -0
- package/templates/codebase/INTEGRATIONS.md +30 -0
- package/templates/codebase/STACK.md +26 -0
- package/templates/codebase/STRUCTURE.md +32 -0
- package/templates/codebase/TESTING.md +39 -0
- package/templates/config.json +173 -0
- package/templates/phase-PLAN.md +32 -0
- package/templates/quick-PLAN.md +24 -0
- package/templates/quick-SUMMARY.md +25 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Project State
|
|
2
|
+
|
|
3
|
+
## Project Reference
|
|
4
|
+
|
|
5
|
+
See: .planning/PROJECT.md (updated {{DATE}})
|
|
6
|
+
|
|
7
|
+
**Core value:** {{CORE_VALUE}}
|
|
8
|
+
**Current focus:** {{CURRENT_PHASE_NAME}}
|
|
9
|
+
|
|
10
|
+
## Current Position
|
|
11
|
+
|
|
12
|
+
Phase: {{PHASE_NUM}} of {{TOTAL_PHASES}} ({{CURRENT_PHASE_NAME}})
|
|
13
|
+
Plan: {{PLAN_NUM}} of {{TOTAL_PLANS_IN_PHASE}} in current phase
|
|
14
|
+
Status: {{STATUS}}
|
|
15
|
+
Last activity: {{DATE}} — {{LAST_ACTIVITY}}
|
|
16
|
+
|
|
17
|
+
Progress: [░░░░░░░░░░] 0%
|
|
18
|
+
|
|
19
|
+
## Performance Metrics
|
|
20
|
+
|
|
21
|
+
**Velocity:**
|
|
22
|
+
- Total plans completed: 0
|
|
23
|
+
- Average duration: -
|
|
24
|
+
- Total execution time: -
|
|
25
|
+
|
|
26
|
+
**By Phase:**
|
|
27
|
+
|
|
28
|
+
| Phase | Plans | Total | Avg/Plan |
|
|
29
|
+
|-------|-------|-------|----------|
|
|
30
|
+
| - | - | - | - |
|
|
31
|
+
|
|
32
|
+
**Recent Trend:**
|
|
33
|
+
- Last 5 plans: -
|
|
34
|
+
- Trend: -
|
|
35
|
+
|
|
36
|
+
*Updated after each plan completion.*
|
|
37
|
+
|
|
38
|
+
## Accumulated Context
|
|
39
|
+
|
|
40
|
+
### Decisions
|
|
41
|
+
|
|
42
|
+
<!-- Recent decisions; full log in PROJECT.md "Key Decisions". -->
|
|
43
|
+
|
|
44
|
+
(none yet)
|
|
45
|
+
|
|
46
|
+
### Pending Todos
|
|
47
|
+
|
|
48
|
+
<!-- Captured during sessions (e.g., via /cp-capture in a future release). -->
|
|
49
|
+
|
|
50
|
+
(none yet)
|
|
51
|
+
|
|
52
|
+
### Blockers / Concerns
|
|
53
|
+
|
|
54
|
+
<!-- Issues that affect future work. -->
|
|
55
|
+
|
|
56
|
+
(none yet)
|
|
57
|
+
|
|
58
|
+
## Deferred Items
|
|
59
|
+
|
|
60
|
+
Items acknowledged and carried forward from previous milestone close:
|
|
61
|
+
|
|
62
|
+
| Category | Item | Status | Deferred At |
|
|
63
|
+
|----------|------|--------|-------------|
|
|
64
|
+
| *(none)* | | | |
|
|
65
|
+
|
|
66
|
+
## Quick Tasks Completed
|
|
67
|
+
|
|
68
|
+
<!-- Appended by /cp-quick on completion. GSD-compatible table. -->
|
|
69
|
+
|
|
70
|
+
| Date | Slug | One-liner |
|
|
71
|
+
|------|------|-----------|
|
|
72
|
+
| *(none yet)* | | |
|
|
73
|
+
|
|
74
|
+
## Session Continuity
|
|
75
|
+
|
|
76
|
+
Last session: {{DATE}}
|
|
77
|
+
Stopped at: {{LAST_ACTIVITY}}
|
|
78
|
+
Resume file: {{CONTINUE_HERE_PATH_OR_NONE}}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: {{PHASE_DIR}}
|
|
3
|
+
plan: {{PLAN_NUM_PADDED}}
|
|
4
|
+
subsystem: {{SUBSYSTEM}}
|
|
5
|
+
tags: []
|
|
6
|
+
|
|
7
|
+
# Dependency graph
|
|
8
|
+
requires: []
|
|
9
|
+
provides: []
|
|
10
|
+
affects: []
|
|
11
|
+
|
|
12
|
+
# Tech tracking
|
|
13
|
+
tech-stack:
|
|
14
|
+
added: []
|
|
15
|
+
patterns: []
|
|
16
|
+
|
|
17
|
+
key-files:
|
|
18
|
+
created: []
|
|
19
|
+
modified: []
|
|
20
|
+
|
|
21
|
+
key-decisions: []
|
|
22
|
+
patterns-established: []
|
|
23
|
+
|
|
24
|
+
requirements-completed: []
|
|
25
|
+
|
|
26
|
+
# Metrics
|
|
27
|
+
duration: {{DURATION_MIN}}min
|
|
28
|
+
completed: {{COMPLETED_DATE}}
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Phase {{PHASE_NUM}}: {{PHASE_NAME}} Summary
|
|
32
|
+
|
|
33
|
+
**{{ONE_LINER}}**
|
|
34
|
+
|
|
35
|
+
## Performance
|
|
36
|
+
|
|
37
|
+
- **Duration:** {{DURATION_HUMAN}}
|
|
38
|
+
- **Started:** {{STARTED_ISO}}
|
|
39
|
+
- **Completed:** {{COMPLETED_ISO}}
|
|
40
|
+
- **Tasks:** {{TASKS_COUNT}}
|
|
41
|
+
- **Files modified:** {{FILES_COUNT}}
|
|
42
|
+
|
|
43
|
+
## Accomplishments
|
|
44
|
+
|
|
45
|
+
<!-- 2-4 bullets — substantive outcomes, NOT "phase complete". -->
|
|
46
|
+
|
|
47
|
+
## Task Commits
|
|
48
|
+
|
|
49
|
+
<!-- One line per task; atomic commit hashes. -->
|
|
50
|
+
|
|
51
|
+
## Files Created / Modified
|
|
52
|
+
|
|
53
|
+
<!-- `path/to/file.ext` — what it does -->
|
|
54
|
+
|
|
55
|
+
## Decisions Made
|
|
56
|
+
|
|
57
|
+
<!-- Key decisions with brief rationale, or "None — followed plan as written". -->
|
|
58
|
+
|
|
59
|
+
## Deviations from Plan
|
|
60
|
+
|
|
61
|
+
<!-- "None — plan executed exactly as written" OR list of auto-fixes. -->
|
|
62
|
+
|
|
63
|
+
## Issues Encountered
|
|
64
|
+
|
|
65
|
+
<!-- Problems during planned work and how they were resolved, or "None". -->
|
|
66
|
+
|
|
67
|
+
## Next Phase Readiness
|
|
68
|
+
|
|
69
|
+
<!-- What's ready, any blockers/concerns to surface in STATE.md. -->
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
*Phase: {{PHASE_DIR}}*
|
|
73
|
+
*Plan: {{PLAN_NUM_PADDED}}*
|
|
74
|
+
*Provider: {{PROVIDER}} ({{EXECUTE_SKILL}})*
|
|
75
|
+
*Completed: {{COMPLETED_DATE}}*
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (arch focus).
|
|
4
|
+
|
|
5
|
+
High-level system shape. The "how the pieces fit" reference loaded by
|
|
6
|
+
`/cp-plan-phase` for backend/API/data work.
|
|
7
|
+
|
|
8
|
+
## Architectural style
|
|
9
|
+
|
|
10
|
+
<!-- e.g. layered, hexagonal, MVC, plugin/host, event-driven. One short paragraph. -->
|
|
11
|
+
|
|
12
|
+
## Module boundaries
|
|
13
|
+
|
|
14
|
+
<!-- List the top-level modules and what each owns. Cite directory paths. -->
|
|
15
|
+
|
|
16
|
+
## Data flow
|
|
17
|
+
|
|
18
|
+
<!-- Trace one canonical request/event end-to-end through the modules. File paths at each hop. -->
|
|
19
|
+
|
|
20
|
+
## Key design patterns
|
|
21
|
+
|
|
22
|
+
<!-- Patterns the codebase actively uses (Repository, Factory, Strategy, …) with file refs. -->
|
|
23
|
+
|
|
24
|
+
## Cross-cutting concerns
|
|
25
|
+
|
|
26
|
+
<!-- Logging, auth, caching, config, error handling — where each is implemented. -->
|
|
27
|
+
|
|
28
|
+
## Boundaries the executor must respect
|
|
29
|
+
|
|
30
|
+
<!-- "Never import X from Y." "All HTTP goes through `src/http/`." Prescriptive rules. -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Known Concerns
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (concerns focus).
|
|
4
|
+
|
|
5
|
+
Tech debt, fragility, and pitfalls the executor should be aware of. Drives
|
|
6
|
+
refactor / cleanup phases. Be specific — vague concerns are not actionable.
|
|
7
|
+
|
|
8
|
+
## Critical
|
|
9
|
+
|
|
10
|
+
<!-- Anything that could cause data loss, security issues, or production outages. Include impact + fix approach. -->
|
|
11
|
+
|
|
12
|
+
## High
|
|
13
|
+
|
|
14
|
+
<!-- Real bugs or fragility with clear impact. File path + line range + symptom. -->
|
|
15
|
+
|
|
16
|
+
## Medium
|
|
17
|
+
|
|
18
|
+
<!-- Refactor candidates, code smells, missing tests in important areas. -->
|
|
19
|
+
|
|
20
|
+
## Low
|
|
21
|
+
|
|
22
|
+
<!-- Cosmetic, minor inconsistencies, things to clean up opportunistically. -->
|
|
23
|
+
|
|
24
|
+
## Workarounds & gotchas
|
|
25
|
+
|
|
26
|
+
<!-- "If you change X, also update Y." "This looks unused but is called via reflection." -->
|
|
27
|
+
|
|
28
|
+
## Areas that look safe to touch
|
|
29
|
+
|
|
30
|
+
<!-- Sections with good test coverage and clear boundaries — explicitly safe for the executor. -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Code Conventions
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (quality focus).
|
|
4
|
+
|
|
5
|
+
Prescriptive rules — written so the executor can apply them without
|
|
6
|
+
re-reading the rest of the codebase.
|
|
7
|
+
|
|
8
|
+
## Naming
|
|
9
|
+
|
|
10
|
+
<!-- Functions, variables, types/classes, constants, files. One bullet per rule. -->
|
|
11
|
+
|
|
12
|
+
## Import / export style
|
|
13
|
+
|
|
14
|
+
<!-- ESM vs CJS, default vs named, ordering, path aliases. Cite an example file. -->
|
|
15
|
+
|
|
16
|
+
## Error handling
|
|
17
|
+
|
|
18
|
+
<!-- Throw vs Result<T,E>, custom error classes, where errors are caught/logged. -->
|
|
19
|
+
|
|
20
|
+
## Logging
|
|
21
|
+
|
|
22
|
+
<!-- Logger choice, levels, format, where the logger is initialised. -->
|
|
23
|
+
|
|
24
|
+
## Comments & docs
|
|
25
|
+
|
|
26
|
+
<!-- When comments are warranted, JSDoc/TSDoc style, README expectations. -->
|
|
27
|
+
|
|
28
|
+
## Formatting & linting
|
|
29
|
+
|
|
30
|
+
<!-- Formatter (prettier/biome/black), lint config path, command to run, auto-fix command. -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# External Integrations
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (tech focus).
|
|
4
|
+
|
|
5
|
+
Inventory every external system this codebase talks to. Used by phases that
|
|
6
|
+
touch I/O boundaries.
|
|
7
|
+
|
|
8
|
+
## APIs called
|
|
9
|
+
|
|
10
|
+
<!-- For each: endpoint base URL, auth mechanism, calling file path. -->
|
|
11
|
+
|
|
12
|
+
## Databases / data stores
|
|
13
|
+
|
|
14
|
+
<!-- Engine + version, schema location, connection-config file path, migration tool. -->
|
|
15
|
+
|
|
16
|
+
## Message queues / pub-sub
|
|
17
|
+
|
|
18
|
+
<!-- Broker, topic/queue names, producer & consumer file paths. -->
|
|
19
|
+
|
|
20
|
+
## Auth providers
|
|
21
|
+
|
|
22
|
+
<!-- OAuth/OIDC/JWT/sessions. Token storage strategy. -->
|
|
23
|
+
|
|
24
|
+
## CI/CD & deployment
|
|
25
|
+
|
|
26
|
+
<!-- Pipeline files (`.github/workflows/*.yml`, etc.), target environments, deploy command. -->
|
|
27
|
+
|
|
28
|
+
## Secrets & config
|
|
29
|
+
|
|
30
|
+
<!-- Where env vars are loaded (file paths), what is required vs optional. NEVER paste secret values. -->
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Tech Stack
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (tech focus).
|
|
4
|
+
|
|
5
|
+
Reference for `/cp-plan-phase` and `/cp-execute-phase` so they don't re-discover
|
|
6
|
+
languages, frameworks, or versions every turn.
|
|
7
|
+
|
|
8
|
+
## Languages & Runtimes
|
|
9
|
+
|
|
10
|
+
<!-- e.g. Node.js 20.x, TypeScript 5.4, Python 3.11. Cite version source (package.json/pyproject.toml). -->
|
|
11
|
+
|
|
12
|
+
## Frameworks
|
|
13
|
+
|
|
14
|
+
<!-- Web/UI/backend frameworks with versions and entry-point file paths. -->
|
|
15
|
+
|
|
16
|
+
## Dependencies (production)
|
|
17
|
+
|
|
18
|
+
<!-- Top ~10 by importance, NOT the full lockfile. Include purpose: "lodash — utility helpers in `src/util/`". -->
|
|
19
|
+
|
|
20
|
+
## Dependencies (dev tooling)
|
|
21
|
+
|
|
22
|
+
<!-- Build, test, lint, format. Include the npm/script command that drives each. -->
|
|
23
|
+
|
|
24
|
+
## Package manager & lockfile
|
|
25
|
+
|
|
26
|
+
<!-- npm/pnpm/yarn/uv/poetry. Lockfile path. Install command. -->
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Folder Structure
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (arch focus).
|
|
4
|
+
|
|
5
|
+
Answers "where does this new file go?" for `/cp-execute-phase`.
|
|
6
|
+
|
|
7
|
+
## Top-level layout
|
|
8
|
+
|
|
9
|
+
<!-- Annotated tree of top-level directories with one-line purpose for each. -->
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
.
|
|
13
|
+
├── bin/ ← CLI entry points
|
|
14
|
+
├── lib/ ← runtime modules (no I/O)
|
|
15
|
+
├── …
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Folder responsibilities
|
|
19
|
+
|
|
20
|
+
<!-- Per directory: what belongs here, what does NOT, naming pattern for files. -->
|
|
21
|
+
|
|
22
|
+
## Where do I put a NEW …
|
|
23
|
+
|
|
24
|
+
<!-- New CLI subcommand → … ; new HTTP route → … ; new test → … ; new migration → … -->
|
|
25
|
+
|
|
26
|
+
## Filename conventions
|
|
27
|
+
|
|
28
|
+
<!-- kebab-case vs camelCase, suffixes (`.test.ts`, `.spec.js`, etc.). -->
|
|
29
|
+
|
|
30
|
+
## Generated / vendored / ignored
|
|
31
|
+
|
|
32
|
+
<!-- Paths the executor must never edit by hand. Include why. -->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Testing
|
|
2
|
+
|
|
3
|
+
Generated: {{DATE}} — fill via `/cp-map-codebase` (quality focus).
|
|
4
|
+
|
|
5
|
+
The reference `/cp-plan-phase` loads for any test-related work and that
|
|
6
|
+
`/cp-execute-phase` reads before writing tests.
|
|
7
|
+
|
|
8
|
+
## Test framework & runner
|
|
9
|
+
|
|
10
|
+
<!-- vitest/jest/pytest/etc. Version. Command to run all tests. Command to run one file. -->
|
|
11
|
+
|
|
12
|
+
## Test file layout
|
|
13
|
+
|
|
14
|
+
<!-- Co-located vs `test/` mirror. Naming pattern (`*.test.ts`, `test_*.py`). -->
|
|
15
|
+
|
|
16
|
+
## Test naming & structure
|
|
17
|
+
|
|
18
|
+
<!-- describe/it vs flat. AAA pattern. Example from the codebase. -->
|
|
19
|
+
|
|
20
|
+
## Fixtures & mocks
|
|
21
|
+
|
|
22
|
+
<!-- Where fixtures live, how mocks are wired, http mocking strategy. -->
|
|
23
|
+
|
|
24
|
+
## What is covered vs not
|
|
25
|
+
|
|
26
|
+
<!-- Honest picture: unit ✓, integration partial, e2e none, etc. Cite which folders are well-covered. -->
|
|
27
|
+
|
|
28
|
+
## How to run
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
# all tests
|
|
32
|
+
…
|
|
33
|
+
|
|
34
|
+
# single file
|
|
35
|
+
…
|
|
36
|
+
|
|
37
|
+
# coverage
|
|
38
|
+
…
|
|
39
|
+
```
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mode": "interactive",
|
|
3
|
+
"granularity": "standard",
|
|
4
|
+
"workflow": {
|
|
5
|
+
"research": false,
|
|
6
|
+
"plan_check": false,
|
|
7
|
+
"verifier": false,
|
|
8
|
+
"auto_advance": false,
|
|
9
|
+
"nyquist_validation": false,
|
|
10
|
+
"security_enforcement": false,
|
|
11
|
+
"discuss_mode": "discuss",
|
|
12
|
+
"research_before_questions": false,
|
|
13
|
+
"code_review_command": null,
|
|
14
|
+
"plan_bounce": false,
|
|
15
|
+
"plan_bounce_passes": 2,
|
|
16
|
+
"cross_ai_execution": false,
|
|
17
|
+
"cross_ai_command": "",
|
|
18
|
+
"cross_ai_timeout": 300
|
|
19
|
+
},
|
|
20
|
+
"ship": {
|
|
21
|
+
"pr_body_sections": []
|
|
22
|
+
},
|
|
23
|
+
"planning": {
|
|
24
|
+
"commit_docs": true,
|
|
25
|
+
"search_gitignored": false,
|
|
26
|
+
"sub_repos": []
|
|
27
|
+
},
|
|
28
|
+
"git": {
|
|
29
|
+
"create_tag": false
|
|
30
|
+
},
|
|
31
|
+
"parallelization": {
|
|
32
|
+
"enabled": true,
|
|
33
|
+
"plan_level": true,
|
|
34
|
+
"task_level": false,
|
|
35
|
+
"skip_checkpoints": true,
|
|
36
|
+
"max_concurrent_agents": 3,
|
|
37
|
+
"min_plans_for_parallel": 2
|
|
38
|
+
},
|
|
39
|
+
"gates": {
|
|
40
|
+
"confirm_project": true,
|
|
41
|
+
"confirm_phases": true,
|
|
42
|
+
"confirm_roadmap": true,
|
|
43
|
+
"confirm_breakdown": true,
|
|
44
|
+
"confirm_plan": true,
|
|
45
|
+
"execute_next_plan": true,
|
|
46
|
+
"issues_review": true,
|
|
47
|
+
"confirm_transition": true
|
|
48
|
+
},
|
|
49
|
+
"safety": {
|
|
50
|
+
"always_confirm_destructive": true,
|
|
51
|
+
"always_confirm_external_services": true
|
|
52
|
+
},
|
|
53
|
+
"hooks": {
|
|
54
|
+
"context_warnings": true
|
|
55
|
+
},
|
|
56
|
+
"project_code": null,
|
|
57
|
+
"agent_skills": {},
|
|
58
|
+
"claude_md_path": "./CLAUDE.md",
|
|
59
|
+
|
|
60
|
+
"cp": {
|
|
61
|
+
"$comment": "context-planning settings. GSD ignores unknown top-level keys, so both tools can coexist.",
|
|
62
|
+
"version": 2,
|
|
63
|
+
"workflow_provider": "superpowers",
|
|
64
|
+
|
|
65
|
+
"harnesses": {
|
|
66
|
+
"copilot": {
|
|
67
|
+
"description": "GitHub Copilot CLI",
|
|
68
|
+
"plugin_roots": ["~/.copilot/installed-plugins/*/"]
|
|
69
|
+
},
|
|
70
|
+
"claude": {
|
|
71
|
+
"description": "Claude Code",
|
|
72
|
+
"plugin_roots": ["~/.claude/plugins/", "~/.claude/skills/"]
|
|
73
|
+
},
|
|
74
|
+
"cursor": {
|
|
75
|
+
"description": "Cursor",
|
|
76
|
+
"plugin_roots": ["~/.cursor/extensions/*/"]
|
|
77
|
+
},
|
|
78
|
+
"aider": {
|
|
79
|
+
"description": "Aider (file-based, no plugin slot today)",
|
|
80
|
+
"plugin_roots": []
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
"providers": {
|
|
85
|
+
"superpowers": {
|
|
86
|
+
"description": "Jesse Vincent's Superpowers plugin (https://github.com/obra/superpowers)",
|
|
87
|
+
"plugin_shape": {
|
|
88
|
+
"dir_name": "superpowers",
|
|
89
|
+
"required_subdirs": ["skills/writing-plans", "skills/subagent-driven-development"]
|
|
90
|
+
},
|
|
91
|
+
"detect": {
|
|
92
|
+
"any_of": [
|
|
93
|
+
".claude/plugins/superpowers",
|
|
94
|
+
".claude/skills/superpowers",
|
|
95
|
+
".github/skills/brainstorming",
|
|
96
|
+
".github/skills/writing-plans",
|
|
97
|
+
".github/skills/subagent-driven-development",
|
|
98
|
+
"installed-plugins/superpowers-marketplace/superpowers",
|
|
99
|
+
"installed-plugins/superpowers-marketplace/superpowers/skills/writing-plans",
|
|
100
|
+
"installed-plugins/superpowers-marketplace/superpowers/skills/subagent-driven-development"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
"skills": {
|
|
104
|
+
"brainstorm": "brainstorming",
|
|
105
|
+
"plan": "writing-plans",
|
|
106
|
+
"execute": "subagent-driven-development",
|
|
107
|
+
"execute_simple": "executing-plans",
|
|
108
|
+
"review": "requesting-code-review",
|
|
109
|
+
"receive_review": "receiving-code-review",
|
|
110
|
+
"finish": "finishing-a-development-branch",
|
|
111
|
+
"worktree": "using-git-worktrees",
|
|
112
|
+
"tdd": "test-driven-development",
|
|
113
|
+
"debug": "systematic-debugging",
|
|
114
|
+
"verify": "verification-before-completion"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"echo-provider": {
|
|
118
|
+
"description": "Schema-test stub. Echoes the role name. Not for end users.",
|
|
119
|
+
"plugin_shape": { "dir_name": "echo-provider", "required_subdirs": [] },
|
|
120
|
+
"detect": { "any_of": [".planning/providers/echo-provider"] },
|
|
121
|
+
"skills": {
|
|
122
|
+
"brainstorm": "echo",
|
|
123
|
+
"plan": "echo",
|
|
124
|
+
"execute": "echo",
|
|
125
|
+
"execute_simple": "echo",
|
|
126
|
+
"review": "echo",
|
|
127
|
+
"receive_review": "echo",
|
|
128
|
+
"finish": "echo",
|
|
129
|
+
"worktree": "echo",
|
|
130
|
+
"tdd": "echo",
|
|
131
|
+
"debug": "echo",
|
|
132
|
+
"verify": "echo"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"manual": {
|
|
136
|
+
"description": "Inline fallback. cp emits step-by-step instructions instead of delegating to an external skill. Use this when no other workflow provider is installed.",
|
|
137
|
+
"detect": { "always": true },
|
|
138
|
+
"skills": {
|
|
139
|
+
"brainstorm": "cp:manual/brainstorm",
|
|
140
|
+
"plan": "cp:manual/plan",
|
|
141
|
+
"execute": "cp:manual/execute",
|
|
142
|
+
"execute_simple": "cp:manual/execute",
|
|
143
|
+
"review": "cp:manual/review",
|
|
144
|
+
"receive_review": "cp:manual/receive_review",
|
|
145
|
+
"finish": "cp:manual/finish",
|
|
146
|
+
"worktree": "cp:manual/worktree",
|
|
147
|
+
"tdd": "cp:manual/tdd",
|
|
148
|
+
"debug": "cp:manual/debug",
|
|
149
|
+
"verify": "cp:manual/verify"
|
|
150
|
+
},
|
|
151
|
+
"prompts": {
|
|
152
|
+
"brainstorm": "You are running the cp MANUAL brainstorm fallback. Have a back-and-forth conversation with the user to refine the idea: (1) ask ONE clarifying question at a time about goals, constraints, users, success criteria; (2) reflect what you heard before each next question; (3) when the picture feels concrete, write the result to the file the calling cp command nominated (typically .planning/MILESTONE-CONTEXT.md or .planning/PROJECT.md). Do not start coding. Do not edit ROADMAP.md or STATE.md — the cp command owns those.",
|
|
153
|
+
"plan": "You are running the cp MANUAL plan fallback. Read the upstream context the calling cp command pointed you at (MILESTONE-CONTEXT.md, prior SUMMARY.md files, the relevant section of REQUIREMENTS.md if present). Produce a PLAN.md using the template at templates/PLAN.md: GSD-shape frontmatter (phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves) plus a body that lists discrete <task> blocks. Each <task> needs a one-line goal, the files it touches, and a <verify> command that proves it. Stop after writing PLAN.md — execution is a separate role.",
|
|
154
|
+
"execute": "You are running the cp MANUAL execute fallback. Open PLAN.md and walk it task-by-task. For each <task>: (1) make the smallest change that satisfies the goal; (2) run the <verify> command and report the result; (3) if it passes, mark the task done and commit (one task = one commit, message format: 'cp: {phase}-{plan} — {task name}'); (4) if it fails, stop and ask the user before continuing. After the final task, write SUMMARY.md (template at templates/SUMMARY.md) capturing subsystems/tags/requires/provides/affects/tech-stack/key-files/key-decisions/patterns-established/requirements-completed/duration. Do not tick ROADMAP.md or update STATE.md — the cp execute-phase command does that.",
|
|
155
|
+
"review": "You are running the cp MANUAL review fallback. Read the diff for the last phase commit range. Produce a short review covering: (a) bugs or regressions; (b) deviations from PLAN.md's must_haves; (c) untested edge cases; (d) anything that would surprise a future maintainer. Be specific (file + line). Do not modify code. Output a short markdown report.",
|
|
156
|
+
"receive_review": "You are running the cp MANUAL receive-review fallback. For each review finding, decide: fix now, defer (add to todos/), or reject (with rationale). Apply fixes as small atomic commits. Re-run the relevant <verify> commands after each fix.",
|
|
157
|
+
"finish": "You are running the cp MANUAL finish fallback. Stage the integration of the work just completed. Steps: (1) confirm all PLAN.md <verify> commands still pass; (2) confirm SUMMARY.md is written and ROADMAP.md tick is recorded by cp; (3) print the commit range and a short \"what shipped\" digest; (4) suggest a PR title and body if the project uses PRs; (5) STOP — do not open the PR or push branches without explicit user confirmation.",
|
|
158
|
+
"worktree": "You are running the cp MANUAL worktree fallback. If git is initialised, propose `git worktree add ../<repo>-<phase-slug> <branch>` to isolate this phase's work. Print the exact command. Do not execute it without user confirmation.",
|
|
159
|
+
"tdd": "You are running the cp MANUAL TDD fallback. For each behaviour you're about to implement: (1) write the test first and run it (it must FAIL — confirm the failure mode is the one you expected); (2) write the smallest code that makes it pass; (3) run the full local test suite to confirm no regressions; (4) commit (test + impl together is fine). Never skip step 1.",
|
|
160
|
+
"debug": "You are running the cp MANUAL debug fallback. Use the scientific method: (1) state the observed symptom precisely; (2) state your current hypothesis; (3) design a single experiment that would discriminate the hypothesis from one alternative; (4) run it and report the result; (5) update the hypothesis and repeat. Do not propose a fix until at least one experiment has narrowed the cause.",
|
|
161
|
+
"verify": "You are running the cp MANUAL verify fallback. For the claim 'X is done', enumerate every <verify> command in the relevant PLAN.md and run each. Report PASS/FAIL with the actual output (not just exit code). If anything is FAIL, do not declare the work complete."
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"behavior": {
|
|
166
|
+
"atomic_commits": true,
|
|
167
|
+
"fall_back_to_manual_if_provider_missing": true,
|
|
168
|
+
"auto_update_state_after_phase": true,
|
|
169
|
+
"auto_tick_roadmap_after_phase": true,
|
|
170
|
+
"gsd_compat_mode": true
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: "{{PHASE_NUM}}"
|
|
3
|
+
name: {{PHASE_NAME}}
|
|
4
|
+
milestone: {{MILESTONE_NAME}}
|
|
5
|
+
status: in-progress
|
|
6
|
+
created: {{DATE}}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Phase {{PHASE_NUM}}: {{PHASE_NAME}}
|
|
10
|
+
|
|
11
|
+
**Milestone**: {{MILESTONE_NAME}}
|
|
12
|
+
**Created**: {{DATE}}
|
|
13
|
+
|
|
14
|
+
## Goal
|
|
15
|
+
|
|
16
|
+
{Describe what this phase delivers in 1-2 sentences.}
|
|
17
|
+
|
|
18
|
+
## Success Criteria
|
|
19
|
+
|
|
20
|
+
<!-- Observable from the user's perspective. -->
|
|
21
|
+
1. {behavior 1}
|
|
22
|
+
2. {behavior 2}
|
|
23
|
+
|
|
24
|
+
## Plans
|
|
25
|
+
|
|
26
|
+
<!-- Each plan is a 1-3 hour atomic unit. Toggle with `cp tick {NN-MM}`. -->
|
|
27
|
+
|
|
28
|
+
{{PLANS_LIST}}
|
|
29
|
+
|
|
30
|
+
## Notes
|
|
31
|
+
|
|
32
|
+
<!-- Free-form during phase execution. -->
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: {{SLUG}}
|
|
3
|
+
type: quick
|
|
4
|
+
status: in-progress
|
|
5
|
+
created: {{DATE}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Quick Task: {{TITLE}}
|
|
9
|
+
|
|
10
|
+
## Description
|
|
11
|
+
|
|
12
|
+
{{DESCRIPTION}}
|
|
13
|
+
|
|
14
|
+
## Approach
|
|
15
|
+
|
|
16
|
+
<!-- Filled in by provider's plan skill (or inlined manually). -->
|
|
17
|
+
|
|
18
|
+
## Tasks
|
|
19
|
+
|
|
20
|
+
- [ ] {short, file-scoped task with verification}
|
|
21
|
+
|
|
22
|
+
## Done When
|
|
23
|
+
|
|
24
|
+
<!-- Clear, observable success condition. -->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: {{SLUG}}
|
|
3
|
+
type: quick
|
|
4
|
+
status: complete
|
|
5
|
+
created: {{CREATED}}
|
|
6
|
+
completed: {{COMPLETED}}
|
|
7
|
+
duration_minutes: {{DURATION_MIN}}
|
|
8
|
+
provider: {{PROVIDER}}
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Quick Task: {{TITLE}}
|
|
12
|
+
|
|
13
|
+
**{{ONE_LINER}}**
|
|
14
|
+
|
|
15
|
+
## What Changed
|
|
16
|
+
|
|
17
|
+
- `{path}` — {what}
|
|
18
|
+
|
|
19
|
+
## Commits
|
|
20
|
+
|
|
21
|
+
- `{hash}` — {message}
|
|
22
|
+
|
|
23
|
+
## Notes
|
|
24
|
+
|
|
25
|
+
<!-- Anything worth remembering for future sessions. -->
|