planr 1.10.0-alpha.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/CHANGELOG.md +20 -0
  3. package/README.md +27 -245
  4. package/docs/board.md +44 -0
  5. package/docs/cli.md +100 -0
  6. package/docs/concepts.md +133 -0
  7. package/docs/contract.md +150 -0
  8. package/docs/plugins/bb.md +49 -0
  9. package/docs/plugins/claude-code.md +84 -0
  10. package/docs/plugins/codex.md +77 -0
  11. package/docs/quickstart.md +307 -0
  12. package/docs/setup.md +103 -0
  13. package/package.json +21 -68
  14. package/plugin.json +12 -0
  15. package/skills/planr/SKILL.md +64 -0
  16. package/skills/planr/assets/board/fonts/LICENSE-mona-sans.txt +93 -0
  17. package/skills/planr/assets/board/fonts/LICENSE-monaspace.txt +93 -0
  18. package/skills/planr/assets/board/fonts/MonaSans-Variable.woff2 +0 -0
  19. package/skills/planr/assets/board/fonts/MonaspaceNeon-400.woff2 +0 -0
  20. package/skills/planr/assets/board/fonts/MonaspaceNeon-500.woff2 +0 -0
  21. package/skills/planr/assets/board/fonts/MonaspaceNeon-600.woff2 +0 -0
  22. package/skills/planr/assets/board/template.html +788 -0
  23. package/skills/planr/assets/templates/goal.md +13 -0
  24. package/skills/planr/assets/templates/hook.sh +4 -0
  25. package/skills/planr/assets/templates/in-repo.config.json +6 -0
  26. package/skills/planr/assets/templates/planr.config.json +6 -0
  27. package/skills/planr/assets/templates/tasks-README.md +14 -0
  28. package/skills/planr/references/format.md +88 -0
  29. package/skills/planr/references/work-a-goal.md +62 -0
  30. package/skills/planr/scripts/lib/board.mjs +39 -0
  31. package/skills/planr/scripts/lib/graph.mjs +345 -0
  32. package/skills/planr/scripts/lib/runs.mjs +127 -0
  33. package/skills/planr/scripts/lib/version.mjs +11 -0
  34. package/skills/planr/scripts/planr.mjs +386 -0
  35. package/docs/ARCHITECTURE.md +0 -136
  36. package/docs/RELEASE.md +0 -275
  37. package/docs/SWITCHLOOM_COMPATIBILITY.md +0 -14
  38. package/docs/contracts/BROWSER_HARNESS_ADAPTER_V1.md +0 -75
  39. package/docs/contracts/EVAL_CONTRACT_V1.md +0 -2072
  40. package/docs/contracts/EVIDENCE_ADAPTER_PROTOCOL_V1.md +0 -98
  41. package/docs/contracts/EVIDENCE_CONTRACT_V1.md +0 -382
  42. package/docs/contracts/GROK_INTEGRATION_V1.md +0 -139
  43. package/docs/contracts/LINUX_RELEASE_PORTABILITY.json +0 -9
  44. package/docs/contracts/PI_INTEGRATION_V1.md +0 -164
  45. package/docs/contracts/V1_1_DIFFERENTIATION_CONTRACT.md +0 -177
  46. package/docs/contracts/fixtures/evidence/v1/examples/coverage-verdict.json +0 -66
  47. package/docs/contracts/fixtures/evidence/v1/examples/evidence-attempt.json +0 -39
  48. package/docs/contracts/fixtures/evidence/v1/examples/evidence-policy.json +0 -108
  49. package/docs/contracts/fixtures/evidence/v1/examples/evidence-receipt.json +0 -93
  50. package/docs/contracts/fixtures/evidence/v1/examples/evidence-waiver.json +0 -31
  51. package/docs/contracts/fixtures/evidence/v1/examples/proof-obligation.json +0 -55
  52. package/docs/contracts/fixtures/evidence/v1/examples/proof-preset.json +0 -19
  53. package/docs/contracts/fixtures/evidence/v1/examples/untrusted-evidence-proposal.json +0 -20
  54. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-instance.json +0 -39
  55. package/docs/contracts/fixtures/evidence/v1/examples/verification-capability-manifest.json +0 -52
  56. package/docs/contracts/fixtures/evidence/v1/negative/aborted-zero-exit-attempt.json +0 -39
  57. package/docs/contracts/fixtures/evidence/v1/negative/adapter-registration-missing-execution-contract.json +0 -88
  58. package/docs/contracts/fixtures/evidence/v1/negative/available-empty-probe-capability.json +0 -27
  59. package/docs/contracts/fixtures/evidence/v1/negative/blocked-coverage-with-stale-reason.json +0 -27
  60. package/docs/contracts/fixtures/evidence/v1/negative/empty-trust-bindings-receipt.json +0 -72
  61. package/docs/contracts/fixtures/evidence/v1/negative/failed-zero-exit-attempt.json +0 -39
  62. package/docs/contracts/fixtures/evidence/v1/negative/forged-trusted-receipt.json +0 -35
  63. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-clean-exit-attempt.json +0 -39
  64. package/docs/contracts/fixtures/evidence/v1/negative/inconclusive-coverage-with-blocked-reason.json +0 -27
  65. package/docs/contracts/fixtures/evidence/v1/negative/minimal-policy-missing-owned-inputs.json +0 -5
  66. package/docs/contracts/fixtures/evidence/v1/negative/mismatched-probe-execution-id-capability.json +0 -42
  67. package/docs/contracts/fixtures/evidence/v1/negative/passed-empty-attempt.json +0 -22
  68. package/docs/contracts/fixtures/evidence/v1/negative/policy-default-preset-unregistered.json +0 -102
  69. package/docs/contracts/fixtures/evidence/v1/negative/policy-weakening-without-waiver.json +0 -102
  70. package/docs/contracts/fixtures/evidence/v1/negative/process-probe-missing-output-limits.json +0 -49
  71. package/docs/contracts/fixtures/evidence/v1/negative/satisfied-empty-coverage-verdict.json +0 -14
  72. package/docs/contracts/fixtures/evidence/v1/negative/skipped-zero-exit-attempt.json +0 -39
  73. package/docs/contracts/fixtures/evidence/v1/negative/stale-coverage-with-inconclusive-reason.json +0 -27
  74. package/docs/contracts/fixtures/evidence/v1/negative/timed-out-zero-exit-attempt.json +0 -39
  75. package/docs/contracts/fixtures/evidence/v1/negative/unavailable-zero-exit-attempt.json +0 -39
  76. package/docs/contracts/fixtures/evidence/v1/negative/unbound-waiver.json +0 -21
  77. package/docs/contracts/fixtures/evidence/v1/negative/unsatisfied-coverage-without-gap.json +0 -63
  78. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-forbidden-gap-reason.json +0 -28
  79. package/docs/contracts/fixtures/evidence/v1/negative/waived-coverage-missing-waiver-id.json +0 -27
  80. package/docs/contracts/fixtures/evidence/v1/schemas/evidence-contract-v1.schema.json +0 -2685
  81. package/docs/contracts/schemas/com.planr.web.dom_state.v1.schema.json +0 -30
  82. package/docs/documentation/CONTRACT.md +0 -164
  83. package/docs/documentation/COVERAGE.md +0 -98
  84. package/docs/documentation/INFORMATION_ARCHITECTURE.md +0 -151
  85. package/docs/fixtures/mcp-contract.json +0 -153
  86. package/npm/bin/native-launcher.js +0 -67
  87. package/npm/bin/planr-browser-harness-adapter.js +0 -8
  88. package/npm/bin/planr.js +0 -8
  89. package/npm/native/darwin-arm64/planr +0 -0
  90. package/npm/native/darwin-arm64/planr-browser-harness-adapter +0 -0
  91. package/npm/native/darwin-arm64/planr-host-capability-validator +0 -0
  92. package/npm/native/darwin-x86_64/planr +0 -0
  93. package/npm/native/darwin-x86_64/planr-browser-harness-adapter +0 -0
  94. package/npm/native/darwin-x86_64/planr-host-capability-validator +0 -0
  95. package/npm/native/linux-arm64/planr +0 -0
  96. package/npm/native/linux-arm64/planr-browser-harness-adapter +0 -0
  97. package/npm/native/linux-arm64/planr-host-capability-validator +0 -0
  98. package/npm/native/linux-x86_64/planr +0 -0
  99. package/npm/native/linux-x86_64/planr-browser-harness-adapter +0 -0
  100. package/npm/native/linux-x86_64/planr-host-capability-validator +0 -0
  101. package/plugins/planr/.claude-plugin/plugin.json +0 -11
  102. package/plugins/planr/.codex-plugin/plugin.json +0 -25
  103. package/plugins/planr/agents/pi/planr-reviewer.md +0 -20
  104. package/plugins/planr/agents/pi/planr-worker.md +0 -35
  105. package/plugins/planr/agents/planr-reviewer.md +0 -21
  106. package/plugins/planr/agents/planr-worker.md +0 -40
  107. package/plugins/planr/skills/planr/SKILL.md +0 -60
  108. package/plugins/planr/skills/planr-goal/SKILL.md +0 -52
  109. package/plugins/planr/skills/planr-loop/SKILL.md +0 -126
  110. package/plugins/planr/skills/planr-loop/agents/planr-reviewer.md +0 -21
  111. package/plugins/planr/skills/planr-loop/agents/planr-worker.md +0 -36
  112. package/plugins/planr/skills/planr-loop/references/host-dispatch.md +0 -52
  113. package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +0 -26
  114. package/plugins/planr/skills/planr-plan/SKILL.md +0 -86
  115. package/plugins/planr/skills/planr-review/SKILL.md +0 -55
  116. package/plugins/planr/skills/planr-status/SKILL.md +0 -52
  117. package/plugins/planr/skills/planr-summary/SKILL.md +0 -30
  118. package/plugins/planr/skills/planr-task-graph/SKILL.md +0 -67
  119. package/plugins/planr/skills/planr-verify-web/SKILL.md +0 -62
  120. package/plugins/planr/skills/planr-work/SKILL.md +0 -93
  121. package/scripts/host-capability-experiment.mjs +0 -2481
  122. package/scripts/host-capability-runtime/v1/schemas/host-capability-expected-manifest.schema.json +0 -377
  123. package/scripts/host-capability-runtime/v1/schemas/host-capability-observed-raw.schema.json +0 -439
  124. package/scripts/host-capability-runtime/v1/schemas/host-capability-provenance.schema.json +0 -178
  125. package/scripts/planr-host-capability-validator +0 -57
  126. /package/{LICENSE.md → LICENSE} +0 -0
