planr 1.7.0 → 1.7.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.
Files changed (62) hide show
  1. package/README.md +46 -22
  2. package/docs/ARCHITECTURE.md +3 -2
  3. package/docs/RELEASE.md +37 -7
  4. package/docs/SWITCHLOOM_COMPATIBILITY.md +46 -0
  5. package/docs/documentation/CONTRACT.md +7 -7
  6. package/docs/documentation/COVERAGE.md +5 -3
  7. package/docs/documentation/INFORMATION_ARCHITECTURE.md +5 -2
  8. package/npm/native/darwin-arm64/planr +0 -0
  9. package/npm/native/darwin-x86_64/planr +0 -0
  10. package/npm/native/linux-arm64/planr +0 -0
  11. package/npm/native/linux-x86_64/planr +0 -0
  12. package/package.json +2 -1
  13. package/plugins/planr/.claude-plugin/plugin.json +1 -1
  14. package/plugins/planr/.codex-plugin/plugin.json +1 -1
  15. package/plugins/planr/agents/planr-worker.md +1 -1
  16. package/plugins/planr/skills/planr-goal/SKILL.md +21 -49
  17. package/plugins/planr/skills/planr-loop/SKILL.md +28 -94
  18. package/plugins/planr/skills/planr-loop/agents/planr-worker.md +1 -1
  19. package/plugins/planr/skills/planr-loop/references/host-dispatch.md +10 -0
  20. package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +24 -0
  21. package/plugins/planr/skills/planr-task-graph/SKILL.md +21 -190
  22. package/docs/CI.md +0 -55
  23. package/docs/CLAUDE_CODE.md +0 -52
  24. package/docs/CLI_REFERENCE.md +0 -170
  25. package/docs/CODEX.md +0 -56
  26. package/docs/CURSOR.md +0 -114
  27. package/docs/EXAMPLE_WEBAPP.md +0 -103
  28. package/docs/GOALS.md +0 -175
  29. package/docs/HANDOFFS_AND_STORIES.md +0 -121
  30. package/docs/HOOKS.md +0 -34
  31. package/docs/IMPORT.md +0 -23
  32. package/docs/INSTALL.md +0 -115
  33. package/docs/MCP_CONTRACT.md +0 -78
  34. package/docs/MCP_GUIDE.md +0 -40
  35. package/docs/MODEL_ROUTING.md +0 -33
  36. package/docs/NPM.md +0 -40
  37. package/docs/OPERATING_MODEL.md +0 -250
  38. package/docs/ROUTING_BUNDLES.md +0 -15
  39. package/docs/SECURITY.md +0 -8
  40. package/docs/SKILLS.md +0 -261
  41. package/docs/TASK_GRAPH_MODEL.md +0 -272
  42. package/docs/TESTING.md +0 -87
  43. package/docs/TROUBLESHOOTING.md +0 -30
  44. package/docs/planr-spec/ADRS.md +0 -160
  45. package/docs/planr-spec/AI_SPEC.md +0 -138
  46. package/docs/planr-spec/ANALYTICS_OBSERVABILITY_SPEC.md +0 -124
  47. package/docs/planr-spec/API_AND_DATA_MODEL.md +0 -519
  48. package/docs/planr-spec/BACKEND_IMPLEMENTATION_SPEC.md +0 -178
  49. package/docs/planr-spec/CLIENT_IMPLEMENTATION_SPEC.md +0 -119
  50. package/docs/planr-spec/DESIGN_SYSTEM_SPEC.md +0 -102
  51. package/docs/planr-spec/PRODUCT_SPEC.md +0 -193
  52. package/docs/planr-spec/QA_ACCEPTANCE_TESTS.md +0 -146
  53. package/docs/planr-spec/README.md +0 -68
  54. package/docs/planr-spec/REFERENCES.md +0 -29
  55. package/docs/planr-spec/RELEASE_READINESS.md +0 -95
  56. package/docs/planr-spec/SAFETY_PRIVACY_SECURITY.md +0 -169
  57. package/docs/planr-spec/TASKS.md +0 -932
  58. package/docs/planr-spec/TECH_ARCHITECTURE.md +0 -145
  59. package/docs/planr-spec/UX_FLOWS.md +0 -235
  60. package/docs/release-candidates/planr-v1.5.2.md +0 -156
  61. /package/docs/{planr-spec → contracts}/EVAL_CONTRACT_V1.md +0 -0
  62. /package/docs/{planr-spec → contracts}/V1_1_DIFFERENTIATION_CONTRACT.md +0 -0
