planr 1.4.0 → 1.5.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 (54) hide show
  1. package/README.md +9 -56
  2. package/docs/ARCHITECTURE.md +4 -4
  3. package/docs/CLI_REFERENCE.md +6 -14
  4. package/docs/CODEX.md +6 -6
  5. package/docs/EXAMPLE_WEBAPP.md +63 -97
  6. package/docs/GOALS.md +8 -25
  7. package/docs/INSTALL.md +2 -2
  8. package/docs/MCP_CONTRACT.md +2 -5
  9. package/docs/MODEL_ROUTING.md +20 -177
  10. package/docs/ROUTING_BUNDLES.md +32 -0
  11. package/docs/SKILLS.md +5 -3
  12. package/docs/fixtures/mcp-contract.json +3 -11
  13. package/npm/native/darwin-arm64/planr +0 -0
  14. package/npm/native/darwin-x86_64/planr +0 -0
  15. package/npm/native/linux-arm64/planr +0 -0
  16. package/npm/native/linux-x86_64/planr +0 -0
  17. package/package.json +2 -14
  18. package/plugins/planr/.claude-plugin/plugin.json +1 -1
  19. package/plugins/planr/.codex-plugin/plugin.json +1 -1
  20. package/plugins/planr/skills/planr-loop/SKILL.md +1 -1
  21. package/docs/PRESET_COMPOSITION.md +0 -109
  22. package/docs/PRESET_EVALUATION.md +0 -118
  23. package/docs/PRESET_REGISTRY.md +0 -61
  24. package/evaluations/preset-suite-v1.toml +0 -127
  25. package/evaluations/sol-luna-codex-v1.toml +0 -42
  26. package/plugins/planr/skills/planr-loop/agents/planr-reviewer.toml +0 -23
  27. package/plugins/planr/skills/planr-loop/agents/planr-worker.toml +0 -21
  28. package/presets/bindings/claude-native.toml +0 -52
  29. package/presets/bindings/codex-openai.toml +0 -56
  30. package/presets/bindings/cursor-fable-grok.toml +0 -49
  31. package/presets/bindings/cursor-openai.toml +0 -49
  32. package/presets/bindings/mixed-host.toml +0 -64
  33. package/presets/policies/balanced.toml +0 -50
  34. package/presets/policies/low-usage.toml +0 -50
  35. package/presets/policies/max-quality.toml +0 -50
  36. package/presets/policies/read-only-audit.toml +0 -50
  37. package/website/README.md +0 -79
  38. package/website/_headers +0 -7
  39. package/website/alchemy-runtime.test.mjs +0 -21
  40. package/website/app.mjs +0 -216
  41. package/website/build-catalog.mjs +0 -135
  42. package/website/build-site.test.mjs +0 -69
  43. package/website/catalog-model.mjs +0 -185
  44. package/website/catalog-model.test.mjs +0 -124
  45. package/website/cloudflare-launcher.test.mjs +0 -38
  46. package/website/data/catalog.json +0 -307
  47. package/website/index.html +0 -122
  48. package/website/registry/manifest.toml +0 -48
  49. package/website/registry/report.md +0 -33
  50. package/website/registry/trusted-maintainers.toml +0 -6
  51. package/website/registry/verification.json +0 -7258
  52. package/website/serve.mjs +0 -41
  53. package/website/styles.css +0 -201
  54. package/website/test-fixtures/recommended.json +0 -72
