Help us improve
Share bugs, ideas, or general feedback.
From planr
Autonomously drives a single feature or fix to verified completion by looping through plan, work, review, and live verification until the map is clean and evidence proves the feature runs.
npx claudepluginhub instructa/planr --plugin planrHow this skill is triggered — by the user, by Claude, or both
Slash command
/planr:planr-loopThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A closing loop: the agent prompts itself with Planr skills until a verifiable stop condition holds. The human supplies the goal at the start and reviews at the end; the map is the loop memory between iterations.
Orchestrates full autonomous engineering workflow: plan feature with /ce-plan, implement via /ce-work, review, clean slop, observe/learn patterns, resolve todos, browser test, record video. Use for end-to-end feature builds from description.
Runs autonomous multi-stage execution loops (team-plan, exec-verify-fix cycles) for complex tasks until acceptance criteria pass, blocker hit, or max loops. Tracks progress via checkpoints.
Executes autonomous engineering workflow: plan feature with /ce:plan, implement via /ce:work, autofix review, resolve todos, browser test, feature video, and PR. For full-cycle software tasks.
Share bugs, ideas, or general feedback.
A closing loop: the agent prompts itself with Planr skills until a verifiable stop condition holds. The human supplies the goal at the start and reviews at the end; the map is the loop memory between iterations.
Before iterating, pin the contract:
Stop condition template:
DONE when: every in-scope map item is closed with log evidence,
all reviews closed with verdict complete, no open approvals in scope,
and a live verification log exists for the feature on its target platform.
Each iteration is one dispatch through the routing skill — never a hand-written prompt:
1. $planr-status read honest state; if stop condition holds -> exit loop
2. $planr-plan / $planr-task-graph only if scope or map structure is missing
3. $planr-work pick exactly one ready item, implement, log evidence
4. live verify run the platform verification (below), log it with planr log add --cmd
5. $planr-review independent audit; complete -> close, findings -> Planr creates fix items
6. repeat fix items are just the next ready items
After any planr map build, dependency linking is part of step 2, not optional: add blocks links for every execution-order dependency before the first pick. An unlinked map makes the loop pick items in arbitrary order.
The loop never closes its own reviews when the host supports a second agent. Maker and checker stay separate.
When the host supports subagents, delegate with skill references plus an item id, nothing more:
Use $planr-work on item <item-id>. Stop after requesting review.Use $planr-review on item <item-id>. Close the review with a verdict.Host wiring:
.codex/agents/*.toml preload the skill via [[skills.config]] (TOML templates in agents/ next to this skill). Spawn explicitly: "spawn the planr_worker agent for item X". Keep [agents] max_depth = 1.skills: frontmatter field. The Planr plugin registers planr-worker and planr-reviewer automatically from its agents/ directory; standalone installs copy them to .claude/agents/. The reviewer subagent is read-only except for planr review commands."Done" means the feature ran, not that it compiles. Pick the verification from the plan's platform (planr plan new ... --platform <p>), run it inside step 4, and log the exact command and outcome:
| Platform | Verification |
|---|---|
web | dispatch $planr-verify-web: discovers the host's browser capability, runs the changed flow against the dev server, logs a replayable command |
ios | build and launch in the simulator (xcodebuild + xcrun simctl), exercise the changed flow |
cli | execute the built binary with the real flags the feature added; assert on output |
api/backend | start the service, hit the changed endpoints with real requests, assert responses |
planr log add --item <item-id> \
--summary "live verification on <platform>" \
--cmd "<exact command actually run>"
If the needed capability is missing (no simulator, no browser tooling), do not fake it: log the gap as context, request human approval, and pause the loop:
planr context add "live verification blocked: <missing capability>" --item <item-id> --tag blocker
planr approval request <item-id> --reason "manual live verification required"
Prefer the host's loop primitive over a bash while-loop so a separate model checks the stop condition:
/goal <stop condition> with this skill loaded; or /loop for a fixed cadence./goal, or an Automation whose prompt is Use $planr-loop on <scope>.$planr-loop manually; the map makes every iteration resumable from zero context.$planr-plan and the user.planr approval request.$planr-summary so the human gets an evidence-backed account.