@@ -1,26 +0,0 @@
1
- # Recovery And Verification
2
-
3
- Load this only for an interrupted item or the live-verification stage.
4
-
5
- Recovery:
6
-
7
- ```bash
8
- planr plan audit <plan-id> --json
9
- planr trace item <item-id> --json
10
- planr log list --item <item-id> --json
11
- planr context list --item <item-id> --json
12
- ```
13
-
14
- Use `planr pick stale --older-than-seconds 900` before releasing abandoned ownership. Pause a legitimate wait with `planr pick pause`; resume it with `planr pick resume`.
15
-
16
- Verification:
17
-
18
- ```bash
19
- planr evidence verify --scope plan --id <plan-id> --json
20
- ```
21
-
22
- The verify result owns plan coverage and settlement. Use criterion-scoped coverage or explain only to diagnose an explicit gap, with a real criterion id rather than a requirement id. A verifier or environment failure stops without an automatic retry.
23
-
24
- The Evidence broker executes only the sealed run index from its own readiness stage. A repository-authored obligation, declarative index, guessed digest path, or remembered run filename is not executable Evidence input.
25
-
26
- Use a capability whose declared observations cover the criterion: browser automation for rendered web behavior, the built binary for CLI, real requests for API/backend, and simulator launch plus exercised flow for iOS. If tooling is unavailable, preserve the typed blocker, request approval when appropriate, and pause. Do not replace it with a weaker method that observes different facts.
@@ -1,86 +0,0 @@
1
- ---
2
- name: planr-plan
3
- description: Create or refine Planr product plans and build plans before implementation. Use for app ideas, PRDs, architecture slices, scoped implementation contracts, and converting broad work into map-ready items.
4
- ---
5
-
6
- # Planr Plan
7
-
8
- Read and apply the canonical [Evidence ownership guard](../planr/SKILL.md#evidence-ownership-guard) before product planning.
9
-
10
- Use this when scope, ownership, acceptance criteria, or verification must be defined before implementation.
11
-
12
- ## Workflow
13
-
14
- ```bash
15
- planr project show --json
16
- planr plan new "App idea" [--platform web] [--ai] [--backend]
17
- planr plan refine <plan-id> --note "decision, constraint, or assumption"
18
- planr plan check <plan-id>
19
- planr plan split <plan-id> --slice "narrow implementation slice"
20
- planr map build --from <build-plan-id>
21
- ```
22
-
23
- ## Product Plan Standard
24
-
25
- A product plan package must include:
26
-
27
- - manifest;
28
- - product spec;
29
- - UX flows;
30
- - design system;
31
- - architecture;
32
- - ADRs;
33
- - AI spec when relevant;
34
- - safety/privacy/security;
35
- - API/data model;
36
- - client and backend implementation specs;
37
- - observability;
38
- - QA;
39
- - release readiness;
40
- - executable tasks;
41
- - references.
42
-
43
- ## Build Plan Standard
44
-
45
- A build plan must include:
46
-
47
- - source plan;
48
- - a non-empty `criteria` frontmatter list whose entries contain only a stable `id` and `title`;
49
- - scope decision;
50
- - ownership target;
51
- - existing leverage;
52
- - phases;
53
- - out of scope;
54
- - verification;
55
- - acceptance criteria.
56
-
57
- Author criterion identity only in frontmatter, for example:
58
-
59
- ```yaml
60
- criteria:
61
- - id: criterion-api-health
62
- title: API health is observable from the target service
63
- ```
64
-
65
- Keep the `## Acceptance Criteria` section as readable narrative, never an identity source. Do not infer criterion IDs from prose or decide obligation completeness in this skill; `plan check`, explicit Evidence migration, and the canonical `app/proof` authority own those decisions.
66
-
67
- ## Route-Aware Tagging
68
-
69
- Before writing the task list, check whether the project declares model routing: `planr agents list --json`. If routes exist, their `work_type` selectors are the project's use-case vocabulary (e.g. `frontend`, `backend`, `design`) — and tagging is your job, not the user's; never ask a human to name work types.
70
-
71
- Declare the use case in the task list itself — `map build` seeds annotated tasks with that work type directly:
72
-
73
- ```markdown
74
- ### TASK-001 (backend): REST API for todos
75
- - [ ] (frontend) Build the form and list view
76
- ```
77
-
78
- Match by the task's actual work (UI/components/styling -> a `frontend` route, API/server/storage -> `backend`, and so on); unannotated tasks stay `code`, which the default route covers. For maps that were already built without annotations, retag instead: `planr item update <item-id> --work-type frontend`. The payoff: every pick packet then carries the right profile, model, and paired skill for its use case, so dispatch needs no human routing knowledge.
79
-
80
- ## Done
81
-
82
- Planning is complete only when `planr plan check <plan-id>` passes and the next command is clear: split further, build map, or ask the user for a blocking decision.
83
-
84
- When the map is built, linked, and tagged, end by naming the execution handoff explicitly — the user should never have to guess the next prompt: `Use $planr-loop on plan <build-plan-id>. Stop condition: all items closed, canonical Evidence coverage holds, and any explicitly required material reviews are complete.` (On hosts with a /goal primitive, `$planr-goal` wraps the same loop for long-running autonomous runs.)
85
-
86
- `plan check` rejects empty scaffolds: build plans need a valid unique `criteria` frontmatter list plus content in `## Scope Decision`, `## Verification`, and `## Acceptance Criteria`; product plans must have content in `## Problem`, `## Requirements`, and `## Success Criteria` of `PRODUCT_SPEC.md`. Write those sections before checking — do not pad them to satisfy the gate.
@@ -1,55 +0,0 @@
1
- ---
2
- name: planr-review
3
- description: Review a Planr item or scoped implementation against map state, plan acceptance criteria, logs, changed files, and verification evidence. Use for findings-first audits and review gates.
4
- ---
5
-
6
- # Planr Review
7
-
8
- Use this when a task needs a correctness and completion audit.
9
-
10
- ## Workflow
11
-
12
- Export your checker identity once per session so the lease attributes to you:
13
-
14
- ```bash
15
- export PLANR_WORKER_ID=checker-1
16
- planr --json pick --work-type review
17
- ```
18
-
19
- `--work-type review` leases only durable ReviewGates, so a checker never accidentally takes maker work. Continue only when `work_packet.kind` is `review_gate`; read the gate, FeatureRun, responsible maker, attempts, findings, phase, budget, and source revision from its canonical `execution_state`. Add `--plan <plan-id>` when your dispatch names a plan so the lease stays inside that scope. Use `planr review show <review-gate-id> --json`, `planr review evidence <scope-item-id> --json`, or `planr trace item <scope-item-id> --json` only for deeper reads.
20
-
21
- Require `planr.execution_state.v2` and treat its budget projection as opaque. Skills must not recompute budget policy or reinterpret provenance, reserves, digest, or deadline.
22
-
23
- Inspect the actual changed files and acceptance criteria, then independently judge whether the evidence proves them. When the repository owns a versioned verification policy, verify the logged receipt against its exact source revision, policy digest, changed-file digest, selected gates, command results, and artifact digests. Use the repository's receipt validator (for this repository, `npm run verification:verify -- --receipt <path> --base <base-revision> --head <source-revision>`), not a visual read of JSON.
24
-
25
- Replay only evidence that is cheap, missing, failing, or explicitly high-risk. An already-green expensive check bound to the reviewed source is normally validated from its receipt rather than rerun. Receipt validation does not replace judgment: inspect the diff for security, correctness, scope, and acceptance-criteria gaps, and record a finding when the policy selection or receipt is inadequate. Then close the ReviewGate exactly once:
26
-
27
- ```bash
28
- planr review close <review-gate-id> --verdict complete --reviewer <your-id>
29
- ```
30
-
31
- `--reviewer` records the independent checker identity on the immutable attempt and event. An accepted risk checkpoint resumes the responsible maker's FeatureRun; an accepted final product gate completes the FeatureRun. A second close without a fresh leased gate fails — never retry a close that succeeded.
32
-
33
- or:
34
-
35
- ```bash
36
- planr review close <review-gate-id> --verdict not-complete --reviewer <your-id> --findings "specific actionable finding"
37
- ```
38
-
39
- ## Findings Rules
40
-
41
- - Findings must be specific and actionable.
42
- - Missing tests are findings when acceptance criteria need proof.
43
- - A stale, mismatched, unvalidated, or insufficiently scoped receipt is a finding.
44
- - Architecture or ownership drift is a finding when it creates duplicate policy or state owners.
45
- - If evidence is insufficient, use `--verdict unclear` rather than complete.
46
- - Deployment remains gated by explicit approval and a bounded live oracle where applicable. A successful live smoke does not by itself require another broad build or a second full review; replay it only under the same cheap/missing/failing/explicitly-high-risk rule.
47
-
48
- ## Independent Identity
49
-
50
- ReviewGate closure requires a reviewer identity distinct from the responsible maker and matching the active reviewer lease. Keep one `PLANR_WORKER_ID` per agent instance and always pass `--reviewer <id>` when shell exports do not survive between tool calls. Never manufacture independence by changing identities inside one agent instance.
51
-
52
- ## Completion Rule
53
-
54
- The FeatureRun may complete only after its required ReviewGates are accepted. Use the FeatureRun and ReviewGate projections as the source of truth.
55
- Pending or denied approval is also a close blocker; treat an attempted close through that gate as a finding, not as completion.
@@ -1,52 +0,0 @@
1
- ---
2
- name: planr-status
3
- description: Report honest Planr project, map, item, or review state without implementing changes. Use when the user asks what is done, what remains, what is blocked, what is ready, or what should be picked next.
4
- ---
5
-
6
- # Planr Status
7
-
8
- Use read-only Planr commands first:
9
-
10
- ```bash
11
- planr project show --json
12
- planr map show --json
13
- planr map lane --critical
14
- planr map pressure
15
- ```
16
-
17
- For one item:
18
-
19
- ```bash
20
- planr trace item <item-id>
21
- planr log list --item <item-id>
22
- ```
23
-
24
- For active work, include runtime and approval state from `trace item`, `map status`, or:
25
-
26
- ```bash
27
- planr approval list --open
28
- planr pick stale --older-than-seconds 900
29
- ```
30
-
31
- ## Goal Contract Check
32
-
33
- When a loop or `/goal` run asks whether its stop condition holds, use the one-call verdict:
34
-
35
- ```bash
36
- planr plan audit <plan-id> --json
37
- planr evidence readiness --scope plan --id <plan-id>
38
- planr evidence explain --scope plan --id <plan-id>
39
- ```
40
-
41
- Audit answers `holds: true/false` from settled outcomes, explicitly required independent material ReviewGates, approvals, and canonical Evidence coverage. Binding Evidence success does not require a final product ReviewGate. Readiness reports configuration/runtime blockers before execution; explain reports exact receipt applicability and gaps. Report `contract holds` or `contract open` plus the exact unmet clauses straight from these outputs. Use `planr search "GOAL CONTRACT"` only to read the contract text itself.
42
-
43
- ## Verdicts
44
-
45
- Use one:
46
-
47
- - `complete`: closed with evidence and no open required child/review/approval work.
48
- - `in progress`: concrete work remains and the next step is available.
49
- - `blocked`: progress needs an external decision or prerequisite.
50
- - `unclear / partially verified`: evidence is incomplete or inconsistent.
51
-
52
- Never treat checked Markdown boxes or optimistic summaries as proof. Map state and log evidence decide.
@@ -1,30 +0,0 @@
1
- ---
2
- name: planr-summary
3
- description: Summarize a Planr scope after work, review, or status inspection. Use when the user wants what changed, why, what works now, verification evidence, and what remains.
4
- ---
5
-
6
- # Planr Summary
7
-
8
- Build the summary from current Planr evidence:
9
-
10
- ```bash
11
- planr map show --json
12
- planr plan audit <plan-id> --json
13
- planr trace item <item-id>
14
- planr log list --item <item-id>
15
- ```
16
-
17
- ## Output
18
-
19
- Include:
20
-
21
- - scope;
22
- - what changed;
23
- - why;
24
- - what works now;
25
- - verification commands and results;
26
- - open blockers or unverified items;
27
- - any explicitly required material ReviewGate state when the summary is plan-scoped;
28
- - next recommended Planr command.
29
-
30
- If completion is not proven, say so directly and recommend `planr-status` or `planr-work`; recommend `planr-review` only when an explicit material ReviewGate is open.
@@ -1,67 +0,0 @@
1
- ---
2
- name: planr-task-graph
3
- description: Coordinate Planr plans, map dependencies, leases, evidence, approvals, reviews, handoffs, and interruption recovery.
4
- ---
5
-
6
- # Planr Task Graph
7
-
8
- Read and apply the canonical [Evidence ownership guard](../planr/SKILL.md#evidence-ownership-guard) before product graph preparation or making.
9
-
10
- Use Planr as the canonical local coordinator. Markdown plans own scope and narrative; the map is the source of truth for live items, links, picks, approvals, logs, reviews, and closure.
11
-
12
- Evaluation subcommands run only when the user explicitly requests them, the selected item's acceptance criteria require them, or the maintainer release workflow invokes them. Never invoke them as routine or opportunistic goal, loop, or task-graph work.
13
-
14
- ## Inspect And Work
15
-
16
- Before changes:
17
-
18
- ```bash
19
- planr project show --json
20
- planr map show --json
21
- planr map lane --critical
22
- planr map pressure
23
- ```
24
-
25
- If missing, initialize the project and run `planr doctor --client all`.
26
-
27
- Work one item at a time:
28
-
29
- ```bash
30
- planr pick --json
31
- planr done <item-id> --summary "<outcome and decisive result>" \
32
- --files <path> --cmd "<build or live command>" \
33
- --tests "<test command>"
34
- ```
35
-
36
- Continue only from the typed packet you were authorized to perform. Makers consume `work_packet.kind: "outcome"`; `mode: "finding_repair"` repairs named findings on the same ReviewGate without a fix item, and `kind: "hold"` stops. Read lifecycle state only from `work_packet.execution_state`.
37
-
38
- Require `planr.execution_state.v2`. Its budget projection is opaque; skills must not recompute budget policy or replace supplied consumed, reserved, protected, available, provenance, digest, or deadline values.
39
-
40
- Every closure must be evidence-backed: changed files through `--files`, commands through `--cmd`, tests through `--tests`, remaining risk through context or findings, and a `planr review` outcome only when an explicit material ReviewGate exists. Plain `planr done` is the standard outcome settlement. Branch on the returned `work_packet.transition` and `work_packet.kind`: continue only for another compatible outcome; stop for a ReviewGate, verification packet, hold, incompatible ownership or scope, or an empty pick. Use `--escalate <reason>` only for an allowed intentional override, always with `--escalation-ref <stable-reference>` and `--escalation-explanation <why-the-override-is-required>`; never use escalation to replace computed materiality. Keep longer work current with `planr pick progress`, `pause`, and `resume`.
41
-
42
- ## Plans And Dependencies
43
-
44
- Create/refine/check the plan, expand it into independently verifiable tasks, then `planr map build --from <plan-id>`. Annotate routed work types before mapping or retag afterward.
45
-
46
- Create ordering explicitly with `planr link add <earlier> <later> --type blocks`; readiness comes from graph state, not Markdown checkboxes. Validate generated order and remove only incorrect links. Use `planr item breakdown <parent> --into <child>...` for a parent gate; later top-level work depends on the parent, which rolls up after children settle.
47
-
48
- ## Reviews And Approvals
49
-
50
- Plain `planr done` settles outcome evidence and lets FeatureRun materiality open or reuse a durable ReviewGate. Close a leased gate with `planr review close <review-gate-id> --verdict complete --reviewer <reviewer-id>`. Findings use `--verdict not-complete`; Planr appends an attempt and durable findings to that same gate. The responsible maker repairs the named findings and resolves them with `planr review findings <review-gate-id> --resolve <finding-id>` before re-review.
51
-
52
- Human gates use `planr approval request <item-id> --reason <reason>`. Never close with an open or denied approval.
53
-
54
- ## Handoff And Recovery
55
-
56
- Use item notes for nearby handoff and contexts for reusable decisions. Logs are evidence, not chat summaries.
57
-
58
- After interruption inspect Git status, map state, then:
59
-
60
- ```bash
61
- planr trace item <item-id>
62
- planr log list --item <item-id>
63
- planr context list --item <item-id>
64
- planr pick stale --older-than-seconds 900
65
- ```
66
-
67
- Release stale ownership only after inspection. Do not claim completion until children and explicitly required material reviews are closed, approvals are clear, verification commands ran, findings became settled follow-up work, and the user-facing summary matches Planr state.
@@ -1,62 +0,0 @@
1
- ---
2
- name: planr-verify-web
3
- description: Frozen-source live verification for a web FeatureRun. Consumes a canonical verification work packet, uses the configured Evidence capability, and records trusted proof without editing product source.
4
- ---
5
-
6
- # Planr Verify Web
7
-
8
- Prove the frozen feature runs. Planr owns the evidence contract and capability selection; the host executes the configured method. Never install or configure browser infrastructure on behalf of this skill.
9
-
10
- ## Run The Typed Verification Packet
11
-
12
- Keep verification in the coordinator. Use one stable worker identity that differs from the responsible maker. Do not spawn another model.
13
-
14
- ```bash
15
- PLANR_WORKER_ID="coordinator-verifier-1" planr evidence verify --scope plan --id <plan-id> --json
16
- ```
17
-
18
- This command leases verification, probes readiness, seals the run index, executes the configured adapter, evaluates coverage, and settles the FeatureRun. Product source is read-only. Only Planr runtime state, receipts, logs, and artifacts may change.
19
-
20
- Require `planr.execution_state.v2`; its budget and absolute deadline are opaque supplied authority. Skills must not recompute budget policy. If the selected adapter cannot honor required capability or the packet is held, stop with that exact classification.
21
-
22
- If readiness is blocked, do not choose another unregistered tool or downgrade the observation. The FeatureRun enters a capability hold. Report the returned gap and `next_action`, then stop. Repair the policy, schema, adapter digest, runtime registration, or permissions before you run the same verify command again.
23
-
24
- ## Target Lifecycle
25
-
26
- The configured Evidence adapter owns target startup, connection, and cleanup. Do not manually start a duplicate browser or application process unless the sealed work packet explicitly declares an externally managed target.
27
-
28
- ## Run The Verification
29
-
30
- Exercise the flow the item changed — not the homepage. Interact and assert on the required rendered output. Capture a screenshot only for a visual criterion or failure diagnostics.
31
-
32
- Use only the repository capability selected by the active obligation. Read `object.coverage`, `object.feature_run_verification_settlement`, and `object.verification_broker` from the verify result. Do not issue per-criterion coverage or explain commands on the normal path. They are diagnostic commands for a known gap, and `--scope criterion` accepts a criterion id, never a requirement id.
33
-
34
- The observation contract decides what must be proved. Native Browser, CDP, Playwright, Computer Use, and HTTP probes are configurable methods, not interchangeable fallbacks. HTTP can prove an HTTP criterion but cannot satisfy rendered interaction, persistence, accessibility, console, or visual observations it never captured. `planr evidence verify` checks the canonical `SOURCE_PATHS` digest inside the transaction. A mismatch records a failed non-covering attempt and commits zero trusted receipts.
35
-
36
- Attach screenshots or traces as artifacts on the item:
37
-
38
- ```bash
39
- planr artifact add "verify-web screenshot" --item <item-id> --path <screenshot-path> --kind screenshot
40
- planr artifact add "verify-web recording" --item <item-id> --path <recording.mp4> --kind video
41
- ```
42
-
43
- The replay contract and trusted method identity are mandatory. A successful bounded live verification closes a Binding Evidence FeatureRun directly when all ordinary outcomes and coverage are settled. It does not trigger another model, reviewer, build, or bookkeeping gate. An explicitly required material ReviewGate remains independent of this normal closure path.
44
-
45
- For a deployment oracle, require an approved deployment decision before the deploy begins. After deployment, keep the live check bounded to the changed routes, content, or interaction and record the deployed source/receipt identity in the summary.
46
-
47
- ## When Verification Is Impossible
48
-
49
- If no configured capability is available or the runtime is unreachable, do not fake Evidence or downgrade it. The broker records the capability hold. Preserve that exact classification.
50
-
51
- ```bash
52
- planr evidence verify --scope plan --id <plan-id> --json
53
- planr context add "verification hold: <readiness gap code and capability>" --tag blocker
54
- ```
55
-
56
- Then stop until the reported capability contract is repaired. A manual approval cannot convert a missing capability into trusted Evidence.
57
-
58
- ## Outcome
59
-
60
- - Pass: the same `evidence verify --json` result reports satisfied plan coverage and a complete FeatureRun settlement. Do not call `planr done`; the implementation outcome was already settled before source freeze.
61
- - Product failure: Planr routes a product finding back to the responsible maker. The maker receives an outcome repair packet and fixes only the finding. The coordinator then re-freezes the source and calls `evidence verify` for only invalidated Evidence.
62
- - Verifier or environment failure: record the non-covering attempt and stop immediately. Do not retry, create a new verifier lease, or open an ad hoc ReviewGate. A later run is allowed only after the reported capability or environment state has materially changed.
@@ -1,93 +0,0 @@
1
- ---
2
- name: planr-work
3
- description: Execute one Planr outcome item to evidence-backed settlement in its FeatureRun. Use after code work has been picked or when the next step is implementation, docs, tests, scripts, integration work, or finding repair.
4
- ---
5
-
6
- # Planr Work
7
-
8
- Before product implementation that requires binding Evidence, inspect the
9
- repository's existing Evidence policy and configured capability. If either is
10
- absent, record the exact gap code, capability, and next action, then stop. Do not
11
- create or weaken verification infrastructure to bypass the hold unless repairing
12
- that infrastructure is the explicit task.
13
-
14
- Use this for one picked item at a time.
15
-
16
- ## Workflow
17
-
18
- Export your worker identity once per session so picks, logs, and heartbeats attribute to you instead of `client:host:user`:
19
-
20
- ```bash
21
- export PLANR_WORKER_ID=maker-1
22
- planr pick --json
23
- ```
24
-
25
- The pick output is one flat typed packet. Branch only on `work_packet.kind` and, for outcome work, optional `work_packet.mode`; read lifecycle facts only from `work_packet.execution_state`. `kind: "outcome"` with an item id is ordinary maker work. `kind: "outcome", mode: "finding_repair"` has no synthetic fix item: repair the named findings on the same ReviewGate, log evidence against the gate's scoped outcome, resolve those finding ids, and stop for re-review. `kind: "hold"` is a stop, not permission to replace the maker or bypass policy. Each fact appears once; a missing key means "empty". No separate `trace item` call is needed. Add `--work-type code` to lease only outcome work while checker agents lease ReviewGates, and `--plan <plan-id>` when your dispatch names a plan. A null pick explains itself with a reason, remaining snapshot, exclusions, and a repair command when applicable. Read the linked plan/context, implement the smallest correct slice, then finish ordinary outcome work in one command:
26
-
27
- Require `work_packet.execution_state.schema_version` to be `planr.execution_state.v2`. Treat its `budget` object—including consumed, reserved, protected, available, provenance, contract digest, and absolute task deadline—as opaque runtime authority. Skills must not recompute budget policy; a hold or unavailable required value is a stop.
28
-
29
- ```bash
30
- planr done <item-id> --summary "what changed" --files path-a --files path-b --cmd "exact verification command" --tests "exact test command" --next
31
- ```
32
-
33
- Use `--next` when the dispatch authorizes a compatible same-plan maker run. Settlement, the internal three-outcome batch rollover, and the next plan-scoped code lease then happen atomically. Omit `--next` for a standalone outcome.
34
-
35
- Before choosing ad hoc checks, inspect the repository's versioned verification policy. When it supplies a runner, use that runner once for the changed-file set and preserve its exact-source receipt. For this repository the canonical flow is:
36
-
37
- ```bash
38
- npm run verification:run -- --receipt .planr/receipts/<name>.json --base <base-revision> --head <source-revision>
39
- npm run verification:verify -- --receipt .planr/receipts/<name>.json --base <base-revision> --head <source-revision>
40
- ```
41
-
42
- Record the receipt path, digest, source revision, selected profile/gates, and copy-paste replayable validation command in the completion evidence. Do not manually add broader suites that the selected policy does not require, and do not rerun an expensive green gate merely to hand work to the reviewer.
43
-
44
- Before relying on materiality outcomes, confirm the project has selected a committed `.planr/policy.toml`. Missing policy is fail-closed and may require review, but it is not an efficiency baseline; dogfood maker runs should use the repository policy profile and `planr done --next` so materiality, not unconditional escalation, decides.
45
-
46
- Put build/serve commands in `--cmd` and test runs in `--tests` — both are recorded as evidence. When the pick packet carries a `routing` block, also report the registry profile you actually ran on: add `--profile <profile-id>` to `done`/`log add`, or export `PLANR_PROFILE` once per session. It is part of the evidence — a mismatch with the declared route is advisory (never blocks the close) and surfaces in `planr trace item` so silent host overrides get caught. Include the decisive output line in `--summary` (e.g. "12 tests passed", "GET /videos returned 3 entries"): reviewers see your recorded command strings, not your terminal, so the summary must carry what you observed, not just what you ran. Single-quote `--files` values that contain `$` (route files like `watch.$videoId.tsx`), or the shell expands them before planr sees them. `done --next` is the standard settlement path inside an authorized compatible maker run: Planr records the completion once, lets FeatureRun materiality decide whether to interrupt, atomically rolls an internal capped batch for the same maker when required, and leases only compatible code work from the same plan. Plain `done` settles a standalone outcome without leasing more work. Intentional escalation beyond computed materiality uses `--escalate <reason>` with `--escalation-ref` and `--escalation-explanation`. If settlement returns a review gate or reports `materiality.effective_review.required: true`, stop; the FeatureRun is waiting on that gate. If settlement returns `next.reason: "verification_handoff_source_frozen"`, stop: source is frozen and the response carries the exact `commands.verify` command for the coordinator. Running `done` on a ready outcome you never picked adopts it under your worker id. The response reports the FeatureRun transition and what the settlement unlocked. Do not add a second ordinary `log add` after `done`; the settlement already persisted the completion log.
47
-
48
- Binding verification (browser flow, executed binary, real requests) must produce a trusted Evidence receipt and coverage verdict. During a compatible multi-outcome maker run, implementation settlement uses the repository's ordinary changed-file checks and `planr done --next`; it must not run Evidence or an opportunistic browser smoke while later compatible outcomes can still change the source. Planr caps each internal ExecutionBatch at three outcomes and rolls it for the same maker inside `done --next`; that boundary is not a reason to wake the root or reload skills. Keep the same maker through stable source freeze. Write a compact durable handoff only when the run stops for a material review, incompatible ownership, a blocker, an empty pick, a budget boundary, or stable source freeze. After source freeze, the invoking loop session becomes the coordinator and runs the handoff packet's exact `commands.verify` command under an identity that differs from the maker. Do not spawn a verifier model. The Evidence broker executes the configured adapter and checks the canonical `SOURCE_PATHS` digest before any trusted receipt commit. Product findings route back to the responsible maker. After repair, the coordinator re-freezes and calls `evidence verify` again. The only exception is a material review that requires an affected exact-source criterion before more implementation. Record that boundary and stop for its review.
49
-
50
- ```bash
51
- planr evidence verify --scope plan --id <plan-id> --json
52
- ```
53
-
54
- Only the coordinator runs this command after source freeze. The configured method must be replayable: use a real shell command, host capture, or committed verifier, never prose such as "start server; curl /; check stats". The result includes plan coverage and FeatureRun settlement. Criterion-scoped coverage and explain are diagnostic only and require a criterion id, not a requirement id. `planr log add` remains useful for narrative handoffs, but a free-form `kind=verification` claim has no binding closure authority.
55
-
56
- Log persistent evidence, not transient noise: a failure you immediately fixed belongs in the final log's narrative, not as a standalone failure log. Only record a failure separately when it blocks the item.
57
-
58
- Evidence logging refreshes the heartbeat automatically — a separate `planr pick heartbeat` is only needed for long silent stretches without logs.
59
-
60
- Finding-repair packets use the granular evidence command because they have no outcome item to settle:
61
-
62
- ```bash
63
- planr log add --item <item-id> --summary "..." --files a --files b --cmd "..."
64
- ```
65
-
66
- For longer work, keep runtime state current:
67
-
68
- ```bash
69
- planr pick progress <item-id> --percent 50 --note "tests running"
70
- planr pick pause <item-id> --note "waiting for human input"
71
- planr pick resume <item-id>
72
- ```
73
-
74
- If a human approval gate is required, request it before close and wait for an approved decision:
75
-
76
- ```bash
77
- planr approval request <item-id> --reason "release approval"
78
- planr approval list --open
79
- ```
80
-
81
- Deployment is always such a gate: obtain approval before deployment and record a bounded live oracle afterward. Keep that oracle on the same coherent FeatureRun/ReviewGate boundary; a successful smoke does not automatically require another full build or gate replay.
82
-
83
- ## Rules
84
-
85
- - Do not work on multiple picked items unless the user explicitly asks.
86
- - Do not close without evidence.
87
- - Do not confuse item completion evidence with frozen-source binding Evidence. Defer binding Evidence until source freeze unless a material review requires it.
88
- - Do not create workflow-only repair items for a failed review. Repair the named findings under the responsible maker, resolve their ids on the same ReviewGate, and return that gate to re-review.
89
- - Do not call `planr done` for a finding-repair packet that has no item. Log the repair on the ReviewGate's scoped outcome, then use `planr review findings <gate-id> --resolve <finding-id>`.
90
- - Do not close items with pending or denied approval.
91
- - Use `planr context add ... --item <item-id>` for discoveries another client needs.
92
- - Use `planr pick stale --older-than-seconds 900` before resetting abandoned ownership.
93
- - Use `planr pick release <item-id> --force` only when ownership must be reset.