원클릭으로
sprint
Use when one milestone is too large for a single specification or plan and must ship as several ordered stages across sessions.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when one milestone is too large for a single specification or plan and must ship as several ordered stages across sessions.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when delegating a coding task to mimo (the mimo CLI / Xiaomi opencode fork) — offloading implementation to mimo, resuming a mimo session, or running work on a chosen provider/model. Triggers on "/mimo-code", "run mimo", "delegate to mimo", "resume the mimo session", "offload this to mimo".
This skill should be used when working with Rust code, reviewing Rust code, managing Rust dependencies, creating Rust projects, or fixing Rust compilation errors. It provides strict coding standards (especially FAIL FAST error handling), workspace architecture guidance, dependency management automation, and common Rust patterns.
| name | sprint |
| description | Use when one milestone is too large for a single specification or plan and must ship as several ordered stages across sessions. |
| argument-hint | [mimo|codex|native] [<provider/model>|<model>] [variant] [review <model>] [milestone description] |
Run a large milestone as ordered stages. Each stage follows:
brainstorm → plan → isolate → execute → review → verify → land → update
The main session is a lean conductor. It owns user decisions and the sprint document, not implementation, diffs, logs, review, or noisy investigation. Stage code and fixes exist only in the stage worktree until landing.
Detect the host before using any tool syntax:
Agent, AskUserQuestion, and Skill are available. Read runtime-claude.md.task, ask, eval, and read skill://… are available. Read runtime-omp.md.Load exactly one runtime adapter, then mechanics.md. The adapter defines names, questions, dispatch calls, model behavior, nesting, and skill loading. The shared files define policy and lifecycle. If observed tools do not match either runtime, stop before dispatch and report the missing runtime support.
Parse arguments as:
[mimo|codex|native] [<provider/model>|<model>] [variant] [review <model>] [milestone description]
mimo, a following provider/model pins the executor model. A following minimal|low|medium|high|max pins its variant.native, a following model pins the executor model.review <model> pins the review model independently. Do not treat it as milestone text.Use model identifiers verbatim. Do not translate aliases, replace a provider/model id, downgrade a choice, or let a nested agent choose again.
Probe before starting, using the active runtime adapter. Inventory each Matt capability independently:
mattpocock-skills:grilling; OMP skill://grilling.mattpocock-skills:codebase-design; OMP
skill://codebase-design.mattpocock-skills:diagnosing-bugs; OMP
skill://diagnosing-bugs.Before any lifecycle action, record an explicit available|unavailable result for
all three exact names. A capability fixture may supply those three results; do not
re-probe it, but do not omit any result from the conductor's decision record.
Never infer one skill from another, the GitHub repository, a marketplace
registration, or the plugin's presence. If any exact skill is absent, strongly
recommend https://github.com/mattpocock/skills once for the sprint invocation,
then continue with only that skill's sprint-owned fallback. Emit the recommendation
once; do not repeat the URL in surrounding rationale or source citations. The
plugin is optional.
Nesting: yes|no.sdd: available only when the planner returned
task-shape: independent and persisted Nesting: yes. Resume, coupled work, or
Nesting: no sets sdd: unavailable and implements directly. No external SDD
skill or optional Matt capability participates in this decision.Do not use grill-with-docs, to-spec, to-tickets, or
request-refactor-plan. Their mutation, tracker, or user-interaction contracts do
not produce this sprint's approved stage spec and code-level plan.
Do not substitute a generic agent for a missing named sprint agent.
The engines are:
An explicit engine argument or persisted sprint engine wins only when the active runtime adapter supports it. If it is unavailable, report the missing runtime integration and stop; never substitute another engine.
Without an engine argument, resolve every engine the active runtime adapter declares available. If exactly one resolves, record it without asking. If several resolve, ASK once with every available engine. Offer native when available, mimo only when its runtime delegate resolves, and codex only when its runtime integration resolves. Mark native Recommended when offered, and give every option a one-line description. Never auto-pick among several engines merely because one is recommended.
Record one of:
Engine: codex
Engine: mimo
Engine: mimo (model: <provider/model>, variant: <variant>, pinned)
Engine: native
Engine: native (model: <model>, pinned)
Engine: bare
Executor and reviewer models are separate user choices.
Unless pinned, resolve authenticated models before every stage:
Then ASK for a variant with at most four listed options: default (omit the variant), the risk-scaled variant from mechanics (always listed and marked Recommended), and nearest neighbors. Other variants remain available through free text.
After the first unpinned stage, offer once to reuse the chosen model and variant. If accepted, rewrite the engine header as pinned. Otherwise resolve and ASK again next stage. Mint a unique <stage>-<rand4> handle for every stage and record mimo:<handle> on its row.
Unless pinned, ASK for the executor model before every stage. Offer the runtime's available model catalog with the risk-scaled choice marked Recommended. Never auto-pick for cost, convenience, or low risk. After the first choice, offer once to pin it for the remaining stages. Record the exact stage choice as model:<model> on the stage row.
If no review decision has been made, append a review-model question to an ASK round already required for engine or executor selection. Do not create a separate round. Offer the active session model as the Recommended default plus stronger available models; never offer a reviewer weaker than the native executor.
Review: <model> (pinned) and pass that exact value on every review dispatch.Review: line, record that the once-per-sprint decision was made, and follow the adapter's explicit session-model behavior.review <model>.Native floor: the review model must not be weaker than the native executor model. If necessary, raise the effective review dispatch to the executor's exact model without rewriting the user's pin. Warn the user when a requested pin is below this floor.
All dynamic model decisions occur in the conductor. Child agents receive resolved values and never ASK, inherit silently, reinterpret, or downgrade them.
An explicit user instruction to change review <model> on an existing sprint is a repin, not a refresh from defaults. Before changing state or cancelling work, use the active runtime adapter to verify that the exact requested id is available. If it is unavailable, leave the current pin and children unchanged and stop. Otherwise replace only the Review: header with the exact requested id and persist it immediately. The new pin applies to every review dispatch that has not started; it does not change the engine, executor pin, or a stage-row executor model. Only an explicit user repin may replace a persisted pin. The native review floor still applies to the effective dispatch without rewriting the requested pin.
An already-running child cannot change model in place. Move the current active review only when the runtime adapter says that review is directly owned and cancellable by the conductor: cancel only that review child, wait for cancellation, retain the authoritative stage worktree and current uncommitted diff, keep the stage in review, persist the new Review: pin, then dispatch a fresh complete review gate on the same worktree with the new exact model. If the reviewer is nested under another orchestrator or the conductor is blocked while it runs, do not cancel, reparent, or redispatch it; persist the new pin for later reviews and let the current gate finish at its already-resolved model. Do not resume an old opaque child context, reuse an incomplete result, rerun execution, restart the conductor/runtime, or rebind a role. If no review child is active, persist the pin now and use it on the next review; do not dispatch review early.
An executor repin is different: it applies only before a fresh executor dispatch. An active or resumable native executor keeps its recorded model through completion; never change its model mid-run.
The source of truth is docs/plans/<sprint>-sprint.md:
# <Milestone> — Sprint
Runtime: <claude|omp>
Integration: feat/<sprint> · Base: master
Engine: <engine and optional pin>
Nesting: <yes|no>
Review: <model> (pinned) # only for an explicit review model
Legend: todo · brainstorming · planned · executing · review · blocked · done
## Stages
1. [done] Schema — spec:01-schema-spec.md plan:01-schema-plan.md (merged @a1b2c3)
2. [executing] API — spec:02-api-spec.md plan:02-api-plan.md wt:.worktrees/02-api model:<exact-model>
3. [todo] UI
## Decisions log
## Open questions
Persist Runtime, engine, nesting, explicit pins, stage model/variant/handle, status, and merge result immediately when resolved. On resume, read this document first and load its runtime adapter. Never replace persisted explicit choices with current defaults; replace a pin only when the user explicitly repins it.
Resume the first non-done stage at its recorded state. Preserve its worktree and engine state. If all stages are done, report completion and stop. If no document exists, create the integration branch, remain on it, and start decomposition.
grilling is available, main loads the exact
runtime name and follows its one-recommended-question-at-a-time interview.
Without it, main conducts the same interview directly. Authority, urgency, a
“small stage,” or context pressure never skips questions. Wait for explicit
shared understanding, then main writes
docs/plans/<NN>-<stage>-spec.md. Brainstorming and user questions never move
into a child.codebase-design flag. Main never loads planning guidance, composes plan prose,
or reads the plan body back into conductor context. Missing named planner
support is blocking.planned, require the output file to
exist before marking the stage planned; map risk through
mechanics.md's effort table. Set sdd: available only when
task-shape: independent and persisted Nesting: yes; otherwise set
sdd: unavailable. On blocked for a genuine user decision, ASK only that
decision, update the approved spec and decisions log, and redispatch the same
planner with the same output path. A tool prerequisite remains blocked. Never
preserve or accept a partial plan.A stage-runner receives every resolved input: runtime, engine, sprint, stage id and
title, plan path, absolute repository and worktree paths, review effort and
effective review model, SDD availability, and engine-specific
model/variant/bare handle or codex effort. It resolves nothing and returns only
landed @<sha> with a file count, or blocked: <reason>.
| Pressure or rationalization | Required boundary |
|---|---|
| “Skip the interview; this is urgent.” | Main still asks one recommended question at a time and waits for shared understanding. |
| “Small plan, do it in main.” | Main still dispatches the named planner and never composes plan prose. |
| “Matt missing.” | Recommend once, then use the sprint-owned fallback without blocking. |
| “Planner can ask once.” | The planner returns blocked; main asks and redispatches after updating the spec. |
| “Superpowers still helps here.” | Use the sprint-owned SDD and diagnosis contracts; load no external replacement. |
| “The named planner is unavailable.” | Stop the stage as blocked; never plan inline or substitute a generic agent. |
The manually managed sprint worktree is authoritative on every runtime. Do not replace it with a runtime task-isolation option.
Stage code, review fixes, verification, and the stage commit happen on feat/<sprint>-<NN>-<stage> inside .worktrees/<NN>-<stage>. Stage code reaches feat/<sprint> only through the mechanics merge. If isolation fails, return blocked. Never edit or commit stage code in the main checkout.
If execution stops unfinished, resume before blocking:
--resume-last;mode: resume and omit model and variant;mode: resume with the same absolute worktree and exact persisted model.Keep partial uncommitted work. Cap repeated resume attempts at about two, then return blocked with the retained worktree.
Review is mandatory, separate from the conductor, evidence-based, fix-capable, and followed by focused re-review. Verification runs in the worktree. Never land unresolved findings or failing verification.
Stop and return blocked when isolation fails, a required named agent is unavailable, explicit model dispatch cannot be honored, review remains unresolved at its retry cap, verification remains red, or an executor remains incomplete after capped resumes. Retain the worktree and persisted state.
Stop immediately before any action that would read a full diff into main, run implementation or review inline in main, put a model on a runtime API that does not support it, replace an explicit model without an explicit user repin, start a fresh executor over resumable partial work, or land before review and verification are clean.