Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .abcd/work/DECISIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -604,3 +604,14 @@ parallel-agent merge contention bites.
the historical [v0.1.0] heading style; new headings use the plain
Keep-a-Changelog form. v0.2.0 rolls in the same PR as the port — the
automation's first firing is its own acceptance test.
- 2026-07-18 — The iss-35 semantic release gate was self-referential
(armed against the tagged commit, read receipts from that commit's own tree)
and fail-closed the first public release; fixed in PR #99 by arming with the
reviewed content commit (HEAD^2^ / HEAD^) from a full-history checkout, plus a
check-reviews.sh RD001 exemption for sha-keyed receipt dirs. The gate is
abcd-cli's OWN CI: it is NOT shipped or scaffolded to managed repos
(launch-payload.json excludes .github/; ahoy/launch write no CI; lifeboat only
reads .github/workflows as a grounding signal), so the flaw had no managed-repo
reach — the iss-108 capture's "systemic" framing was corrected on resolve. Any
future release-scaffolding intent should scaffold the fixed two-commit
(roll -> receipts) pattern, not the original self-referential one.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
schema_version: 1
id: "iss-108"
slug: "iss-35-semantic-release-gate-was-self-referential-under-chan"
severity: "minor"
category: "observation"
source: "user-observation"
found_during: "manual-capture"
resolution: "Fixed in abcd-cli PR #99: release.yml resolves the reviewed CONTENT commit (HEAD^2^ on the auto-release merge path, HEAD^ on a direct tag) from a full-history checkout and arms receipt_gate with it, so subject==armed-commit holds without self-reference; check-reviews.sh RD001 exempts sha-keyed receipt dirs. VERIFIED NOT SYSTEMIC for managed repos: abcd does not ship or scaffold the release gate — launch-payload.json excludes .github/, ahoy/launch write no CI, and lifeboat only READS .github/workflows as a source-grounding signal. The original capture overstated the managed-repo reach. If a future intent ships release scaffolding, it should scaffold this fixed two-commit (roll -> receipts) pattern."
---

iss-35 semantic release gate was self-referential under changelog-driven auto-release (adr-37): it armed receipt_gate with the tagged commit but read receipts from that commit's own tree, which can never hold a receipt naming itself. Dormant while private, it fail-closed the first public release (v0.3.0).