@@ -1,250 +0,0 @@
1
- # Planr Operating Model
2
-
3
- Planr coordinates coding-agent work through two durable surfaces:
4
-
5
- - the Markdown plan package for product, build, architecture, verification, and narrative context;
6
- - the SQLite map for item state, links, picks, reviews, logs, contexts, and closure.
7
-
8
- The map is the source of truth for live state. Markdown explains why the work exists and what good completion means.
9
-
10
- ## Operator Start
11
-
12
- Start every session by reading the current project and graph state:
13
-
14
- ```bash
15
- planr project show --json
16
- planr map show --json
17
- planr map lane --critical
18
- planr map pressure
19
- ```
20
-
21
- If the repository has no Planr project yet:
22
-
23
- ```bash
24
- planr project init "Project Name" --client all
25
- planr doctor --client all
26
- ```
27
-
28
- Use `--db <path>` for isolated runs and tests.
29
-
30
- ## Canonical Flow
31
-
32
- The default product flow is:
33
-
34
- ```text
35
- idea -> product plan -> build plan -> map -> pick -> log -> review/evidence -> recovery/package -> close
36
- ```
37
-
38
- Use product and build plans for broad scope:
39
-
40
- ```bash
41
- planr plan new "App idea" --platform web --ai --backend
42
- planr plan refine <plan-id> --note "decision or assumption"
43
- planr plan split <plan-id> --slice "MVP implementation"
44
- planr plan check <build-plan-id>
45
- planr map build --from <build-plan-id>
46
- ```
47
-
48
- Product-plan task lists are candidates. Work becomes a live commitment only after it is in the map.
49
-
50
- ## Daily Agent Loop
51
-
52
- Agents should work one map item at a time. The short path is:
53
-
54
- ```bash
55
- planr pick --json
56
- planr done <item-id> --summary "what changed" --files a --files b --cmd "exact verification command" --review [--next]
57
- ```
58
-
59
- `pick --json` returns one flat work packet (item, links, logs, runtime, recovery, conditions, recall context, `remaining` progress), so no separate `trace item` call is needed. `pick --work-type review` (or `code`) keeps checker and maker leases separate, and a null pick always carries a `reason` plus the `remaining` snapshot. `done` writes the completion log, then requests review (`--review`) or closes directly, and `--next` picks the following item. Evidence logging refreshes the heartbeat, so explicit `pick heartbeat` calls are only needed during long silent stretches.
60
-
61
- For longer work, update runtime state instead of relying on chat history:
62
-
63
- ```bash
64
- planr pick progress <item-id> --percent 50 --note "implementation done, tests running"
65
- planr pick pause <item-id> --note "waiting for human decision"
66
- planr pick resume <item-id>
67
- ```
68
-
69
- If a previous worker disappears, inspect stale picks before taking over:
70
-
71
- ```bash
72
- planr pick stale --older-than-seconds 900
73
- planr pick stale --older-than-seconds 900 --release
74
- planr recover sweep --older-than-seconds 900
75
- planr recover sweep --older-than-seconds 900 --apply
76
- ```
77
-
78
- Use `pick stale --release` for a targeted stale-claim reset. Use `recover sweep --apply` when you also want timed-out work and retryable failed work handled in the same explicit recovery pass.
79
-
80
- Record discoveries that future work needs:
81
-
82
- ```bash
83
- planr context add "decision or discovery" --item <item-id> --tag discovery
84
- ```
85
-
86
- Record completion evidence before asking for review:
87
-
88
- ```bash
89
- planr log add --item <item-id> \
90
- --summary "what changed" \
91
- --files path-a,path-b \
92
- --cmd "exact verification command"
93
- ```
94
-
95
- Request and close review:
96
-
97
- ```bash
98
- planr review request <item-id>
99
- planr review annotate <item-id> --message "review note" --severity warning
100
- planr review evidence <item-id> --pr-url https://example.invalid/pr/123
101
- planr review ingest <item-id> --from .planr/tmp/review-feedback.json
102
- planr review close <review-id> --verdict complete --close-target
103
- ```
104
-
105
- With `--close-target` a complete verdict also closes the reviewed item (it must already carry a completion log); otherwise finish with `planr close <item-id> --summary "Verified with evidence"`.
106
-
107
- `review evidence` records Git branch, commit, dirty state, item-scoped changed-file provenance, and optional PR URL context without treating unrelated dirty files as proof. Review ingestion records hook-compatible JSON feedback as contexts and logs only. It does not close the review, approve the item, or unblock downstream work.
108
-
109
- For a browser-based local review pass:
110
-
111
- ```bash
112
- planr serve --port 7526
113
- open http://127.0.0.1:7526/review
114
- ```
115
-
116
- The review workspace shows review queues, linked plans, item evidence, diff-safe Git evidence, annotations, and approve/request-changes actions over the same local HTTP API.
117
-
118
- Use approvals when a human decision must block closure:
119
-
120
- ```bash
121
- planr approval request <item-id> --reason "release approval"
122
- planr approval approve <item-id> --by "human reviewer"
123
- ```
124
-
125
- Pending or denied approval blocks `planr close`; use `planr map preview --close <item-id>` to inspect the gate before mutating state.
126
-
127
- If review finds issues:
128
-
129
- ```bash
130
- planr review close <review-id> \
131
- --verdict not-complete \
132
- --findings "specific actionable finding"
133
- planr review artifact <review-id>
134
- planr map show --json
135
- planr pick --json
136
- ```
137
-
138
- Review findings create follow-up work and write a `.planr/reviews/*.review.md` artifact. Do not mark the original item complete by summarizing the finding away.
139
-
140
- ## Parent Gate Pattern
141
-
142
- Model material changes as parent gates. The parent is not the work package; its linked children are.
143
-
144
- ```text
145
- parent gate
146
- `- implementation or test child
147
- `- review item linked to that child
148
- |- pass -> child can close -> parent gate auto-closes
149
- `- findings -> fix item -> follow-up review -> ...
150
- ```
151
-
152
- Rules:
153
-
154
- - create one parent item for the change;
155
- - use `planr item breakdown <parent-id> --into "Implement, Verify"` to create child work under the parent;
156
- - request review on the implementation or test child after evidence exists;
157
- - if review finds issues, let Planr create fix and follow-up review work from the review verdict;
158
- - downstream top-level work should depend on the parent gate, not on the first implementation child.
159
-
160
- This keeps later work blocked until review is actually clean.
161
-
162
- Parent gates roll up automatically: once every child is closed or cancelled, the gate becomes ready and auto-closes when no review or approval on the gate itself is open (a cancelled or partially closed child rolls up as `closed_partial`). Parent gates are never returned by `planr pick`; the children are the work.
163
-
164
- ## Notes, Contexts, Logs, And Stories
165
-
166
- Use the smallest durable surface that fits the information:
167
-
168
- - `planr log add`: proof that work happened, including files, commands, tests, review results, and handoff facts.
169
- - `planr context add`: a project or item discovery that another future item may need.
170
- - `planr note add`: a short task-local note when a human or agent needs nearby context.
171
- - Story logs: longer narrative history when graph state and short contexts are too thin.
172
-
173
- Story logs are narrative memory, not status authority. The map remains authoritative for state.
174
-
175
- See [HANDOFFS_AND_STORIES.md](HANDOFFS_AND_STORIES.md) for file placement and contents.
176
-
177
- ## Recovery
178
-
179
- After interruption, compaction, or agent handoff:
180
-
181
- ```bash
182
- git status --short
183
- planr project show --json
184
- planr map show --json
185
- planr map lane --critical
186
- planr map pressure
187
- ```
188
-
189
- Then inspect the current item:
190
-
191
- ```bash
192
- planr trace item <item-id>
193
- planr log list --item <item-id>
194
- planr context list --item <item-id>
195
- ```
196
-
197
- If ownership must be reset:
198
-
199
- ```bash
200
- planr pick stale --older-than-seconds 900
201
- planr pick release <item-id> --force
202
- ```
203
-
204
- Use force only when the prior owner is gone or the operator intentionally resets the claim.
205
-
206
- For broad interruption recovery, prefer the explicit sweeper:
207
-
208
- ```bash
209
- planr recover sweep --older-than-seconds 900
210
- planr recover sweep --older-than-seconds 900 --apply
211
- ```
212
-
213
- The preview reports stale picks, timed-out work, retryable failures, retry delays, and manual pre/post conditions. The apply mode mutates only the listed recoverable work and records recovery events.
214
-
215
- ## Packages And Sharing
216
-
217
- Use packages for local backups and reusable templates:
218
-
219
- ```bash
220
- planr export --include-plans --include-logs --template-name "Backend slice" --tag api --out planr-package.json
221
- planr import planr-package.json --preview
222
- planr import planr-package.json --confirm
223
- ```
224
-
225
- Import is preview-first. Confirmed import restores graph items, links, contexts, logs, plan file snapshots, and review artifacts into the current project. Encrypted sharing can wrap the JSON package with a local tool such as `age` or `gpg`; Planr does not require a hosted share service.
226
-
227
- ## Agent Prompts
228
-
229
- Use prompt output when configuring agents without editing global config:
230
-
231
- ```bash
232
- planr prompt cli --client codex
233
- planr prompt mcp --client all
234
- planr prompt http
235
- ```
236
-
237
- Prompt commands print ready-to-use setup and operating instructions and report that global config was not edited.
238
-
239
- ## Completion Rule
240
-
241
- Do not call a scope complete until all of these are true:
242
-
243
- - required child and review items are closed;
244
- - log evidence records exact files and commands;
245
- - verification commands were actually run;
246
- - review findings are closed or converted into follow-up work;
247
- - `planr map show --json` has no in-scope blocker;
248
- - the summary matches the map, logs, and review state.
249
-
250
- For release-grade scopes, rerun the full verification ladder in [TESTING.md](TESTING.md).
@@ -1,15 +0,0 @@
1
- # External routing declarations
2
-
3
- Planr Core is provider-neutral. It parses `.planr/agents.toml`, resolves routes into pick packets, records declared-versus-observed evidence, and checks `.planr/policy.toml`. It does not own a bundle format, catalog, compiler, signer, installer, or uninstaller.
4
-
5
- The current boundary is repository-local declaration plus evidence:
6
-
7
- ```bash
8
- planr agents init
9
- planr agents check
10
- planr agents list --json
11
- ```
12
-
13
- External tools, including Switchloom v0.2.1, may create, update, apply, or uninstall repository-local routing artifacts. Those lifecycle operations happen outside Planr. Planr only consumes the resulting provider-neutral declarations and the route observations workers attach to logs.
14
-
15
- Because declarations are advisory, requested model values never become proof by themselves. Strong evidence keeps requested, host-resolved, and effective execution separate in route observations, with `unavailable` used when the host cannot prove what ran.
package/docs/SECURITY.md DELETED
@@ -1,8 +0,0 @@
1
- # Security And Privacy
2
-
3
- - Planr is local-first and stores V1 data in the configured SQLite database and `.planr` files.
4
- - No content telemetry is emitted by default.
5
- - Shell commands are not run by Planr unless the user explicitly runs them outside Planr or records them as evidence.
6
- - HTTP binds to `127.0.0.1`.
7
- - Destructive operations require confirmation or preview flags.
8
- - Logs, contexts, and inline artifact content are checked by `planr scrub` for common secret-looking patterns. `planr scrub --confirm` rewrites flagged values in place with `[REDACTED]` markers, updates the search index, and records a `secret_scrubbed` event per rewritten row.
package/docs/SKILLS.md DELETED
@@ -1,261 +0,0 @@
1
- # Planr Skills
2
-
3
- Planr ships agent-facing skill templates under `plugins/planr/skills/`.
4
-
5
- The repository ships an installable plugin under `plugins/planr` for Codex and Claude Code, while Cursor receives the same skills through `planr install cursor`. Marketplace manifests at the repo root (`.agents/plugins/marketplace.json`, `.claude-plugin/marketplace.json`) point at that subdirectory — Codex silently ignores marketplaces whose plugin source is the repo root itself. The shared package carries skills and Claude's independent workflow roles; optional model-specific host roles come from repository-local routing declarations managed outside Planr, never from Planr Core or static fallbacks. The `planr` CLI must be installed separately (`brew install instructa/tap/planr`).
6
-
7
- ## Install As Plugin (preferred)
8
-
9
- Codex:
10
-
11
- ```bash
12
- codex plugin marketplace add instructa/planr
13
- # then install "planr" from the plugin directory picker, or:
14
- codex plugin add planr@planr
15
- ```
16
-
17
- Claude Code:
18
-
19
- ```text
20
- /plugin marketplace add instructa/planr
21
- /plugin install planr@planr
22
- ```
23
-
24
- Skills are namespaced in Claude Code: `/planr:planr`, `/planr:planr-loop`. The plugin also registers the `planr-worker` and `planr-reviewer` subagents from the plugin's `agents/` directory.
25
-
26
- Cursor: pending marketplace review; `planr install cursor` provides the identical component set today — it writes the skills to `.cursor/skills/`, the subagents to `.cursor/agents/`, and the MCP config in one command (see below and [Cursor](CURSOR.md)).
27
-
28
- opencode: no plugin yet; use `planr mcp` as an MCP server (below). A JS plugin wrapping the CLI as custom tools is a possible follow-up.
29
-
30
- ## Included Skills
31
-
32
- Entry points (what users invoke):
33
-
34
- - `planr`: master router. One entry point for any request; reads live map state and dispatches to the right skill. Users do not need to remember skill names.
35
- - `planr-goal`: goal prep compiler for long-running runs. Turns a broad goal into a checked plan, a linked map, and a durable goal contract (`planr context --tag goal-contract`), then prints the starter command for the host's loop driver (Codex/Claude Code `/goal`, or manual re-dispatch). Prep only — see [Long-Running Goals](GOALS.md).
36
- - `planr-loop`: autonomous closing loop. Drives one feature to verified completion — work, live verification, independent review, fix items — until the map is clean or the iteration budget runs out. Ships subagent templates under `plugins/planr/skills/planr-loop/agents/`.
37
-
38
- Capability skills (dispatched by the loop's live-verification step):
39
-
40
- - `planr-verify-web`: proves a web feature runs in a browser. Discovers the host's existing browser capability (browser skill, browser MCP, `npx playwright`, HTTP checks as last resort), records the choice as a `capability` context, and logs replayable evidence. Ships no browser tooling itself.
41
-
42
- Stage skills (what the router and loop dispatch to; also directly invocable):
43
-
44
- - `planr-task-graph`: active task graph coordination with plans, parent gates, map items, picks, runtime state, approvals, logs, reviews, handoffs, stories, and recovery.
45
- - `planr-plan`: product and build planning.
46
- - `planr-work`: one picked item to evidence-backed completion.
47
- - `planr-review`: findings-first review gates.
48
- - `planr-status`: honest read-only status.
49
- - `planr-summary`: evidence-backed summaries.
50
-
51
- ## Cheat Sheet
52
-
53
- Default usage needs one public entry point:
54
-
55
- ```text
56
- $planr any request -> routed to the right stage skill from live map state
57
- ```
58
-
59
- `$planr-goal` and `$planr-loop` are advanced stage surfaces selected by the router. A long-running goal is always prepared first; only the resulting real plan id is passed to the loop driver.
60
-
61
- The stage order the router follows for a new app:
62
-
63
- ```text
64
- $planr-plan idea -> product plan -> build plan
65
- $planr-task-graph build plan -> map -> dependencies -> critical lane
66
- $planr-work pick one ready item -> implement -> log evidence -> request review
67
- $planr-review audit evidence -> complete or create fix work
68
- $planr-work pick generated fix work when review finds issues
69
- $planr-status report honest state, blockers, and next ready work
70
- $planr-summary summarize completed scope with evidence
71
- ```
72
-
73
- Example first prompt for a Habit Tracker:
74
-
75
- ```text
76
- Use $planr.
77
-
78
- Create a production-ready Habit Tracker web app plan. Include habits, daily check-ins,
79
- streaks, weekly overview, local-first persistence, tests, privacy, and release readiness.
80
- Create the product plan, split an MVP build plan, check it, then build the Planr map.
81
- Do not implement yet. End with the build plan id, critical lane, and first ready items.
82
- ```
83
-
84
- Example autonomous feature loop (two separate prompts):
85
-
86
- ```text
87
- Use $planr-goal to prepare an autonomous goal for the weekly overview feature.
88
-
89
- /goal Use $planr-loop on plan <plan-id>. The loop contract is stored in planr
90
- context (tag: goal-contract).
91
-
92
- Goal: ship the weekly overview feature. DONE when every in-scope map item is closed with
93
- log evidence, all reviews are closed complete, and a live verification log shows the
94
- overview rendering real check-in data in the browser. Iteration budget: 10.
95
- ```
96
-
97
- Example single implementation step (human-in-the-loop):
98
-
99
- ```text
100
- Use $planr-work.
101
-
102
- Pick exactly one ready Habit Tracker item. Implement only that item, keep Planr runtime
103
- state current, log changed files and real verification commands, then request review.
104
- Do not close the item until review is complete.
105
- ```
106
-
107
- ## Two Journeys: New Project vs. Existing Project
108
-
109
- Both journeys use the same public entry point (`$planr`). What differs is the state the router finds, and what kind of plan the work gets.
110
-
111
- ### Journey 1 — start a project from an idea
112
-
113
- Initialize once per repository, then hand the idea to the router:
114
-
115
- ```bash
116
- planr project init "Habit Tracker" --client all
117
- ```
118
-
119
- ```text
120
- Use $planr.
121
-
122
- Create a production-ready Habit Tracker web app plan. Create the product plan,
123
- split an MVP build plan, check it, then build the Planr map. Do not implement yet.
124
- ```
125
-
126
- The router runs the full stage order: product plan -> build plan -> map. From there it can select `$planr-work`, or prepare a plan-bound `$planr-loop` run.
127
-
128
- ### Journey 2 — mid-project: add a feature, refactor, or fix
129
-
130
- Never re-run `project init`; the project and map already exist. Every new scope — a feature like an auth system, a refactor, a non-trivial fix — gets its own feature-scoped plan on the same map:
131
-
132
- ```text
133
- Use $planr.
134
-
135
- Add an auth system (email+password, sessions, protected routes) to this app.
136
- Create a feature plan for it, record what existing code it builds on, split a
137
- narrow build slice, check it, and extend the map with linked items. Do not implement yet.
138
- ```
139
-
140
- What the router does with that, and why:
141
-
142
- 1. `$planr-plan` creates a new plan scoped to the feature (`planr plan new "Auth system" ...`), not a new project. Refine notes capture constraints from the existing codebase; the build plan's "existing leverage" field records what is reused instead of rebuilt.
143
- 2. `$planr-task-graph` extends the existing map: new items, plus `blocks` links to anything already on the map that must land first.
144
- 3. Execution is identical to journey 1: a plan-bound `$planr-loop` for autonomous work, or `$planr-work` / `$planr-review` for human-in-the-loop.
145
-
146
- Or autonomous in two prompts:
147
-
148
- ```text
149
- Use $planr-goal to prepare an autonomous goal for the auth system.
150
-
151
- /goal Use $planr-loop on plan <plan-id>. The loop contract is stored in planr
152
- context (tag: goal-contract).
153
-
154
- Goal: ship an auth system (email+password, sessions, protected routes).
155
- DONE when every auth map item is closed with log evidence, all reviews are closed
156
- complete, and a live verification log shows login and a protected route working
157
- in the browser. Iteration budget: 10.
158
- ```
159
-
160
- Rules that hold in both journeys:
161
-
162
- - No map items without a checked build plan — even a small fix gets a minimal slice (`plan new` -> `plan split` with a tiny scope). This keeps closure evidence and reviews attached to a contract.
163
- - Plans accumulate: `planr plan list` shows the project's history of scopes; the map stays the single live source of item status.
164
- - Status, review, and summary requests (`$planr-status`, `$planr-review`, `$planr-summary`) work the same at any point in either journey.
165
-
166
- ## Loop Roles
167
-
168
- `planr-loop` keeps maker and checker separate. Hosts with subagents get dedicated roles that are prompted with skills, not hand-written prompts.
169
-
170
- The CLI provisions the role files automatically — no manual copying:
171
-
172
- ```bash
173
- planr project init "My Product" --client all # writes standalone Claude and Cursor roles; Codex has no project roles
174
- planr agents init # writes the provider-neutral .planr/agents.toml registry; it does not generate Codex roles
175
- planr install claude # provisions Claude's independent roles
176
- planr install cursor # provisions Cursor's independent roles and skills
177
- ```
178
-
179
- Optional project-scoped model-routing files are repository-local declarations. They may be edited directly or managed by an external tool such as [Switchloom v0.2.1](https://github.com/instructa/switchloom/releases/tag/v0.2.1); Core workflow skills remain host-neutral, and Planr does not install, invoke, apply, or uninstall external routing artifacts.
180
-
181
- Dispatches stay one line: `Use $planr-work on item <id>` and `Use $planr-review on item <id>`. The map and logs are the loop memory, so any iteration can resume from zero context.
182
-
183
- ## Install For Codex
184
-
185
- Install the Codex plugin for all ten workflow skills, then initialize and install the project integration:
186
-
187
- ```bash
188
- codex plugin marketplace add instructa/planr
189
- codex plugin add planr@planr
190
- planr project init "Example Product" --client codex
191
- planr install codex
192
- planr doctor --client codex
193
- ```
194
-
195
- The CLI writes the project MCP snippet and hooks. It does not copy project skills or agents; those skills are plugin-owned, and Codex has no Planr project-agent contract. `--no-mcp` leaves hooks only, while `--no-mcp --no-hooks` writes neither integration artifact.
196
-
197
- ## Install For Claude Code
198
-
199
- Install the Claude Code plugin for all ten workflow skills and its plugin worker/reviewer agents, then install the project integration:
200
-
201
- ```text
202
- /plugin marketplace add instructa/planr
203
- /plugin install planr@planr
204
- ```
205
-
206
- ```bash
207
- planr project init "Example Product" --client claude
208
- planr install claude
209
- planr doctor --client claude
210
- ```
211
-
212
- The CLI writes project-scoped `.mcp.json`, standalone project worker/reviewer roles, and hooks. It does not copy project skills. `--no-mcp` retains the standalone roles and hooks; add `--no-hooks` to omit hooks.
213
-
214
- ## Install For Cursor
215
-
216
- One command wires everything — MCP, the skills, and the subagent roles:
217
-
218
- ```bash
219
- planr project init "Example Product" --client cursor
220
- planr install cursor
221
- ```
222
-
223
- `planr install cursor` writes `.cursor/mcp.json`, copies the ten skills to `.cursor/skills/`, provisions `.cursor/agents/planr-worker.md` and `planr-reviewer.md`, reconciles hooks, and prints a one-click deeplink for user-level MCP install. `planr install cursor --no-mcp` retains the agents, skills, and hooks while omitting MCP; add `--no-hooks` to omit hooks. Invoke the public router with `/planr` in Agent chat, and dispatch subagents with `/planr-worker` and `/planr-reviewer`. Use `planr serve --port 7526` and `planr prompt http --client cursor` if a Cursor workflow should inspect the local HTTP/review workspace. Subagent multitasking and worktree guidance: [Cursor](CURSOR.md).
224
-
225
- ## MCP-Only Clients
226
-
227
- Any MCP-capable coding agent can run:
228
-
229
- ```bash
230
- planr mcp
231
- ```
232
-
233
- Use these commands for setup text without editing global config:
234
-
235
- ```bash
236
- planr prompt mcp --client all
237
- planr prompt cli --client all
238
- planr prompt http --client all
239
- ```
240
-
241
- ## What The Skills Do
242
-
243
- The skills are client-neutral and use only Planr-owned commands:
244
-
245
- ```bash
246
- planr project show --json
247
- planr plan new "App idea"
248
- planr map build --from <plan-id>
249
- planr pick --json
250
- planr done <item-id> --summary "..." --files a --files b --cmd "..." --review --next
251
- planr review close <review-id> --verdict complete --close-target
252
- planr approval list --open
253
- ```
254
-
255
- The granular commands (`log add`, `review request`, `close`, `pick heartbeat`) remain available; `done` chains them with identical evidence.
256
-
257
- See also:
258
-
259
- - [Operating Model](OPERATING_MODEL.md)
260
- - [Task Graph Model](TASK_GRAPH_MODEL.md)
261
- - [Handoffs And Stories](HANDOFFS_AND_STORIES.md)