planr 1.10.0-alpha.9 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +11 -0
- package/CHANGELOG.md +15 -0
- package/README.md +30 -244
- package/docs/board.md +44 -0
- package/docs/cli.md +100 -0
- package/docs/concepts.md +133 -0
- package/docs/contract.md +150 -0
- package/docs/plugins/bb.md +49 -0
- package/docs/plugins/claude-code.md +84 -0
- package/docs/plugins/codex.md +77 -0
- package/docs/quickstart.md +307 -0
- package/docs/setup.md +103 -0
- package/package.json +21 -68
- package/plugin.json +12 -0
- package/skills/planr/SKILL.md +64 -0
- package/skills/planr/assets/board/fonts/LICENSE-mona-sans.txt +93 -0
- package/skills/planr/assets/board/fonts/LICENSE-monaspace.txt +93 -0
- package/skills/planr/assets/board/fonts/MonaSans-Variable.woff2 +0 -0
- package/skills/planr/assets/board/fonts/MonaspaceNeon-400.woff2 +0 -0
- package/skills/planr/assets/board/fonts/MonaspaceNeon-500.woff2 +0 -0
- package/skills/planr/assets/board/fonts/MonaspaceNeon-600.woff2 +0 -0
- package/skills/planr/assets/board/template.html +788 -0
- package/skills/planr/assets/templates/goal.md +13 -0
- package/skills/planr/assets/templates/hook.sh +4 -0
- package/skills/planr/assets/templates/in-repo.config.json +6 -0
- package/skills/planr/assets/templates/planr.config.json +6 -0
- package/skills/planr/assets/templates/tasks-README.md +14 -0
- package/skills/planr/references/format.md +88 -0
- package/skills/planr/references/work-a-goal.md +62 -0
- package/skills/planr/scripts/lib/board.mjs +39 -0
- package/skills/planr/scripts/lib/graph.mjs +345 -0
- package/skills/planr/scripts/lib/runs.mjs +127 -0
- package/skills/planr/scripts/lib/version.mjs +11 -0
- package/skills/planr/scripts/planr.mjs +386 -0
- package/docs/ARCHITECTURE.md +0 -136
- package/docs/RELEASE.md +0 -275
- package/docs/SWITCHLOOM_COMPATIBILITY.md +0 -14
- package/docs/contracts/BROWSER_HARNESS_ADAPTER_V1.md +0 -75
- package/docs/contracts/EVAL_CONTRACT_V1.md +0 -2072
- package/docs/contracts/EVIDENCE_ADAPTER_PROTOCOL_V1.md +0 -98
- package/docs/contracts/EVIDENCE_CONTRACT_V1.md +0 -382
- package/docs/contracts/GROK_INTEGRATION_V1.md +0 -139
- package/docs/contracts/LINUX_RELEASE_PORTABILITY.json +0 -9
- package/docs/contracts/PI_INTEGRATION_V1.md +0 -164
- package/docs/contracts/V1_1_DIFFERENTIATION_CONTRACT.md +0 -177
- package/docs/contracts/fixtures/evidence/v1/examples/coverage-verdict.json +0 -66
- package/docs/contracts/fixtures/evidence/v1/examples/evidence-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/examples/evidence-policy.json +0 -108
- package/docs/contracts/fixtures/evidence/v1/examples/evidence-receipt.json +0 -93
- package/docs/contracts/fixtures/evidence/v1/examples/evidence-waiver.json +0 -31
- package/docs/contracts/fixtures/evidence/v1/examples/proof-obligation.json +0 -55
- package/docs/contracts/fixtures/evidence/v1/examples/proof-preset.json +0 -19
- package/docs/contracts/fixtures/evidence/v1/examples/untrusted-evidence-proposal.json +0 -20
- package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-instance.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-manifest.json +0 -52
- package/docs/contracts/fixtures/evidence/v1/negative/aborted-zero-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/adapter-registration-missing-execution-contract.json +0 -88
- package/docs/contracts/fixtures/evidence/v1/negative/available-empty-probe-capability.json +0 -27
- package/docs/contracts/fixtures/evidence/v1/negative/blocked-coverage-with-stale-reason.json +0 -27
- package/docs/contracts/fixtures/evidence/v1/negative/empty-trust-bindings-receipt.json +0 -72
- package/docs/contracts/fixtures/evidence/v1/negative/failed-zero-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/forged-trusted-receipt.json +0 -35
- package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-clean-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-coverage-with-blocked-reason.json +0 -27
- package/docs/contracts/fixtures/evidence/v1/negative/minimal-policy-missing-owned-inputs.json +0 -5
- package/docs/contracts/fixtures/evidence/v1/negative/mismatched-probe-execution-id-capability.json +0 -42
- package/docs/contracts/fixtures/evidence/v1/negative/passed-empty-attempt.json +0 -22
- package/docs/contracts/fixtures/evidence/v1/negative/policy-default-preset-unregistered.json +0 -102
- package/docs/contracts/fixtures/evidence/v1/negative/policy-weakening-without-waiver.json +0 -102
- package/docs/contracts/fixtures/evidence/v1/negative/process-probe-missing-output-limits.json +0 -49
- package/docs/contracts/fixtures/evidence/v1/negative/satisfied-empty-coverage-verdict.json +0 -14
- package/docs/contracts/fixtures/evidence/v1/negative/skipped-zero-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/stale-coverage-with-inconclusive-reason.json +0 -27
- package/docs/contracts/fixtures/evidence/v1/negative/timed-out-zero-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/unavailable-zero-exit-attempt.json +0 -39
- package/docs/contracts/fixtures/evidence/v1/negative/unbound-waiver.json +0 -21
- package/docs/contracts/fixtures/evidence/v1/negative/unsatisfied-coverage-without-gap.json +0 -63
- package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-forbidden-gap-reason.json +0 -28
- package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-missing-waiver-id.json +0 -27
- package/docs/contracts/fixtures/evidence/v1/schemas/evidence-contract-v1.schema.json +0 -2685
- package/docs/contracts/schemas/com.planr.web.dom_state.v1.schema.json +0 -30
- package/docs/documentation/CONTRACT.md +0 -164
- package/docs/documentation/COVERAGE.md +0 -98
- package/docs/documentation/INFORMATION_ARCHITECTURE.md +0 -151
- package/docs/fixtures/mcp-contract.json +0 -153
- package/npm/bin/native-launcher.js +0 -67
- package/npm/bin/planr-browser-harness-adapter.js +0 -8
- package/npm/bin/planr.js +0 -8
- package/npm/native/darwin-arm64/planr +0 -0
- package/npm/native/darwin-arm64/planr-browser-harness-adapter +0 -0
- package/npm/native/darwin-arm64/planr-host-capability-validator +0 -0
- package/npm/native/darwin-x86_64/planr +0 -0
- package/npm/native/darwin-x86_64/planr-browser-harness-adapter +0 -0
- package/npm/native/darwin-x86_64/planr-host-capability-validator +0 -0
- package/npm/native/linux-arm64/planr +0 -0
- package/npm/native/linux-arm64/planr-browser-harness-adapter +0 -0
- package/npm/native/linux-arm64/planr-host-capability-validator +0 -0
- package/npm/native/linux-x86_64/planr +0 -0
- package/npm/native/linux-x86_64/planr-browser-harness-adapter +0 -0
- package/npm/native/linux-x86_64/planr-host-capability-validator +0 -0
- package/plugins/planr/.claude-plugin/plugin.json +0 -11
- package/plugins/planr/.codex-plugin/plugin.json +0 -25
- package/plugins/planr/agents/pi/planr-reviewer.md +0 -20
- package/plugins/planr/agents/pi/planr-worker.md +0 -35
- package/plugins/planr/agents/planr-reviewer.md +0 -21
- package/plugins/planr/agents/planr-worker.md +0 -40
- package/plugins/planr/skills/planr/SKILL.md +0 -60
- package/plugins/planr/skills/planr-goal/SKILL.md +0 -52
- package/plugins/planr/skills/planr-loop/SKILL.md +0 -126
- package/plugins/planr/skills/planr-loop/agents/planr-reviewer.md +0 -21
- package/plugins/planr/skills/planr-loop/agents/planr-worker.md +0 -36
- package/plugins/planr/skills/planr-loop/references/host-dispatch.md +0 -52
- package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +0 -26
- package/plugins/planr/skills/planr-plan/SKILL.md +0 -86
- package/plugins/planr/skills/planr-review/SKILL.md +0 -55
- package/plugins/planr/skills/planr-status/SKILL.md +0 -52
- package/plugins/planr/skills/planr-summary/SKILL.md +0 -30
- package/plugins/planr/skills/planr-task-graph/SKILL.md +0 -67
- package/plugins/planr/skills/planr-verify-web/SKILL.md +0 -62
- package/plugins/planr/skills/planr-work/SKILL.md +0 -93
- package/scripts/host-capability-experiment.mjs +0 -2481
- package/scripts/host-capability-runtime/v1/schemas/host-capability-expected-manifest.schema.json +0 -377
- package/scripts/host-capability-runtime/v1/schemas/host-capability-observed-raw.schema.json +0 -439
- package/scripts/host-capability-runtime/v1/schemas/host-capability-provenance.schema.json +0 -178
- package/scripts/planr-host-capability-validator +0 -57
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "planr",
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
|
+
"description": "Small planning layer for agent-built products: Markdown task graph, CLI, board.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "instructa"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://planr.so",
|
|
9
|
+
"repository": "https://github.com/instructa/planr",
|
|
10
|
+
"license": "MIT"
|
|
11
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
This file follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
4
|
+
Versions follow [Semantic Versioning](https://semver.org/).
|
|
5
|
+
|
|
6
|
+
## [2.0.0-beta.1] - 2026-10-05
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- Rebuilt planr around a Markdown task graph in a planning repository.
|
|
11
|
+
- Added a Node.js CLI with no runtime dependencies, an Agent Skill, a standalone board & a bb plugin.
|
|
12
|
+
- Added plugins for Claude Code & Codex through the planr marketplaces. Both contain only the skill.
|
|
13
|
+
- Approve & check by prompt or a person's standing delegation.
|
|
14
|
+
- Removed the stale marker from the engine and boards.
|
|
15
|
+
- planr 2.0 does not read 1.x data. Version 1.x remains installable as `planr@1`.
|
package/README.md
CHANGED
|
@@ -1,261 +1,47 @@
|
|
|
1
|
-
#
|
|
1
|
+
# planr
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A small planning layer for agent-built products, using Markdown files in Git.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
During the 2.0 beta, use `npm install -g planr@next` or `npx planr@next`; plain `planr` installs 1.x
|
|
6
|
+
until 2.0.0 ships.
|
|
7
|
+
Plugin installs get the beta through the pinned marketplaces.
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
When several coding agents work on one product, planr shows what is ready,
|
|
10
|
+
blocked, waiting on you & what changed. Tasks & their dependencies live in a
|
|
11
|
+
planning repository, usually separate from your code & often private.
|
|
12
|
+
No database, daemon or MCP server.
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
planr says what is next. Your project's orchestrator, such as
|
|
15
|
+
[split-orchestrator](https://github.com/regenrek/split-orchestrator), handles the build.
|
|
10
16
|
|
|
11
|
-
|
|
12
|
-
idea -> product plan -> build plan -> map -> pick -> log -> review/evidence -> close
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Why Planr
|
|
16
|
-
|
|
17
|
-

|
|
18
|
-
|
|
19
|
-
Flat todo lists break down the moment real work has structure. Planr models work as a dependency graph because that is what work actually is:
|
|
20
|
-
|
|
21
|
-
- **Readiness is computed, not guessed.** An item becomes `ready` only when its blockers are closed; `planr pick` returns work that is actually startable.
|
|
22
|
-
- **Parallel agents need atomic claims.** Picks are atomic claims enforced by the database — one item, one owner, no checklist races.
|
|
23
|
-
- **"Done" is gated, not asserted.** Closure requires log-backed evidence (files, commands, tests) and open reviews block their target.
|
|
24
|
-
- **State survives sessions.** Markdown plans hold scope and acceptance criteria; the SQLite graph holds live status across handoffs, restarts, and agent switches.
|
|
25
|
-
- **Failure is structured.** Stale picks, timeouts, and retries are detectable and recoverable (`planr recover sweep`).
|
|
26
|
-
|
|
27
|
-
Three layers make that work: **Plans** (reviewable Markdown packages), the **Map** (live dependency graph with picks, reviews, logs), and **Agent loops** (skills, CLI, and MCP workflows for every major coding agent). Full model: [Task Graph Model](https://planr.so/docs/concepts/graph-and-readiness) and [Operating Model](https://planr.so/docs/guides/daily-worker-loop).
|
|
28
|
-
|
|
29
|
-
## Install
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
brew install instructa/tap/planr
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Or via npm (ships platform-native binaries, no toolchain needed):
|
|
17
|
+
## Get started
|
|
36
18
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Or with the release installer:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
curl -fsSL https://raw.githubusercontent.com/instructa/planr/main/scripts/install.sh | sh
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
<!-- planr:linux-release-portability:start surface=README schema=1 -->
|
|
48
|
-
> **Linux release portability — corrected**
|
|
49
|
-
>
|
|
50
|
-
> Contract state: `status=corrected`; `affectedThrough=v1.7.2`; `correctedFrom=v1.7.3`.
|
|
51
|
-
> Published Linux release, installer, and npm binaries through v1.7.2 require GLIBC_2.39; macOS is unaffected.
|
|
52
|
-
> Starting with v1.7.3, current Linux release, installer, and npm artifacts are static-musl executables and do not require glibc.
|
|
53
|
-
> On an affected Linux release, build from source on the target distribution or upgrade to v1.7.3.
|
|
54
|
-
<!-- planr:linux-release-portability:end surface=README schema=1 -->
|
|
55
|
-
|
|
56
|
-
Then initialize a project. When selected, Claude Code and Cursor also receive standalone project worker/reviewer roles; Codex workflow skills come from its plugin. Grok Build and Pi are separate explicit opt-ins and are not included by `all`:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
planr project init "My Product" --client all
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Manual downloads, from-source builds, and client wiring details: [Install Guide](https://planr.so/docs/getting-started/installation).
|
|
63
|
-
|
|
64
|
-
To add Pi's native Agent Skills and optional pi-subagents roles to a trusted repository, select it explicitly:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
planr install pi --dry-run
|
|
68
|
-
planr install pi
|
|
69
|
-
planr project init "My Product" --client pi
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Planr writes repository-local `.pi/skills/` workflow assets and optional `.pi/agents/` roles only. It does not install Pi, pi-subagents, MCP config, hooks, global settings, provider credentials, or session state. Full setup and trust guidance: [Pi integration](https://planr.so/docs/integrations/pi).
|
|
73
|
-
|
|
74
|
-
## Install The Plugin (Skills)
|
|
75
|
-
|
|
76
|
-
The plugin under `plugins/planr` carries the ten Planr workflow skills. Optional model-routing declarations live in repository-local files such as `.planr/agents.toml` and `.planr/policy.toml`; external tools may manage those files, but Planr does not install or invoke a routing engine. The `planr` CLI (above) is required separately.
|
|
77
|
-
|
|
78
|
-
<a id="install-plugin-codex"></a>
|
|
79
|
-
<details>
|
|
80
|
-
<summary><strong>Codex</strong></summary>
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
codex plugin marketplace add instructa/planr
|
|
84
|
-
codex plugin add planr@planr
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
</details>
|
|
88
|
-
|
|
89
|
-
<a id="install-plugin-claude-code"></a>
|
|
90
|
-
<details>
|
|
91
|
-
<summary><strong>Claude Code</strong></summary>
|
|
92
|
-
|
|
93
|
-
Inside a Claude Code session:
|
|
19
|
+
Paste this prompt into your coding agent. It checks Node.js & Git, asks where to keep the plan
|
|
20
|
+
& sets up the planning files & plugin.
|
|
94
21
|
|
|
95
22
|
```text
|
|
96
|
-
|
|
97
|
-
/plugin install planr@planr
|
|
23
|
+
Set up planr for this project. Follow https://planr.so/docs/setup.md
|
|
98
24
|
```
|
|
99
25
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
</details>
|
|
103
|
-
|
|
104
|
-
<a id="install-plugin-cursor"></a>
|
|
105
|
-
<details>
|
|
106
|
-
<summary><strong>Cursor</strong></summary>
|
|
107
|
-
|
|
108
|
-
One command installs everything the plugin would carry:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
planr install cursor # writes .cursor/mcp.json, .cursor/agents/, and .cursor/skills/
|
|
112
|
-
planr install cursor --no-mcp # project skills, subagents, and hooks; no MCP config
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
The dry-run also prints a one-click `cursor://` deeplink for user-level MCP install. Marketplace listing is pending review. Multitasking with Cursor subagents: [Cursor guide](https://planr.so/docs/integrations/cursor).
|
|
116
|
-
|
|
117
|
-
</details>
|
|
118
|
-
|
|
119
|
-
<a id="install-grok-build"></a>
|
|
120
|
-
<details>
|
|
121
|
-
<summary><strong>Grok Build</strong></summary>
|
|
122
|
-
|
|
123
|
-
Preview, install, and inspect the repository-local integration:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
planr install grok --dry-run
|
|
127
|
-
planr install grok
|
|
128
|
-
planr doctor --client grok --json
|
|
129
|
-
grok inspect --json
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Planr writes portable `.grok/config.toml` MCP configuration plus native `.grok/agents/` and `.grok/skills/` assets. It writes no Grok plugin, hooks, xAI credentials, model setting, or provider runtime dependency. Live authenticated verification is maintainer-local only and never runs in CI. See the [Grok Build guide](https://planr.so/docs/integrations/grok-build).
|
|
133
|
-
|
|
134
|
-
</details>
|
|
135
|
-
|
|
136
|
-
<a id="install-pi"></a>
|
|
137
|
-
<details>
|
|
138
|
-
<summary><strong>Pi</strong></summary>
|
|
139
|
-
|
|
140
|
-
Preview or install the repository-local Pi integration:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
planr install pi --dry-run
|
|
144
|
-
planr install pi
|
|
145
|
-
planr doctor --client pi --json
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Planr writes native `.pi/skills/` workflow assets and optional `.pi/agents/` role files for `pi-subagents`. It writes no MCP configuration, hooks, extension package, global Pi settings, provider credentials, model pin, or session reference. Pi is intentionally explicit opt-in and is not part of `--client all`. See the [Pi integration guide](https://planr.so/docs/integrations/pi).
|
|
149
|
-
|
|
150
|
-
</details>
|
|
151
|
-
|
|
152
|
-
<a id="install-plugin-opencode"></a>
|
|
153
|
-
<details>
|
|
154
|
-
<summary><strong>opencode</strong></summary>
|
|
155
|
-
|
|
156
|
-
No plugin yet. Use Planr as an MCP server and paste the CLI prompt into your agent instructions:
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
planr mcp # stdio MCP server
|
|
160
|
-
planr prompt cli
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
</details>
|
|
164
|
-
|
|
165
|
-
## Plugins
|
|
166
|
-
|
|
167
|
-
Planr plugins extend coding-agent setup around the same local-first graph. They do not move ownership of Planr Core: maps, picks, logs, reviews, approvals, and closure evidence still live in Planr, while optional integrations own their own install, generated files, and uninstall lifecycle.
|
|
168
|
-
|
|
169
|
-
Switchloom is an optional external routing plugin for repository-local model-routing declarations. Use the corrected current quickstart command with the exact verified package version:
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
npx switchloom@0.3.2 compile balanced --host codex-openai --integration planr --output balanced-planr-codex.json
|
|
173
|
-
npx switchloom@0.3.2 apply balanced-planr-codex.json --repository .
|
|
174
|
-
planr agents check
|
|
175
|
-
planr agents list --json
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
Planr consumes the resulting `.planr/agents.toml`, `.planr/policy.toml`, and route evidence; Codex consumes generated native roles after the host reloads its repository config. Switchloom remains responsible for its external lifecycle, including uninstall:
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
npx switchloom@0.3.2 uninstall --repository .
|
|
182
|
-
planr agents check
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
References: [Plugins docs](https://planr.so/docs/plugins/switchloom), [Switchloom v0.3.2 release](https://github.com/instructa/switchloom/releases/tag/v0.3.2), [current corrected Switchloom quickstart](https://github.com/instructa/switchloom#setup-from-the-website), [v0.3.2 tagged quickstart](https://github.com/instructa/switchloom/blob/v0.3.2/README.md#setup-from-the-website), and [v0.3.2 lifecycle docs](https://github.com/instructa/switchloom/blob/v0.3.2/docs/preset-composition.md#repository-lifecycle-commands). The tagged v0.3.2 README quickstart preserves stale `0.3.1` command examples, so use the explicit `switchloom@0.3.2` commands above for the verified Planr contract.
|
|
186
|
-
|
|
187
|
-
## Tell Your Agent
|
|
188
|
-
|
|
189
|
-
Remember one public entry point: `$planr`. It routes ordinary planning and status work from live Planr state. For long autonomous runs, use the explicit two-step workflow: `$planr-goal` prepares durable state, then `$planr-loop` executes the resulting plan.
|
|
190
|
-
|
|
191
|
-
Start a new product from an idea:
|
|
192
|
-
|
|
193
|
-
```text
|
|
194
|
-
Use $planr.
|
|
195
|
-
|
|
196
|
-
Create a production-ready Habit Tracker web app plan. Create the product plan,
|
|
197
|
-
split an MVP build plan, check it, then build the Planr map. Do not implement yet.
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
For a long autonomous run, prepare outside the driver first. The preparation result prints a real plan id; Codex or Claude Code then starts only the plan-bound loop driver:
|
|
201
|
-
|
|
202
|
-
```text
|
|
203
|
-
Use $planr-goal to prepare an autonomous goal for the weekly overview feature.
|
|
204
|
-
|
|
205
|
-
/goal Use $planr-loop on plan <plan-id>. The loop contract is stored in planr
|
|
206
|
-
context (tag: goal-contract).
|
|
207
|
-
|
|
208
|
-
Goal: ship the weekly overview feature. DONE when every in-scope map item is closed
|
|
209
|
-
with implementation evidence, all reviews are closed complete, and canonical Evidence
|
|
210
|
-
coverage proves the feature working in the browser. Iteration budget: 10.
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Mid-project work (a new feature, refactor, or fix on an existing project) works the same — it gets its own feature-scoped plan and extends the existing map. Both journeys with example prompts: [Prompt Recipes](https://planr.so/docs/agents/prompt-recipes). Coding agents inspect progress with the compact default `planr map show` or, preferably, `planr map show --json`. The tree preserves exact dependency vocabulary while marking satisfied edges as `blocks✓`; active `blocks` stay red. The boxed `planr map show --view diagram` renderer is exclusively for human supervision and uses neutral `then` routes once those dependencies are satisfied. Agents must not invoke it. Humans can add `--full` for complete status, title, worker, critical-lane, and pressure details. Interactive map output colors states automatically; `--no-color` and `NO_COLOR` keep it plain.
|
|
214
|
-
|
|
215
|
-
To supervise an agent from a second terminal, leave the agent running in terminal A and watch its scoped graph in terminal B:
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
planr map watch --plan <plan-id>
|
|
219
|
-
# optional: exit after every scoped item settles
|
|
220
|
-
planr map watch --plan <plan-id> --until-settled
|
|
221
|
-
# optional: inspect complete node details
|
|
222
|
-
planr map watch --plan <plan-id> --full
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
The watcher is likewise a human-only observer. It defaults to the condensed diagram view, polls the local SQLite graph once per second, and redraws only when state changes. Coding agents must not invoke `map watch`; they should use `map show --json` snapshots or the `/v1/events/stream` SSE endpoint instead. Use Ctrl-C to stop.
|
|
226
|
-
|
|
227
|
-
## What's new
|
|
228
|
-
|
|
229
|
-
- **1.9.0 — First-class Pi integration:** Added an explicit repository opt-in that installs native Pi Agent Skills plus optional `pi-subagents` worker/reviewer roles without treating Pi as an MCP host. The integration writes no Pi global settings, hooks, provider credentials, model pin, or session reference, and `--client all` remains unchanged for existing Codex, Claude Code, Cursor, and Grok setup. See the [Pi integration guide](https://planr.so/docs/integrations/pi), [Pi contract](docs/contracts/PI_INTEGRATION_V1.md), and [1.9.0 changelog](CHANGELOG.md#190---2026-07-27).
|
|
230
|
-
- **1.8.0 — First-class Grok Build integration:** Added an explicit repository opt-in that installs portable project MCP configuration plus native Grok agents and all ten Planr workflow skills. The integration writes no plugin, hooks, model setting, xAI credentials, or provider runtime dependency; authenticated verification remains maintainer-local and never runs in CI. See the [Grok Build guide](https://planr.so/docs/integrations/grok-build) and [1.8.0 changelog](CHANGELOG.md#180---2026-07-27).
|
|
231
|
-
- **1.7.2 — Reproducible release candidates:** Locked the pnpm workspace inventory, made external eval fixtures self-contained, refreshed reviewed workflow runtimes, and made all four published architectures execute the exact tagged version before upload. Model-backed evaluation remains a local, candidate-bound maintainer gate; this patch makes no unmeasured speed or quality claim. See the [1.7.2 changelog](CHANGELOG.md#172---2026-07-25) and [release guidance](https://planr.so/docs/operations/release).
|
|
232
|
-
- **1.7.1 — Leaner agent guidance and safer local releases:** Slimmed the hot-path Planr skills while preserving their execution and review contracts, moved maintainer benchmark inputs and results outside the public repository, added a fail-closed local release-evidence gate without API keys in CI, and verified the optional external Switchloom v0.3.2 integration. The public 1.7 eval CLI remains available in this patch. See the [1.7.1 changelog](CHANGELOG.md#171---2026-07-25) and [release guidance](https://planr.so/docs/operations/release).
|
|
233
|
-
- **1.7.0 — Evidence-backed evaluations:** Added durable eval suites, runs, comparisons, invalidation and rescoring, correctness/quality/performance gates, cost per verified success, and effort recommendations. The complete workflow is available through the CLI; MCP only mirrors selected surfaces and is optional. Security gates now cover repository leaks, vulnerable dependencies, workflow hardening, privacy, and forbidden staged files. See the [Eval Contract](docs/contracts/EVAL_CONTRACT_V1.md), [CLI Reference](https://planr.so/docs/reference/cli), and the [1.7.0 changelog](CHANGELOG.md#170---2026-07-22).
|
|
234
|
-
- **1.6.0 — Human map observation:** Added a condensed boxed diagram, live two-terminal watching, accessible state colors, and clearer satisfied dependency routes. These views are intentionally for human supervision; agents keep using the default tree or JSON snapshots. See [Task Graph Model](https://planr.so/docs/concepts/graph-and-readiness), [CLI Reference](https://planr.so/docs/reference/cli), and the [1.6.0 changelog](CHANGELOG.md#160---2026-07-21).
|
|
235
|
-
- **1.5.2 — Standalone core, optional Switchloom:** Planr consumes provider-neutral repository declarations and route evidence only; it works without any routing files, and requested-only routing metadata is not execution proof. Optional model-routing lifecycle is external, with [Switchloom v0.3.2](https://github.com/instructa/switchloom/releases/tag/v0.3.2) verified as the current repository-local handoff outside Planr. Start with [Plugins](https://planr.so/docs/plugins), [Switchloom](https://switchloom.ai), the [Switchloom repository](https://github.com/instructa/switchloom), the [current corrected quickstart](https://github.com/instructa/switchloom#setup-from-the-website), the [v0.3.2 tagged quickstart](https://github.com/instructa/switchloom/blob/v0.3.2/README.md#setup-from-the-website), [v0.3.2 lifecycle docs](https://github.com/instructa/switchloom/blob/v0.3.2/docs/preset-composition.md#repository-lifecycle-commands), and the [Changelog](CHANGELOG.md). The tagged v0.3.2 README quickstart keeps stale `0.3.1` command examples; use explicit `switchloom@0.3.2` commands when following Planr's verified contract.
|
|
236
|
-
- **1.4.0 — Verified presets:** Added policy-driven composition, evaluation, signed registry evidence, and the public catalog. See the [1.4.0 release notes](https://github.com/instructa/planr/releases/tag/v1.4.0).
|
|
237
|
-
- **1.3.0 — Native host hooks:** Added automatic session-state injection and loop recovery for supported hosts. See the [Integrations guide](https://planr.so/docs/integrations) and [1.3.0 release notes](https://github.com/instructa/planr/releases/tag/v1.3.0).
|
|
26
|
+
To set it up yourself, follow the [quickstart](docs/quickstart.md). planr needs Node.js 20 or
|
|
27
|
+
newer & Git. The CLI has no runtime dependencies.
|
|
238
28
|
|
|
239
|
-
|
|
29
|
+
## Plugins & CLI
|
|
240
30
|
|
|
241
|
-
|
|
31
|
+
- [Claude Code](docs/plugins/claude-code.md). Call the skill with `/planr:planr`.
|
|
32
|
+
- [Codex](docs/plugins/codex.md). Call the skill with `$planr:planr`.
|
|
33
|
+
- [bb](docs/plugins/bb.md). See the board beside your threads & approve or check work.
|
|
34
|
+
- Other agents. Install the skill with `npx skills add instructa/planr`.
|
|
35
|
+
- [CLI](docs/cli.md). Check files, find ready work & update status. Install it with `npm install -g planr`
|
|
36
|
+
or use `npx planr`.
|
|
242
37
|
|
|
243
|
-
|
|
38
|
+
## More detail
|
|
244
39
|
|
|
245
|
-
- [
|
|
246
|
-
- [
|
|
247
|
-
- [
|
|
248
|
-
- [Integrations and Host Hooks](https://planr.so/docs/integrations)
|
|
249
|
-
- [CLI Reference](https://planr.so/docs/reference/cli) · [MCP Reference](https://planr.so/docs/reference/mcp)
|
|
250
|
-
- [Codex](https://planr.so/docs/integrations/codex) · [Claude Code](https://planr.so/docs/integrations/claude-code) · [Cursor](https://planr.so/docs/integrations/cursor) · [Grok Build](https://planr.so/docs/integrations/grok-build) · [Pi](https://planr.so/docs/integrations/pi)
|
|
251
|
-
- [Daily Worker Loop](https://planr.so/docs/guides/daily-worker-loop)
|
|
252
|
-
- [Task Graph Model](https://planr.so/docs/concepts/graph-and-readiness)
|
|
253
|
-
- [Architecture](https://planr.so/docs/contributing/architecture)
|
|
254
|
-
- [Testing](https://planr.so/docs/contributing/testing)
|
|
255
|
-
- [Troubleshooting](https://planr.so/docs/troubleshooting)
|
|
256
|
-
- [Specification Package](.planr/plans/product/planr/README.md)
|
|
257
|
-
- More: [Changelog](CHANGELOG.md), [Packages and Reuse](https://planr.so/docs/guides/packages-and-reuse), [Security and Privacy](https://planr.so/docs/contributing/security-and-privacy), [Handoff and Resume](https://planr.so/docs/guides/handoff-and-resume)
|
|
40
|
+
- [Concepts](docs/concepts.md) for how the plan, tasks, goals & approvers fit together.
|
|
41
|
+
- [The board](docs/board.md) for progress & history.
|
|
42
|
+
- [File format](skills/planr/references/format.md) & [technical contract](docs/contract.md).
|
|
258
43
|
|
|
259
44
|
## License
|
|
260
45
|
|
|
261
|
-
MIT.
|
|
46
|
+
[MIT](LICENSE). Bundled fonts use the SIL Open Font License 1.1.
|
|
47
|
+
See the [font licenses](skills/planr/assets/board/fonts/).
|
package/docs/board.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# The board
|
|
2
|
+
|
|
3
|
+
The board shows work waiting on you, ready tasks, goal progress & status history.
|
|
4
|
+
Use the overview to see what needs attention, the task view to inspect
|
|
5
|
+
dependencies, or the run view to see what changed.
|
|
6
|
+
|
|
7
|
+
## Standalone board
|
|
8
|
+
|
|
9
|
+
From the planning repository, generate a self-contained HTML file.
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
planr board --out .planr/board.html
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Open the file in a browser. It includes its data & fonts, so it can be read
|
|
16
|
+
offline. It is a snapshot; run the command again to update it.
|
|
17
|
+
|
|
18
|
+
For live reload, start the local server.
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
planr board --serve
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Open <http://127.0.0.1:4173>. The server binds to loopback only & the page reloads
|
|
25
|
+
when tasks or goals change. Stop it with Ctrl+C. Use `--port` to choose another port.
|
|
26
|
+
|
|
27
|
+
Both versions are read-only. Change the Markdown files or use the CLI to update
|
|
28
|
+
the plan. Search tasks by ID or title & filter them by status, goal or track.
|
|
29
|
+
|
|
30
|
+
## Runs & history
|
|
31
|
+
|
|
32
|
+
A board run is a planning commit that adds or removes a task, or changes a task's
|
|
33
|
+
status. It is reconstructed from Git's first-parent history. Body-only edits do
|
|
34
|
+
not create runs. Uncommitted task additions, removals & status changes appear
|
|
35
|
+
as a final run.
|
|
36
|
+
|
|
37
|
+
The first run is the baseline. These runs are not a count of agent sessions.
|
|
38
|
+
A coordinator's notes under `## Runs` in a goal file are separate, human-readable
|
|
39
|
+
summaries. Without Git history, run history is unavailable; a shallow clone
|
|
40
|
+
can make it incomplete.
|
|
41
|
+
|
|
42
|
+
## In bb
|
|
43
|
+
|
|
44
|
+
Use the [bb plugin](plugins/bb.md) to see the board beside your threads, approve goals & check work.
|
package/docs/cli.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# CLI
|
|
2
|
+
|
|
3
|
+
Install with `npm install -g planr`, or use `npx planr <command>`.
|
|
4
|
+
Node.js 20 or newer is required. Git provides history & planning collaboration.
|
|
5
|
+
|
|
6
|
+
`planr --version` prints the installed version. `planr --help` (or `planr` without
|
|
7
|
+
arguments) lists commands & common options. Both work without a planning repository.
|
|
8
|
+
|
|
9
|
+
Run commands inside the planning repository. From elsewhere, add
|
|
10
|
+
`--root /path/to/planning`. From a source checkout, the entry point is
|
|
11
|
+
`node skills/planr/scripts/planr.mjs`.
|
|
12
|
+
|
|
13
|
+
## Start a planning repository
|
|
14
|
+
|
|
15
|
+
Use a separate repository for the plan, or keep it inside your code repository.
|
|
16
|
+
Run one of these in the chosen repository root.
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
planr init
|
|
20
|
+
# Or, for planning inside a code repository
|
|
21
|
+
planr init --in-repo
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`init` creates task instructions in `tasks/README.md`, a draft goal in
|
|
25
|
+
`plans/example-goal.md` & `planr.config.json`. It also ignores the generated board
|
|
26
|
+
at `.planr/board.html`. If Git is initialized & no pre-commit hook exists, it adds
|
|
27
|
+
a hook that runs `check` through the local script.
|
|
28
|
+
|
|
29
|
+
`--in-repo` puts tasks & goals in `.planr/tasks/` & `.planr/plans/` instead.
|
|
30
|
+
The config stays at the repository root. Only the generated board is ignored;
|
|
31
|
+
the planning files belong in Git. Existing task instructions, goals, config &
|
|
32
|
+
pre-commit hooks are preserved.
|
|
33
|
+
|
|
34
|
+
## Read the plan
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
planr check
|
|
38
|
+
planr list --ready
|
|
39
|
+
planr list --status blocked,decision
|
|
40
|
+
planr next --goal example
|
|
41
|
+
planr next --stream S1 --json
|
|
42
|
+
planr goal example
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`next` requires exactly one goal or stream. A goal query previews its scope,
|
|
46
|
+
including draft goals. A stream query uses only its approved or running goals.
|
|
47
|
+
Both exclude tasks explicitly owned by another stream.
|
|
48
|
+
|
|
49
|
+
`list` also accepts `--goal`, `--track` & `--owner` filters. `--owner` matches the
|
|
50
|
+
explicit task owner, not a stream inherited from a goal.
|
|
51
|
+
|
|
52
|
+
`check` validates planning data, including unknown dependencies & cycles.
|
|
53
|
+
It does not validate product work. Warnings are informational; `--strict`
|
|
54
|
+
treats them as errors. Exit codes are `0` for success, `1` for validation or
|
|
55
|
+
runtime errors & `2` for usage errors. Use `--json` for structured data from
|
|
56
|
+
`check`, `list`, `next`, `set` & `goal`.
|
|
57
|
+
|
|
58
|
+
## Change the plan
|
|
59
|
+
|
|
60
|
+
Create each task as a Markdown file, then add its ID to a goal's `scope`, for example in
|
|
61
|
+
`plans/example-goal.md`. There is no `add` command.
|
|
62
|
+
|
|
63
|
+
```sh
|
|
64
|
+
cat > tasks/MOB-01.md <<'EOF'
|
|
65
|
+
---
|
|
66
|
+
id: MOB-01
|
|
67
|
+
title: App shell & navigation
|
|
68
|
+
status: open
|
|
69
|
+
track: mobile
|
|
70
|
+
---
|
|
71
|
+
The app opens on a home screen with tabs for accounts, expenses & budgets.
|
|
72
|
+
EOF
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Edit descriptions, dependencies & progress notes directly, then run `check`.
|
|
76
|
+
|
|
77
|
+
For a goal a person has approved, record the coordinator & update tasks as work progresses.
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
planr goal example running --thread your-session-id
|
|
81
|
+
planr set MOB-01 in-progress --owner S1
|
|
82
|
+
planr set MOB-01 review
|
|
83
|
+
planr check
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Use these states when the work reaches that stage. See [concepts](concepts.md)
|
|
87
|
+
for their meaning. `set` rewrites status & an optional owner; `goal` rewrites
|
|
88
|
+
state & an optional thread. Both validate afterward. A validation error does
|
|
89
|
+
not roll back the edit. The CLI never commits or pushes.
|
|
90
|
+
|
|
91
|
+
## View the board
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
planr board --out .planr/board.html
|
|
95
|
+
planr board --serve
|
|
96
|
+
planr board --serve --port 4174
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
See [the board](board.md) for snapshots & live reload. For every option & JSON
|
|
100
|
+
shape, see the [technical contract](contract.md#cli-skillsplanrscriptsplanrmjs).
|
package/docs/concepts.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Concepts
|
|
2
|
+
|
|
3
|
+
The planning repository holds the plan. Each task is a Markdown file in `tasks/`;
|
|
4
|
+
each goal is a file in `plans/`. You can read, edit & review them with Git.
|
|
5
|
+
planr derives readiness & progress from those files each time it runs.
|
|
6
|
+
|
|
7
|
+
## The plan & the code
|
|
8
|
+
|
|
9
|
+
The plan usually lives in its own repository beside the product's code. Agents update the
|
|
10
|
+
plan & build the product in the code repository. People tell the agent when they approve a goal
|
|
11
|
+
or have checked the work.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
budget-planning/ the plan: agents read & update it
|
|
15
|
+
tasks/MOB-01.md … one file per task
|
|
16
|
+
plans/mobile-app-goal.md one file per goal
|
|
17
|
+
planr.config.json
|
|
18
|
+
|
|
19
|
+
budget-app/ the product: agents build & test here
|
|
20
|
+
mobile/ web/ api/
|
|
21
|
+
AGENTS.md says where the plan lives
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
A separate planning repository can stay private & keeps planning commits out of the code's
|
|
25
|
+
history. To keep the plan inside the code repository instead, use `planr init --in-repo`;
|
|
26
|
+
tasks & goals then live in `.planr/`.
|
|
27
|
+
|
|
28
|
+
## Tasks & dependencies
|
|
29
|
+
|
|
30
|
+
A task describes an outcome, its acceptance criteria & progress notes. Its
|
|
31
|
+
frontmatter holds an ID, title, status & track. A track is a project-specific
|
|
32
|
+
group such as `product` or `platform`.
|
|
33
|
+
|
|
34
|
+
Use `depends` to name tasks that must be built first. An `open` task is ready
|
|
35
|
+
when every dependency is in `review` or `done`. A dependency's manual check
|
|
36
|
+
does not hold up further building. `dropped` does not satisfy a dependency.
|
|
37
|
+
|
|
38
|
+
`next` puts tasks that unlock the most other tasks first. It lists `blocked` &
|
|
39
|
+
`decision` tasks separately as waiting. An open task with unmet dependencies
|
|
40
|
+
is not ready, but does not need its status changed to `blocked`.
|
|
41
|
+
|
|
42
|
+
## Task statuses
|
|
43
|
+
|
|
44
|
+
| Status | Meaning |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `open` | Not started. Ready when its dependencies are met. |
|
|
47
|
+
| `in-progress` | Being worked on. |
|
|
48
|
+
| `review` | Built & tested by agents, waiting for a person's manual check. |
|
|
49
|
+
| `blocked` | Cannot continue until a blocker is resolved. |
|
|
50
|
+
| `decision` | Waiting for an approver's decision. |
|
|
51
|
+
| `done` | Manually checked, or needs no human check. |
|
|
52
|
+
| `dropped` | No longer planned. |
|
|
53
|
+
|
|
54
|
+
These statuses record the team's assessment. planr does not build, test or
|
|
55
|
+
verify the work itself.
|
|
56
|
+
|
|
57
|
+
## Goals & ownership
|
|
58
|
+
|
|
59
|
+
A goal groups task IDs into a `scope` with context, boundaries & a budget.
|
|
60
|
+
Its name comes from the file name. `plans/offline-sync-goal.md` is `offline-sync`.
|
|
61
|
+
|
|
62
|
+
A `stream`, such as `S1`, labels the work assigned to a coordinator. A task's
|
|
63
|
+
explicit `owner` takes precedence; otherwise an approved or running goal can
|
|
64
|
+
supply its stream. Ownership is a coordination convention, not a lock.
|
|
65
|
+
|
|
66
|
+
| Goal state | Meaning |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `draft` | A proposal awaiting approval. |
|
|
69
|
+
| `approved` | Cleared by an approver, ready for a coordinator to start. |
|
|
70
|
+
| `running` | A coordinator is working on it. |
|
|
71
|
+
| `review` | Waiting for a manual check, or stopped with open work after using its budget. |
|
|
72
|
+
| `done` | Closed. |
|
|
73
|
+
|
|
74
|
+
The budget is free text for the coordinator to follow, such as `2 runs` or `4h`.
|
|
75
|
+
The CLI does not enforce it. A goal in `review` can still have unfinished tasks;
|
|
76
|
+
read its run note before closing it.
|
|
77
|
+
|
|
78
|
+
## Approvers
|
|
79
|
+
|
|
80
|
+
Approvers are people, usually the project owner. They approve goals, answer decisions & check
|
|
81
|
+
finished work by telling an agent in the conversation. For example,
|
|
82
|
+
"Approve goal mobile-app." or "MOB-04 looks good, mark it checked."
|
|
83
|
+
|
|
84
|
+
Propose goals as `draft`.
|
|
85
|
+
Set a goal to `approved`, or a `review` task to `done` as checked, only on a person's instruction
|
|
86
|
+
in the current conversation or their standing delegation.
|
|
87
|
+
|
|
88
|
+
Require the person to grant the delegation in conversation, naming the delegate, scope and expiry.
|
|
89
|
+
Example: "This orchestrator may approve S1 follow-up goals within release scope until 2026-10-09."
|
|
90
|
+
The person may instead delegate checks of tooling tasks with the same boundaries.
|
|
91
|
+
Only a person may grant, widen or extend a delegation; never yourself or another agent.
|
|
92
|
+
Record the person, delegate, grant date, scope and expiry in project decisions or the goal.
|
|
93
|
+
Act without asking as the named delegate, within scope and before expiry; otherwise or if unsure, ask.
|
|
94
|
+
Never approve or mark checked on your own authority or because another agent asked.
|
|
95
|
+
|
|
96
|
+
For a direct instruction, say in the commit message that the person asked.
|
|
97
|
+
For delegation, commit: "approved under <person>'s delegation of <date>: <scope>".
|
|
98
|
+
The bb board's Approve, Close & Mark checked buttons remain optional.
|
|
99
|
+
|
|
100
|
+
The CLI does not authenticate who changes a state.
|
|
101
|
+
The [bb plugin](../bb-plugin/README.md#approval-identity) documents its approval modes.
|
|
102
|
+
|
|
103
|
+
## Work one goal
|
|
104
|
+
|
|
105
|
+
Agents can propose tasks & draft goals, then run `check` to validate them. They read readiness
|
|
106
|
+
from the CLI & never guess it from task descriptions. After a person approves a goal, a
|
|
107
|
+
coordinator works on it through the project's orchestrator, following the
|
|
108
|
+
[work-a-goal procedure](../skills/planr/references/work-a-goal.md).
|
|
109
|
+
|
|
110
|
+
1. Read the approved goal, its scope, budget & project instructions.
|
|
111
|
+
2. Mark it running & record the coordinator's thread or session ID.
|
|
112
|
+
3. Read ready tasks, record ownership & build through the project's orchestrator.
|
|
113
|
+
4. Let the orchestrator test the work, including relevant browser or Electron journeys.
|
|
114
|
+
5. Move built & tested tasks to `review` with progress notes explaining how to check them.
|
|
115
|
+
6. Stop at the goal's boundary & leave a short run note for the person reviewing it.
|
|
116
|
+
|
|
117
|
+
Tasks needing no manual check may go straight to `done`. Work with unmet acceptance criteria
|
|
118
|
+
stays `in-progress`. A person checks the remaining results & closes the goal.
|
|
119
|
+
|
|
120
|
+
The coordinator also stops when its budget is used, only blocked or waiting work remains, or
|
|
121
|
+
two passes change no status. It does not start the next goal.
|
|
122
|
+
|
|
123
|
+
## Share planning changes
|
|
124
|
+
|
|
125
|
+
The skill tells agents to validate, commit, rebase & push planning changes from their assigned
|
|
126
|
+
checkout. The CLI itself only edits files. Each stream changes its own tasks & rechecks
|
|
127
|
+
ownership after conflicting updates.
|
|
128
|
+
|
|
129
|
+
planr supplies no task locks or dispatcher. Your project's rules for code review, merging,
|
|
130
|
+
deployment & publishing still apply.
|
|
131
|
+
|
|
132
|
+
See the [file format](../skills/planr/references/format.md) for task & goal examples,
|
|
133
|
+
the [quickstart](quickstart.md) to set up a project, or [the board](board.md) for run history.
|