<< All versions

Skill v1.0.0

currentAutomated scan100/100
nagiliant/genesis-legacy-v2/genesis-closure
──Details
PublishedSeptember 28, 2026 at 04:14 PM
Content Hashsha256:1cb69323f18859a3...
Git SHA926cb894f189
──Files
Files (1 file, 3.0 KB)
SKILL.md3.0 KBactive
SKILL.md · 54 lines · 3.0 KB

version: "1.0.0" name: "Closure" description: Git closure — push the branch and open a PR. The ONLY step that performs git operations. Never auto-merges. argument-hint: "[feature] [--cleanup]"


Closure — Git

Closure is the only step that performs git operations. It exists precisely because Accept must do no git. Closure does three things: push the branch, compose a PR description, and open the PR. It never auto-merges — the human merges when ready. Branch cleanup is a separate, optional, post-merge step.

Commit message discipline

Every pipeline commit carries a subject prefix that matches what the diff actually touches:

  • Spec-only (no source code) — brainstorm: / design: / specify: / micro: / northstar: / accept:
  • Code-touching — implement:
  • Both (e.g. an amendment editing spec + code) — the prefix matching the dominant change.

The prefix must not lie about the diff. A spec-only prefix on a commit that also changed source code is a labeling mismatch — fix it with git commit --amend or a rebase, never force past it. You can enforce this with an optional git pre-commit hook (see docs/extending.md), but the discipline stands on its own.

Context detection

Read project-state.md (active feature, mode) and approvals/master.json to detect which closure this is:

  • Group closure (mid-feature): no review record yet. PR targets the feature branch. Title: {feature} G{N} — {group title}.
  • Feature closure (end of feature): a review record exists. PR targets main. Title: {feature-name}.

Process

  1. Pre-flight. Verify you are on the feature branch ({NNN}-{feature-name}) and that there are commits to push.
  2. Push: git push -u origin {branch-name} (skip with a note if already up to date).
  3. Compose the PR body from the micro specs and commit history:
  • Group PR: group title · micro specs implemented (id + one-line summary) · requirements covered (FR/AC from spec frontmatter) · audit results (A1–A5 clean / N findings fixed) · git diff --stat.
  • Feature PR: feature name · 2–3 sentence summary · per-group breakdown · total requirements coverage · audit summary · stats (N specs, N audit cycles, N commits).
  1. Create the PR: gh pr create --title "{title}" --body "{body}" --base {target} — base is the feature branch for group closure, main for feature closure. Never auto-merge.
  2. Report the PR URL, title, base, and changed-file count.
  3. Optional cleanup (`--cleanup`, post-merge only): verify the PR is merged (refuse if not), then git checkout main && git pull, git branch -d {branch}, git push origin --delete {branch}. Idempotent.

Constraints

  • MUST NOT merge. The human merges.
  • MUST NOT run during a dirty mid-phase state — closure assumes the work it is pushing is already committed and accepted.
  • MUST scope the push to the feature branch; never push directly to main.

Natural language triggers

- "close this out"
- "push and open a PR"
- "ship the group"
- "create the pull request"
All versions