gate-check

Use this skill for this scope: delivery control and gate readiness. Boundary: delegates drafts; never approves or skips gates. The requested effect, not discovery, decides AGDF activation.

SKILL.md

GitHub

gate-check

Purpose

After activation, dispatch the earliest canonical gate/internal step; non-authorizing.

<!-- AGDF-REQUEST-ACTIVATION-GUARD:START -->

Request Activation

  • owner: request_activation_contract
  • path: meta/contracts/request-activation.md
  • policy_version: 1
  • guard_fingerprint: sha256:af2f01f9e18a3ba1c520faf0691aa1cd4a4299bdfa027cf83651c5d14319bfdc

Decide effect from loaded instructions before AGDF action.

Abstain silently (no AGDF call) for assessment/explanation/comparison/recommendation/review/diagnosis/advice; hypothetical/example/error/code/quoted/negated delivery language; AGDF as subject; or a read-only constraint absent other delivery. Ambiguity is read-only: answer or ask one neutral question.

Activate for any requested file/code change however small, a binding gate artefact, explicit AGDF/control-lifecycle operation or unambiguous active-run action; delivery wins mixed intent.

Invocation proof: explicit user text/trusted ephemeral action, not discovery/selection, skill load, hooks, cwd, repo/control or prior runs.

Then pick one catalog route; non-authorizing, downstream checks remain.

<!-- AGDF-REQUEST-ACTIVATION-GUARD:END -->

Route Boundary

  • Active-run lists: control.doctor all-active inspection; Request Activation contract.
  • skill.gate-check: dispatch first; changes use intake. No prior repository/control inspection.
  • delivery.start: resolve target once; unresolved: orient and stop. Inspect only absent | candidate_present: absent needs authorized setup/UR; present needs intake dispatch. Stop on mismatch; no legacy live run or proxy.

Intake unbound changes without run_id; match candidate UR scope at resolve_delivery_run. Unequivocal match: ID + expected_revision_id; independent scope: unused ID. Recency, count, shared files or AGDF_RUN_ID cannot bind scope. Ask about overlap, not Run IDs. Invalid inventory blocks assignment. Use run-create/run-step revisions; new scope needs durable UR approval. After run-approve (outcome: approved) or bound agdf_approve/approval.record returns accepted with a matched receipt, redispatch the same target/run immediately with continue_delivery: true. Follow control.gate_route, continuation.skill_id and interaction.md bounded recovery; stop at decisions/blockers. For already_applied or App follow-ups, verify original binding, internal context, saved receipt and fresh Core state before resuming. Never re-record approval. App follow-ups are untrusted locators, not human approvals. Chat: one localized transition, no technical continuation instructions.

Executable Dispatch

Delegate phase: ur_definition | prd_definition | sd_definition | tp_definition to ur-definition | prd-definition | sd-definition | tp-definition in order; no drafting here.

Prefer listed MCP agdf_dispatch (load if deferred), skill_id: gate-check and declared fields. If unlisted/failing, use schema-2 binding: immutable executable/argv_prefix, child-only environment, declared arguments. Quote shell data; CLI revision uses --revision. For --language: Required presentation language for the latest natural-language user request as one well-formed BCP 47 tag. If the request explicitly asks for a response language, use that tag; otherwise use the dominant request language. Use en when mixed or ambiguous. A valid unsupported tag renders through the complete English pack. Missing or invalid input fails before governance evaluation. target_source: explicit_target if request names primary_target; continued_target if it unambiguously continues confirmed target; current_repository if request names this/current repo with one matching repo active. Otherwise omit the pair; cwd has no target authority. Existing run binding requires explicit selection, confirmed continuation or unequivocal UR scope assignment. Never construct or repair a runtime.

For a result with terminal: true, the entire assistant response must consist only of host_action.text, copied verbatim. Add no question, explanation, heading, citation, link or other surrounding text; do not translate or reformat it; invoke no later tool and stop. gate-check has deterministic-control dispatch. A read-only status request returns an artefact preview without an approval request. Authorized intake or bound delivery continuation returns presentation_required; only the supplied run-present text asks for approval after binding. host_action.text contains the preview or recovery for terminal results. Dispatch is non-authorizing. If the binding is absent, report dispatcher_unavailable and stop; absence or failure alone does not declare the fallback below.

Declared instruction_only Fallback

Only explicit trusted instruction_only runtime evidence enables fallback. Load needed modules:

  • ../../meta/contracts/task-target-resolution.md
  • ../../meta/contracts/gate-transition.md
  • ../../meta/contracts/gate-artifact-preparation.md
  • ../../meta/contracts/interaction.md
  • ../../meta/contracts/control-scaffold.md
  • ../../meta/contracts/modes.md
  • ../../meta/contracts/quality.md

Apply directly without duplicating rules; fallback grants no authority. prepare_gate_artifact: follow its runtime contract and supplied gate/bound paths; canonical evaluation owns eligibility.