@3f-consulting/spec-controller-core 0.1.0-alpha.3 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +1 -1
  2. package/dist/assemble/evidenceReconciliationFromSources.d.ts +8 -15
  3. package/dist/assemble/evidenceReconciliationFromSources.d.ts.map +1 -1
  4. package/dist/assemble/evidenceReconciliationFromSources.js +21 -24
  5. package/dist/assemble/evidenceReconciliationFromSources.js.map +1 -1
  6. package/dist/domain/checkCharacteristics.d.ts +24 -15
  7. package/dist/domain/checkCharacteristics.d.ts.map +1 -1
  8. package/dist/domain/checkCharacteristics.js +24 -15
  9. package/dist/domain/checkCharacteristics.js.map +1 -1
  10. package/dist/domain/evidenceReconciliation.d.ts +26 -2
  11. package/dist/domain/evidenceReconciliation.d.ts.map +1 -1
  12. package/dist/domain/evidenceReconciliation.js +164 -61
  13. package/dist/domain/evidenceReconciliation.js.map +1 -1
  14. package/dist/domain/fitnessChecks.d.ts +24 -35
  15. package/dist/domain/fitnessChecks.d.ts.map +1 -1
  16. package/dist/domain/fitnessChecks.js +3 -30
  17. package/dist/domain/fitnessChecks.js.map +1 -1
  18. package/dist/domain/journal.d.ts +13 -103
  19. package/dist/domain/journal.d.ts.map +1 -1
  20. package/dist/domain/journal.js +6 -19
  21. package/dist/domain/journal.js.map +1 -1
  22. package/dist/domain/ledger.d.ts.map +1 -1
  23. package/dist/domain/ledger.js +45 -34
  24. package/dist/domain/ledger.js.map +1 -1
  25. package/dist/domain/posting.d.ts.map +1 -1
  26. package/dist/domain/posting.js +4 -7
  27. package/dist/domain/posting.js.map +1 -1
  28. package/dist/domain/qualityCheckFaultMessages.d.ts +7 -2
  29. package/dist/domain/qualityCheckFaultMessages.d.ts.map +1 -1
  30. package/dist/domain/qualityCheckFaultMessages.js +7 -2
  31. package/dist/domain/qualityCheckFaultMessages.js.map +1 -1
  32. package/dist/domain/qualityCheckReconciliation.d.ts +23 -2
  33. package/dist/domain/qualityCheckReconciliation.d.ts.map +1 -1
  34. package/dist/domain/qualityCheckReconciliation.js +40 -105
  35. package/dist/domain/qualityCheckReconciliation.js.map +1 -1
  36. package/dist/domain/qualityCheckReconciliationFault.d.ts +3 -1
  37. package/dist/domain/qualityCheckReconciliationFault.d.ts.map +1 -1
  38. package/dist/domain/qualityCheckReconciliationFault.js +3 -1
  39. package/dist/domain/qualityCheckReconciliationFault.js.map +1 -1
  40. package/dist/index.d.ts +17 -17
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +19 -19
  43. package/dist/index.js.map +1 -1
  44. package/dist/internal.d.ts +8 -15
  45. package/dist/internal.d.ts.map +1 -1
  46. package/dist/internal.js +37 -84
  47. package/dist/internal.js.map +1 -1
  48. package/dist/model.d.ts +3 -2
  49. package/dist/model.d.ts.map +1 -1
  50. package/dist/model.js +3 -2
  51. package/dist/model.js.map +1 -1
  52. package/dist/parse/checkScriptsRunInCI.d.ts +8 -7
  53. package/dist/parse/checkScriptsRunInCI.d.ts.map +1 -1
  54. package/dist/parse/checkScriptsRunInCI.js +7 -6
  55. package/dist/parse/checkScriptsRunInCI.js.map +1 -1
  56. package/dist/parse/ciStepRecord.d.ts +5 -17
  57. package/dist/parse/ciStepRecord.d.ts.map +1 -1
  58. package/dist/parse/ciStepRecord.js +7 -27
  59. package/dist/parse/ciStepRecord.js.map +1 -1
  60. package/dist/parse/corpusCodeFaults.d.ts +4 -4
  61. package/dist/parse/corpusCodeFaults.js +4 -4
  62. package/dist/parse/corpusFaults.d.ts +26 -37
  63. package/dist/parse/corpusFaults.d.ts.map +1 -1
  64. package/dist/parse/corpusFaults.js +18 -33
  65. package/dist/parse/corpusFaults.js.map +1 -1
  66. package/dist/parse/corpusGrammarFaults.d.ts +11 -73
  67. package/dist/parse/corpusGrammarFaults.d.ts.map +1 -1
  68. package/dist/parse/corpusGrammarFaults.js +27 -58
  69. package/dist/parse/corpusGrammarFaults.js.map +1 -1
  70. package/dist/parse/runningStaticChecks.d.ts +3 -2
  71. package/dist/parse/runningStaticChecks.d.ts.map +1 -1
  72. package/dist/parse/runningStaticChecks.js +3 -2
  73. package/dist/parse/runningStaticChecks.js.map +1 -1
  74. package/dist/parse/scenarios.d.ts +28 -13
  75. package/dist/parse/scenarios.d.ts.map +1 -1
  76. package/dist/parse/scenarios.js +48 -86
  77. package/dist/parse/scenarios.js.map +1 -1
  78. package/dist/parse/targetCorpus.d.ts +21 -11
  79. package/dist/parse/targetCorpus.d.ts.map +1 -1
  80. package/dist/parse/targetCorpus.js +16 -19
  81. package/dist/parse/targetCorpus.js.map +1 -1
  82. package/dist/parse/targetManifest.d.ts +12 -86
  83. package/dist/parse/targetManifest.d.ts.map +1 -1
  84. package/dist/parse/targetManifest.js +49 -138
  85. package/dist/parse/targetManifest.js.map +1 -1
  86. package/dist/provenance/provenance.d.ts +8 -11
  87. package/dist/provenance/provenance.d.ts.map +1 -1
  88. package/dist/provenance/provenance.js +2 -3
  89. package/dist/provenance/provenance.js.map +1 -1
  90. package/dist/render/evidenceGrid.d.ts +45 -0
  91. package/dist/render/evidenceGrid.d.ts.map +1 -0
  92. package/dist/render/evidenceGrid.js +145 -0
  93. package/dist/render/evidenceGrid.js.map +1 -0
  94. package/dist/render/markdown.d.ts.map +1 -1
  95. package/dist/render/markdown.js +85 -190
  96. package/dist/render/markdown.js.map +1 -1
  97. package/dist/render/runVerdict.d.ts +3 -2
  98. package/dist/render/runVerdict.d.ts.map +1 -1
  99. package/dist/render/runVerdict.js +11 -4
  100. package/dist/render/runVerdict.js.map +1 -1
  101. package/dist/render/staticChecks.d.ts.map +1 -1
  102. package/dist/render/staticChecks.js +10 -1
  103. package/dist/render/staticChecks.js.map +1 -1
  104. package/package.json +1 -6
  105. package/dist/domain/thresholds.d.ts +0 -123
  106. package/dist/domain/thresholds.d.ts.map +0 -1
  107. package/dist/domain/thresholds.js +0 -185
  108. package/dist/domain/thresholds.js.map +0 -1
  109. package/dist/parse/checkStaticEvidenceObligations.d.ts +0 -32
  110. package/dist/parse/checkStaticEvidenceObligations.d.ts.map +0 -1
  111. package/dist/parse/checkStaticEvidenceObligations.js +0 -78
  112. package/dist/parse/checkStaticEvidenceObligations.js.map +0 -1
  113. package/dist/parse/corpusClaimFaults.d.ts +0 -104
  114. package/dist/parse/corpusClaimFaults.d.ts.map +0 -1
  115. package/dist/parse/corpusClaimFaults.js +0 -128
  116. package/dist/parse/corpusClaimFaults.js.map +0 -1
  117. package/dist/parse/measurements.d.ts +0 -47
  118. package/dist/parse/measurements.d.ts.map +0 -1
  119. package/dist/parse/measurements.js +0 -65
  120. package/dist/parse/measurements.js.map +0 -1
  121. package/dist/render/measuredItem.d.ts +0 -30
  122. package/dist/render/measuredItem.d.ts.map +0 -1
  123. package/dist/render/measuredItem.js +0 -43
  124. package/dist/render/measuredItem.js.map +0 -1
