Skip to content

planr v1.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Jul 18:15

Model Routing: declare once who runs what — with receipts

Planr 1.2.0 turns per-task model routing into a declared contract instead of prose. Declare your agent pool once in .planr/agents.toml — the expensive model plans and judges, others implement where they are strongest and most cost-efficient — and every work packet carries its own routing from then on. Built dogfood-first: a real web app was built end to end through the routed pool, and the run's audit trail proved the plan was followed.

[profiles.frontender]
client = "cursor"
model = "claude-opus-4-8-thinking-high"
skill = "frontend-design"

[[routes]]
match = { work_type = "frontend" }
profile = "frontender"
fallbacks = ["driver"]

Highlights

  • Agent profile registry (.planr/agents.toml): named profiles (client, model, effort, cost tier, paired skill) plus advisory routes with fallback chains. planr agents init writes a commented starter — or generates individual pools from flags, or interactively (--interactive).
  • Routing travels in the pick packet: planr pick --json carries profile, model, skill, and fallbacks per item. Drivers dispatch from the packet alone; new planr pick --peek reads it without taking the lease.
  • Use-case pools: free-form work types (frontend, backend, ...) route to different models — declared right in the plan's task list (### TASK-001 (backend): ...) or per item. Per-item pins via planr item route --set.
  • Host-native rendering: planr install codex|claude|cursor renders subagent role files with model pins from the registry, in each host's exact vocabulary, including the worker's own --profile reporting instruction.
  • Run audit — declared vs. actual: workers report the profile they ran on; runs record the observed host from environment evidence; mismatches surface as advisory events and in planr trace item. Review stamps (independent/single_agent) are now earned, never accidental.
  • Cursor as a first-class client: planr install cursor is the one-command setup (MCP config, subagents, all ten skills).
  • Reliability: a WAL-conversion race that could stall parallel workers' first pick is fixed and regression-tested under a parallel storm harness.
  • Docs: Model Routing guide with a five-host matrix of silent-override traps, and a replayable web-app walkthrough.

Everything is advisory by design: Planr never dispatches models and never blocks a pick — hosts stay the authority, and the audit tells you when they silently overrode you.

Install

# Homebrew
brew install instructa/tap/planr

# npm
npm install -g planr

# curl
curl -fsSL https://raw.githubusercontent.com/instructa/planr/main/scripts/install.sh | sh

Full changelog

Everything in this release, including the complete list of fixes and the 1.2.0-alpha.1 preview: CHANGELOG.md