Draft a goal
/gstack-goal-new <goal-id> "<outcome>"Opens the goal-approval PR. gstack-goal-new source
Full operating guide · gstack-execution
Read the pinned source for this guide
Choose a design draft, one approved item, a bounded goal or a release check. Carry exact-head evidence through independent review, then follow the release lane and the named owner’s authority.
Entry paths
Before you begin
The sections below cover the existing item-by-item design-to-ship path. For a bounded multi-item goal, choose the goal-mode path below.
Setup to evidence
Start here for a bounded multi-item outcome
A goal defines the outcome, tests and limits first, then lets the agent work through an ordered plan inside those limits. You approve the co-authored goal brief, then test usability after the evidence-gated merge; Production is a separate decision. The exact command is /gstack-goal.
Repository docs use the short command names below. In a host that namespaces plugin commands, select /gstack-execution:gstack-goal-new or /gstack-execution:gstack-goal in its command picker.
Before item work, read-only Haiku explore and docs agents gather code locations and reference passages; the builder judges that evidence. Item-level model advice is part of gstack. Session model routing is a separate workflow and does not switch the current turn or grant release permission.
Goal brief and test formats · Runtime and review prerequisites
Co-author the outcome, never-do constraints, scenarios and one-line plan in a live editable document. Read the author’s edits and comments, then confirm the draft is right before the agent writes goals/<id>/GOAL.md and PLAN.md under one existing DESIGN.md objective. The brief fixes allowed paths, scenarios, budget, provider budgets, call limit, item limit, review limit and stop conditions.
/gstack-goal-new help-output "Our CLI prints useful --help and exits 0; existing invocations keep working"Codex from the gpt family drafts the goal tests and hidden holdout. Gemini supplies a plain-English reading of every goal test. The baseline must show every outcome test failing on origin/main and every invariant passing. The builder must belong to neither of those families, normally claude for this drafting path.
Review the goal PR's outcome, ordered plan, spend cap and plain-English test reading. Give an approving review and instruct its merge at the approved head. Then run the goal command with that goal-approval PR number. Here 42 is illustrative: replace it with the PR that added this goal, not an item or final implementation PR.
/gstack-goal help-output --pr 42The agent follows PLAN.md in order. Each item goes through /gstack-build on its own branch and PR into goal/<id>, carrying the prior items. A clean cross-vendor review, required checks and the goal's permitted-change checks are required before merging the exact reviewed head. Read release.json's release_lane and matching reasons for each item: contained and wide still need their applicable authority and gates; closed never merges autonomously under DR-113. Invariants must keep passing, and an outcome that passed on an earlier item cannot regress.
After every plan item is built and every goal test passes, code reads the sealed holdout and checks its approved hash. A fresh cross-vendor review covers the whole goal diff. In GitHub mode, finalize records RESULT.md and the holdout through a PR into goal/<id>, then propose opens the goal PR into main. The tests, goal-envelope, goal-tests and goal-holdout checks must be green, with coverage checked.
GO-011 lets the bot merge the final goal PR at its exact head after tests, goal-envelope, goal-tests and goal-holdout pass and a fresh whole-goal cross-vendor review is clean with coverage checked. The runner must allow the merge. The review covers every item while keeping the sealed holdout out of its surface. Then record completion and run /gstack-usability <id>.
The help-output example above is illustrative, not a completed run. A suitable brief might require an existing CLI's --help to print usage and exit 0, while its normal invocation keeps its existing output and exit code. First confirm the proposed outcome test fails on main and the compatibility invariant passes. If both already pass, the tests do not demonstrate new work.
The agent might propose one plan item for the help behavior and one for its documentation, with exact stdout, stderr and exit-code criteria. You review the allowed paths, test reading and budget before approving the brief. At the end, the runner checks item evidence, the whole-goal review and sealed holdout before the bot merges. You then try the verified Preview using the usability sheet before deciding on Production.
Run /gstack-usability <goal-id> after the goal merges. First verify that the merge deployment serves the changed pages and passes its e2e checks. Keep Preview protection enabled. A custom product domain already attached means the goal is already in Production and must be reported.
The shared task sheet contains five to eight plain-language tasks from the goal’s scenarios, including an error state. Dorian marks each worked, confusing or broken and leaves notes. The agent reads the saved answers back; browser-local storage alone is insufficient. Wording, layout, links and accessibility fixes use their own reviewed build and re-test; behavior changes become a new goal. Unclear cases also become a new goal.
When every task’s latest mark is worked, or Dorian says to ship, ask once for the separate Production decision, naming what goes out and how. An automatic main deployment to a host address is distinct from attaching the product domain. Record the sheets, fixes, follow-on goals and the actual Production decision in USABILITY.md.
/gstack-goal-new <goal-id> "<outcome>"Opens the goal-approval PR. gstack-goal-new source
/gstack-goal <goal-id> --pr <goal-approval-PR> [--builder <family>/<model>]Runs the approved plan within its limits. Choose an eligible model available in your environment. gstack-goal source
/init-goal-mode <owner>/<repo>A project-init command, also shown as /project-init:init-goal-mode in namespaced hosts. Reports ready, missing and unknown without changing anything. This is the GitHub-mode readiness check; the goal commands also document a local-mode path. init-goal-mode source
/gstack-design-doc establishes the charter and approved items. /gstack-build implements each item. /gstack-peer-review supplies the independent item and final reviews.
In GitHub mode, the agent uses start, next, merged or failed, finalize, propose, complete and record. It asks may before pushes, PRs, merges, review dispatches and outside calls. Unsettled in-scope code choices go to two other model families; a split or other decision type goes to the human. Digests are relayed as printed, while answer and ack record actual human responses.
The ledger is an agent-maintained record, not a global security boundary. GitHub rulesets provide repository enforcement. Printed messages do not prove receipt, and local checks do not create GitHub protection. This page documents source behavior; it does not certify your machine, installed versions, credentials, repository gates or any future run.
Execution sequence
Stage design-draft
Gather repository context, PRDs and specs, project-workspace engineering material, team rules, and user notes into an editable artifact.
/gstack-design-docStage design-review
Challenge the draft before presenting it for human approval. The writer and both reviewers must use three distinct model families.
/gstack-plan-review critics=2 target=designStage artifact-approval
Use the editable artifact as the review surface; Save version preserves a draft but is not approval.
Stage design-commit
Write the approved goal, settled constraints, checkable work items, status, review and merge identity, and amendments log to both design copies.
Stage one-item-build
Select one approved item, create or reuse its feature branch, and build only the checkable acceptance criteria for that item.
/gstack-build <item-id>Stage preview-proof
For a Vercel-hosted repository, run a meaningful Playwright smoke or acceptance test through the Endform workflow against the branch preview.
When: The repository has a Vercel project
Otherwise: Record the non-Vercel constraint in DESIGN.md and continue without an Endform workflow.
Stage task-graphs
Compile declared CSO, verification, or peer-review workflows into a static governed execution plan before dispatch.
python3 scripts/task_graph.py plan|run|exportStage peer-review
Review a packet that quotes the item's acceptance criteria and settled constraints, then resolve blockers against the reviewed head.
Stage human-merge
Write the revision-bound handoff, read release.json's release_lane and matched reasons, and verify the checks and authority before any exact-head PR merge.
Stage record-completion
Mark the approved item done only after the reviewed head is merged and the release is recorded.
Decisions and limits
Reference
Command reference
Run the exact criterion check from its intended working directory and preserve its real exit code. Replace placeholders with the repository and full command, including arguments.
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/check_ledger.py" run --repo <path> -- <command...>Record the five-question recommendation once the packet names its items and criteria. For a goal item, use goals/<id>/PLAN.md. This does not launch or switch a builder.
node "${CLAUDE_PLUGIN_ROOT}/scripts/model_select.mjs" recommend <packet> DESIGN.mdRead scored shadow history, agreement and per-tier/per-rule counts before considering route mode. A thin, overridden or already-routed history is not qualifying shadow evidence.
node "${CLAUDE_PLUGIN_ROOT}/scripts/model_select.mjs" score --repo <path>Revalidate the exact reviewed head and write release.json. The intentional awaiting_human_release result is not a merge: read its lane, matched reasons, gates and applicable authority first.
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/peer_review.py" release <review-id>Materialize and validate the frozen topology without dispatching workers.
python3 scripts/task_graph.py plan --workflow verify --packet packet.jsonExecute ready nodes within the declared concurrency cap and preserve their evidence.
python3 scripts/task_graph.py run --workflow verify --packet packet.json --run-dir /abs/authorized/run --jobs 3Require complete state and write the deterministic report only to an authorized destination.
python3 scripts/task_graph.py export --run-dir /abs/authorized/run --output /abs/authorized/report.jsonRecord an evidence-linked human observation separately from machine events without granting authority.
python3 scripts/task_graph.py observe --run-dir /abs/authorized/run --decision edited --action "report publication" --evidence /abs/decision.mdSummarize observation and response metrics without turning those records into release permission.
python3 scripts/task_graph.py oversight --run-dir /abs/authorized/runOperating boundaries
Handoffs
| Type | Plugin or companion | How it connects |
|---|---|---|
| plugin | gstack-execution | Owns design, build, static task-graph, review, security, verification, and shipping preparation. |
| companion | github | Carries feature and goal branches, pull requests, checks, owner approvals and reviewed-head merges. |
| companion | taskade | Retains personal-project engineering mirrors and redirects; org-shared mirrors belong in the project workspace under GitHub/Projects. |
| companion | vercel | Conditional: only for a repository with a Vercel project, resolves the project and exposes preview deployments for user-visible verification. |
| companion | endform | Conditional: only on the Vercel path, runs the repository Playwright suite against the preview from the GitHub workflow. |
| companion | playwright | Conditional on preview proof: expresses a meaningful user-visible smoke or acceptance criterion for Endform execution. |
| companion | codex | Acts as builder or one side of bounded cross-tool review when permitted by the packet. |
| companion | claude-code | Acts as the other tool for checker or peer-review nodes when permitted by the packet. |
Stop conditions
Inspect the branch failure ledger, repair the cause and replay the exact command with the same arguments from the same working directory. A smaller test selection does not clear the recorded failure.
Check that every exact-path criterion file is readable at the reviewed head and every surface file has a PROVENANCE.json entry. Do not remove criteria to fit the surface. API reviews have a size cap and may send large changed files as diff hunks; inspect what was actually sent.
Read the unknown's latest revision and required authority. Cite existing evidence that matches the repository, head or branch and required source. Do not close a runtime or human question with builder prose or an unrelated green check.
Generate and check the item recommendation, record the actual declared_tier, and stay in shadow until the routing ledger has at least 20 scored shadow lines with agreement at least 0.90. A recommendation does not switch the live session or launch a builder.
Check whether this worker or checker explicitly opts into on_failure: "retry" and whether the failure is retryable. The current built-in graphs do not opt in. Three total dispatches is the maximum; a valid adverse finding, exhausted budget or permission failure must stop.
Read release.json's release_lane and matched reason. Fix the wide lane's open current ledger failures or failing coverage, links or repository-unknown gate. A closed lane requires the Release Owner's action or specific merge instruction; a reviewer cannot lower it.
Use the documented persistent review host instead of lowering the reviewer model or trimming criteria. Report unread branch protection as unread and let the owner verify required checks. A suite with zero examined tests is never a pass.
The repository or project workspace folder is unresolved.
A reviewer is unavailable, material findings remain, or the loop caps, stalls or fails.
The artifact is saved but not marked approved.
The two design locations disagree or the remote commit cannot be verified and pulled back.
The item is missing, conflicts with a settled decision, or has criteria too vague to test. An open_check_failure needs the identical check rerun successfully; model_selection_missing needs a checked recommendation, not an invented tier.
The final-head preview check is not green, or the test skips the user-visible behavior it claims to prove.
Validation rejects the topology, permissions, data use, effects, dependencies, or output ownership.
The outcome is rounds_exhausted, review_unavailable, model_below_floor, or any other non-pass result.
The lane or its reason is unread, the head changed, any required check or approval is missing, or a closed-lane merge lacks the Release Owner's specific instruction. Refresh evidence at the final head before proceeding.
The merged revision is not the reviewed head.
Source verified October 25, 2026
Source review verifies the documented workflow, not a successful run in your host.