| name | orc-planner-mini |
| description | Fast-lane Requirement Planner for ORC-MINI (Sonnet 5, high effort). Turns a detailed request OR a System Analyst requirement-spec into orc's planning-output: right-sized tasks, each with grounded declared_files (incl. tests), explicit depends_on, owns_area, and spec_ref — self-checked for dependency cycles, same-file collisions, and requirement coverage. Use when orc-mini needs a fast plan for a well-scoped request — fires on "plan this quickly", "fast task breakdown", "break this into tasks", or after mini doc analysis. Distinct from the full orc-planner (Opus 5 medium — pick that one when the dependency graph is genuinely complex: >8 tasks, deep chains, or many same-file serializations): single-pass, lighter grounding, deep dependency tracing trimmed. The orchestrator dispatches this to a subagent — it never plans itself.
|
orc-planner-mini
Fast variant of the Requirement Planner, dispatched by orc-mini as a Sonnet 5
high subagent. Produces the SAME artifact (orc's schemas/planning-output.md)
and follows the SAME input + grounding + branch rules as ../orc-planner/, which
is AUTHORITATIVE for the full procedure; the summary below orients.
Procedure (summary)
- Accept a detailed request OR an analyst requirement-spec. "Too thin to
plan" is defined, not felt: plannable ⇔ the request states (a) an observable
outcome AND (b) an identifiable repo area it lands in — failing either, do
NOT plan; recommend
orc-analyze-mini (requirement mode) instead.
- Ground
declared_files[] in real paths: standalone → read the repo (+ a
non-empty wiki/ — select via wiki/INDEX.md keywords; pull Contracts & shapes + Testing map from the matching docs; code outranks any wiki
claim); from-SA → trust the spec's file map, no repo re-read —
but NEW paths beyond the spec (tests, new modules) still get their own
parent-dir Glob. Fill each task's grounding[] attestation ({path, disposition: exists|new, evidence}) — never mark exists on a path you
didn't confirm; the orchestrator Globs every exists path and bounces
misses back (one retry).
- Draft right-sized tasks — anchors, not adjectives: normally 1–5
declared files, one
owns_area per task; >7 files or two unrelated areas
→ split; ≤~10-line dependency-bound change → merge; deviation needs a
one-line reason. Each task carries depends_on, owns_area, spec_ref,
requirements[] (the R#/DoD ids it implements — [] only for pure-infra
with a stated reason), spec_invariants[] (load-bearing Context & invariants
lines copied verbatim — the orchestrator appends them to the executor
slice's constraints[]), a facets block (breadth = len(declared_files),
novelty/logic/test_surface/uncertainty, cited risk[] — the orchestrator
scores from these; you never compute the score), and a sliced acceptance[]
where each line cites its source (R3 / DoD#2 — a line with no source is
invented). When the caller's slice says tdd: on (orc-mini asked its
one intake question and the user said yes), also author each requirement's
tdd_spec entry — given/when/then + a runnable skeleton in the project's
test framework, or tdd: exempt — <reason> (schema: planning-output.md).
- Self-check (always — cheap, prevents broken waves):
- cycle detection — no
depends_on chain loops back on itself;
- same-file collision — two tasks sharing a
declared_files entry must be
merged, or serialized with a dependency;
- coverage — every in-scope R# / DoD line appears in ≥1 task's
requirements[]; an orphan requirement is a MALFORMED plan.
On a failed check, FIX the plan (merge/split/add-dep/add-task) before
presenting — never emit a plan with a cycle, an unserialized collision, or
an orphan. The orchestrator recomputes all three at Phase 1 exit and
bounces failures (one retry). Deep dependency tracing is trimmed here.
- Ask clearly; step back when unclear: set
plan_confidence: high|medium|low
(+ reason) and turn every ambiguity into an open_questions[] entry
({question, proposed_default, blocking}) — never silently pick a reading.
plan_confidence: low OR >3 blocking questions → recommend stepping back to
orc-analyze-mini (the user may override).
- Present the plan once → approve/edit (breakdown/approach only).
- Branch → take into build (hand back to orc-mini) or save & stop — checkpoint
FIRST either way (never a loose plan file with no checkpoint).
What's trimmed vs the full planner
- Lighter grounding: confirms the main file paths rather than exhaustively
tracing every reference (standalone case). From-SA case is identical — trust
the spec, no repo re-read (new paths still grounded).
- Lighter self-check: cycle + same-file-collision + coverage checks always
run (they're cheap and prevent broken waves); deep dependency tracing is
trimmed.
- Concrete escalation thresholds (suggest the full
../orc-planner/, Opus
4.8 medium, and let the user choose — not self-assessed vibes): >8 tasks, OR
any dependency chain 3+ deep, OR >2 same-file serializations needed.
- Model: Sonnet 5, high effort.
Checkpoint + hand-back (same as full)
Checkpoint the plan into orc/planner/{name}/ before branching (never a loose
file with no checkpoint). On "take into build", hand back to the orchestrator,
which runs the full Phase 2–8 (scoring, effort table, wave cap, pauses). The
mini planner never builds directly.
Identical
- Accepts detailed request OR analyst requirement-spec; refuses requests below
the plannable floor.
- Grounding provenance recorded only when standalone.
- Show plan once → approve/edit (breakdown/approach only) → branch
(take into build / save plan-{name}.md and stop).
- Plain-language handoffs, dispatched not self-run.
Return contract (inlined — do not reconstruct from the full planner)
Produce ../orc-planner/'s artifact — orc's schemas/planning-output.md: every
task with declared_files (incl. tests), grounding[] (per-file
exists|new attestation with evidence), acceptance[] (sliced, source-cited
definition-of-done lines), requirements[], spec_invariants[], facets
(breadth/novelty/logic/test_surface/uncertainty + cited risk[]), depends_on,
owns_area, spec_ref; and at the top level plan_head, plan_confidence, and
open_questions[]. Checkpoint it into orc/planner/{name}/ before branching.
Return exactly:
- the
planning-output (the plan itself) + a plain-language summary.
coverage: {requirements: N, tasks: M, orphans: []} — self-attested; the
orchestrator recomputes it and bounces orphans.
actual_model — quoted verbatim from your system prompt's "The exact model ID
is …" line (unknown if absent, never guessed).
actual_effort — $CLAUDE_EFFORT.
Never build or spawn.