package/README.md CHANGED
@@ -46,7 +46,7 @@ The types these functions take and return are exported alongside them, so a cons
46
46
 
47
47
  ## The surface is a contract
48
48
 
49
- This barrel is the whole public surface — the package publishes exactly one entrypoint, and what that entrypoint exports is held against a written-down list in both directions, so a symbol quietly added or quietly dropped fails the build that would have shipped it. Before you build on this: the package is at a `0.x` version and makes no compatibility promise — see [`doc/compatibility.md`](https://github.com/3f-consulting/spec-controller/blob/main/doc/compatibility.md). Pin an exact version.
49
+ This barrel is the whole public surface — the package publishes exactly one entrypoint, and what that entrypoint exports is the contract you build on. **Nothing checks it for drift.** A symbol quietly added to the barrel, or quietly dropped from it, reds no build today: the surface is not held against a written-down list, and a generated API report will be adopted at `1.0`, where the compatibility promise comes back. Until then: the package is at a `0.x` version and makes no compatibility promise — see [`doc/compatibility.md`](https://github.com/3f-consulting/spec-controller/blob/main/doc/compatibility.md). Pin an exact version.
50
50
 
51
51
  Source, issues and history: [github.com/3f-consulting/spec-controller](https://github.com/3f-consulting/spec-controller).
52
52
 
@@ -13,35 +13,30 @@
13
13
  * (`3F-2804`). Nothing here is re-exported: the nine stay internal.
14
14
  *
15
15
  * WHY THE ARGUMENTS ARE DATA AND NOT READERS. Everything below is already in memory by the time
16
- * the edge calls this — the feature bytes, the manifest object, the CI bytes, the measurement
17
- * artefact, the runtime observations. Handing a reader for any of them would move I/O into the
18
- * engine wearing a callback, and `@SCN-EPG-001` reds over exactly that. `killFloor` is the one
19
- * function, and only because a mutation record is opened lazily and at most once per pass: the
20
- * closure already exists at the edge and already carries that guarantee, so injecting it preserves
21
- * a behaviour rather than inventing a seam — and it is what keeps the engine from ever learning
22
- * that mutation ratchets exist (`3F-2841`'s pattern, and `3F-2859` stands).
16
+ * the edge calls this — the feature bytes, the manifest object, the CI bytes, the CI run's own
17
+ * record, the runtime observations. Handing a reader for any of them would move I/O into the
18
+ * engine wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
19
+ * (@SCN-EPG-001's `io-import` arm until 3F-3437).
23
20
  *
24
21
  * THE TARGET ROOT DOES NOT CROSS. It is resolved at the edge and every remaining use of it is
25
- * there: building the reader above, and relativising the runtime observations before they arrive.
22
+ * there: relativising the runtime observations before they arrive.
26
23
  * Threading it in as well would put `node:child_process` and `process.cwd()`'s answer inside the
27
24
  * engine to be read by nothing.
28
25
  *
29
26
  * THE INPUT IS AN INLINE OBJECT TYPE, deliberately. A named exported interface would be a second
30
- * symbol on the frozen v1 surface for a shape only this function takes, and `@SCN-API-001` freezes
31
- * that barrel exactly — one entry point means one name.
27
+ * symbol on the public v1 surface for a shape only this function takes — one entry point means one
28
+ * name. Nothing has reconciled that surface against a written-down list since 3F-3449, so the
29
+ * restraint is a judgement rather than something a guard would catch.
32
30
  */
33
31
  import type { EvidenceObservation } from "../model.js";
34
32
  import type { PackageJsonScripts } from "../parse/checkScriptsRunInCI.js";
35
- import { type MeasurementReport } from "../parse/measurements.js";
36
33
  import { type CiStepRecord } from "../parse/ciStepRecord.js";
37
- import { type KillFloorReader } from "../parse/targetManifest.js";
38
34
  import type { EvidenceReconciliation } from "./renderInput.js";
39
35
  /** A target's manifest as this composition reads it — its scripts, and its `specController` block. */
40
36
  type TargetManifest = PackageJsonScripts & {
41
37
  specController?: {
42
38
  deferralTags?: unknown;
43
39
  staticChecks?: unknown;
44
- thresholds?: unknown;
45
40
  fitnessChecks?: unknown;
46
41
  runners?: unknown;
47
42
  notChecks?: unknown;
@@ -61,10 +56,8 @@ export interface EvidenceReconciliationSources {
61
56
  ciSources: readonly string[];
62
57
  ciSourceNames?: readonly string[];
63
58
  reconcilerInvocation?: string;
64
- measurements: MeasurementReport;
65
59
  runtimeObservations: readonly EvidenceObservation[];
66
60
  deferralTags: readonly string[];
67
- killFloor: KillFloorReader;
68
61
  ciStepRecord?: CiStepRecord;
69
62
  }
70
63
  export declare function evidenceReconciliationFromSources(input: EvidenceReconciliationSources): EvidenceReconciliation;
@@ -1 +1 @@
1
- {"version":3,"file":"evidenceReconciliationFromSources.d.ts","sourceRoot":"","sources":["../../src/assemble/evidenceReconciliationFromSources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQlF,OAAO,EAQL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,sGAAsG;AACtG,KAAK,cAAc,GAAG,kBAAkB,GAAG;IACzC,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH,CAAC;AAkFF;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,mBAAmB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,eAAe,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAwGD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,6BAA6B,GACnC,sBAAsB,CAwCxB"}
1
+ {"version":3,"file":"evidenceReconciliationFromSources.d.ts","sourceRoot":"","sources":["../../src/assemble/evidenceReconciliationFromSources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiBlF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,sGAAsG;AACtG,KAAK,cAAc,GAAG,kBAAkB,GAAG;IACzC,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH,CAAC;AA4EF;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,WAAW,EAAE,cAAc,CAAC;IAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAqGD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,6BAA6B,GACnC,sBAAsB,CA4CxB"}
@@ -13,26 +13,23 @@
13
13
  * (`3F-2804`). Nothing here is re-exported: the nine stay internal.
14
14
  *
15
15
  * WHY THE ARGUMENTS ARE DATA AND NOT READERS. Everything below is already in memory by the time
16
- * the edge calls this — the feature bytes, the manifest object, the CI bytes, the measurement
17
- * artefact, the runtime observations. Handing a reader for any of them would move I/O into the
18
- * engine wearing a callback, and `@SCN-EPG-001` reds over exactly that. `killFloor` is the one
19
- * function, and only because a mutation record is opened lazily and at most once per pass: the
20
- * closure already exists at the edge and already carries that guarantee, so injecting it preserves
21
- * a behaviour rather than inventing a seam — and it is what keeps the engine from ever learning
22
- * that mutation ratchets exist (`3F-2841`'s pattern, and `3F-2859` stands).
16
+ * the edge calls this — the feature bytes, the manifest object, the CI bytes, the CI run's own
17
+ * record, the runtime observations. Handing a reader for any of them would move I/O into the
18
+ * engine wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
19
+ * (@SCN-EPG-001's `io-import` arm until 3F-3437).
23
20
  *
24
21
  * THE TARGET ROOT DOES NOT CROSS. It is resolved at the edge and every remaining use of it is
25
- * there: building the reader above, and relativising the runtime observations before they arrive.
22
+ * there: relativising the runtime observations before they arrive.
26
23
  * Threading it in as well would put `node:child_process` and `process.cwd()`'s answer inside the
27
24
  * engine to be read by nothing.
28
25
  *
29
26
  * THE INPUT IS AN INLINE OBJECT TYPE, deliberately. A named exported interface would be a second
30
- * symbol on the frozen v1 surface for a shape only this function takes, and `@SCN-API-001` freezes
31
- * that barrel exactly — one entry point means one name.
27
+ * symbol on the public v1 surface for a shape only this function takes — one entry point means one
28
+ * name. Nothing has reconciled that surface against a written-down list since 3F-3449, so the
29
+ * restraint is a judgement rather than something a guard would catch.
32
30
  */
33
31
  import { evidenceReconciliationOf } from "../domain/evidenceReconciliation.js";
34
32
  import { bareTerm } from "../lib/bareTerm.js";
35
- import { parseMeasuredEvidenceObservations, } from "../parse/measurements.js";
36
33
  import { ciStepRecordCredits } from "../parse/ciStepRecord.js";
37
34
  import { recognisedRunners, runningStaticChecks } from "../parse/runningStaticChecks.js";
38
35
  import { readTargetCorpus } from "../parse/targetCorpus.js";
@@ -40,9 +37,10 @@ import { stepExclusions } from "../parse/stepExclusions.js";
40
37
  import { discoveryScope } from "../parse/discoveryScope.js";
41
38
  import { stepAccounting } from "../parse/stepAccounting.js";
42
39
  import { reconcilerSteps } from "../parse/reconcilerSteps.js";
43
- import { resolveDeferralTags, resolveNotChecks, resolveRetiredKeys, resolveRunners, resolveThresholds, resolveFitnessChecks, } from "../parse/targetManifest.js";
40
+ import { resolveDeferralTags, resolveNotChecks, resolveRetiredKeys, resolveRunners, resolveFitnessChecks, } from "../parse/targetManifest.js";
44
41
  /**
45
- * THE FOUR OBSERVATION STREAMS a `balance` run reconciles, in one place.
42
+ * THE THREE OBSERVATION STREAMS a `balance` run reconciles, in one place — a fourth, the
43
+ * measurements, left with the measured axis (3F-3516).
46
44
  *
47
45
  * ITS OWN FUNCTION, extracted when the consumer's exclusion seam (@SCN-USG-015) took the
48
46
  * composition past the `max-lines-per-function` ceiling — `withUnconfiguredFitnessScenarios`'s
@@ -52,13 +50,12 @@ import { resolveDeferralTags, resolveNotChecks, resolveRetiredKeys, resolveRunne
52
50
  */
53
51
  function observationStreams(input, corpus, packageJson, fitnessChecks, runnerTiers, isExcluded) {
54
52
  // WHICH ROWS THE RUN'S OWN RECORD ANSWERS FOR, so the derivation reader does not answer them
55
- // again (@SCN-LNT-021, @SCN-LNT-022, @SCN-LNT-030; forced by @SCN-USG-004). A converted check
53
+ // again (@SCN-LNT-021, @SCN-LNT-030; forced by @SCN-USG-004). A converted check
56
54
  // used to be one no discovery reader could SEE — its command is not a script of the manifest, so
57
55
  // no prefix reached it — and that accident is what kept one check from being observed twice.
58
56
  // Under the inverted membership rule every step is discovered, so the guarantee has to be a
59
57
  // mechanism: where a run is handed its own record, the CONFIGURED rows are answered by that
60
- // record (and by the measurement stream for the rows carrying a bar), and derivation answers the
61
- // residue — the steps citing no configured row at all.
58
+ // record, and derivation answers the residue — the steps citing no configured row at all.
62
59
  //
63
60
  // IT IS THE ROWS AND NOT THE ENTRIES, because the record answers for a row it holds NO entry for
64
61
  // too: that is broken evidence naming the row (@SCN-LNT-027), and a derivation credit landing
@@ -93,11 +90,6 @@ function observationStreams(input, corpus, packageJson, fitnessChecks, runnerTie
93
90
  // named not one of these steps, which is every configured check broken. The reader tells
94
91
  // them apart; nothing here may.
95
92
  ...ciStepRecordCredits(input.ciStepRecord, fitnessChecks),
96
- // THE THIRD STREAM (@SCN-CIP-003) — the measurements, which arrive already citing. They are
97
- // read here rather than folded into `checkObservations` because that function's observer
98
- // reads the target's CONFIG; a measurement is a fact about a run, and the only thing the
99
- // three share is the axis they ride.
100
- ...parseMeasuredEvidenceObservations(input.measurements),
101
93
  ];
102
94
  }
103
95
  function pipelineReadings(input) {
@@ -142,8 +134,8 @@ export function evidenceReconciliationFromSources(input) {
142
134
  // the characteristic a converted scenario owes and the CREDIT for the characteristic its reported
143
135
  // scenario answers, and two resolutions would be free to disagree about a manifest neither of
144
136
  // them wrote — the same guarantee `readTargetCorpus` composes its three readings for.
145
- const fitnessChecks = resolveFitnessChecks(packageJson, input.killFloor);
146
- const corpus = readTargetCorpus(input.featureSources, resolveDeferralTags(packageJson, input.deferralTags), resolveThresholds(packageJson, input.killFloor), fitnessChecks);
137
+ const fitnessChecks = resolveFitnessChecks(packageJson);
138
+ const corpus = readTargetCorpus(input.featureSources, resolveDeferralTags(packageJson, input.deferralTags), fitnessChecks);
147
139
  // WHAT THE TARGET SAID ABOUT ITS OWN PIPELINE, read once (see `pipelineReadings`).
148
140
  const { runners, exclusions, reconciler, isExcluded } = pipelineReadings(input);
149
141
  // The feature corpus is BOTH halves: the @SCN-tagged scenarios AND the untagged ones
@@ -152,7 +144,12 @@ export function evidenceReconciliationFromSources(input) {
152
144
  // THE CONCEPT, BUILT BY ITS OWN FACTORY (3F-2233) — nobody assembles a Ledger and leaves someone
153
145
  // downstream to total it. The two axis GATES are always on for a `balance` run: both the
154
146
  // runtime-observation and the static-check streams are threaded.
155
- const reconciliation = evidenceReconciliationOf(corpus.scenarios, observationStreams(input, corpus, packageJson, fitnessChecks, runners.tiers, isExcluded), [...input.untaggedScenarios], true, true);
147
+ const reconciliation = evidenceReconciliationOf(corpus.scenarios, observationStreams(input, corpus, packageJson, fitnessChecks, runners.tiers, isExcluded), [...input.untaggedScenarios], true, true,
148
+ // THE FOURTH POPULATION (@SCN-LNT-027, 3F-3472) — the configured rows this corpus carries no
149
+ // scenario for, taken from the SAME corpus reading the obligations were raised from. A row
150
+ // with no scenario raises nothing on the corpus side, so without this the check it declares
151
+ // reaches the books nowhere and the run reads balanced over it.
152
+ corpus.unspecifiedFitnessRows);
156
153
  return withReaderAccounts(reconciliation, corpus, input, packageJson, runners, exclusions, reconciler, isExcluded);
157
154
  }
158
155
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"evidenceReconciliationFromSources.js","sourceRoot":"","sources":["../../src/assemble/evidenceReconciliationFromSources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidenceReconciliationFromSources.js","sourceRoot":"","sources":["../../src/assemble/evidenceReconciliationFromSources.ts"],"names":[],"mappings":"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"}
@@ -27,10 +27,18 @@
27
27
  * refuse a build.
28
28
  *
29
29
  * ON THE PUBLIC `.` BARREL, NEVER `./internal`. A roster only the monorepo can import is
30
- * reachable by exactly the one product that does not need it. The barrel entry is a v1 contract
31
- * change, and `publishedSurfaces.ts`' hand-written surface is updated in the same act — which
32
- * makes the addition a reviewed decision rather than drift, the property this whole slice is
33
- * about, applied to itself.
30
+ * reachable by exactly the one product that does not need it.
31
+ *
32
+ * AND THE BARREL ENTRY IS NOT A FROZEN CONTRACT — it stays on its merits (3F-3410). This used to
33
+ * say the entry was a "v1 contract change", reconciled against a hand-written surface updated in
34
+ * the same act. Both halves are gone: that surface left at 3F-3449, and a 0.x package does not
35
+ * freeze its exports, it drops the dead ones in a prerelease (operator, 2026-09-16). So nothing
36
+ * keeps this export here by inertia, and 3F-3410 — which deleted the obligation-side observer from
37
+ * this same barrel for having no caller — asked directly whether this one had one. It does, and not
38
+ * in this repository: canon names it (below), and a sibling product holds a vendored copy naming
39
+ * this module as its source, to be replaced by the import. A shared vocabulary's consumers are
40
+ * outside the repository that publishes it, so a grep of this tree is the wrong population to
41
+ * measure it by.
34
42
  *
35
43
  * ═══ THIS FILE IS A VENDORED COPY, AND SAYS SO ═══
36
44
  *
@@ -42,22 +50,23 @@
42
50
  * forgotten.
43
51
  *
44
52
  * PURE DATA AND ONE PREDICATE — no I/O, nothing imported, so it sits in `domain/` beside
45
- * the fitness-row readers, and `enginePurity` / `domainPurity` stay green by construction.
53
+ * the fitness-row readers, and `pnpm lint:boundaries` stays green by construction — the whole of
54
+ * what asks that question, now that `domainPurity` has gone at 3F-3438.
46
55
  */
47
56
  /**
48
57
  * The characteristics the portfolio carries, transcribed from `fitness-functions.md`.
49
58
  *
50
- * STATIC CHECKS — canon's grouped-by-characteristic sentence, in its order: `complexity`
51
- * (complexity, complexity-exceptions), `function-length`, `tech-conformance` (domain-purity,
52
- * domain-no-globals, cross-aggregate-boundary, no-parallel-store, anemic-domain,
53
- * orchestration-thinness), `vocab` (vocab-audit, no-state-literals), `traceability` (scn-tags,
54
- * scn-references, feature-codes, scn-subissues), `lint` (style/form of code or spec prose),
55
- * `flag-hygiene` (flag-age, flag-states-matrix), `doc-accuracy`, and the discovery-reachable
56
- * `typecheck`, `security`, `licence`, `bundle-size`. `self-balance` closes the list — a static
57
- * check over the PRODUCED EVIDENCE rather than the source (canon, *Self-reconciliation*).
59
+ * THE WORDS ONLY — WHICH CHECKS SIT UNDER EACH IS NOT RECORDED HERE, AND THAT IS THE POINT
60
+ * (3F-3410). This docblock used to carry canon's grouped-by-characteristic sentence, naming the
61
+ * member checks per word. Canon removed that column on 2026-09-16 and said why in terms: the list
62
+ * had been transcribed HERE, so one unread list had become two drifting ones, and by then most of
63
+ * the checks it named had been deleted from this repository. Membership is recorded once, on each
64
+ * product's own `specController.fitnessChecks` rows — the only place the answer is true and the
65
+ * only place any reconciliation reads it (`dry`: the rows are the fact).
58
66
  *
59
- * MEASURED — assessed by running the suite and measuring it: `ci-run-time`, `coverage`,
60
- * `mutation` (canon, *Runtime fitness functions*).
67
+ * TWO GROUPS, WHICH IS CANON'S OWN SPLIT AND NOT A MEMBERSHIP CLAIM. The static checks read the
68
+ * source (or, for `self-balance`, the PRODUCED EVIDENCE rather than the source); the measured ones
69
+ * are assessed by running the suite and measuring it (canon, *Runtime fitness functions*).
61
70
  *
62
71
  * BARE, AND SORTED BY NEITHER. The words carry no `@` because every reader hands this list bare
63
72
  * terms (`bareTerm`, 3F-2976), and the order is canon's own so a reader diffing the two documents
@@ -1 +1 @@
1
- {"version":3,"file":"checkCharacteristics.d.ts","sourceRoot":"","sources":["../../src/domain/checkCharacteristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAmB5D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAEzE"}
1
+ {"version":3,"file":"checkCharacteristics.d.ts","sourceRoot":"","sources":["../../src/domain/checkCharacteristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAmB5D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAEzE"}
@@ -27,10 +27,18 @@
27
27
  * refuse a build.
28
28
  *
29
29
  * ON THE PUBLIC `.` BARREL, NEVER `./internal`. A roster only the monorepo can import is
30
- * reachable by exactly the one product that does not need it. The barrel entry is a v1 contract
31
- * change, and `publishedSurfaces.ts`' hand-written surface is updated in the same act — which
32
- * makes the addition a reviewed decision rather than drift, the property this whole slice is
33
- * about, applied to itself.
30
+ * reachable by exactly the one product that does not need it.
31
+ *
32
+ * AND THE BARREL ENTRY IS NOT A FROZEN CONTRACT — it stays on its merits (3F-3410). This used to
33
+ * say the entry was a "v1 contract change", reconciled against a hand-written surface updated in
34
+ * the same act. Both halves are gone: that surface left at 3F-3449, and a 0.x package does not
35
+ * freeze its exports, it drops the dead ones in a prerelease (operator, 2026-09-16). So nothing
36
+ * keeps this export here by inertia, and 3F-3410 — which deleted the obligation-side observer from
37
+ * this same barrel for having no caller — asked directly whether this one had one. It does, and not
38
+ * in this repository: canon names it (below), and a sibling product holds a vendored copy naming
39
+ * this module as its source, to be replaced by the import. A shared vocabulary's consumers are
40
+ * outside the repository that publishes it, so a grep of this tree is the wrong population to
41
+ * measure it by.
34
42
  *
35
43
  * ═══ THIS FILE IS A VENDORED COPY, AND SAYS SO ═══
36
44
  *
@@ -42,22 +50,23 @@
42
50
  * forgotten.
43
51
  *
44
52
  * PURE DATA AND ONE PREDICATE — no I/O, nothing imported, so it sits in `domain/` beside
45
- * the fitness-row readers, and `enginePurity` / `domainPurity` stay green by construction.
53
+ * the fitness-row readers, and `pnpm lint:boundaries` stays green by construction — the whole of
54
+ * what asks that question, now that `domainPurity` has gone at 3F-3438.
46
55
  */
47
56
  /**
48
57
  * The characteristics the portfolio carries, transcribed from `fitness-functions.md`.
49
58
  *
50
- * STATIC CHECKS — canon's grouped-by-characteristic sentence, in its order: `complexity`
51
- * (complexity, complexity-exceptions), `function-length`, `tech-conformance` (domain-purity,
52
- * domain-no-globals, cross-aggregate-boundary, no-parallel-store, anemic-domain,
53
- * orchestration-thinness), `vocab` (vocab-audit, no-state-literals), `traceability` (scn-tags,
54
- * scn-references, feature-codes, scn-subissues), `lint` (style/form of code or spec prose),
55
- * `flag-hygiene` (flag-age, flag-states-matrix), `doc-accuracy`, and the discovery-reachable
56
- * `typecheck`, `security`, `licence`, `bundle-size`. `self-balance` closes the list — a static
57
- * check over the PRODUCED EVIDENCE rather than the source (canon, *Self-reconciliation*).
59
+ * THE WORDS ONLY — WHICH CHECKS SIT UNDER EACH IS NOT RECORDED HERE, AND THAT IS THE POINT
60
+ * (3F-3410). This docblock used to carry canon's grouped-by-characteristic sentence, naming the
61
+ * member checks per word. Canon removed that column on 2026-09-16 and said why in terms: the list
62
+ * had been transcribed HERE, so one unread list had become two drifting ones, and by then most of
63
+ * the checks it named had been deleted from this repository. Membership is recorded once, on each
64
+ * product's own `specController.fitnessChecks` rows — the only place the answer is true and the
65
+ * only place any reconciliation reads it (`dry`: the rows are the fact).
58
66
  *
59
- * MEASURED — assessed by running the suite and measuring it: `ci-run-time`, `coverage`,
60
- * `mutation` (canon, *Runtime fitness functions*).
67
+ * TWO GROUPS, WHICH IS CANON'S OWN SPLIT AND NOT A MEMBERSHIP CLAIM. The static checks read the
68
+ * source (or, for `self-balance`, the PRODUCED EVIDENCE rather than the source); the measured ones
69
+ * are assessed by running the suite and measuring it (canon, *Runtime fitness functions*).
61
70
  *
62
71
  * BARE, AND SORTED BY NEITHER. The words carry no `@` because every reader hands this list bare
63
72
  * terms (`bareTerm`, 3F-2976), and the order is canon's own so a reader diffing the two documents
@@ -1 +1 @@
1
- {"version":3,"file":"checkCharacteristics.js","sourceRoot":"","sources":["../../src/domain/checkCharacteristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,OAAO;IACP,cAAc;IACd,MAAM;IACN,cAAc;IACd,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,UAAU;IACV,UAAU;CACX,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,cAAsB;IAC9D,OAAO,+BAA+B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"checkCharacteristics.js","sourceRoot":"","sources":["../../src/domain/checkCharacteristics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,OAAO;IACP,cAAc;IACd,MAAM;IACN,cAAc;IACd,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;IACT,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,UAAU;IACV,UAAU;CACX,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,cAAsB;IAC9D,OAAO,+BAA+B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAClE,CAAC"}
@@ -48,8 +48,21 @@
48
48
  * Parent: @SCN-LDG-001.
49
49
  */
50
50
  import type { RuntimeQualityCheck, Scenario, EvidenceObservation, Ledger } from "../model.js";
51
+ import type { UnspecifiedFitnessRow } from "./fitnessChecks.js";
51
52
  import type { ScenarioReconciliationTotals, EvidenceObligationTotals, LintTally } from "./ledger.js";
52
- export declare function reconcile(scenarios: Scenario[], evidenceObservations: EvidenceObservation[], untaggedScenarios?: readonly string[]): Ledger;
53
+ export declare function reconcile(scenarios: Scenario[], evidenceObservations: EvidenceObservation[], untaggedScenarios?: readonly string[],
54
+ /**
55
+ * The CONFIGURED ROWS the target's corpus carries no scenario for (@SCN-LNT-027, 3F-3472) — the
56
+ * fourth population, minted below.
57
+ *
58
+ * IT DEFAULTS, WHERE THE TWO GATES BELOW DELIBERATELY DO NOT (3F-2875). A gate that defaults is a
59
+ * gate a caller can forget and thereby CHANGE what the summary claims. This is a population, and
60
+ * an omitted population is indistinguishable from an empty one in the only way that matters:
61
+ * both mint no rows, and neither says anything about a manifest. Every caller that constructs
62
+ * `Scenario[]` by hand has no manifest to read rows from, which is `untaggedScenarios`' own
63
+ * argument for the default it already carries.
64
+ */
65
+ unspecifiedFitnessRows?: readonly UnspecifiedFitnessRow[]): Ledger;
53
66
  /**
54
67
  * The materialised test-volume totals (RMD-005) — the runtime evidence-observation kind-counts
55
68
  * the markdown's `### Test volume` identity line derives, carried AS DATA. The identity
@@ -279,6 +292,10 @@ export interface Summary {
279
292
  * are simply not there for anything downstream to find; naming the key is the only way a
280
293
  * consumer who wrote it in good faith learns that none of it is taking effect.
281
294
  *
295
+ * AND A BAR A CONFIGURED ROW STILL CARRIES (@SCN-LNT-035), named with its row —
296
+ * `fitnessChecks[SCN-XXX-NNN].atLeast` / `.atMost` — in the same account, in manifest order.
297
+ * The row itself still reaches the books, credited by its step's outcome; only the bar is unread.
298
+ *
282
299
  * PRESENT ONLY WHEN NON-EMPTY, so a target that carries no retired key — every target today
283
300
  * that has never written one — renders and serialises byte-identically to before.
284
301
  */
@@ -413,5 +430,12 @@ export declare function summaryOf(ledger: Ledger, withRuntimeObservations: boole
413
430
  * so. A default is the wrong shape for an argument whose omission is indistinguishable from a
414
431
  * deliberate `false`.
415
432
  */
416
- export declare function evidenceReconciliationOf(scenarios: Scenario[], evidenceObservations: EvidenceObservation[], untaggedScenarios: readonly string[], withRuntimeObservations: boolean, withStaticChecks: boolean): EvidenceReconciliation;
433
+ export declare function evidenceReconciliationOf(scenarios: Scenario[], evidenceObservations: EvidenceObservation[], untaggedScenarios: readonly string[], withRuntimeObservations: boolean, withStaticChecks: boolean,
434
+ /**
435
+ * The CONFIGURED ROWS the corpus carries no scenario for (@SCN-LNT-027, 3F-3472) — passed
436
+ * through to `reconcile`, which mints one row apiece. It defaults for the reason given there, and
437
+ * that reason is NOT the trailing three's: a population omitted mints nothing and claims nothing,
438
+ * where a gate omitted silently changes what the summary says is in play.
439
+ */
440
+ unspecifiedFitnessRows?: readonly UnspecifiedFitnessRow[]): EvidenceReconciliation;
417
441
  //# sourceMappingURL=evidenceReconciliation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evidenceReconciliation.d.ts","sourceRoot":"","sources":["../../src/domain/evidenceReconciliation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidenceReconciliation.d.ts","sourceRoot":"","sources":["../../src/domain/evidenceReconciliation.ts"],"names":[],"mappings":"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"}