contract-paths-check.sh has NO caller — wire it or retire it, do not port it #1114

Closed
opened 2026-09-04 10:23:25 +02:00 by bosun · 0 comments
Owner

scripts/contract-paths-check.sh is invoked by nothing. It is referenced only by its own bats file and by two CHANGELOG entries.

grep -rn contract-paths-check .  (excluding the script itself)
  tests/contract-paths-check.bats   its arms
  CHANGELOG.md x2                   historical entries
  -> ZERO workflow callers, zero Go callers, zero script callers

So the question is not what language it should be in. A check nobody runs grades nothing, and porting it to Go would produce a faster thing that also runs never.

This is #926 exactly — "dated-examples-check.py ships with no caller — wire it" — on a different file.

AC — decide first, then act

  • establish whether the check is still WANTED: it grades path claims in the contract docs, which is live subject matter — WANTED. Run live against the current tree before deciding anything, it passes cleanly and non-vacuously (5 authority paths resolve, 6 provenance paths once existed).
  • if wanted: wire it into a workflow, and only then consider whether it belongs in rtwired, contract-paths job in .forgejo/workflows/tests.yml, verified on main at 9da2ad49. Belongs-in-rt considered and answered no: 144 lines, no jq, no curl — nothing here argues for a port.
  • if not wanted: delete the script AND its bats file, and say so in the changelogRETIRED (not applicable): the wanted branch was taken.
  • either way the decision is recorded, so the next sweep does not rediscover an unwired check and assume it was an oversight — recorded in the script's own header (verified present on main), the PR body (#1117), and changelog.d/1114.internal.md.

⚠️ Do not port it to Go as a first step. That converts an unwired check into an unwired verb and makes the real question harder to see. (Honored — stayed bash.)

Closed via #1117, merged 9da2ad4925239103c19860827e4aebb9124c6603. All four AC states verified against the landed main tree, not the PR description.

`scripts/contract-paths-check.sh` is invoked by nothing. It is referenced only by its own bats file and by two CHANGELOG entries. ``` grep -rn contract-paths-check . (excluding the script itself) tests/contract-paths-check.bats its arms CHANGELOG.md x2 historical entries -> ZERO workflow callers, zero Go callers, zero script callers ``` **So the question is not what language it should be in.** A check nobody runs grades nothing, and porting it to Go would produce a faster thing that also runs never. This is #926 exactly — *"dated-examples-check.py ships with no caller — wire it"* — on a different file. ## AC — decide first, then act - [x] establish whether the check is still WANTED: it grades path claims in the contract docs, which is live subject matter — **WANTED**. Run live against the current tree before deciding anything, it passes cleanly and non-vacuously (5 authority paths resolve, 6 provenance paths once existed). - [x] if wanted: wire it into a workflow, and only then consider whether it belongs in `rt` — **wired**, `contract-paths` job in `.forgejo/workflows/tests.yml`, verified on `main` at `9da2ad49`. Belongs-in-`rt` considered and answered no: 144 lines, no `jq`, no `curl` — nothing here argues for a port. - [x] ~~if not wanted: delete the script AND its bats file, and say so in the changelog~~ — **RETIRED (not applicable):** the wanted branch was taken. - [x] either way the decision is recorded, so the next sweep does not rediscover an unwired check and assume it was an oversight — recorded in the script's own header (verified present on `main`), the PR body (#1117), and `changelog.d/1114.internal.md`. ⚠️ **Do not port it to Go as a first step.** That converts an unwired check into an unwired verb and makes the real question harder to see. *(Honored — stayed bash.)* **Closed via #1117**, merged `9da2ad4925239103c19860827e4aebb9124c6603`. All four AC states verified against the landed `main` tree, not the PR description.
pilot closed this issue 2026-09-04 10:37:29 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/release-toolkit#1114
No description provided.