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 職業分類に基づく
Review the current diff for correctness bugs and spec drift, then emit an evidence-oriented findings list
Create a git commit with an impact-focused conventional commit message.
Initialize a tenant-tail session by executing the cross-agent New Sessions protocol declared in AGENTS.md.
One-time contributor setup. Build the tenant-tail binary, run the workspace tests and lints, smoke the CLI, and verify the dogfood governance loop so `/init` can report lifecycle and structural counts.
| 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).
tenant-tail is a verify-only Rust workspace plus an npm and a PyPI shim.
There are two gate layers: the build gate (cargo) and the
governance gate, the pinned spec-spine devDependency run as
npx --no-install spec-spine ... (the dogfood loop; CI runs the same).
git branch --show-current. If on main, STOP and create a feature
branch first (NNN-short-name when the work belongs to spec NNN).
Never commit straight to the default branch.git status --short. Confirm the changes are the intended set;
surface anything unexpected before proceeding.Run the build gate, then the governance gate, in order. Stop on the first failure (orchestrator rule: halt, do not silently continue).
# Build gate (CI's `test` job)
cargo fmt --all --check
cargo build --workspace --locked
cargo test --workspace --locked
cargo clippy --workspace --all-targets --locked -- -D warnings
# Governance gate (CI's `self-governance` job), via the pinned spec-spine
npx --no-install spec-spine compile # specs -> .derived/spec-registry/registry.json
npx --no-install spec-spine lint --fail-on-warn # corpus well-formedness (exit 1 on a warn)
npx --no-install spec-spine index check # staleness gate (committed .derived must be current)
npx --no-install spec-spine couple --base origin/main --head HEAD # the drift gate (exit 1 on drift)
Outcomes:
index check reports stale: the committed .derived/ is behind current
inputs (a changed spec, a touched workflow, new code). Regenerate with
npx --no-install spec-spine compile && npx --no-install spec-spine index,
then stage and commit the regenerated
.derived/spec-registry/registry.json and
.derived/codebase-index/index.json with your change. .derived/ is a
tracked artifact here (only build-meta.json is gitignored); CI runs the
same staleness gate and the cross-platform determinism golden.couple reports drift: 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. 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. 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, a
Cargo.toml, a schema, a workflow, an npm/ or py/ manifest), re-run
Step 1 before continuing.
Invoke the commit skill (conventional, impact-focused message) 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 (CI's coupling gate reads it from the PR body).ci-gate check. 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).main (git pull + git log),
not just the MERGED status.This skill ships code to a PR. It does NOT cut a release. A release is a
v* tag push (see .github/workflows/release.yml) and publishes to
crates.io / npm / PyPI; that is a separate, deliberate, human-initiated
step.