super-bound
Human-started command: it runs only when the human's message begins with `/super-bound`, or under a validated grant, or when a supervisor's bypass grant passes the bundle's `ak-gate.mjs bypass check`, or when the repository or environment opts into the unattended policy and `ak-gate.mjs unattended check` exits 0. On any other request do not load or follow it; tell the human to type that command. Turns an approved direction into a decision-level specification, a reviewed plan and a dependency graph of zero-context implementation tickets with named verification. Use when the direction is agreed and the work needs bounding. Not for deciding what to build, and not for a reviewed ticket that already carries its acceptance criteria.
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 0
- Forks
- 3
01 前言 Front Matter
- name
- super-bound
- license
- MIT
- metadata
- { "ak": { "mode": "manual" }, "ak_catalog_id": "super-bound" }
- description
- Human-started command: it runs only when the human's message begins with `/super-bound`, or under a validated grant, or when a supervisor's bypass grant passes the bundle's `ak-gate.mjs bypass check`, or when the repository or environment opts into the unattended policy and `ak-gate.mjs unattended check` exits 0. On any other request do not load or follow it; tell the human to type that command. Turns an approved direction into a decision-level specification, a reviewed plan and a dependency graph of zero-context implementation tickets with named verification. Use when the direction is agreed and the work needs bounding. Not for deciding what to build, and not for a reviewed ticket that already carries its acceptance criteria.
03 SKILL.md 正文
Requirements and specification, implementation plan, dependency graph, ownership boundaries, acceptance criteria and verification commands. A decision ticket is never an implementation ticket.
When to use
- An approved direction exists and the work needs a specification, a plan and tickets before anyone builds.
- A specification exists but nobody has settled the slicing, the blocking edges or which ticket owns which file.
- The approved direction covers several modules and no capability map has been drawn.
- A delegated controller holds a charter naming the
spec-approvalcheckpoint and an approved alignment result binds to the current source revision.
Not for
- Deciding what to build. An unsettled direction goes back to a human-started alignment run; this skill starts from an approved result and does not reopen it.
- A reviewed ticket that already carries its acceptance criteria and verification command. That work enters at build, and re-bounding it re-decides what a reviewer already accepted.
- Charting a multi-session effort into decision tickets and fog. That is
wayfind. - Reviewing the specification for coherence or decision readiness. This skill calls
/ak:doc-reviewfor that rather than grading its own artifact. - A single mechanical rename with one call site and one test.
Authority
Authority: explicit at the public entrypoint, delegated-grant at the phase operation
bound.run. A human starts the public entrypoint by typing /super-bound. A request in prose
is not a start, even when it names this skill or the command. A delegated controller starts
bound.run only under a runner-validated grant covering spec-approval, and only with a second
grant covering ticket-approval when the operation emits implementation tickets
(adapters/runner-contract/CONTRACT.md). Where the host cannot validate a grant, the operation
stops for explicit invocation rather than approving on the controller's word (ruling
entrypoint-phase-operation-split). No skill starts this skill directly; it calls doc-review,
which is model-invoked, and that direction is the legal one.
Under a bypass grant (ADR-0008), a supervisor-held file stands in for the typed command for one
task. From the task's worktree, run node <this skill's directory>/../../bin/ak-gate.mjs bypass check --grant <path> --task <id> --phase super-bound: exit 0 is the start, and a refusal is a stop with
needs-decision. The grant starts the phase and nothing else. The specification approval at step 8
and every ticket approval still come from the supervisor through needs-decision; the worker never
approves its own specification or tickets.
Under the unattended policy (ADR-0014), node <this skill's directory>/../../bin/ak-gate.mjs unattended check --phase super-bound exiting 0 is the start, with no command or grant (an exception to ruling
entrypoint-phase-operation-split). The approved-alignment input, open document-review decisions, the capability-map review, the specification approval and the ticket approvals then
proceed with your own recommended answers, recorded as unattended advances and never as approvals;
a ticket whose class makes a human the author keeps that class, and a delegation coverage limit (Inputs) never stops this phase. Every implementation ticket, scored or unscored, is still recorded with acceptance criteria and named verification derived from the work source (the issue text or plan); scores and receipts are never invented. Record the bound gate as
the unattended-lifecycle reference says.
Inputs
- An approved alignment result that binds to the current source revision. Absent, or bound to a
different revision: return
needs-input. A direction approved against other code is not an approval of this one. - Recorded project context, read through the knowledgebase adapter's
readContext: theprdin scope, the settledadrpages, and the glossary the vocabulary was agreed in. An empty result is a fact; a configured knowledgebase that cannot be reached returnsfailed. The commands, and what an unconfigured knowledgebase obliges (a coverage limit, never a stop), are in the knowledgebase-binding reference pack. - The project record's configured guidance (
schemas/project.schema.json) for change size and test shape. Absent: the starting points below are advisory and nothing enforces them. - Delegation guidance on that same project record. Outside the unattended policy, missing delegation guidance is
needs-input. Under the unattended policy, no project record, a valid one without delegation guidance, or a missing.cursor/bin/ak delegationcommand, is a delegation coverage limit: record it once naming its cause, and give each ticket nodelegationblock and an assumption, resolvednon-goal, readingdelegation unscored: <cause> (coverage limit); floor not evaluated; packs: <ids or none>; sensitive actions: <ids or none>. It never stops this phase, and every required sensitive action still stops. A missing.cursor/bin/ak delegationcommand is one not onPATH, an unknown subcommand or a usage error from an older CLI, as in a sandbox with onlynode <bundle>/bin/ak-gate.mjs; with it, a present record's validity is not checked, and the cause readsmissing .cursor/bin/ak delegation command, project record validity not checked. A present project record is decided by.cursor/bin/ak delegation, never by hand, whether or not the draft ticket carries adelegationblock:ak delegation: project does not match its schema: …isneeds-inputunder every policy, andak delegation: project has no guidance.delegation block (weights and cut points)is the coverage limit. Decide it at step 10. A ticket-side error (ak delegation: ticket has no delegation block to score, orak delegation: ticket does not match its schema: …) is about the draft, not the record. Under the limit the persisted unscored ticket carries nodelegationblock, seeded or default, so build has no class to pass. Only an absent project record skips.cursor/bin/ak delegation. A present project record that failsschemas/project.schema.jsonvalidation isneeds-inputunder every policy; with the.cursor/bin/ak delegationcommand missing, the unattended policy records its validity as not checked, never as valid. Scorer inputs are never invented. - The project's verification recipes and surface declarations (
schemas/project.schema.json). Absent or empty: record the gap; never assume a browser, running service, trace collector or command the project did not declare. - At
bound.runonly: acharter(schemas/charter.schema.json) listingspec-approval, andticket-approvalwhere tickets will be emitted. Absent:needs-input.
Workflow
- Check how this run was started, before any other step and before any tool call. It is started
only when the human's message begins with
/super-bound, when a controller started the phase operationbound.rununder a validated grant, when the bypass check in Authority exits 0, or when its unattended check exits 0. A request in prose is not a start, even when it names this skill or the command, or asks for this work without naming either. With neither, stop before reading the repository, checking inputs or answering the task: the only response is to tell the human to type/super-boundfollowed by their request. - Detect before you ask. Read what the repository already states — its dependency manifest, its test runner, its lint configuration, its continuous-integration configuration — report what you found in two lines, and ask only what is left.
- When the approved direction spans more than one module, draw the capability map first: a table of stable kebab-case module ids, each with its responsibility and what it depends on. The map is gated like every other step; a human reviews it before any module's specification is written (under the unattended policy that review is an unattended advance, per the reference).
- Write the specification at decision level: problem, solution, non-goals, acceptance criteria, test seams, verification commands, out of scope. No file paths and no code, except a fragment a prototype already settled exactly — a state machine, a reducer, a schema, a type shape. Turn each vague criterion into a frontier question that proposes how the answer would be verified. For each criterion, record its surface and required evidence kinds from the project declaration. Load verification evidence for the vocabulary; an undeclared facility becomes a visible gap, never an invented check.
- Choose the test seams before the slices. The fewer seams the feature is verified across the better, and the ideal number is one; name the seam you chose and why it is the highest one available. Use the vocabulary the alignment run already established with the domain-modeling reference pack rather than renaming the same things here.
- When the caller supplies a draft ticket or scorer input, load the delegation reference and run
.cursor/bin/ak delegation <ticket> --project <project-record>now. A current agent-kit CLI is a prerequisite: outside the unattended policy a missing command, or a usage error from an older CLI, is reported asneeds-inputnaming that prerequisite, not as a scoring failure; under the unattended policy it is a delegation coverage limit (Inputs). Persist the scorer output, readiness and assumptions on the evidence-bearing draft before document review; the draft is not an approved implementation ticket. Under a delegation coverage limit no scorer output is persisted; readiness and assumptions are still persisted. - Run
/ak:doc-reviewon the specification and resolve everything it returns before cutting a ticket. A current review receipt bound to this specification with every decision answered satisfies this step; otherwise open decisions return to the human and stop the run. For a single-slice ticket whose every changed path the author claims is text-only, the light route defined in the delegation reference under "Light route for a text-only single-slice ticket" governs. While a specification or review decision is open, an evidence-bearing draft, where one exists, is kept and retypeddecision, and no implementation ticket exists. An open assumption is per slice; that slice becomes a decision ticket at the zero-context gate and unrelated slices proceed. - Take the specification approval. A recorded human approval whose artifact hash equals the
current specification hash satisfies this step. Otherwise the plan record takes approval as
specification_approval, bound tospecification_hash, so later slicing does not void it. Under a bypass grant, reportneeds-decisionnaming the specification hash and stop; only the supervisor's answer is the approval. - Load the delegation reference pack and follow its ordered stack, readiness, assumptions, authorship-boundary and advisor procedures for every zero-context slice.
- Run
.cursor/bin/ak delegation <ticket> --project <project-record>after populating its floor, evidenced factors and theclassseed the reference names; persist its complete JSON withreadinessandassumptionsbefore returning, including onneeds-input. Never derive the class in this body. Under a delegation coverage limit the ticket carries its unscored assumption in place of the scorer output; readiness and assumptions are still persisted. - Give every ticket its interfaces: what it consumes from earlier tickets with exact signatures, and what it produces that later tickets rely on with exact names, parameters and return types. Write for a skilled developer who knows almost nothing about this toolset or problem domain.
- Declare the blocking edges, and then declare what the edges do not cover: exclusive file ownership per ticket, shared generated artifacts, and global migration numbering. Two tickets with no edge between them are still unsafe in parallel when they write the same file.
- Read
review.cold_readfrom the indexed project record. A missing review object, a missing key, an unknown value, a missing project, or an unindexed project is off. Off keeps the author type-check. An implementer opening the ticket with an empty context window who still cannot do it is not holding an implementation ticket: reshape it, or reclassify ittype: decisionand send it back. Off and shadow keep that action; on uses the independent read. When that read is unavailable, the author check decides. A ticket on the text-only single-slice light route skips the dispatch. In on mode the GS-004g validator still requirescold_read_ref, so a light-route implementation ticket cannot be published until GS-004j. Shadow and on dispatch one cold reader per remaining implementation ticket, in parallel, each in its own context. Follow the delegation reference under "Independent cold read of a ticket" for the packet, claims, readiness observations, rewrite cap, shadow print, citation, unavailable handling and the green-to-yellow-agent raise. - Self-review the mechanical checks, then publish: every acceptance criterion is covered by a
ticket, no ticket carries an unfinished-content marker or a "same as the earlier ticket"
instruction, and each ticket's produced names and types match the next one's consumed names
exactly. Under a bypass grant, report
needs-decisionlisting the tickets and their hashes and stop before publishing; only the supervisor's answer approves them.
Hard gates
Gate: a decision ticket is never emitted as executable work. A ticket that fails the zero-context
check is reclassified, never shipped as an implementation ticket because the deadline is close.
When review.cold_read is on, that check is the independent cold read, not the author's reread.
When that read is unavailable, the author check decides; cite the read with its reason. When on
and the read is unavailable, a green class rises to yellow-agent by the captain's Q1 decision (GS-004k), unless a live named-human lowering is in force. Only a named human may lower the class, with the reason recorded (ruling delegation-class-is-authority-not-finding). Off
and shadow keep the author type-check as the outcome gate. Off and shadow do not change the class or the scorer inputs.
Gate: every ticket carries exact scorer output, all six named readiness criteria plus
vague_terms, and assumptions items using text and resolved_as, except an unscored ticket under a delegation coverage limit, which carries every block but delegation. Vagueness, an open assumption
or scorer failure stops it; no total, hand-derived class or request to delegate substitutes (ruling
delegation-class-is-authority-not-finding). No factor or lowering crosses the sensitive floor
(ruling sensitive-surface-sets-the-floor).
Gate: each readiness criterion's evidence states what was checked and where. No readiness or stop flag is persisted outside the schema: readiness is the six scored criteria with evidence, and the stop is stated in the result.
Gate: on a ticket whose class makes a human the author, allowed_changes remains the full write
scope for the implementer. Name the agent's permitted file and symbol subset in text, in goal or
stop_conditions, alongside non-file assistance such as research; put prohibited agent work in
non_goals. On a decision ticket the boundary lives in goal and non_goals. Naming a human owner
alone is not that boundary.
Gate: each unresolved vague term becomes a frontier question that proposes the observable, the
workload or fixture, the measurement or oracle and the pass condition, as applicable, that would
verify the answer. Express the pass condition against the value the human supplies, for example
p95 of <observable> on <workload> is at or below the target you name; never choose a number or
otherwise invent the missing target.
Gate: a direction spanning independently deployable stack phases is split in the reference's order,
with schema contract separate. Refusal to split emits a decision ticket that itself carries the full
ordered stack as the recommended option, in its decision question or its goal, with no exception
alternative; size alone is guidance.
Gate: on a supporting host, a ticket whose class requires consultation is not approved until its
kb_refs cites the consultation artifact as the delegation reference defines: a transcript or
receipt evidence reference whose one-line note names it judgment evidence and says what it was
used for. A bare path, name or URL is not evidence; an unsupported host cites none (ruling
advisor-consultation-follows-class).
Gate: approval binds to the specification's hash, not the whole plan's. A changed specification does not inherit the old approval; take it again.
Gate: while a specification or review decision is open, an evidence-bearing draft, where one exists,
is kept and retyped decision, and no implementation ticket exists. An open assumption is per
slice; that slice becomes a decision ticket at the zero-context gate and unrelated slices proceed.
Gate: no ticket ships with an unfinished-content marker, with "add appropriate error handling" or "handle the edge cases" in place of the specifics, or with a pointer to another ticket in place of the work.
Gate: evidence that invalidates a decision settled earlier in this session stops the write. Return a blocked-or-replan result naming the settled decision and the new evidence; never resolve it silently.
Gate: the consensus plan gate is entered only on genuine architectural disagreement, declared high risk, or a review-driven replan — never automatically on a routine breakdown. It is a protocol this skill enters, not a skill it starts: the consensus plan gate protocol.
| The thought | Why it is wrong | Do this instead |
|---|---|---|
| "The ticket is obvious to me, so it is written clearly enough." | The implementer knows almost nothing about this toolset or problem domain. "Obvious to the author" names exactly the context the ticket fails to carry. | Write the consumed and produced signatures and the verification command, then run step 13. Off rereads as the author. Shadow and on dispatch a reader who has seen nothing else. |
| "This ticket is basically the earlier one — I'll say 'similar to' and save the repetition." | A pointer to another ticket is context the implementer's window does not contain. | Repeat the specifics in full in this ticket. |
| "I'll put the file paths in the specification so nobody has to guess." | A path in the specification settles an implementation decision the specification has not made, and the first refactor makes it wrong while it still reads authoritative. | Keep the specification at decision level; paths belong in the ticket, and only where a prototype settled them. |
| "New evidence contradicts what we settled an hour ago — I'll just take the better answer." | A decision settled earlier in the session is not the planner's to overturn quietly; the human who settled it is not in the write. | Stop the write and return a blocked-or-replan result naming the settled decision and the evidence against it. |
| "Their guidance is about a hundred lines a change, so this has to become three tickets." | Change size is a configurable starting point, not a gate, and neither it nor the test split is grounds for a finding on its own (ruling numeric-heuristics-are-guidance). |
Slice on verifiable behavior. Where the natural slice exceeds the project's own guidance, record the exception in the project record. |
| "They insist on one ticket for the whole migration, so I'll keep it together." | Refactor, expand, flagged behavior, consumer, backfill and contract are independently deployable delivery boundaries; a request cannot collapse them. | Order the stack with contract separate. On refusal, emit a decision ticket that itself carries the full ordered stack as the recommended option, with no exception alternative. |
| "The readiness flag is enough." | A flag hides what was checked, and the ticket schema has no field for it. | Persist the six scored criteria with their evidence and state the stop in the result. |
| "The owner is human, so authorship is clear." | Ownership does not say what agent work is allowed. | Keep allowed_changes the implementer's full write scope; name the agent's permitted file and symbol subset and any non-file assistance in goal or stop_conditions, and prohibited agent work in non_goals. |
Outputs
prdpage — the requirements when they are newly stated, published through the knowledgebase adapter'spublishArtifactunder akb-documentplacement naming kindprdand the scope. The knowledgebase resolves the location and this skill supplies no path (rulingcentral-kb-owns-project-artifacts).- Plan record, a run artifact with envelope schema
plan-record(schemas/plan-record.schema.json) — the specification, the seams, the slicing and the dependency graph, published under arun-artifactplacement and linked from theprd. ticket(schemas/ticket.schema.json),type: implementation, idbound-<spec>-<slice>— one per slice, with interfaces, ownership, edges, criteria, verification,readiness, resolvedassumptionsand the exact ticket-timedelegationoutput, or, unscored under a delegation coverage limit, nodelegationblock and the unscored assumption. Whenreview.cold_readis on, it citescold_read_ref.cold-read(schemas/cold-read.schema.json) — a run artifact per implementation ticket whenreview.cold_readis shadow or on, published under arun-artifactplacement. Off stores none.ticket,type: decision— emitted for an open fork, with the three evidence blocks persisted in place of the implementation ticket that could not be written.- At
bound.run: the same artifacts as drafts. That operation drafts to the knowledgebase and does not publish.
Side effects
artifact-write, scratch-write, kb-draft, kb-publish. No workspace-write: this skill plans
the change and never makes it.
kb-publish is a remote side effect. Its idempotency key derives from the run, the operation, the
knowledgebase record identity and the published artifact's hash; the read-back is the record ref and
stored hash publishArtifact returns, read before the write and confirmed after it
(adapters/runner-contract/CONTRACT.md, "Idempotency"). A publication whose read-back cannot be
performed is failed, never complete.
Stop conditions
complete— the specification is approved at its hash, every acceptance criterion is covered by a ticket, every implementation ticket carries the three evidence blocks (an unscored ticket under a delegation coverage limit carries readiness and assumptions, with nodelegationblock), every on-mode implementation ticket cites a finished cold read, or an unavailable read with its reason and, where the ticket is scored and its computed class was green, carriesyellow-agentor the live named-human lowering that supersedes the raise, and every published artifact's read-back matched what was sent.needs-input— a start by none of the typed command, a validated grant, a passing bypass check and the unattended policy's passingunattended check, which returns the command to type and nothing else; no approved alignment result, an approval bound to a different revision, missing delegation guidance outside the unattended policy, a project record that fails its schema, a missing grant atbound.run, a failed scorer, an unresolved assumption or vague criterion, a document-review decision left open, a settled decision that new evidence invalidated, or an on-mode cold read that still lists an unsettled decision. When assessment ran, the returned draft retainsdelegation,readinessandassumptions. Under the unattended policy a delegation coverage limit never stops this phase.cap-reached— the consensus plan gate reached its round cap, or the runner-supplied ticket budget ran out. Returns the unresolved architectural question or the undecomposed remainder.cancelled— the human ended the run before approving the specification.failed— a configured knowledgebase is unreachable, or a publication's read-back cannot be performed. A knowledgebase coverage limit —.cursor/bin/ak kb checkexit 3 (kb.unbound, kb.unregistered), a publish exit 3 (kb.read-only), kb.in-repo-missing, or a missing or unknown.cursor/bin/ak kbcommand — never stops this phase under any policy: reads are unavailable, each skipped publish is named in the result as not published, and only exit 1 stops.
Limits
- Consensus plan-gate rounds: 5 (gate,
policies/limits.yaml). - Implementation tickets started per run: the runner-supplied
ticket-budget(gate when supplied). A cap the runner did not supply is not enforced and not guessed; the run records that it was absent. - Test seams a feature is verified across: as few as the feature allows, ideally one (guidance).
- Change size: roughly one hundred lines where that is natural, and test shape: roughly 80 / 15 / 5
across unit, integration and end-to-end tests. Both are configurable starting points carried in
the project record, neither is enforced here, and neither is grounds for a finding on its own
(ruling
numeric-heuristics-are-guidance).
04 同仓库更多 Skills
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.
alpha
Human-started command: it runs only when the human's message begins with `/ak:alpha`. On any other request do not load or follow it; tell the human to type that command. Runs the alpha workflow when a human asks for it.