docs(853): the honesty paragraph itself misattributed a claim, one indirection out
Build ErsatzTV Image / CI toolchain image resolves (pull_request) Successful in 21s
Build ErsatzTV Image / Delimiter ban (release path) (pull_request) Successful in 37s
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 37s
PR Gates / Docs update reminder (pull_request) Successful in 37s
review-verdict/h10 Review-verdict: MERGEABLE @ 2f5ac5f (base: main)
PR Gates / Fix proofs (Proves trailers) (pull_request) Successful in 18s
PR Gates / decisions lifecycle (pull_request) Successful in 28s
Review verdict / Set review-verdict status (pull_request_target) Successful in 38s
PR Gates / Script lint and tests (ruff + pytest) (pull_request) Successful in 8m39s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 13m13s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 8m26s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Skipped
Build ErsatzTV Image / Functional E2E (curl + UI contracts) (pull_request) Successful in 8m15s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 9s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 6s

Delta review of the previous commit: MERGEABLE, one LOW finding, and it is the same
defect class the paragraph was written to fix.

The new paragraph said `ci.actions-credential-scoping` "records" that the owner-level
Actions default was set, verified and reverted THROUGH THE UI. Three of those four
elements are verbatim in that record. The fourth is not: the string `UI` appears zero
times in it (verified independently by the reviewer and again here — 0 standalone `UI`
tokens). The record says the default WAS set and that no API surface exists; it never
names the surface used.

A non-API surface is a sound inference by elimination — the API 404s, `app.ini` sets only
`ENABLED` and `DEFAULT_ACTIONS_URL`, and the CLI exposes only `generate-runner-token` —
but presenting it as something the sibling record RECORDS is exactly the overclaim the
paragraph exists to prevent. It now states the inference as an inference and gives its
grounds, rather than either dropping the point or borrowing authority for it.

Verification: decisions-validate OK; catalog regenerated; workflow-guard and
decisions-validator tests 201 passed.

Decisions-Edit: yes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UYNbVwgVszv6Pum7ZuGd75
This commit is contained in:
2026-08-30 02:45:18 +02:00
co-authored by Claude Opus 5
parent a68bf8ff59
commit 2f5ac5f238
@@ -22,7 +22,9 @@ sources: 'Gitea 1.27.1 probe, 2026-08-30 — `swagger.v1.json` (308 paths, 0 mat
server names in its own `--config`, and the `gitea` CLI. **The web UI was not swept, and that is a
real limit on this evidence rather than a formality** — a Gitea Actions control can exist with NO API
surface at all, which `ci.actions-credential-scoping` records for the owner-level default: it 404s on
the API and was nonetheless set, verified and reverted through the UI. It is left open because the
the API and was nonetheless set, verified and reverted. That record does NOT name the surface used —
a non-API one is an INFERENCE by elimination here, since `app.ini` sets only two `[actions]` keys and
the CLI exposes only `generate-runner-token`. It is left open because the
decision does not rest on it — what carries the conclusion is the secret-scope model (org/repo/user
only, no per-ref gate) plus the fact that restricting dispatch would close nothing regardless. Sweep
the UI before citing this record as proof that no such control CAN exist. **Check the CLI's