Repository navigation
Commit eca0446
committed
Accept ADR 0010; enforce the golden vector; decide R3, R4 and R15
Two strands from parallel work, landing together.
ADR 0010 accepted, closing D6 (D26). Of D6's three gates, two were
already met - C4's not-a-qualified-e-signature wording ships on both
signing pages, and required-role semantics are ADR 0018 section 9. The
third was not: D6 assumed the golden vector was a test, but it was a
console.log that printed one line to a typically-unread server console
and then kept sealing packages with hashes no independent verifier
could reproduce. verifyGoldenVector() now lives beside the serializer,
POST /api/turnover/build REFUSES on mismatch rather than sealing
unverifiable evidence, and smoke_test.sh asserts the algo, digest
shape, hash determinism across a rebuild, and supersession. The refusal
path was verified by deliberately drifting the vector. Deliberately not
a throw at load: a drifted turnover canonicalizer must not take down an
instance serving QR scans, LOTO status and field checks. The D12
contract bump is explicitly not a precondition and stays M3 work.
R3 -- a caveated pass is a derivation, not a state (section 4). No
pass_with_exception; five states stay five. A pass renders as pass with
exception when it carries a LINKED CONSEQUENCE - a punch item or a
section 13 restriction - not merely a non-empty note. Two changes from
the original recommendation: notes are common and mostly benign, so a
badge firing on all of them is one nobody reads; and "pass + note +
punch item" would have missed the clearest case in the source, where
there is no punch item and never will be because the workaround is
permanent and nobody owes work. Section 13 is what completes it.
Residual risk named and accepted: a caveat written as prose with
nothing linked stays invisible, and that is NOT mitigated by nudging on
every noted pass, because a warning that fires on benign notes is one
that gets clicked through.
R4 -- not_performed carries a reason from a closed vocabulary (section
4): conditions_unavailable, access_blocked, equipment_unavailable,
satisfied_by_other_evidence, out_of_scope, other. other requires free
text; satisfied_by_other_evidence takes an optional satisfied_by
relation, without which it is a nicer-sounding blank. out_of_scope
complements section 6's scope-gap punch item rather than replacing it -
the line says why the check was not done, the punch item says someone
still owes the work.
R15 absorbed into R4 and reclassified. It is not a third meaning of
N/A: the check applies, so na was never right. It is not_performed with
satisfied_by_other_evidence. That the source wrote N/A is the finding,
not a mistake to correct past - people reach for N/A when nothing
better exists, the same no-home-for-this-fact pattern as R9.
D25 reconciled with D26: the fold decision is unaffected, but its
precondition is now enforced by the build route rather than by a
reviewer remembering to check. Both new R4 fields join the section 15
fold; the R3 derivation adds no hashed field.1 parent c35b9bf commit eca0446
9 files changed
Lines changed: 560 additions & 79 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
312 | 312 | | |
313 | 313 | | |
314 | 314 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
319 | 325 | | |
320 | 326 | | |
321 | 327 | | |
| |||
335 | 341 | | |
336 | 342 | | |
337 | 343 | | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
| 76 | + | |
77 | 77 | | |
78 | | - | |
79 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
80 | 82 | | |
81 | 83 | | |
82 | 84 | | |
83 | | - | |
| 85 | + | |
84 | 86 | | |
85 | 87 | | |
86 | 88 | | |
| |||
121 | 123 | | |
122 | 124 | | |
123 | 125 | | |
124 | | - | |
125 | | - | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
126 | 129 | | |
127 | 130 | | |
128 | 131 | | |
| |||
568 | 571 | | |
569 | 572 | | |
570 | 573 | | |
571 | | - | |
572 | | - | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
573 | 591 | | |
574 | 592 | | |
575 | 593 | | |
| |||
590 | 608 | | |
591 | 609 | | |
592 | 610 | | |
593 | | - | |
594 | | - | |
595 | | - | |
596 | | - | |
597 | | - | |
598 | | - | |
599 | | - | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
600 | 616 | | |
601 | 617 | | |
602 | 618 | | |
| |||
844 | 860 | | |
845 | 861 | | |
846 | 862 | | |
847 | | - | |
| 863 | + | |
848 | 864 | | |
849 | 865 | | |
850 | 866 | | |
851 | | - | |
| 867 | + | |
852 | 868 | | |
853 | 869 | | |
854 | | - | |
855 | | - | |
| 870 | + | |
| 871 | + | |
856 | 872 | | |
857 | 873 | | |
858 | 874 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
4 | 37 | | |
5 | 38 | | |
6 | 39 | | |
| |||
16 | 49 | | |
17 | 50 | | |
18 | 51 | | |
19 | | - | |
20 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
21 | 57 | | |
22 | 58 | | |
23 | 59 | | |
24 | 60 | | |
25 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
26 | 64 | | |
27 | 65 | | |
28 | 66 | | |
| |||
0 commit comments