planr 1.3.0-alpha.1 → 1.3.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/README.md +20 -1
- package/docs/CLI_REFERENCE.md +2 -1
- package/npm/native/darwin-arm64/planr +0 -0
- package/npm/native/darwin-x86_64/planr +0 -0
- package/npm/native/linux-arm64/planr +0 -0
- package/npm/native/linux-x86_64/planr +0 -0
- package/package.json +1 -1
- package/plugins/planr/.claude-plugin/plugin.json +1 -1
- package/plugins/planr/.codex-plugin/plugin.json +1 -1
- package/plugins/planr/skills/planr-verify-web/SKILL.md +1 -0
package/README.md
CHANGED
|
@@ -22,7 +22,26 @@ Flat todo lists break down the moment real work has structure. Planr models work
|
|
|
22
22
|
|
|
23
23
|
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](docs/TASK_GRAPH_MODEL.md) and [Operating Model](docs/OPERATING_MODEL.md).
|
|
24
24
|
|
|
25
|
-
## New in 1.
|
|
25
|
+
## New in 1.3.0: Native Host Hooks
|
|
26
|
+
|
|
27
|
+
`planr install codex|claude|cursor` now wires Planr into the host's native hook system by default — every new session (including post-compaction restarts) gets one compact state block injected automatically:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
## planr state
|
|
31
|
+
project: Hookboard | map: 5/5 settled | 0 ready, 0 picked, 0 in_review
|
|
32
|
+
goal contract: DONE when every in-scope map item is closed with log evidence, ...
|
|
33
|
+
routing: registry active (3 profiles; pick packets carry model routing)
|
|
34
|
+
next: planr plan audit pln-fc584c28 --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- **`planr prime`** — the state block behind the hooks: project, map counts, held items with log status, goal contract, and the next command. Silent in repos without a Planr database.
|
|
38
|
+
- **Loop recovery becomes mechanism, not discipline** — an agent that restarts or compacts mid-loop picks up exactly where the map says it left off.
|
|
39
|
+
- **Evidence guard (Cursor)** — a subagent that stops while its own pick has no completion log gets one advisory reminder naming the item and the two ways out.
|
|
40
|
+
- **Fail-open and additive** — hooks never block a session (10s timeout, always exit 0), existing hook files are merged, `--no-hooks` opts out.
|
|
41
|
+
|
|
42
|
+
Full guide: [Hooks](docs/HOOKS.md) · [Release notes](https://github.com/instructa/planr/releases/tag/v1.3.0).
|
|
43
|
+
|
|
44
|
+
## Model Routing (1.2.0)
|
|
26
45
|
|
|
27
46
|
Declare once which model handles which work — every task then carries its own routing, and your agents delegate automatically:
|
|
28
47
|
|
package/docs/CLI_REFERENCE.md
CHANGED
|
@@ -44,6 +44,7 @@ planr approval approve <item-id> --by "name" [--comment "..."]
|
|
|
44
44
|
planr approval deny <item-id> --by "name" [--comment "..."]
|
|
45
45
|
planr approval list [--open]
|
|
46
46
|
planr artifact add "name"|--name "name" [--item <item-id>] [--kind evidence] [--path file] [--content "..."] [--mime text/plain]
|
|
47
|
+
# --kind is free-form vocabulary; common values: evidence, screenshot, video, recording, report, review
|
|
47
48
|
planr artifact show <artifact-id>
|
|
48
49
|
planr artifact list [--item <item-id>]
|
|
49
50
|
planr event list [--item <item-id>] [--limit 50]
|
|
@@ -90,7 +91,7 @@ With `--json`, responses follow one convention so agents never guess where data
|
|
|
90
91
|
|
|
91
92
|
`plan check` validates path, YAML frontmatter, and that required sections have content: build plans need `## Scope Decision`, `## Verification`, and `## Acceptance Criteria` filled; product plans need `## Problem`, `## Requirements`, and `## Success Criteria` filled in `PRODUCT_SPEC.md`. It also flags a task list that still contains only the scaffold placeholder (or no work specs at all) — `map build` would turn that into a single coarse item, so the fix names the granularity contract: one `### TASK-00n:` heading (or `- [ ]` line) per verifiable slice, typically 4-8, in execution order. Each warning is structured — `{"file", "section", "message", "fix"}` — and names the exact file to edit plus the re-run command, so a failed check is a repair instruction, not a riddle.
|
|
92
93
|
|
|
93
|
-
`plan audit <plan-id>` is the one-call contract verdict for a plan's map scope. It evaluates four clauses with evidence: `items_settled` (open items listed), `reviews_complete` (open review items listed), `approvals_clear` (requested/denied approvals listed), and `verification_logged` (logs with `--kind verification` on scope items). The stored goal contract (`planr context --tag goal-contract` mentioning the plan id) is included; the verification clause is binding only when such a contract exists. `holds: true` means the contract is satisfied — loop agents use this as their stop condition instead of stitching the verdict together from `map status`, `log list`, and `approval list`. When the contract is open, `next` carries the exact next command derived from the first actionable gap: build the map, pick the ready review or work item (plan-scoped), resolve the blocking approval, inspect stalled leases, or log the missing verification. Also available as MCP `planr_plan_audit`.
|
|
94
|
+
`plan audit <plan-id>` is the one-call contract verdict for a plan's map scope. JSON shape for machine consumers: top-level `holds` (bool) and `clauses[]` with `clause` (name) and `pass` (bool) — e.g. `planr plan audit <id> --json | jq '.holds, (.clauses[] | {clause, pass})'`. It evaluates four clauses with evidence: `items_settled` (open items listed), `reviews_complete` (open review items listed), `approvals_clear` (requested/denied approvals listed), and `verification_logged` (logs with `--kind verification` on scope items). The stored goal contract (`planr context --tag goal-contract` mentioning the plan id) is included; the verification clause is binding only when such a contract exists. `holds: true` means the contract is satisfied — loop agents use this as their stop condition instead of stitching the verdict together from `map status`, `log list`, and `approval list`. When the contract is open, `next` carries the exact next command derived from the first actionable gap: build the map, pick the ready review or work item (plan-scoped), resolve the blocking approval, inspect stalled leases, or log the missing verification. Also available as MCP `planr_plan_audit`.
|
|
94
95
|
|
|
95
96
|
`map show --plan <plan-id>` narrows the map to one plan's items and the links among them, with plan-scoped counts — plan-scoped goal runs on shared boards audit their slice, not the whole board. An unknown plan id is an error, never a silent unscoped view. Also available on MCP `planr_map_show` (`plan`) and HTTP `GET /v1/projects/{id}/map?plan=<plan-id>`.
|
|
96
97
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "planr",
|
|
3
3
|
"description": "Skill-driven planning and execution loop for coding agents: one planr entry point, an autonomous planr-loop, and evidence-backed task graph skills powered by the planr CLI.",
|
|
4
|
-
"version": "1.3.0
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "instructa"
|
|
7
7
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "planr",
|
|
3
|
-
"version": "1.3.0
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Skill-driven planning and execution loop for coding agents: one $planr entry point, an autonomous $planr-loop, and evidence-backed task graph skills powered by the planr CLI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "instructa",
|
|
@@ -55,6 +55,7 @@ Attach screenshots or traces as artifacts on the item:
|
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
57
|
planr artifact add "verify-web screenshot" --item <item-id> --path <screenshot-path> --kind screenshot
|
|
58
|
+
planr artifact add "verify-web recording" --item <item-id> --path <recording.mp4> --kind video
|
|
58
59
|
```
|
|
59
60
|
|
|
60
61
|
The replay command is mandatory. The reviewer reruns it instead of trusting this run; a verification that cannot be replayed is not evidence.
|