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.
- package/README.md +9 -56
- package/docs/ARCHITECTURE.md +4 -4
- package/docs/CLI_REFERENCE.md +6 -14
- package/docs/CODEX.md +6 -6
- package/docs/EXAMPLE_WEBAPP.md +63 -97
- package/docs/GOALS.md +8 -25
- package/docs/INSTALL.md +2 -2
- package/docs/MCP_CONTRACT.md +2 -5
- package/docs/MODEL_ROUTING.md +20 -177
- package/docs/ROUTING_BUNDLES.md +32 -0
- package/docs/SKILLS.md +5 -3
- package/docs/fixtures/mcp-contract.json +3 -11
- 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 +2 -14
- package/plugins/planr/.claude-plugin/plugin.json +1 -1
- package/plugins/planr/.codex-plugin/plugin.json +1 -1
- package/plugins/planr/skills/planr-loop/SKILL.md +1 -1
- package/docs/PRESET_COMPOSITION.md +0 -109
- package/docs/PRESET_EVALUATION.md +0 -118
- package/docs/PRESET_REGISTRY.md +0 -61
- package/evaluations/preset-suite-v1.toml +0 -127
- package/evaluations/sol-luna-codex-v1.toml +0 -42
- package/plugins/planr/skills/planr-loop/agents/planr-reviewer.toml +0 -23
- package/plugins/planr/skills/planr-loop/agents/planr-worker.toml +0 -21
- package/presets/bindings/claude-native.toml +0 -52
- package/presets/bindings/codex-openai.toml +0 -56
- package/presets/bindings/cursor-fable-grok.toml +0 -49
- package/presets/bindings/cursor-openai.toml +0 -49
- package/presets/bindings/mixed-host.toml +0 -64
- package/presets/policies/balanced.toml +0 -50
- package/presets/policies/low-usage.toml +0 -50
- package/presets/policies/max-quality.toml +0 -50
- package/presets/policies/read-only-audit.toml +0 -50
- package/website/README.md +0 -79
- package/website/_headers +0 -7
- package/website/alchemy-runtime.test.mjs +0 -21
- package/website/app.mjs +0 -216
- package/website/build-catalog.mjs +0 -135
- package/website/build-site.test.mjs +0 -69
- package/website/catalog-model.mjs +0 -185
- package/website/catalog-model.test.mjs +0 -124
- package/website/cloudflare-launcher.test.mjs +0 -38
- package/website/data/catalog.json +0 -307
- package/website/index.html +0 -122
- package/website/registry/manifest.toml +0 -48
- package/website/registry/report.md +0 -33
- package/website/registry/trusted-maintainers.toml +0 -6
- package/website/registry/verification.json +0 -7258
- package/website/serve.mjs +0 -41
- package/website/styles.css +0 -201
- package/website/test-fixtures/recommended.json +0 -72
package/docs/PRESET_REGISTRY.md
DELETED
|
@@ -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
|