一键导入
zoo-heavy
Spec-based Zoo 2.1 workflow with subagent for each step. Use only when explicitly requested.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Spec-based Zoo 2.1 workflow with subagent for each step. Use only when explicitly requested.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Close out a completed Lighto task: full validation, final report, rebase. Requires the task file path as input.
Tiered Lighto code review gate: scripted checks, parallel narrow checks, broad review. Invokable standalone on any diff, or as part of the Lighto workflow.
Lightweight spec-driven workflow: collaborative spec, top-level TDD implementation, tiered parallel review gate, one commit per subtask. Use only when explicitly requested.
Review a Lighto task file spec from all angles: flag omissions, fix uncontroversial problems, punt real decisions to the user. Requires the task file path as input.
Execute one Lighto subtask: plan, TDD, validate, browser-verify, review gate, commit. Requires the task file path and subtask number as input; use only on an existing Lighto task file.
Record user feedback for the active Zoo spec without interrupting current work. Use only when explicitly requested, especially when the user gives feedback to address later during Zoo Heavy, Zoo Lite, Zoo Zero, or another running Zoo workflow.
| name | zoo-heavy |
| description | Spec-based Zoo 2.1 workflow with subagent for each step. Use only when explicitly requested. |
Read and follow .zoo/zoo.md if it exists.
Canonical artifact: .tasks/<task>/spec.md or _tasks/<task>/spec.md, unless the user explicitly asks to use a spec file under .spec/.
If a task root such as .tasks/, _tasks/, or a repo-specific alternate is ignored by git, every file under that root is workspace-only Zoo state. Never stage, force-add, commit, or push those files, including additions, modifications, or deletions of paths that were already tracked. Do not count ignored task-root files as uncommitted workflow changes.
Decide which mode you are in before doing anything else.
Use the full workflow below only when you are the main agent running the task end to end.
If the prompt says you are a delegated sub-agent, gives you one specific step, tells you to write one report, or otherwise scopes you to one Zoo Heavy step, then you are not the orchestrator. In that case:
When there is any ambiguity, prefer delegated single-step mode over full-workflow mode. Accidentally doing one step too little is easier to recover from than accidentally starting a recursive orchestrator loop.
# Title
## User Input
<summary of changes to be made, 1-3 paragraphs>
Why: <rationale for the changes if provided>
Original requested scope: <exact scope of what the user explicitly asked for, including original plan boundaries and non-goals when the user started with a plan; do not include agent-added extras>
Hard constraints: <anything that user said MUST be done or said is a HARD constraint>
Soft preferences: <anything user said about the shape of the solution>
Unknowns: <preferences about the solution that user is unsure about>
Draft ideas to adapt with common sense: <anything that user specified about implementation that was not explicitly mentioned with MUST nor as a HARD constraint -- these are soft implementation preferences and soft ideas>
## Spec
<a detailed top-to-bottom spec on how the solution looks and is implemented, as an itemized list grouped into subheadings, order these MOST CONSEQUENTIAL/VISIBLE to LEAST CONSEQUENTIAL/VISIBLE, group into subheadings by subfeature/subarea, sort those subheadings too from MOST CONSEQUENTIAL/VISIBLE to LEAST CONSEQUENTIAL/VISIBLE, mention everything that must be done as part of implementation>
### Add Foo superadmin page
- Add the Foo feature package
- Register Foo page below Fubar, with two tabs: Manage and Effective.
- Manage tab displays a configuration form editor with ... sections showing ... controls
- Effective tab renders an HTML template superadmin_foos.html which displays a table, each row corresponding to ...
- Define FooVM struct with at least the following fields:
Xxx string
Yyy int
...
- ...
### Add Foo section to customer admin page
- Add a section to shopadmin_customer.html displaying ...
- This section should be gated by PermissionCustomerSeeFoos.
- Extend bocustomers.DoShow to load ...
- Extend vmcustomer.CustomerVM with ...
- ...
### Store the last time X was done in the database
...
### Extend forms framework with support for editing uvwxyz data type
...
## Decision log
<when considering multiple alternatives, mention the decision, the other alternatives rejected, and a very brief why, for example:>
- Use the established navigation/page registration pattern for the new superadmin page.
- Gate Foos customer admin with a new PermissionCustomerSeeFoos permission, added to PermissionMacroCustomerView. (We could reuse PermissionCustomerSeeData, but all recent customer admin changes have added dedicated properties for new rows or sections displayed.)
- In customer admin, mark entire Foos section with access tag (“superadmin-only” or “published”). (We could mark every row, but they all share same access control permission.)
...
<if user later overrides one of your decisions, record the new decision with the user's rationale if provided, and mark (USER INPUT), e.g.:>
- (USER INPUT) Do not mention re-fribernation in externally visible docs and user interfaces, it's an internal term that only devs understand; instead word it around “queued updates”.
## Dependency Changes
<changes to dependency sets, dependency versions, and code in modifiable dependency checkouts, with rationale and source report/commit when known. Write `None` when there are no dependency changes.>
## Open product and strategic questions
<list only the most consequential unclear questions that user should decide -- important product decisions, strategy-level decisions, and super consequential tactical decisions. Don't punt minor implementation decisions to user. Ask these during initial planning whenever possible. After implementation starts, research the uncertainty first: inspect code, history, docs, production configuration, and production data when appropriate; then prefer documenting a reasonable evidence-backed decision in Decision log and proceeding unless the uncertainty is truly unsafe to resolve without the user. Explain the dilemma in detail, and include technical and product CONSEQUENCES of each choice! e.g.:>
- Can we assume Frubernator will never be used together with Widgerator on the same venue? These two would be clashing on updating the frubenation counter. If these are never used together, we can simply store the counter as a single value. If multiple sources will be contributing the counts, we have to store the contributions separately, and reconcile them somehow, perhaps by taking a max() of the values?
...
## Execution memory
<Orchestrator updates this section with learnings from each report, to preserve the key learnings and implementation path for future runs. Keep adding, updating and organizing items as you read each report. Just a brief itemized list, compact format.>
- Registration points: reg-navitems.go, reg-xxx.go, ambiguouspkg/foobars.go
- Added sufoos: impl and TestFoos_*
- Form framework: lifecycle tricky when handling postback on dynamic controls, solved in xxxform.go, needs more testing
- Tests do not sufficiently cover refrubbernation, broke it and only noticed in browser testing, should expand test suite in follow-up subtasks.
- ...
## Refactorings
<Proposals and refactorings from this task.>
- Proposal: `.proposals/YYYYMMDD-example.md` - <finding>
- Done: <subtask/commit/report> - <what changed>
## Subtasks
<detailed plan for one next task, plus lightweight current-best-guess outlines or draft plans for future tasks -- but again this is not a waterfall, so future task details are drafts and must be re-planned before that task starts>
- (next) <title>
- Acceptance: <outcome>
- Browser impact: possible, <flow list>
- Plan: <NNN-plan.md|TBD>
- Evidence: TBD
- (future) <title>
- (future) <title>
.tasks/<task>/spec.md as the spec source of truth..spec/, that file overrides the default Bureau spec path and becomes the spec source of truth. Keep Bureau for task/report/evidence operations.spec.md does not exist, planner drafts it from the user request.User Input records what the user asked for and must be updated when the user clarifies, corrects, or overrides direction. It preserves the exact original scope for closeout; do not backfill agent-added extras into it.User Input; direct user chat overrides ticket text when they conflict.User Input, reopen planning by adding or promoting a real (next) revision subtask, and preserve prior completed subtasks/evidence.If spec has no active (next) subtask because planning has not started, run planner to define the first real (next) implementation subtask, draft future subtasks, and write the active-subtask plan for that real work. If all known subtasks are (done) and no (future) remains, run planner as the final task-completion check instead. Do not create a planning-only subtask.
Planning principles:
(next).Refactorings and continue the primary scope; the user can approve or request that work later.(next) subtask deeply; future subtasks may include lightweight draft plans or current-best-guess notes, but avoid spending much time on details before promotion.zoo-refactoring: consequential cross-cutting changes become proposals requiring human approval, broad mundane refactors become separate subtasks/commits before or after the current subtask depending on whether they technically block it, and small low-pollution edits stay in the current subtask.Refactoring request in their report; the orchestrator owns recording proposals in Refactorings, editing spec.md, ordering subtasks, stashing, routing, and commit separation.planner, plan_reviewer, and plan uberreview before coding the next one so the whole spec and active plan reflect the latest learnings.Decision log, and proceed unless the choice is a high-impact product/strategy decision or super consequential tactical decision with no safe default.[blocker] questions in Open product and strategic questions or new step reports are a hard gate only when that high bar is met: the orchestrator must run user interview immediately and must not route to other steps until blockers are resolved.docs_writer, then commit, then continue into the next routed step automatically. Do not stop between subtasks unless blocked, a mandatory step fails, the user asks to pause, or a final planner report explicitly declares Full task status: complete, Reviewed: yes, and Closed out: yes. When the final planner report closes the full task, start final closeout by reading .zoo/task-finish.md if it exists; those instructions take priority over this skill, including whether to run zoo-rebase. Unless task-finish overrides it, run zoo-rebase, then use zoo-report before sending the final response.Execute this loop for the active (next) subtask:
Before planning a newly active (next) subtask, read and follow .zoo/subtask-start.md if it exists.
planner: research the codebase, update the whole spec from user input, codebase context, and execution memory; keep future subtasks as lightweight current-best-guess drafts; write the detailed tactical HOW for the active (next) subtask in a plan report.plan_reviewer: review both the overall spec and the active-subtask plan, then issue approved or revise.orchestrator: after plan_reviewer approves, use the zoo-uberreview skill to run an uberreview of the approved plan. If uberreview reports findings, route back to planner, then plan_reviewer, then plan uberreview again. Do not proceed to implementation until normal plan review and plan uberreview both have no unresolved findings.test_writer: write/update tests and define Browser test intent.implementer: implement minimal correct change.browser_verifier: run browser checks for browser-impact subtasks with the harness in-page browser tool (Codex: Codex Browser Use; Claude Code: Chrome extension MCP), use the OS-level automation fallback (Codex: Codex Computer Use) only when the in-page tool cannot cover the needed interaction, and produce screenshot/video evidence.code_reviewer: review for bugs/regressions/missing tests.orchestrator: after code_reviewer approves, check the latest Final-state validation entries from test_writer, implementer, browser_verifier, code_reviewer, and any fixes reports. If relevant passing validation is missing or stale for the current code state, run it once yourself before or in parallel with code uberreview. Use zoo-uberreview to review the code written for the subtask, telling reviewers that validation has passed or is orchestrator-owned and that they must not rerun broad suites. If validation fails or uberreview reports findings, route back to fixes and validation, then code_reviewer, then code uberreview again. Do not complete the subtask until final-state validation, normal code review, and code uberreview all have no unresolved findings.orchestrator (no report required after this): follow references/end-of-step.md, enforce blocker gate, then choose next step.If blocked, run problem_solver.
Browser-impact rule:
(done)..zoo/browser.md if it exists..tasks/<task>/evidence/.Closeout rule:
docs_writer runs during closeout for completed subtasks (not as a normal pre-closeout execution step)..zoo/task-finish.md if it exists, immediately after all workflow commits are complete. Instructions in that file take priority over this skill's closeout instructions, including skipping or replacing zoo-rebase. Unless task-finish overrides it, run zoo-rebase, then run zoo-report.Loop continuation rule:
(done), finish closeout (docs_writer -> commit) and immediately continue the workflow for the active (next) subtask.(next) remains. Before stopping, run planner for a final task-completion check. Stop only when that planning report declares the full task fully done, reviewed, and closed out, then read .zoo/task-finish.md if it exists, follow it as higher priority than this skill, run zoo-rebase unless task-finish overrides it, and use zoo-report for the final user-facing report.Quality bar:
planner: near-perfect User Input capture, top-to-bottom Spec, future-subtask current-best-guess drafts, active-subtask acceptance, and tactical HOW in the plan report before coding.plan_reviewer/code_reviewer: if a concern is not addressed by the current contract/plan, request revision so the planner can respond; only allow proceeding when the review explicitly states why that concern can be ignored.zoo-uberreview: run from the top-level orchestrator, not as a delegated single-step sub-agent, because the skill launches multiple review subagents itself.plan_reviewer approves. Treat its findings like plan-review findings: update the spec/plan through planner, rerun plan_reviewer, then rerun plan uberreview.code_reviewer approves and the orchestrator has checked whether the current code state is already covered by passing final-state validation. Treat validation failures like code-review findings: fix them, rerun relevant validation, rerun code_reviewer, then rerun code uberreview..zoo/*.md file if it exists.Language rule:
Be explicit about transitions, e.g. Starting planner on <subtask>.
Only the top-level orchestrator may delegate. A delegated single-step sub-agent must never delegate again.
When the top-level orchestrator launches a delegated step, the prompt must explicitly state that the recipient is a delegated sub-agent and must execute exactly one step itself. The prompt must also explicitly forbid running the full Zoo Heavy workflow, spawning subagents, and waiting on subagents.
Use subagents for each step except the orchestrator-owned zoo-uberreview gates. Exact step-name match -> delegate. Else use best matching subagent by description. Else launch a general subagent, but always do each non-uberreview step in a subagent.
Thread hygiene:
Reference checklists (progressive disclosure):
references/end-of-step.md: mandatory for the orchestrator at end of every step loop.references/user-interview.md: mandatory during initial planning when consequential user questions exist, and later only when a [blocker] question meets the high bar in Open product and strategic questions or new step reports.references/load-context.md: mandatory at the start of every delegated subagent step..tasks/.tasks/<task>/spec.md.spec/... files override the canonical spec path for spec reads/writes only..tasks/<task>/evidence/mcp__bureau__current_task to get the current task slug, report directory, and report filenames.Switching:
mcp__bureau__start_new_task({task_slug}).mcp__bureau__switch_task({task_slug}).mcp__bureau__list_recent_tasks() when you need to find the exact recent task slug.mcp__bureau__current_task() to inspect the active task.After each delegated subagent run, that subagent calls mcp__bureau__start_new_report_file({suffix}) and writes exactly one report to the returned file.
A delegated subagent run (including blocked/failed) is incomplete until its report exists. The orchestrator closeout step itself does not require a report.
Delegated sub-agents do not own routing. After they write their one report, they stop and hand control back to the orchestrator.
Typical suffixes: explore, user-request, plan, plan-review, review-simplicity, tests, impl, browser-verify, docs, code-review, user-interview, solver.
Every delegated subagent report must include:
pass/fail + short note)[blocker]implementer reports must also include Dependency changes: added/removed/updated dependencies, version or dependency-set changes, code changes in modifiable dependency checkouts, or none, with rationale.
Execution-agent evidence requirements (test_writer, implementer, browser_verifier, docs_writer, code_reviewer, problem_solver):
Evidence produced section.test_writer, implementer, browser_verifier, code_reviewer, and problem_solver reports, include Final-state validation: commands run after the step's last file change, result on the exact state left by the step, whether any file changed afterward, and the command still needed when validation is missing or stale.path[:line]) for code/tests/docs..tasks/<task>/evidence/..tasks/<task>/evidence/ only for generated artifacts that do not already live in the repo (screenshots, dumps, logs, exports, etc.).Plan report conventions:
plan report is written by planner and includes Subtask: <exact active subtask title>, a brief note on spec changes or "none", and detailed tactical HOW for the active (next) subtask.plan-review report is written by plan_reviewer and includes Plan: <plan-report-file> and Verdict: approved|revise.plan-review reviews both the whole spec and the active-subtask plan.Verdict: revise unless the report explicitly records why that concern is safe to ignore.zoo-uberreview after plan-review approves. Its per-instruction reviewer reports and combined report use descriptive review-* suffixes such as review-simplicity, review-tests, or review-plan, and the combined report must identify the reviewed plan and unresolved findings.plan_reviewer and plan uberreview can be referenced from Subtasks as active Plan: pointer.Evidence flow:
Subtasks item as indented Evidence: lines.Evidence: lines when evidence is required.test_writer: representative test names, test file pointers when useful, and Browser test intent for browser-impact subtasks (flows/assertions/hook gaps)implementer: pointers to code changes + validation outputs from implementationbrowser_verifier: browser run results + screenshot/video artifacts + Browser Use/Computer Use evidence notesdocs_writer (closeout): pointers to docs updates that preserve useful learnings for future workcode_reviewer: pointers to blocking findings and regression checks (when any)planner/plan_reviewer: material spec/plan outputs when they change acceptance definitions, decisions, or execution memoryFinal-state validation entry for the current code state or must run that validation once itself. Missing, stale, or failing final-state validation routes back to fixes/validation.Backlog routing:
zoo-proposal and record the proposal path in Refactorings..docs/TODO-ideas.md.Browser evidence rule:
Browser impact: possible|direct) must route through browser_verifier before completion..tasks/<task>/evidence/ for each impacted flow or acceptance checkpoint.Evidence type rules:
.tasks/<task>/evidence/..tasks/<task>/evidence/; add browser screenshots of the import process when there is a browser UI.Evidence: lines; do not create a separate evidence file just to store test names.Use exactly the sections from Spec format, in that order.
Section guidance:
User Input: preserve the user's request separately from agent interpretation. Update it whenever the user clarifies, corrects, or overrides direction.
Original requested scope: preserve the exact requested outcomes, boundaries, non-goals, and original user-supplied plan. Keep agent-added extras out so zoo-report can compare final work against requested scope.Hard constraints: only user-stated MUST/HARD constraints.Soft preferences: user-stated preferences about solution shape.Unknowns: preferences or decisions the user is unsure about.Draft ideas to adapt with common sense: user-suggested implementation ideas that were not stated as MUST/HARD constraints.(done) immediately after the bullet marker.Spec: the working contract for the solution.
### headings.(done) immediately after the bullet marker, e.g. - (done) Add Foo feature package.Decision log: record real alternatives considered and the chosen path with a brief reason.
(USER INPUT) and include the user's rationale when provided.Dependency Changes: record added, removed, or updated dependencies, dependency version/set changes, and code changes in modifiable dependency checkouts.
None when no dependency changes are planned or made.Open product and strategic questions: only questions the user should decide.
Decision log and proceeding.[blocker] only when there is no safe default and proceeding could cause a high-impact product, strategy, data, security, or compatibility mistake.Execution memory: compact notes the orchestrator updates from reports.
Refactorings: proposals and refactorings from this task.
- Proposal: `<proposal path>` - <finding>- Done: <subtask/commit/report> - <what changed>Subtasks: detailed plan for one active next task plus lightweight current-best-guess outlines or draft plans for future tasks.
(next) while the task is still in progress(next) subtask in detail(next) includes indented Acceptance:, Browser impact:, Plan:, and Evidence: lines(future) items are outlines or current-best-guess drafts and may be title-only until promoted(future) item to (next), re-plan it using Execution memory and what the previous subtasks learnedBrowser impact: uses none|possible|direct; for possible|direct, include the flow list on the same lineEvidence: lines unless no evidence is requiredSpec vs plan boundary:
spec.md is durable whole-task planning: user input, product/behavior contract, decisions, dependency changes, execution memory, refactorings, subtask status, and lightweight future-subtask drafts.(next) subtask lives in plan / plan-review reports.planner, plan_reviewer, and plan uberreview.orchestrator is the mechanical single writer for status/log updates.Evidence gate:
(done) until its Evidence: lines contain the required completion evidence, unless the subtask has no repo changes and no behavior changes.[blocker] unresolved cannot be marked (done).browser_verifierClarity gate:
plan_reviewer should request revision when wording is hard to understand on first read.