From 38c7fd1344242d185da9aa37f3ea3a25c95eedd3 Mon Sep 17 00:00:00 2001 From: gogocat Date: Mon, 7 Sep 2026 03:08:36 +0300 Subject: [PATCH] fix(evidence): EVID-136 declared a review status where a direction belongs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `verdict: concerns` is not one of the three the scorer knows. Until PRD-086 FR-008 it fell through to `supports` and scored 1.0, so a code review whose own summary reads "three issues require coder attention before merge" counted as full confirmation of the thing it objected to. PRD-079 and RFC-011 carried that 1.0 for three weeks. The fail-closed change is what surfaced it — the first `score --all` after merging printed the warning. Set to `weakens`: the review does not refute the PRD, it lowers confidence in the state reviewed, and the three HIGH findings in the body are the substance of that. EVID-136 0.00 -> 0.30 (weakens at CL3) PRD-079 0.00 -> 0.30 RFC-011 0.00 -> 0.20 Those are the first honest numbers the three have had: 1.0 while the value was silently mapped, 0.0 once it was rejected, 0.30 now that it is stated. NOTE-052 records the trap, which is worth naming because both vocabularies are correct in their own place. `CONCERNS` is a real verdict here — it is what a Profile-B reviewer returns. The structured field asks a different question: which way does this evidence push the claim. A review can be CONCERNS and `weakens`, or CONCERNS and `supports` if the concerns are cosmetic. Review verdicts, test outcomes and CI statuses belong in the prose. One pack in 173. The convention holds, which is why the one that broke it went unseen for three weeks and why this needed a gate rather than a guideline. Refs: EVID-136, NOTE-052, PRD-086 FR-008 --- ...eview-of-prd-079-blog-scaffold-concerns.md | 14 +++- ...dict-is-a-direction-not-a-review-status.md | 67 +++++++++++++++++++ ...-layer-reports-values-it-never-computed.md | 1 + 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 .forgeplan/notes/NOTE-052-verdict-is-a-direction-not-a-review-status.md diff --git a/.forgeplan/evidence/EVID-136-code-review-of-prd-079-blog-scaffold-concerns.md b/.forgeplan/evidence/EVID-136-code-review-of-prd-079-blog-scaffold-concerns.md index f4caa8de..4e86192f 100644 --- a/.forgeplan/evidence/EVID-136-code-review-of-prd-079-blog-scaffold-concerns.md +++ b/.forgeplan/evidence/EVID-136-code-review-of-prd-079-blog-scaffold-concerns.md @@ -21,7 +21,18 @@ One-line justification: Build passes and all RFC-011 invariants hold structurall ## Structured Fields -verdict: concerns +verdict: weakens + + congruence_level: 3 evidence_type: audit @@ -84,3 +95,4 @@ evidence_type: audit + diff --git a/.forgeplan/notes/NOTE-052-verdict-is-a-direction-not-a-review-status.md b/.forgeplan/notes/NOTE-052-verdict-is-a-direction-not-a-review-status.md new file mode 100644 index 00000000..a4292882 --- /dev/null +++ b/.forgeplan/notes/NOTE-052-verdict-is-a-direction-not-a-review-status.md @@ -0,0 +1,67 @@ +--- +depth: tactical +id: NOTE-052 +kind: note +links: +- target: PRD-086 + relation: informs +status: draft +title: 'verdict: is a direction, not a review status' +--- + +--- +assigned_number: 52 +created: 2026-09-07 +predicted_number: 52 +slug: note-verdict-is-a-direction-not-a-review-status +updated: 2026-09-07 +--- + +# `verdict:` is a direction, not a review status + +## What happened + +`EVID-136` — a code review of the blog scaffold — declared `verdict: concerns`. +There is no such value. The scorer accepted three: `supports`, `weakens`, +`refutes`. + +Until PRD-086 FR-008 the unrecognised value fell through to `supports` and +scored **1.0**, so a review whose own summary read *"three issues require coder +attention before merge"* counted as full confirmation of the thing it objected +to. `PRD-079` and `RFC-011` carried that 1.0 for three weeks. + +FR-008 made the fall-through fail closed, which is what surfaced it. Fixed by +setting `weakens`: the review does not refute the PRD, it lowers confidence in +the state reviewed. Scores now read 0.30 / 0.30 / 0.20 — the first honest +numbers those three artifacts have had. + +## The trap worth naming + +`CONCERNS` is a real word in this project: it is one of the three verdicts a +Profile-B reviewer returns (`PASS` / `CONCERNS` / `BLOCKER`). The author wrote +their review status into a field that wants something else, and both vocabularies +are correct in their own place. + +The pack's `## Verdict` heading said `CONCERNS` too, which is right — that is +prose about the review. The structured field beneath it is a different question: +**which way does this evidence push the claim.** A review can be CONCERNS and +still be `weakens`; it could equally be CONCERNS and `supports` if the concerns +are cosmetic. + +Rule of thumb when writing an EvidencePack: + +- `supports` — the claim is more likely true because of this +- `weakens` — less likely, or true only under narrower conditions +- `refutes` — the claim as stated is wrong + +Review verdicts, test outcomes and CI statuses belong in the prose, not in this +field. + +## Scale + +One pack in 173. The discipline holds — which is exactly why nobody noticed the +one that did not, and why the gate had to exist rather than the convention. + +Related: PRD-086 FR-008, PROB-101. + + diff --git a/.forgeplan/prds/PRD-086-the-trust-layer-reports-values-it-never-computed.md b/.forgeplan/prds/PRD-086-the-trust-layer-reports-values-it-never-computed.md index 01a44499..9f52b5f0 100644 --- a/.forgeplan/prds/PRD-086-the-trust-layer-reports-values-it-never-computed.md +++ b/.forgeplan/prds/PRD-086-the-trust-layer-reports-values-it-never-computed.md @@ -141,3 +141,4 @@ GitHub: #325, #392, #393, #330. +