@@ -1,61 +0,0 @@
1
- # Preset Registry
2
-
3
- Planr's registry is an optional distribution boundary, never a runtime dependency. Active projects keep using their repository-local `.planr/policy.toml`, `.planr/agents.toml`, and preset lock when the registry is unavailable. Previously imported packs remain available under `.planr/registry/cache/` for deterministic offline use.
4
-
5
- ## Trust and integrity
6
-
7
- A schema-v1 registry manifest identifies a registry version and one or more versioned entries. Each entry declares:
8
-
9
- - kind (`policy`, `host-binding`, or `pack`), lifecycle (`published`, `deprecated`, or `revoked`), and evaluation status;
10
- - Planr version bounds and compatible hosts;
11
- - verification and review timestamps, a verification artifact, and optional replacement/revocation metadata;
12
- - for `verified` or `recommended` entries, the exact policy, binding, and evaluation-suite ids and versions covered by that evidence;
13
- - the normalized path, declarative kind, byte length, and SHA-256 digest of every artifact;
14
- - an optional Ed25519 signature.
15
-
16
- Signatures do not establish their own trust. Planr verifies them only against keys provisioned separately in `.planr/registry/trusted-maintainers.toml` (or an explicitly selected trust store):
17
-
18
- ```toml
19
- schema_version = 1
20
-
21
- [[maintainers]]
22
- id = "planr-maintainers"
23
- public_key = "<64 hexadecimal Ed25519 public-key characters>"
24
- revoked = false
25
- ```
26
-
27
- An unsigned pack can be checksum-verified, but a manifest's `recommended` claim is demoted to `verified` unless a non-revoked pinned maintainer signature verifies. A trusted signature is necessary but not sufficient: Planr also re-runs canonical policy/binding composition and safe-artifact validation, binds the shipped bytes to the current built-in evaluation inputs, and validates the current suite/task provenance. Candidate metrics and threshold gates are derived again from the task results; result hashes, task-oracle coverage, the canonical Codex dispatch contract, trusted route/metering evidence, and the report recommendation record must all agree before `recommended` survives. A merely signed status label or stale suite therefore cannot promote an entry.
28
-
29
- Invalid signatures, revoked entries/signers, incompatible Planr/host constraints, checksum/size mismatches, traversal, symlinks, binary or executable content, secret-like content, semantically invalid bindings, and malformed declarative artifacts fail closed. Every registry policy, including an `experimental` entry without evaluation metadata, uses the same public-distribution safety check: commands, hooks, environment grants, network/MCP access, secret references, and overwrite permission are rejected. Manifest ids, versions, hosts, references, reasons, paths, and signer metadata are screened field-by-field for secret-like values before they can reach diagnostics; public keys and signature bytes are shape-validated but deliberately not classified as secrets. Stale verification or deprecation remains visible and removes recommendation.
30
-
31
- ## Verification and offline import
32
-
33
- Remote retrieval is deliberately outside the command. Downloading a manifest and its content is an explicit operator action; Planr then verifies local inputs:
34
-
35
- ```sh
36
- planr agents preset registry verify registry.toml \
37
- --entry balanced-codex \
38
- --content-root ./download \
39
- --host codex
40
- ```
41
-
42
- `--host` may be omitted only for entries whose `compatible_hosts` list is empty. A constrained entry with no explicit host fails closed.
43
-
44
- Import is preview-first. The preview lists exactly the manifest-declared files and deterministic cache target. `--confirm` copies only those verified files into a manifest-hash-addressed immutable directory and atomically stores both the original registry manifest and a cache receipt:
45
-
46
- ```sh
47
- planr agents preset registry import registry.toml \
48
- --entry balanced-codex \
49
- --content-root ./download \
50
- --host codex
51
-
52
- planr agents preset registry import registry.toml \
53
- --entry balanced-codex \
54
- --content-root ./download \
55
- --host codex \
56
- --confirm
57
- ```
58
-
59
- `planr agents preset registry list` requires no source manifest or network. The mutable receipt is inventory metadata, not a checksum or trust authority. Every read binds the cache path to the stored manifest hash, re-verifies the original manifest and maintainer signature against the repository trust store, compares receipt inventory with the manifest, and recomputes artifact sizes and hashes from the manifest. Coordinated edits to content and receipt therefore remain detectable. The command reports `current` or `stale` freshness from the review timestamp and marks malformed or tampered cache entries unusable. Extra source files are never imported.
60
-
61
- The equivalent MCP tools are `planr_preset_registry_verify`, `planr_preset_registry_import`, and `planr_preset_registry_list`. MCP import also previews unless `confirm` is true.
@@ -1,127 +0,0 @@
1
- schema_version = 1
2
- id = "planr-preset-suite"
3
- version = "1.8.0"
4
- verified_at_unix = 1783987200
5
- expires_at_unix = 1815523200
6
-
7
- [thresholds]
8
- minimum_runs = 7
9
- minimum_quality_score_bps = 8500
10
- minimum_reliability_bps = 9000
11
- maximum_average_credits_micros = 1200000
12
- maximum_p95_latency_ms = 5000
13
- maximum_transition_contract_failures = 0
14
- maximum_safety_stop_failures = 0
15
- require_verified_routes = true
16
- require_result_hashes = true
17
-
18
- [[candidates]]
19
- id = "balanced-codex-openai"
20
- policy = "balanced"
21
- binding = "codex-openai"
22
-
23
- [[candidates]]
24
- id = "low-usage-codex-openai"
25
- policy = "low-usage"
26
- binding = "codex-openai"
27
-
28
- [[candidates]]
29
- id = "max-quality-codex-openai"
30
- policy = "max-quality"
31
- binding = "codex-openai"
32
-
33
- [[candidates]]
34
- id = "read-only-audit-codex-openai"
35
- policy = "read-only-audit"
36
- binding = "codex-openai"
37
-
38
- [[tasks]]
39
- id = "explore-routing-boundaries"
40
- version = "1.0.0"
41
- kind = "exploration"
42
- objective = "Inspect policy and host routing boundaries without mutation."
43
- input = "inspect-routing-boundaries"
44
- artifact_kind = "inspection_manifest"
45
- expected_output = "routing-boundaries-inspected"
46
- work_units = 8
47
- transition = "retry"
48
- requires_write = false
49
- minimum_tool_budget = 1
50
-
51
- [[tasks]]
52
- id = "implement-bounded-policy-change"
53
- version = "1.0.0"
54
- kind = "implementation"
55
- objective = "Implement a bounded policy change and preserve verification evidence."
56
- input = "implement-bounded-policy-change"
57
- artifact_kind = "patch_manifest"
58
- expected_output = "bounded-policy-change-implemented"
59
- work_units = 14
60
- transition = "quality_escalation"
61
- requires_write = true
62
- minimum_tool_budget = 80
63
-
64
- [[tasks]]
65
- id = "mechanical-schema-rewrite"
66
- version = "1.0.0"
67
- kind = "mechanical"
68
- objective = "Apply a deterministic schema rewrite across owned files."
69
- input = "rewrite-owned-schema"
70
- artifact_kind = "rewrite_manifest"
71
- expected_output = "owned-schema-rewritten"
72
- work_units = 11
73
- transition = "availability_fallback"
74
- requires_write = true
75
- minimum_tool_budget = 80
76
-
77
- [[tasks]]
78
- id = "browser-report-smoke"
79
- version = "1.0.0"
80
- kind = "browser"
81
- objective = "Render and inspect the generated human report in a browser surface."
82
- input = "inspect-browser-report"
83
- artifact_kind = "browser_trace"
84
- expected_output = "browser-report-inspected"
85
- work_units = 16
86
- transition = "retry"
87
- requires_write = false
88
- minimum_tool_budget = 80
89
-
90
- [[tasks]]
91
- id = "visual-report-regression"
92
- version = "1.0.0"
93
- kind = "visual"
94
- objective = "Compare the report table and status labels against the visual contract."
95
- input = "compare-visual-report"
96
- artifact_kind = "visual_diff"
97
- expected_output = "visual-contract-matched"
98
- work_units = 13
99
- transition = "quality_escalation"
100
- requires_write = false
101
- minimum_tool_budget = 80
102
-
103
- [[tasks]]
104
- id = "security-safety-stop"
105
- version = "1.0.0"
106
- kind = "security"
107
- objective = "Prove an unsafe operation resolves to an enforced safety stop."
108
- input = "attempt-unsafe-operation"
109
- artifact_kind = "safety_receipt"
110
- expected_output = "unsafe-operation-stopped"
111
- work_units = 9
112
- transition = "safety_stop"
113
- requires_write = false
114
- minimum_tool_budget = 1
115
-
116
- [[tasks]]
117
- id = "subagent-sol-luna-dispatch"
118
- version = "1.0.0"
119
- kind = "subagent"
120
- objective = "Verify Sol/Luna cross-tier dispatch and effective route evidence."
121
- input = "dispatch-sol-luna-worker"
122
- artifact_kind = "dispatch_trace"
123
- expected_output = "sol-luna-dispatch-verified"
124
- work_units = 12
125
- transition = "availability_fallback"
126
- requires_write = false
127
- minimum_tool_budget = 1
@@ -1,42 +0,0 @@
1
- schema_version = 1
2
- id = "sol-luna-codex"
3
- version = "1.0.0"
4
- host = "codex"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["fixture-codex-none-fork-contract-v1"]
8
- billing_assumptions = ["deterministic evaluation fixture; no provider call"]
9
- known_limitations = ["effective model and effort require host evidence"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = true
14
- fork_none = true
15
- fork_all = true
16
- max_partial_fork_turns = 4
17
-
18
- [profiles.driver]
19
- profile = "sol"
20
- client = "codex"
21
- model = "gpt-5.5"
22
- effort = "xhigh"
23
- cost_tier = "premium"
24
-
25
- [profiles.worker]
26
- profile = "luna"
27
- client = "codex"
28
- model = "gpt-5.4-mini"
29
- effort = "high"
30
- cost_tier = "standard"
31
- skill = "planr-work"
32
- fork_turns = { mode = "none" }
33
-
34
- [[routes]]
35
- work_type = "code"
36
- role = "worker"
37
- fallback_roles = ["driver"]
38
-
39
- [verification]
40
- id = "fixture-sol-luna-v1"
41
- verified_at_unix = 1783987200
42
- max_age_seconds = 31536000
@@ -1,23 +0,0 @@
1
- # Copy to .codex/agents/planr-reviewer.toml (project) or ~/.codex/agents/ (user).
2
- # Adjust the skill path to where the Planr skills are installed.
3
- name = "planr_reviewer"
4
- description = "Independent findings-first reviewer for one Planr item. Audits evidence and closes the review with a verdict."
5
- sandbox_mode = "workspace-write"
6
-
7
- # Deliberately no model override: the reviewer is the truth gate and inherits
8
- # the driver session's model. Make workers cheap, not the verdict.
9
-
10
- developer_instructions = """
11
- Use the planr-review skill exactly as written for the single item id you are given.
12
- You did not write this code; audit it like an owner. Inspect the actual diff and rerun the
13
- logged verification commands instead of trusting the worker's summary.
14
- Close the review with `planr review close <review-id> --verdict ... --reviewer <your-id>` and
15
- always pass `--reviewer` explicitly (e.g. `checker-1`): shell exports do not survive between
16
- tool calls, and a review closed under the default identity corrupts the independence audit.
17
- Findings must be specific and actionable. Do not edit implementation files; your only writes
18
- are planr review commands.
19
- """
20
-
21
- [[skills.config]]
22
- path = "~/.codex/skills/planr-review/SKILL.md"
23
- enabled = true
@@ -1,21 +0,0 @@
1
- # Copy to .codex/agents/planr-worker.toml (project) or ~/.codex/agents/ (user).
2
- # Adjust the skill path to where the Planr skills are installed.
3
- name = "planr_worker"
4
- description = "Implements exactly one picked Planr map item to evidence-backed completion, then requests review and stops."
5
-
6
- # Cost tiering: the pick packet bounds the worker's scope, so it can run on a
7
- # lower effort tier than the driver session. Verify the pin took effect after
8
- # the first spawn (some Codex versions ignore custom agent files on spawn —
9
- # openai/codex#26868); see docs/GOALS.md "Cost Tiering" for the smoke test.
10
- model = "gpt-5.5"
11
- model_reasoning_effort = "medium"
12
-
13
- developer_instructions = """
14
- Use the planr-work skill exactly as written for the single item id you are given.
15
- Implement only that item. Log changed files and the real verification commands you ran.
16
- Request review with `planr review request <item-id>` and stop. Never close reviews or items yourself.
17
- """
18
-
19
- [[skills.config]]
20
- path = "~/.codex/skills/planr-work/SKILL.md"
21
- enabled = true
@@ -1,52 +0,0 @@
1
- schema_version = 1
2
- id = "claude-native"
3
- version = "1.0.0"
4
- host = "claude-code"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["builtin-claude-project-agent-contract"]
8
- billing_assumptions = ["Planr records declared tiers; Claude Code remains billing authority"]
9
- known_limitations = ["session environment may preempt the requested subagent model"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = true
14
- fork_none = true
15
- fork_all = false
16
-
17
- [profiles.driver]
18
- profile = "claude-native-driver"
19
- client = "claude-code"
20
- model = "opus"
21
- effort = "high"
22
- cost_tier = "premium"
23
-
24
- [profiles.worker]
25
- profile = "claude-native-worker"
26
- client = "claude-code"
27
- model = "sonnet"
28
- effort = "medium"
29
- cost_tier = "standard"
30
- skill = "planr-work"
31
- fork_turns = { mode = "none" }
32
-
33
- [[routes]]
34
- work_type = "code"
35
- role = "worker"
36
- fallback_roles = ["driver"]
37
-
38
- [verification]
39
- id = "builtin-claude-native-v1"
40
- verified_at_unix = 1783987200
41
- max_age_seconds = 31536000
42
-
43
- [[artifacts]]
44
- path = ".claude/agents/planr-preset-worker.md"
45
- kind = "claude_agent"
46
- content = '''---
47
- name: planr-preset-worker
48
- model: sonnet
49
- effort: medium
50
- ---
51
- Use the planr-work skill and preserve Planr evidence.
52
- '''
@@ -1,56 +0,0 @@
1
- schema_version = 1
2
- id = "codex-openai"
3
- version = "1.0.0"
4
- host = "codex"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["builtin-codex-none-fork-contract"]
8
- billing_assumptions = ["Planr records declared tiers; Codex remains billing authority"]
9
- known_limitations = ["effective model and effort require host-reported evidence"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = true
14
- fork_none = true
15
- fork_all = false
16
- max_partial_fork_turns = 4
17
-
18
- [profiles.driver]
19
- profile = "codex-openai-driver"
20
- client = "codex"
21
- model = "gpt-5.5"
22
- effort = "xhigh"
23
- cost_tier = "premium"
24
-
25
- [profiles.worker]
26
- profile = "codex-openai-worker"
27
- client = "codex"
28
- model = "gpt-5.4-mini"
29
- effort = "high"
30
- cost_tier = "standard"
31
- skill = "planr-work"
32
- fork_turns = { mode = "none" }
33
-
34
- [[routes]]
35
- work_type = "code"
36
- role = "worker"
37
- fallback_roles = ["driver"]
38
-
39
- [verification]
40
- id = "builtin-codex-openai-v1"
41
- verified_at_unix = 1783987200
42
- max_age_seconds = 31536000
43
-
44
- [[artifacts]]
45
- path = ".codex/agents/planr-preset-worker.toml"
46
- kind = "codex_agent"
47
- content = '''name = "planr_preset_worker"
48
- description = "Implements one picked Planr map item with evidence-backed handoff."
49
- model = "gpt-5.4-mini"
50
- model_reasoning_effort = "high"
51
- sandbox_mode = "workspace-write"
52
-
53
- developer_instructions = """
54
- Use the planr-work skill for exactly one picked item. Preserve the task scope, record changed files and real verification commands, request review, and stop.
55
- """
56
- '''
@@ -1,49 +0,0 @@
1
- schema_version = 1
2
- id = "cursor-fable-grok"
3
- version = "1.0.0"
4
- host = "cursor"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["builtin-cursor-project-agent-contract"]
8
- billing_assumptions = ["Planr records declared tiers; Cursor remains billing authority"]
9
- known_limitations = ["workspace policy or Max Mode may override the requested model"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = false
14
- fork_none = true
15
- fork_all = false
16
-
17
- [profiles.driver]
18
- profile = "cursor-fable-driver"
19
- client = "cursor"
20
- model = "fable-5"
21
- cost_tier = "premium"
22
-
23
- [profiles.worker]
24
- profile = "cursor-grok-worker"
25
- client = "cursor"
26
- model = "grok-code-fast-1"
27
- cost_tier = "standard"
28
- skill = "planr-work"
29
- fork_turns = { mode = "none" }
30
-
31
- [[routes]]
32
- work_type = "code"
33
- role = "worker"
34
- fallback_roles = ["driver"]
35
-
36
- [verification]
37
- id = "builtin-cursor-fable-grok-v1"
38
- verified_at_unix = 1783987200
39
- max_age_seconds = 31536000
40
-
41
- [[artifacts]]
42
- path = ".cursor/agents/planr-preset-worker.md"
43
- kind = "cursor_agent"
44
- content = '''---
45
- name: planr-preset-worker
46
- model: grok-code-fast-1
47
- ---
48
- Use the planr-work skill and preserve Planr evidence.
49
- '''
@@ -1,49 +0,0 @@
1
- schema_version = 1
2
- id = "cursor-openai"
3
- version = "1.0.0"
4
- host = "cursor"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["builtin-cursor-project-agent-contract"]
8
- billing_assumptions = ["Planr records declared tiers; Cursor remains billing authority"]
9
- known_limitations = ["workspace policy or Max Mode may override the requested model"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = false
14
- fork_none = true
15
- fork_all = false
16
-
17
- [profiles.driver]
18
- profile = "cursor-openai-driver"
19
- client = "cursor"
20
- model = "gpt-5.5"
21
- cost_tier = "premium"
22
-
23
- [profiles.worker]
24
- profile = "cursor-openai-worker"
25
- client = "cursor"
26
- model = "gpt-5.4-mini"
27
- cost_tier = "standard"
28
- skill = "planr-work"
29
- fork_turns = { mode = "none" }
30
-
31
- [[routes]]
32
- work_type = "code"
33
- role = "worker"
34
- fallback_roles = ["driver"]
35
-
36
- [verification]
37
- id = "builtin-cursor-openai-v1"
38
- verified_at_unix = 1783987200
39
- max_age_seconds = 31536000
40
-
41
- [[artifacts]]
42
- path = ".cursor/agents/planr-preset-worker.md"
43
- kind = "cursor_agent"
44
- content = '''---
45
- name: planr-preset-worker
46
- model: gpt-5.4-mini
47
- ---
48
- Use the planr-work skill and preserve Planr evidence.
49
- '''
@@ -1,64 +0,0 @@
1
- schema_version = 1
2
- id = "mixed-host"
3
- version = "1.0.0"
4
- host = "mixed-host"
5
- driver_role = "driver"
6
- default_role = "driver"
7
- capability_evidence = ["builtin-explicit-cross-client-contract"]
8
- billing_assumptions = ["Each host remains authoritative for its own billing and availability"]
9
- known_limitations = ["effective model evidence must be collected independently from each host"]
10
-
11
- [capabilities]
12
- model_override = true
13
- effort_override = true
14
- fork_none = true
15
- fork_all = false
16
-
17
- [profiles.driver]
18
- profile = "mixed-cursor-driver"
19
- client = "cursor"
20
- model = "fable-5"
21
- cost_tier = "premium"
22
-
23
- [profiles.worker]
24
- profile = "mixed-codex-worker"
25
- client = "codex"
26
- model = "gpt-5.4-mini"
27
- effort = "high"
28
- cost_tier = "standard"
29
- skill = "planr-work"
30
- fork_turns = { mode = "none" }
31
-
32
- [[routes]]
33
- work_type = "code"
34
- role = "worker"
35
- fallback_roles = ["driver"]
36
-
37
- [verification]
38
- id = "builtin-mixed-host-v1"
39
- verified_at_unix = 1783987200
40
- max_age_seconds = 31536000
41
-
42
- [[artifacts]]
43
- path = ".cursor/agents/planr-preset-driver.md"
44
- kind = "cursor_agent"
45
- content = '''---
46
- name: planr-preset-driver
47
- model: fable-5
48
- ---
49
- Drive the Planr map and keep final verdict ownership.
50
- '''
51
-
52
- [[artifacts]]
53
- path = ".codex/agents/planr-preset-worker.toml"
54
- kind = "codex_agent"
55
- content = '''name = "planr_preset_worker"
56
- description = "Implements one picked Planr map item with evidence-backed handoff."
57
- model = "gpt-5.4-mini"
58
- model_reasoning_effort = "high"
59
- sandbox_mode = "workspace-write"
60
-
61
- developer_instructions = """
62
- Use the planr-work skill for exactly one picked item. Preserve the task scope, record changed files and real verification commands, request review, and stop.
63
- """
64
- '''
@@ -1,50 +0,0 @@
1
- schema_version = 1
2
- id = "balanced"
3
- version = "1.0.0"
4
-
5
- [usage]
6
- max_active_agents = 3
7
- max_parallel_readers = 2
8
- max_parallel_writers = 1
9
- max_depth = 1
10
- max_attempts = 4
11
- max_wall_time_seconds = 3600
12
- max_tool_calls = 120
13
- review_reserve_percent = 20
14
- budget_exhaustion = "stop"
15
- metering = "estimated"
16
-
17
- [transitions.retry]
18
- max_same_route_retries = 1
19
-
20
- [transitions.availability_fallback]
21
- max_fallbacks = 1
22
- require_same_capability_class = true
23
-
24
- [transitions.quality_escalation]
25
- max_escalations = 1
26
- require_verification_evidence = true
27
-
28
- [transitions.quota_downgrade]
29
- enabled = false
30
- max_downgrades = 0
31
- noncritical_only = true
32
-
33
- [transitions.safety_stop]
34
- enabled = true
35
-
36
- [materiality]
37
- changed_files_threshold = 10
38
- changed_lines_threshold = 500
39
-
40
- [execution]
41
- max_read_scope_entries = 8
42
- max_write_scope_entries = 4
43
-
44
- [execution.roles.worker]
45
- tools = ["cargo", "git", "rg"]
46
-
47
- [execution.roles.worker.filesystem]
48
- read_roots = ["src", "tests", "docs"]
49
- write_roots = ["src", "tests", "docs"]
50
- allow_overwrite = false
@@ -1,50 +0,0 @@
1
- schema_version = 1
2
- id = "low-usage"
3
- version = "1.0.0"
4
-
5
- [usage]
6
- max_active_agents = 2
7
- max_parallel_readers = 1
8
- max_parallel_writers = 1
9
- max_depth = 1
10
- max_attempts = 3
11
- max_wall_time_seconds = 1800
12
- max_tool_calls = 60
13
- review_reserve_percent = 25
14
- budget_exhaustion = "downgrade_noncritical"
15
- metering = "estimated"
16
-
17
- [transitions.retry]
18
- max_same_route_retries = 0
19
-
20
- [transitions.availability_fallback]
21
- max_fallbacks = 1
22
- require_same_capability_class = true
23
-
24
- [transitions.quality_escalation]
25
- max_escalations = 1
26
- require_verification_evidence = true
27
-
28
- [transitions.quota_downgrade]
29
- enabled = true
30
- max_downgrades = 1
31
- noncritical_only = true
32
-
33
- [transitions.safety_stop]
34
- enabled = true
35
-
36
- [materiality]
37
- changed_files_threshold = 6
38
- changed_lines_threshold = 250
39
-
40
- [execution]
41
- max_read_scope_entries = 6
42
- max_write_scope_entries = 3
43
-
44
- [execution.roles.worker]
45
- tools = ["cargo", "git", "rg"]
46
-
47
- [execution.roles.worker.filesystem]
48
- read_roots = ["src", "tests", "docs"]
49
- write_roots = ["src", "tests", "docs"]
50
- allow_overwrite = false