@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
@@ -25,19 +25,19 @@
25
25
  *
26
26
  * NOTHING HERE READS A FILE, AND NOTHING HERE RE-READS ONE. Every input arrives already read,
27
27
  * for `evidenceReconciliationFromSources`'s reason: an engine handed a reader is an engine doing
28
- * I/O wearing a callback, and `@SCN-EPG-001` reds over exactly that.
28
+ * I/O wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
29
+ * (@SCN-EPG-001's `io-import` arm until 3F-3437).
29
30
  *
30
- * WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in three siblings —
31
- * `corpusCodeFaults.ts` (a code binding to a file), `corpusGrammarFaults.ts` (a tag meaning
32
- * something) and `corpusClaimFaults.ts` (how many checks one scenario claims) — because the joined
33
- * module reached the 400-line `max-lines` ceiling, twice, and canon rules that split rather than
34
- * an exception entry (@SCN-CPX-001). What stays here is the composition and the VOCABULARY: the
35
- * fault kinds, the shape of a discovered file, and the one entry point any sibling has. Splitting
36
- * on any other seam would have put a rule's inputs in one module and its finding's wording in
37
- * another.
31
+ * WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in two siblings —
32
+ * `corpusCodeFaults.ts` (a code binding to a file) and `corpusGrammarFaults.ts` (a tag meaning
33
+ * something) — because the joined module reached the 400-line `max-lines` ceiling, and canon rules
34
+ * that split rather than an exception entry (@SCN-FIT-001). A third sibling held the claim rule
35
+ * (how many checks one scenario claims) until it left with the measured axis (3F-3516). What
36
+ * stays here is the composition and the VOCABULARY: the fault kinds, the shape of a discovered
37
+ * file, and the one entry point any sibling has. Splitting on any other seam would have put a
38
+ * rule's inputs in one module and its finding's wording in another.
38
39
  */
39
40
  import type { PackageJsonScripts } from "./checkScriptsRunInCI.js";
40
- import type { KillFloorReader } from "./targetManifest.js";
41
41
  /**
42
42
  * A target's manifest as these rules read it — its scripts, and its `specController` block.
43
43
  *
@@ -48,20 +48,19 @@ import type { KillFloorReader } from "./targetManifest.js";
48
48
  export type TargetManifest = PackageJsonScripts & {
49
49
  specController?: {
50
50
  deferralTags?: unknown;
51
- thresholds?: unknown;
52
51
  fitnessChecks?: unknown;
53
52
  };
54
53
  };
55
54
  /**
56
55
  * One way a corpus breaks the `@SCN` scheme's own rules.
57
56
  *
58
- * FOUR KINDS, NOT ONE, because they are four faults with four different fixes — the same
57
+ * THREE KINDS, NOT ONE, because they are three faults with three different fixes — the same
59
58
  * argument that split the tier-tag check's findings three ways. `duplicate-feature-code` says
60
59
  * *give one of these files a code of its own*; `foreign-scenario-code` says *this id names a
61
- * file it is not written in*; `unrecognised-tag` says *this word means nothing here*; and
62
- * `multiple-check-tags` says *split this into two scenarios*. Collapsing any two would print one
63
- * fault's remedy at the other's author, which is precisely how a mistyped tier tag stayed
64
- * invisible for as long as it did.
60
+ * file it is not written in*; and `unrecognised-tag` says *this word means nothing here*. A
61
+ * fourth, `multiple-check-tags`, left with the measured axis (3F-3516). Collapsing any two would
62
+ * print one fault's remedy at the other's author, which is precisely how a mistyped tier tag
63
+ * stayed invisible for as long as it did.
65
64
  *
66
65
  * THE UNION IS THE COMMAND'S WHOLE VOCABULARY, and it is stated once here rather than grown a
67
66
  * member at a time by whichever rule landed last. That is also why it stayed in this module when
@@ -69,13 +68,12 @@ export type TargetManifest = PackageJsonScripts & {
69
68
  * assembled from both sides would be a statement about the command that no single file made. The
70
69
  * two CODE rules have producers — `duplicate-feature-code` (@SCN-STG-010) and
71
70
  * `foreign-scenario-code` (@SCN-STG-011); so does `unrecognised-tag` (@SCN-STG-002, and the
72
- * clauses that narrow what it reaches at @SCN-STG-003, @SCN-STG-004, @SCN-STG-005 and
73
- * @SCN-STG-009); and since 3F-3307 so does `multiple-check-tags` (@SCN-STG-007). Every member of
74
- * the union is now raised by a rule with a scenario of its own, which is the state the kinds were
75
- * written down ahead of.
71
+ * clauses that narrow what it reaches at @SCN-STG-003, @SCN-STG-004 and @SCN-STG-005). Every
72
+ * member of the union is raised by a rule with a scenario of its own, which is the state the kinds
73
+ * were written down ahead of.
76
74
  */
77
75
  export interface CorpusFault {
78
- readonly kind: "unrecognised-tag" | "multiple-check-tags" | "duplicate-feature-code" | "foreign-scenario-code";
76
+ readonly kind: "unrecognised-tag" | "duplicate-feature-code" | "foreign-scenario-code";
79
77
  readonly message: string;
80
78
  }
81
79
  /** One discovered feature file, as the edge read it. */
@@ -105,31 +103,22 @@ export interface CorpusFile {
105
103
  *
106
104
  * @param input.features the target's discovered feature files — slug, header code and source,
107
105
  * read ONCE at the edge so two discoveries can never disagree about which corpus was judged.
108
- * @param input.packageJson the TARGET's manifest, from which the check-tag union and the
109
- * recognised deferral set are resolved INSIDE this engine — through the same resolvers the
110
- * reconciliation reads them with, so the rules here admit exactly what the obligation rule
111
- * raises against. READ SINCE 3F-3303, by the grammar rules and only by them: the deferral set
112
- * (@SCN-PND-021), the REGISTERED half of the check-tag union (@SCN-STG-005) and, since 3F-3306,
113
- * its MEASURED half (@SCN-STG-009) are all resolved from it. The code rules never see it, which
114
- * is the seam the module split was drawn on.
106
+ * @param input.packageJson the TARGET's manifest, from which the recognised deferral set is
107
+ * resolved INSIDE this engine — through the same resolver the reconciliation reads it with, so the
108
+ * rules here admit exactly what the reconciliation honours as a skip. READ SINCE 3F-3303, by the
109
+ * grammar rules and only by them: the deferral set (@SCN-PND-021) is resolved from it. The
110
+ * check-tag halves once read from it — the REGISTERED half (@SCN-STG-005) and the MEASURED half
111
+ * — are retired (3F-3161, 3F-3516). The code rules never see it, which is the seam the module
112
+ * split was drawn on.
115
113
  * @param input.deferralTags the application layer's STARTER deferral set, which a target's
116
114
  * config may only extend. Product policy, single-sourced there and never here — the same
117
115
  * argument, and the same parameter, as the reconcile composition's. Read since 3F-3303, and
118
116
  * handed onward unresolved: what turns it into the target's recognised set is
119
117
  * `resolveDeferralTags`, called once beside the rule that asks the question.
120
- * @param input.killFloor the reader over the target's mutation records, injected as a closure
121
- * because the thresholds resolver has to reach one to read a bar that names a gate
122
- * (@SCN-MUT-012). READ SINCE 3F-3306, by the grammar rules and only by them: the check-tag
123
- * union's MEASURED half is the target's thresholds, and resolving those is what reaches a record.
124
- * It is handed onward UNUSED-LOOKING and that is deliberate — a threshold KEY survives whatever
125
- * its bar resolves to (@SCN-MUT-003), so this reader cannot move a tag-grammar verdict today.
126
- * What it buys is that the set is resolved by the resolver that owns it, on the tree the manifest
127
- * came from, rather than by a cheaper reading beside it that would agree until it did not.
128
118
  */
129
119
  export declare function corpusFaults(input: {
130
120
  features: readonly CorpusFile[];
131
121
  packageJson: TargetManifest;
132
122
  deferralTags: readonly string[];
133
- killFloor: KillFloorReader;
134
123
  }): CorpusFault[];
135
124
  //# sourceMappingURL=corpusFaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"corpusFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,SAAS,EAAE,eAAe,CAAC;CAC5B,GAAG,WAAW,EAAE,CAahB"}
1
+ {"version":3,"file":"corpusFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EACT,kBAAkB,GAClB,wBAAwB,GACxB,uBAAuB,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAChC,WAAW,EAAE,cAAc,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GAAG,WAAW,EAAE,CAMhB"}
@@ -25,18 +25,18 @@
25
25
  *
26
26
  * NOTHING HERE READS A FILE, AND NOTHING HERE RE-READS ONE. Every input arrives already read,
27
27
  * for `evidenceReconciliationFromSources`'s reason: an engine handed a reader is an engine doing
28
- * I/O wearing a callback, and `@SCN-EPG-001` reds over exactly that.
28
+ * I/O wearing a callback, and `lint:boundaries`' `core-imports-io` rule reds over exactly that
29
+ * (@SCN-EPG-001's `io-import` arm until 3F-3437).
29
30
  *
30
- * WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in three siblings —
31
- * `corpusCodeFaults.ts` (a code binding to a file), `corpusGrammarFaults.ts` (a tag meaning
32
- * something) and `corpusClaimFaults.ts` (how many checks one scenario claims) — because the joined
33
- * module reached the 400-line `max-lines` ceiling, twice, and canon rules that split rather than
34
- * an exception entry (@SCN-CPX-001). What stays here is the composition and the VOCABULARY: the
35
- * fault kinds, the shape of a discovered file, and the one entry point any sibling has. Splitting
36
- * on any other seam would have put a rule's inputs in one module and its finding's wording in
37
- * another.
31
+ * WHAT IS LEFT IN THIS MODULE, AND WHAT MOVED OUT. The rules themselves live in two siblings —
32
+ * `corpusCodeFaults.ts` (a code binding to a file) and `corpusGrammarFaults.ts` (a tag meaning
33
+ * something) — because the joined module reached the 400-line `max-lines` ceiling, and canon rules
34
+ * that split rather than an exception entry (@SCN-FIT-001). A third sibling held the claim rule
35
+ * (how many checks one scenario claims) until it left with the measured axis (3F-3516). What
36
+ * stays here is the composition and the VOCABULARY: the fault kinds, the shape of a discovered
37
+ * file, and the one entry point any sibling has. Splitting on any other seam would have put a
38
+ * rule's inputs in one module and its finding's wording in another.
38
39
  */
39
- import { multipleCheckTags } from "./corpusClaimFaults.js";
40
40
  import { duplicateFeatureCodes, foreignScenarioCodes } from "./corpusCodeFaults.js";
41
41
  import { unrecognisedTags } from "./corpusGrammarFaults.js";
42
42
  /**
@@ -49,39 +49,24 @@ import { unrecognisedTags } from "./corpusGrammarFaults.js";
49
49
  *
50
50
  * @param input.features the target's discovered feature files — slug, header code and source,
51
51
  * read ONCE at the edge so two discoveries can never disagree about which corpus was judged.
52
- * @param input.packageJson the TARGET's manifest, from which the check-tag union and the
53
- * recognised deferral set are resolved INSIDE this engine — through the same resolvers the
54
- * reconciliation reads them with, so the rules here admit exactly what the obligation rule
55
- * raises against. READ SINCE 3F-3303, by the grammar rules and only by them: the deferral set
56
- * (@SCN-PND-021), the REGISTERED half of the check-tag union (@SCN-STG-005) and, since 3F-3306,
57
- * its MEASURED half (@SCN-STG-009) are all resolved from it. The code rules never see it, which
58
- * is the seam the module split was drawn on.
52
+ * @param input.packageJson the TARGET's manifest, from which the recognised deferral set is
53
+ * resolved INSIDE this engine — through the same resolver the reconciliation reads it with, so the
54
+ * rules here admit exactly what the reconciliation honours as a skip. READ SINCE 3F-3303, by the
55
+ * grammar rules and only by them: the deferral set (@SCN-PND-021) is resolved from it. The
56
+ * check-tag halves once read from it — the REGISTERED half (@SCN-STG-005) and the MEASURED half
57
+ * — are retired (3F-3161, 3F-3516). The code rules never see it, which is the seam the module
58
+ * split was drawn on.
59
59
  * @param input.deferralTags the application layer's STARTER deferral set, which a target's
60
60
  * config may only extend. Product policy, single-sourced there and never here — the same
61
61
  * argument, and the same parameter, as the reconcile composition's. Read since 3F-3303, and
62
62
  * handed onward unresolved: what turns it into the target's recognised set is
63
63
  * `resolveDeferralTags`, called once beside the rule that asks the question.
64
- * @param input.killFloor the reader over the target's mutation records, injected as a closure
65
- * because the thresholds resolver has to reach one to read a bar that names a gate
66
- * (@SCN-MUT-012). READ SINCE 3F-3306, by the grammar rules and only by them: the check-tag
67
- * union's MEASURED half is the target's thresholds, and resolving those is what reaches a record.
68
- * It is handed onward UNUSED-LOOKING and that is deliberate — a threshold KEY survives whatever
69
- * its bar resolves to (@SCN-MUT-003), so this reader cannot move a tag-grammar verdict today.
70
- * What it buys is that the set is resolved by the resolver that owns it, on the tree the manifest
71
- * came from, rather than by a cheaper reading beside it that would agree until it did not.
72
64
  */
73
65
  export function corpusFaults(input) {
74
66
  return [
75
67
  ...duplicateFeatureCodes(input.features),
76
68
  ...foreignScenarioCodes(input.features),
77
- ...unrecognisedTags(input.features, input.packageJson, input.deferralTags, input.killFloor),
78
- // THE CLAIM RULE LAST, which is where the private check's own walk put it: below the grammar
79
- // question, above nothing. Inside that walk the position WAS the parking scope — this rule
80
- // ran only for scenarios the parked-continue had not already skipped — and here it can only
81
- // order the findings, so the scope is a clause the rule writes out for itself. What the
82
- // position still carries is the reading order: a corpus with both faults tells its author
83
- // which of its words mean nothing before it tells them they have claimed two that do.
84
- ...multipleCheckTags(input.features, input.packageJson, input.deferralTags, input.killFloor),
69
+ ...unrecognisedTags(input.features, input.packageJson, input.deferralTags),
85
70
  ];
86
71
  }
87
72
  //# sourceMappingURL=corpusFaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"corpusFaults.js","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAmE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,YAAY,CAAC,KAK5B;IACC,OAAO;QACL,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;QAC3F,6FAA6F;QAC7F,2FAA2F;QAC3F,4FAA4F;QAC5F,wFAAwF;QACxF,0FAA0F;QAC1F,sFAAsF;QACtF,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;KAC7F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"corpusFaults.js","sourceRoot":"","sources":["../../src/parse/corpusFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA+D5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,KAI5B;IACC,OAAO;QACL,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACvC,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC;KAC3E,CAAC;AACJ,CAAC"}
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * THE GRAMMAR RULES of `spec-controller tags` — everything about whether a TAG on a scenario
3
- * means anything. Its siblings hold the other two questions: `corpusCodeFaults.ts` whether a
4
- * feature code binds to one feature file, `corpusClaimFaults.ts` how many checks one scenario may
5
- * claim. `corpusFaults.ts` composes the three and is the only entry point any of them has.
3
+ * means anything. Its sibling holds the other question: `corpusCodeFaults.ts` whether a feature
4
+ * code binds to one feature file. `corpusFaults.ts` composes the two and is the only entry point
5
+ * either of them has.
6
6
  *
7
7
  * THE SEAM, STATED FROM THIS SIDE. A grammar rule asks *is this word part of the `@SCN` scheme*,
8
8
  * and the answer is assembled from places that are not this module's: the engine's own
9
9
  * quality-check maps, the `SCN-<FFF>-<NNN>` spelling `featureCodeOf` owns, and the target's own
10
- * manifest. A code rule needs none of those; it reads the corpus's shape. A claim rule reads this
11
- * module's own set and asks a question of the SCENARIO rather than of any tag on it. Three
12
- * questions, three modules; the first split happened when the joined module reached the 400-line
13
- * `max-lines` ceiling with four more grammar clauses still to land, and the second when the claim
14
- * rule would have carried it past that ceiling again (@SCN-CPX-001, and never an exception entry).
10
+ * manifest. A code rule needs none of those; it reads the corpus's shape. Two questions, two
11
+ * modules; the split happened when the joined module reached the 400-line `max-lines` ceiling
12
+ * with four more grammar clauses still to land (@SCN-FIT-001, and never an exception entry). The
13
+ * claim rule that once made a third sibling left with the measured axis (3F-3516): once the axis
14
+ * word is the only word that names a check, no scenario can claim two.
15
15
  *
16
16
  * AND THE TARGET'S HALF IS RESOLVED HERE, NOT HANDED IN RESOLVED. The composition hands this
17
17
  * module a manifest rather than an answer, so the read lives beside the rule that uses it — the
@@ -26,63 +26,6 @@
26
26
  * telling authors which words are legitimate.
27
27
  */
28
28
  import type { CorpusFault, CorpusFile, TargetManifest } from "./corpusFaults.js";
29
- import { type KillFloorReader } from "./targetManifest.js";
30
- /**
31
- * Every word that NAMES A CHECK on this target (@SCN-STG-005) — the set the grammar admits
32
- * beside the scheme's own tier tags.
33
- *
34
- * ONE ASSEMBLY, AND THAT IS THE WHOLE POINT OF ITS BEING HERE. The tier floor this rule
35
- * replaced assembled its own copy at a private CLI while the obligation rule assembled another
36
- * in the engine, and the two coming to disagree about this set cost a slice (3F-3126). Resolving
37
- * it beside the rule that asks the question means the words this command calls legitimate are
38
- * the words the engine beside it raises obligations from — there is no second answer to fall
39
- * behind the first, and no package boundary for one to be resolved on either side of.
40
- *
41
- * NO BARE TAG NAMES A CHECK ANY LONGER (3F-3161). The target's own check registry used to be
42
- * read here as the TARGET's answer for which bare words meant a check; that reading is retired,
43
- * and a bare check tag is grammar nowhere now, registered or not — the only words this function
44
- * still admits beside the scheme's own tiers are the converted axis word and a measured tag read
45
- * off the target's own thresholds. A target still writing one is read nowhere by this
46
- * assembly, which is the whole of what @SCN-STG-005 changed.
47
- *
48
- * AND THE AXIS WORD IS NOT THE TARGET'S TO GRANT (3F-3138, 3F-3149). A CONVERTED check carries
49
- * one word for the whole axis and puts its CHARACTERISTIC on a configured row, so the retired
50
- * registry names it nowhere and never will. Which words name a CHECK is the target's
51
- * answer; which axis a scenario is ON is the model's, exactly as `unit` is — so the word is
52
- * admitted whatever the manifest holds, and a target that has converted nothing does not get to
53
- * spell it differently. It arrives as `FITNESS_AXIS_TAG`, the one spelling of it, because a
54
- * literal written out here would be a second answer travelling under the first's name.
55
- *
56
- * A CONVERTED SCENARIO NO CONFIGURED ROW NAMES IS ADMITTED, deliberately: that IS a corpus
57
- * fault, and it is @SCN-LNT-020's, which names the scenario by id and leaves the one remedy
58
- * there is. Redding it here too would print half of one fault in a second place with the wrong
59
- * remedy attached — *this word means nothing here*, said to an author whose scenario names the
60
- * one axis the model has.
61
- *
62
- * AND THE MEASURED SOURCE IS THE OTHER (@SCN-STG-009). A measured check produces a number held
63
- * against an authored ceiling; nothing invokes it, so it has no runnable script handle and was
64
- * never named by a registry either — the only place it is named is the target's thresholds. Skip
65
- * them and a target's `@ci-run-time` row reds on the very tag its own obligation was raised from,
66
- * which is why this assembly still has two sources rather than collapsing to the axis word alone.
67
- *
68
- * AND IT HAS A SECOND READER SINCE 3F-3307, which is what makes "one assembly" a fact rather than
69
- * a habit. `corpusClaimFaults.ts` asks a different question over this same set — how many of these
70
- * words one scenario may claim — and IMPORTS this function rather than rebuilding it. A rule
71
- * counting a narrower set than the grammar admits would green a corpus claiming two checks by one
72
- * of the words the grammar had just called legitimate; a wider one would red a word no obligation
73
- * is ever raised from. It is exported for that reason and no other: it is not on the barrel, and a
74
- * consumer's route to this capability stays the CLI.
75
- *
76
- * THE THRESHOLD READ TAKES THE KILL-FLOOR READER, and taking it is the discipline rather than a
77
- * need this rule can feel. A bar may name a mutation gate instead of a figure (@SCN-MUT-012), so
78
- * resolving one means opening that gate's record on the target's own tree — the closure the
79
- * command's edge builds over the target root, the same one the reconciliation beside it hands to
80
- * the same resolver. What it returns cannot move THIS answer: a threshold KEY survives whatever
81
- * its bar resolves to (@SCN-MUT-003), and the key set is the whole of what is read here. So a
82
- * cheaper reading would agree with the resolver today — and be a second answer the first time a
83
- * bar decided a key. The set is resolved once, by the resolver that owns it.
84
- */
85
- export declare function checkTagsOf(packageJson: TargetManifest, killFloor: KillFloorReader): readonly string[];
86
29
  /**
87
30
  * A tag on an `@SCN` scenario that means nothing here (@SCN-STG-002, @SCN-STG-003, @SCN-STG-004).
88
31
  *
@@ -113,9 +56,8 @@ export declare function checkTagsOf(packageJson: TargetManifest, killFloor: Kill
113
56
  *
114
57
  * @param features the target's discovered feature files, read once at the edge.
115
58
  * @param packageJson the TARGET's manifest, read HERE through the same resolvers the ingest edge
116
- * reads it with — one reading of `specController.deferralTags` (@SCN-PND-021) and one of
117
- * `specController.thresholds` (@SCN-STG-009), so the words this rule calls legitimate are exactly
118
- * the words the engine beside it honours as a skip and raises obligations from.
59
+ * reads it with — one reading of `specController.deferralTags` (@SCN-PND-021), so the words this
60
+ * rule calls legitimate are exactly the words the engine beside it honours as a skip.
119
61
  * The target's own check registry is retired and read nowhere in this assembly (@SCN-STG-005,
120
62
  * 3F-3161). A set handed in already resolved would have been a second answer travelling under the
121
63
  * first's name.
@@ -124,10 +66,6 @@ export declare function checkTagsOf(packageJson: TargetManifest, killFloor: Kill
124
66
  * strings — and a copy held in core would be a second statement of it. Pass none and this clause
125
67
  * recognises nothing it was not given, which is the difference between owning a policy and
126
68
  * hard-coding someone else's.
127
- * @param killFloor the reader over the TARGET's mutation records, threaded through to the
128
- * threshold resolution because a bar may name a gate rather than a figure (@SCN-MUT-012). It is
129
- * the edge's closure over the target root, so the ceilings this rule reads and the records they
130
- * reach answer for one tree.
131
69
  */
132
- export declare function unrecognisedTags(features: readonly CorpusFile[], packageJson: TargetManifest, starterDeferralTags: readonly string[], killFloor: KillFloorReader): CorpusFault[];
70
+ export declare function unrecognisedTags(features: readonly CorpusFile[], packageJson: TargetManifest, starterDeferralTags: readonly string[]): CorpusFault[];
133
71
  //# sourceMappingURL=corpusGrammarFaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"corpusGrammarFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOjF,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,qBAAqB,CAAC;AA4B7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,cAAc,EAC3B,SAAS,EAAE,eAAe,GACzB,SAAS,MAAM,EAAE,CAKnB;AAoJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,SAAS,MAAM,EAAE,EACtC,SAAS,EAAE,eAAe,GACzB,WAAW,EAAE,CAsBf"}
1
+ {"version":3,"file":"corpusGrammarFaults.d.ts","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA2NjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,WAAW,EAAE,CAqBf"}
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * THE GRAMMAR RULES of `spec-controller tags` — everything about whether a TAG on a scenario
3
- * means anything. Its siblings hold the other two questions: `corpusCodeFaults.ts` whether a
4
- * feature code binds to one feature file, `corpusClaimFaults.ts` how many checks one scenario may
5
- * claim. `corpusFaults.ts` composes the three and is the only entry point any of them has.
3
+ * means anything. Its sibling holds the other question: `corpusCodeFaults.ts` whether a feature
4
+ * code binds to one feature file. `corpusFaults.ts` composes the two and is the only entry point
5
+ * either of them has.
6
6
  *
7
7
  * THE SEAM, STATED FROM THIS SIDE. A grammar rule asks *is this word part of the `@SCN` scheme*,
8
8
  * and the answer is assembled from places that are not this module's: the engine's own
9
9
  * quality-check maps, the `SCN-<FFF>-<NNN>` spelling `featureCodeOf` owns, and the target's own
10
- * manifest. A code rule needs none of those; it reads the corpus's shape. A claim rule reads this
11
- * module's own set and asks a question of the SCENARIO rather than of any tag on it. Three
12
- * questions, three modules; the first split happened when the joined module reached the 400-line
13
- * `max-lines` ceiling with four more grammar clauses still to land, and the second when the claim
14
- * rule would have carried it past that ceiling again (@SCN-CPX-001, and never an exception entry).
10
+ * manifest. A code rule needs none of those; it reads the corpus's shape. Two questions, two
11
+ * modules; the split happened when the joined module reached the 400-line `max-lines` ceiling
12
+ * with four more grammar clauses still to land (@SCN-FIT-001, and never an exception entry). The
13
+ * claim rule that once made a third sibling left with the measured axis (3F-3516): once the axis
14
+ * word is the only word that names a check, no scenario can claim two.
15
15
  *
16
16
  * AND THE TARGET'S HALF IS RESOLVED HERE, NOT HANDED IN RESOLVED. The composition hands this
17
17
  * module a manifest rather than an answer, so the read lives beside the rule that uses it — the
@@ -25,10 +25,9 @@
25
25
  * agree with its source by diligence and then drift, and the check that then reds is the one
26
26
  * telling authors which words are legitimate.
27
27
  */
28
- import { measuredCheckTags } from "../domain/thresholds.js";
29
28
  import { featureCodeOf } from "../lib/featureCode.js";
30
29
  import { FITNESS_AXIS_TAG, PENDING_QUALITY_CHECK_TAGS, RUNTIME_QUALITY_CHECK_TAGS, parseTaggedScenarios, } from "./scenarios.js";
31
- import { resolveDeferralTags, resolveThresholds, } from "./targetManifest.js";
30
+ import { resolveDeferralTags } from "./targetManifest.js";
32
31
  /**
33
32
  * The tier tags an unrecognised tag is measured against, and the set that answers whether a tag
34
33
  * NAMES a tier at all.
@@ -67,10 +66,11 @@ const TIER_TAGS = [
67
66
  *
68
67
  * NO BARE TAG NAMES A CHECK ANY LONGER (3F-3161). The target's own check registry used to be
69
68
  * read here as the TARGET's answer for which bare words meant a check; that reading is retired,
70
- * and a bare check tag is grammar nowhere now, registered or not — the only words this function
71
- * still admits beside the scheme's own tiers are the converted axis word and a measured tag read
72
- * off the target's own thresholds. A target still writing one is read nowhere by this
73
- * assembly, which is the whole of what @SCN-STG-005 changed.
69
+ * and a bare check tag is grammar nowhere now, registered or not. The measured tags read off the
70
+ * target's own thresholds left with the measured axis (3F-3516), so the one word this function
71
+ * admits beside the scheme's own tiers is the converted axis word — and it reads no manifest to
72
+ * find it, because the word is the model's. A target still writing a bare check tag is read
73
+ * nowhere by this assembly, which is the whole of what @SCN-STG-005 changed.
74
74
  *
75
75
  * AND THE AXIS WORD IS NOT THE TARGET'S TO GRANT (3F-3138, 3F-3149). A CONVERTED check carries
76
76
  * one word for the whole axis and puts its CHARACTERISTIC on a configured row, so the retired
@@ -85,35 +85,9 @@ const TIER_TAGS = [
85
85
  * there is. Redding it here too would print half of one fault in a second place with the wrong
86
86
  * remedy attached — *this word means nothing here*, said to an author whose scenario names the
87
87
  * one axis the model has.
88
- *
89
- * AND THE MEASURED SOURCE IS THE OTHER (@SCN-STG-009). A measured check produces a number held
90
- * against an authored ceiling; nothing invokes it, so it has no runnable script handle and was
91
- * never named by a registry either — the only place it is named is the target's thresholds. Skip
92
- * them and a target's `@ci-run-time` row reds on the very tag its own obligation was raised from,
93
- * which is why this assembly still has two sources rather than collapsing to the axis word alone.
94
- *
95
- * AND IT HAS A SECOND READER SINCE 3F-3307, which is what makes "one assembly" a fact rather than
96
- * a habit. `corpusClaimFaults.ts` asks a different question over this same set — how many of these
97
- * words one scenario may claim — and IMPORTS this function rather than rebuilding it. A rule
98
- * counting a narrower set than the grammar admits would green a corpus claiming two checks by one
99
- * of the words the grammar had just called legitimate; a wider one would red a word no obligation
100
- * is ever raised from. It is exported for that reason and no other: it is not on the barrel, and a
101
- * consumer's route to this capability stays the CLI.
102
- *
103
- * THE THRESHOLD READ TAKES THE KILL-FLOOR READER, and taking it is the discipline rather than a
104
- * need this rule can feel. A bar may name a mutation gate instead of a figure (@SCN-MUT-012), so
105
- * resolving one means opening that gate's record on the target's own tree — the closure the
106
- * command's edge builds over the target root, the same one the reconciliation beside it hands to
107
- * the same resolver. What it returns cannot move THIS answer: a threshold KEY survives whatever
108
- * its bar resolves to (@SCN-MUT-003), and the key set is the whole of what is read here. So a
109
- * cheaper reading would agree with the resolver today — and be a second answer the first time a
110
- * bar decided a key. The set is resolved once, by the resolver that owns it.
111
88
  */
112
- export function checkTagsOf(packageJson, killFloor) {
113
- return [
114
- ...measuredCheckTags(resolveThresholds(packageJson, killFloor)),
115
- FITNESS_AXIS_TAG,
116
- ];
89
+ function checkTagsOf() {
90
+ return [FITNESS_AXIS_TAG];
117
91
  }
118
92
  /** Levenshtein distance, uncapped — the strings here are tag-length. */
119
93
  function editDistance(a, b) {
@@ -201,11 +175,12 @@ function unrecognisedTagFault(tag) {
201
175
  /**
202
176
  * Is this tag part of the `@SCN` scheme's grammar, on a scenario in this file?
203
177
  *
204
- * SIX CLAUSES, AND ONE OF THEM CARRIES THE WHOLE CHECK-TAG UNION. What this rule reaches is the
205
- * scheme's own words, the target's deferral set, and `checkTagsOf`'s two sources — the MEASURED
206
- * tags and the axis word (a bare check tag is grammar nowhere now, 3F-3161). That the union grew
207
- * and then shrank a source (@SCN-STG-009, @SCN-STG-005) changed nothing here, which is the point
208
- * of assembling it there: a clause reading one source at a time would have had to move with it.
178
+ * SIX CLAUSES, AND ONE OF THEM CARRIES THE WHOLE CHECK-TAG SET. What this rule reaches is the
179
+ * scheme's own words, the target's deferral set, and `checkTagsOf`'s one word — the axis word (a
180
+ * bare check tag is grammar nowhere now, 3F-3161, and the measured tags left with the measured
181
+ * axis, 3F-3516). That the set grew and then shrank to one source changed nothing here, which is
182
+ * the point of assembling it there: a clause reading one source at a time would have had to move
183
+ * with it.
209
184
  *
210
185
  * THE FILE'S HEADER CODE IS GRAMMAR, and that clause is new rather than moved. `@TGT` sits on the
211
186
  * `Feature:` line and `parseTaggedScenarios` inherits it onto every scenario beneath, exactly as
@@ -281,9 +256,8 @@ function isGrammar(tag, scenarioId, featureCode, deferralTags, checkTags) {
281
256
  *
282
257
  * @param features the target's discovered feature files, read once at the edge.
283
258
  * @param packageJson the TARGET's manifest, read HERE through the same resolvers the ingest edge
284
- * reads it with — one reading of `specController.deferralTags` (@SCN-PND-021) and one of
285
- * `specController.thresholds` (@SCN-STG-009), so the words this rule calls legitimate are exactly
286
- * the words the engine beside it honours as a skip and raises obligations from.
259
+ * reads it with — one reading of `specController.deferralTags` (@SCN-PND-021), so the words this
260
+ * rule calls legitimate are exactly the words the engine beside it honours as a skip.
287
261
  * The target's own check registry is retired and read nowhere in this assembly (@SCN-STG-005,
288
262
  * 3F-3161). A set handed in already resolved would have been a second answer travelling under the
289
263
  * first's name.
@@ -292,18 +266,13 @@ function isGrammar(tag, scenarioId, featureCode, deferralTags, checkTags) {
292
266
  * strings — and a copy held in core would be a second statement of it. Pass none and this clause
293
267
  * recognises nothing it was not given, which is the difference between owning a policy and
294
268
  * hard-coding someone else's.
295
- * @param killFloor the reader over the TARGET's mutation records, threaded through to the
296
- * threshold resolution because a bar may name a gate rather than a figure (@SCN-MUT-012). It is
297
- * the edge's closure over the target root, so the ceilings this rule reads and the records they
298
- * reach answer for one tree.
299
269
  */
300
- export function unrecognisedTags(features, packageJson, starterDeferralTags, killFloor) {
270
+ export function unrecognisedTags(features, packageJson, starterDeferralTags) {
301
271
  const deferralTags = resolveDeferralTags(packageJson, starterDeferralTags);
302
272
  // Both sets are resolved ONCE, before the walk, rather than per tag: the manifest cannot change
303
273
  // mid-corpus, and one resolution is what makes "the same set the obligation rule reads" a fact
304
- // about this run rather than about each tag's turn through it. For the check tags it is also
305
- // what keeps a target's mutation record opened once rather than once per tag.
306
- const checkTags = checkTagsOf(packageJson, killFloor);
274
+ // about this run rather than about each tag's turn through it.
275
+ const checkTags = checkTagsOf();
307
276
  const faults = [];
308
277
  for (const file of features) {
309
278
  for (const scenario of parseTaggedScenarios(file.source)) {
@@ -1 +1 @@
1
- {"version":3,"file":"corpusGrammarFaults.js","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"corpusGrammarFaults.js","sourceRoot":"","sources":["../../src/parse/corpusGrammarFaults.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,9 @@
30
30
  * THE ONLY STATIC-CHECK OBSERVER THE RECONCILIATION COMPOSITION WIRES IN (3F-3397). Discovery and
31
31
  * attribution are one reader now: every running check reaches the books here, and the `citedScn`
32
32
  * seam below stamps the credit's row as the step is observed — there is no second, obligation-side
33
- * reader left to keep in agreement with it. `checkStaticEvidenceObligations` is a separate, frozen
34
- * v1 API export (`@SCN-API-001`); nothing in this composition calls it. The CI-parse walk still
33
+ * reader left to keep in agreement with it — and since 3F-3410 there is no such reader ANYWHERE:
34
+ * the obligation-side observer this sentence used to point at has been deleted, so this is the only
35
+ * static-check observer there is, not merely the only one wired in. The CI-parse walk still
35
36
  * comes from `checkScriptsRunInCI` (`ciWorkflowSteps`, of which `ciRunSteps` and `ciRunCommands`
36
37
  * are the projections / `commandInvokesScript`).
37
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runningStaticChecks.d.ts","sourceRoot":"","sources":["../../src/parse/runningStaticChecks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAwD5D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAChD,uBAAuB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,GACzD,OAAO,CAET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAC/C,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,kBAAkB,EAgB/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAgChD,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,cAAc,GAAG,IAAiB,EAuBtF,uBAAuB,GAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAqB,GACvE,wBAAwB,EAAE,CA8D5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAC/C,iBAAiB,EAAE,CAarB"}
1
+ {"version":3,"file":"runningStaticChecks.d.ts","sourceRoot":"","sources":["../../src/parse/runningStaticChecks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAwD5D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAChD,uBAAuB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,GACzD,OAAO,CAET;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAC/C,OAAO,CAET;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,kBAAkB,EAgB/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,EAgChD,QAAQ,GAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,cAAc,GAAG,IAAiB,EAuBtF,uBAAuB,GAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAqB,GACvE,wBAAwB,EAAE,CA8D5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAC/C,iBAAiB,EAAE,CAarB"}
@@ -30,8 +30,9 @@
30
30
  * THE ONLY STATIC-CHECK OBSERVER THE RECONCILIATION COMPOSITION WIRES IN (3F-3397). Discovery and
31
31
  * attribution are one reader now: every running check reaches the books here, and the `citedScn`
32
32
  * seam below stamps the credit's row as the step is observed — there is no second, obligation-side
33
- * reader left to keep in agreement with it. `checkStaticEvidenceObligations` is a separate, frozen
34
- * v1 API export (`@SCN-API-001`); nothing in this composition calls it. The CI-parse walk still
33
+ * reader left to keep in agreement with it — and since 3F-3410 there is no such reader ANYWHERE:
34
+ * the obligation-side observer this sentence used to point at has been deleted, so this is the only
35
+ * static-check observer there is, not merely the only one wired in. The CI-parse walk still
35
36
  * comes from `checkScriptsRunInCI` (`ciWorkflowSteps`, of which `ciRunSteps` and `ciRunCommands`
36
37
  * are the projections / `commandInvokesScript`).
37
38
  *
@@ -1 +1 @@
1
- {"version":3,"file":"runningStaticChecks.js","sourceRoot":"","sources":["../../src/parse/runningStaticChecks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runningStaticChecks.js","sourceRoot":"","sources":["../../src/parse/runningStaticChecks.ts"],"names":[],"mappings":"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"}