ship
Governed pre-PR sequence: run the gate locally, review the diff, conventional commit on a feature branch, open a PR via gh
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Governed pre-PR sequence: run the gate locally, review the diff, conventional commit on a feature branch, open a PR via gh
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Initialize a session by executing the cross-agent New Sessions protocol declared in AGENTS.md.
One-time contributor setup. Install spec-spine, verify the Rust toolchain, and check the governed loop (compile, index check, lint, couple) so /init can report lifecycle and structural counts.
Review the current diff for correctness bugs, guard erosion, and spec drift, then emit an evidence-oriented findings list
Create a git commit with an impact-focused conventional commit message referencing the owning spec id.
| name | ship |
| description | Governed pre-PR sequence: run the gate locally, review the diff, conventional commit on a feature branch, open a PR via gh |
| allowed-tools | Bash, Read, Edit, Glob, Grep, Skill |
| argument-hint | [optional scope note or PR title] |
Sequences the steps that turn a working tree into a PR. Bound by
.claude/rules/orchestrator-rules.md (checkpoints are real stops) and
.claude/rules/adversarial-prompt-refusal.md (do not edit an owning spec to
make the gate pass).
The gate is the installed spec-spine binary on your PATH, plus the cargo
gates once spec 002 lands. If spec-spine is missing, run /setup.
git branch --show-current. If on the default branch, STOP and create a
feature branch first (NNN-short-name when the work belongs to spec NNN).
Never commit straight to the default branch. (The AGENTS.md backlog protocol
lets a completed single-spec session push to main directly; /ship is the PR
path, and PRs come from feature branches.)git status --short. Confirm the changes are the intended set; surface
anything unexpected before proceeding..derived/ is committed in this repo and the binary regenerates it
deterministically: refresh it first, then run the conformance and drift checks
in order. Stop on the first failure (orchestrator rule: halt, do not silently
continue).
spec-spine compile # specs -> the registry shards
spec-spine lint --fail-on-warn # corpus well-formedness (exit 1 on a warn)
spec-spine index check # staleness gate (exit 2 if stale)
spec-spine couple --base origin/main --head HEAD # the drift gate (exit 1 on drift)
Once spec 002 lands and code exists, the cargo gates follow, in order:
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
Outcomes:
index check reports stale (exit 2): run spec-spine index to regenerate,
then stage and commit the regenerated .derived/ shards with your change;
CI runs the same staleness gate.couple reports drift (exit 1): the changed code is not covered by its owning
spec's declared edges. Two legitimate paths, chosen explicitly, never
silently:
spec.md so its relationship edges
(establishes: / extends: / refines:) and owned authority units cover
every changed path. The gate enforces the declared graph, not prose. Do
NOT edit a spec to retroactively justify code that contradicts the spec's
design: that is a coherence-guard halt (surface the contradiction and
stop).Spec-Drift-Waiver: line documenting why the drift
is accepted (the keyword configured in spec-spine.toml). CHECKPOINT:
requires explicit user approval.Invoke the code-review skill on the working diff. Apply confirmed, actionable
fixes. If a fix touches any gate input (a spec.md, Cargo.toml, a schema, a
workflow, the kit under .claude/), re-run Step 1 before continuing.
Invoke the commit skill (conventional, impact-focused message, spec id as
scope when the work belongs to one) on a feature branch.
Co-Authored-By
trailers, in commits or PR bodies.Spec-Drift-Waiver: line with the
change so the PR carries it.PR creation is outward-facing. Confirm with the user, then:
git push -u origin "$(git branch --show-current)"
gh pr create --title "<conventional title>" --body "<Summary + Testing>"
Spec-Drift-Waiver: line inline
in the body if Step 1 chose the waiver path with user approval.compile / index check / lint --fail-on-warn /
couple) on the PR via .github/workflows/spec-spine.yml. A local pass
should mean a clean CI run; if CI still fails on a gate the local run passed,
halt and present the divergence (orchestrator rule: halt on failure).git pull + git log),
not just the MERGED status.