mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-02 15:04:37 +01:00
- Step 15: a commit fixing a user-named issue carries a `Fixes: #<n>` trailer
(offset by tightening Step 15 so the skeleton stays at 80,998 <= 81,000).
- pr-body: an explicit "Issue links" step runs gstack-issue-links before the
body is composed (previously only a placeholder inside the body template);
interactive runs ask once about `(promote: fix #N)` references and add
`--supersedes`/`--credit` only on the owner's confirmation; unattended runs
keep Refs and list unpromoted candidates, Related lines and lookup failures
in the completion message; `ISSUE_LINKS_MISSING` from the receipt write.
- handoff (no-PR lanes): runs gstack-issue-links and passes --issues to the
receipt; the completion message gains an `issues:` line.
- Regenerated ship/SKILL.md and sections; refreshed the four ship goldens.
- Parity: union 309,431 / 187,706 = 1.6485 (> 1.6450 by 655 bytes); maxSizeRatio
raised to the measured 1.6485 with its justification, as previous waves did.
Files: ship/SKILL.md.tmpl, ship/SKILL.md, ship/sections/pr-body.md.tmpl,
ship/sections/pr-body.md, ship/sections/handoff.md.tmpl, ship/sections/handoff.md,
test/fixtures/golden/{claude,codex,factory,agy}-ship-SKILL.md,
test/helpers/carve-guards.ts (ship maxSizeRatio).
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
25 lines
1.6 KiB
Markdown
25 lines
1.6 KiB
Markdown
<!-- AUTO-GENERATED from handoff.md.tmpl — do not edit directly -->
|
|
<!-- Regenerate: bun run gen:skill-docs -->
|
|
## Step 18-H: Handoff without a PR (automation lanes)
|
|
|
|
Replaces the pr-body section when the run must not open a PR (`--no-pr`, an
|
|
automation lane, an unattended parent said so). Nothing here publishes.
|
|
|
|
1. Verify-only checks: write Step 16's per-lane pass/fail/skip counts, naming the
|
|
lanes that need a remote (`requires-remote`), to `.gstack/tmp/ship-gate.json`
|
|
as the pr-body section does, then (with its Issue links flags; ask nothing):
|
|
```bash
|
|
~/.claude/skills/gstack/bin/gstack-issue-links --base <base> --out .gstack/tmp/issues.json
|
|
~/.claude/skills/gstack/bin/gstack-ship-receipt write --base <base> --gate @.gstack/tmp/ship-gate.json --issues @.gstack/tmp/issues.json
|
|
```
|
|
2. Send the completion message, identifiers first, in this order: the `SHIP_RECEIPT:`
|
|
line and receipt block (`pr: none`); `branch:` and `sha:` (`git rev-parse HEAD`),
|
|
pushed or `not pushed`; `inputs:` the plan or issue, the base SHA and the spend
|
|
cap; `before/after:` one row per claimed metric, measured on base and on this
|
|
SHA with the command used; `escalation:` the one condition that stops the merge
|
|
(a `requires-remote` lane, an open gate finding, an unverified claim) or `none`.
|
|
`issues:` its lines, unpromoted candidates and lookup failures.
|
|
Full thread ids (`jam_…`) in any cross-thread reference, never a short code.
|
|
Prose may follow the identifiers; nothing may precede them.
|
|
3. Skip Steps 19 and 21. Run Step 20 with `"version":null` when NO_VERSION applied.
|