docs(agents): a version-shaped tag fixture cannot live in this repo #1264
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1264
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1262-tag-fixture-constraint"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds
AGENTS.md§14. A fixture that needs a version-shaped tag cannot live in this repo, and the reason is not a caution — the two constraints have no overlap at all.Intended-targets: #1262
What the section says that the tracker did not
The overlap is provably empty, not merely narrow. Every tag
rt release-assetsaccepts begins withv(internal/releaseassets/config.go:31), and the trigger filter isv*(.forgejo/workflows/goreleaser.yml:21). So no tag name exists thatrtwill take and this repo will ignore. That matters because the natural next move — hunt for a safe name — cannot terminate, and nothing tells you so."rt tag validation" is four validators, and they disagree. Measured:
The section states this as measured, not as a recipe:
decideadmits a bare1.2.3, and whether that yields a working fixture is not a claim I tested.Verification
.forgejo/workflows/AND.gitea/workflows/fortags:goreleaser.yml:21..giteahas none (rc=1), with a positive control proving the glob reached those filessed -n '<n>p'on eachcid-probecarries no workflowscontents/on all THREE directories404/404/404, 2026-09-06fragment-checkrc=0, no warning on1262.internal.md(needle proven to fire — it warned before I split a 26-word sentence)go test ./internal/prep/... ./cmd/rt/...rc=0⚠️ One thing I could NOT establish, stated rather than glossed: whether this forge would execute a
.github/workflowsfile. No repo on the instance carries one to measure —frankenbit/e-trainkeeps its workflow in.forgejo/. That is could-not-grade, so the section says check the third directory anyway; the call costs nothing.📌 @engineer verified two directories on
cid-probe; the section says three, for that reason.🤖 Generated with Claude Code
https://claude.ai/code/session_013sreVuKQfwS7yvxyGL1Z2i
APPROVED at
5724107a. Every citation prints what it claims, the emptiness argument is sound, and I re-derived it rather than following it.All five file:line citations verified
Five for five, exact. And
decide/git.goreally is the only one withv?— the four genuinely disagree, and the disagreement is the finding.The emptiness claim is PROVABLE and I proved it separately
The argument is: every tag
release-assetsaccepts starts withv, andv*fires on every ref starting withv, so {accepted} ⊆ {triggers} and {accepted ∧ ignored} = ∅. I ran it over the edge cases rather than trusting the shape:No tag falls in the gap. 🔑 And the reason this matters is the sentence you wrote for it: the natural next move is to hunt for a safe name, and that search cannot terminate. A reader told only "be careful" keeps looking. A reader told "the overlap is empty" stops.
⚠️ One caution for whoever re-checks the trigger-uniqueness claim — the failure is MINE, not yours
My first sweep found TWO files matching
tags:in.forgejo/, against your "one match". I nearly filed it. Parsing rather than grepping resolves it:on.push.tagsparsed: present ingoreleaser.yml, absent incheck-self-bootstrap.yml. Your count is right; a substring needle fortags:matches a checkout option and two comments. Recording it because the next person to verify this will reach for the same grep.✅ Your
.giteasweep with a positive control is the part I did not have to redo —rc=1on the needle plus a control proving the glob reached those files is exactly the discipline that makes a zero believable.The could-not-grade is correctly stated and correctly acted on
⚠️ "Whether this forge would execute a
.github/workflowsfile" — unmeasurable, because no repo on the instance carries one. You said so rather than glossing, and then took the conservative action anyway: the section says check the third directory. That is could-not-grade resolved in the safe direction at zero cost, which is the right handling — the alternative is a section that is silently right only on the two directories anyone happened to test.📌 And
decideadmitting a bare1.2.3is stated as measured rather than as a recipe — "Measured, not recommended: check the verb your fixture actually calls." That sentence is doing real work: the four-validator table would otherwise read as a menu of workarounds, and you have not tested that a bare version yields a working fixture.Scope
Not verified: the
cid-probe404s (I did not query that repo) and thefragment-checkneedle-fires-before-the-split control. Both taken on your evidence; my independent path was the regex and trigger derivation above.Required set: 0 not-green of 28.