docs: record the second refute round and the one open consequence
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -441,3 +441,50 @@ prettier-fixable) is untouched by this diff.
|
|||||||
- Fix the two findings, then resume from Refute so both lenses grade the same diff.
|
- Fix the two findings, then resume from Refute so both lenses grade the same diff.
|
||||||
- The Ship phase cannot pass in this repo until there is an MR template, or until the MR is
|
- The Ship phase cannot pass in this repo until there is an MR template, or until the MR is
|
||||||
opened by hand. Opening one is gated regardless.
|
opened by hand. Opening one is gated regardless.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-09-07 — Second refute round, both lenses, on the repaired diff
|
||||||
|
|
||||||
|
Ran both critics directly rather than resuming the workflow: a resume would have replayed the
|
||||||
|
`correctness` verdict from cache against a diff that had changed, and re-run the Ship phase that
|
||||||
|
cannot pass in this repo anyway.
|
||||||
|
|
||||||
|
**`correctness` refuted with 4 findings — all confirmed by hand, all fixed in `f1a4594`.**
|
||||||
|
|
||||||
|
Three were the same root cause: the region check never actually ran. Each wrote a job the manual
|
||||||
|
chart cannot produce, and each passed all 209 tests.
|
||||||
|
|
||||||
|
| Finding | Effect |
|
||||||
|
|---|---|
|
||||||
|
| The deferred region check had nothing to complete it | "پروتز متحرک برای دندون ۱۲" wrote a complete denture onto tooth 12 |
|
||||||
|
| `some` over a stack's regions | `['pfm_crown','night_guard_soft']` on tooth 12 wrote a night guard onto that tooth |
|
||||||
|
| `regions.size === 1` also deferred `implant` (root + crown, both tooth regions) | an implant aimed at a jaw resolved as a `UA` target |
|
||||||
|
| The `e271858` lock ticked the row and the payload but not the count | the sheet read "Apply 1 field" while two landed |
|
||||||
|
|
||||||
|
Fix: targets resolve **before** types, so the target kind narrows a category's candidates and an
|
||||||
|
impossible leaf is never offered. The deferral concept is gone. Region validation is now
|
||||||
|
`every`, and a category with no usable leaf drops the assignment's targets rather than leaving
|
||||||
|
them jobless. Four tests added.
|
||||||
|
|
||||||
|
**`regression-risk` refuted with 2 findings.**
|
||||||
|
|
||||||
|
1. Already fixed in `f1a4594` — the spec file's `filter(Boolean)` left two `tsc` errors. It added
|
||||||
|
a fact worth keeping: **`.gitea/workflows/*` run no test, lint or typecheck step at all.**
|
||||||
|
`nest build` excludes `**/*spec.ts` and ts-jest runs transpile-only under
|
||||||
|
`isolatedModules`, so nothing in this repo would ever have caught it. Repo-wide gap, not this
|
||||||
|
branch's.
|
||||||
|
2. **Open — needs a decision, not a fix.** See below.
|
||||||
|
|
||||||
|
### Open question: teeth are unreachable when the merged row is unticked
|
||||||
|
|
||||||
|
On a forced-prosthesis result `voiceRowAvailability` sets `teeth: false`, so no teeth row renders
|
||||||
|
and `selection.teeth` can never become true. Untick the merged prosthesis row (which releases the
|
||||||
|
decision-41 lock) and then untick the type row, and both write paths in `applyVoiceResult` are
|
||||||
|
skipped — the detail is appended with `teeth: []`. `master` kept the teeth here, because the rows
|
||||||
|
were separate.
|
||||||
|
|
||||||
|
This is decision 39 behaving exactly as approved: teeth and prosthesis apply together. But it
|
||||||
|
means a clinician who wants only the teeth from a prosthesis dictation, intending to pick
|
||||||
|
materials by hand, has no way to get them. Not a spec violation — an unstated consequence.
|
||||||
|
Deliberately not changed unilaterally.
|
||||||
|
|||||||
Reference in New Issue
Block a user