@sdd-method/sdd-cli 1.2.0 → 1.3.1

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 (40) hide show
  1. package/dist/lib/catalogue/build.d.ts.map +1 -1
  2. package/dist/lib/catalogue/build.js +14 -1
  3. package/dist/lib/catalogue/build.js.map +1 -1
  4. package/dist/lib/catalogue/builders/capability-edges.d.ts.map +1 -1
  5. package/dist/lib/catalogue/builders/capability-edges.js +10 -1
  6. package/dist/lib/catalogue/builders/capability-edges.js.map +1 -1
  7. package/dist/lib/catalogue/builders/index.d.ts +2 -0
  8. package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
  9. package/dist/lib/catalogue/builders/index.js +1 -0
  10. package/dist/lib/catalogue/builders/index.js.map +1 -1
  11. package/dist/lib/catalogue/builders/quality-scores.d.ts +14 -0
  12. package/dist/lib/catalogue/builders/quality-scores.d.ts.map +1 -0
  13. package/dist/lib/catalogue/builders/quality-scores.js +390 -0
  14. package/dist/lib/catalogue/builders/quality-scores.js.map +1 -0
  15. package/dist/lib/catalogue/builders/services.d.ts.map +1 -1
  16. package/dist/lib/catalogue/builders/services.js +5 -1
  17. package/dist/lib/catalogue/builders/services.js.map +1 -1
  18. package/dist/lib/catalogue/canonical-schema.yaml +199 -1
  19. package/dist/lib/catalogue/coverage-render.d.ts +15 -0
  20. package/dist/lib/catalogue/coverage-render.d.ts.map +1 -1
  21. package/dist/lib/catalogue/coverage-render.js +85 -0
  22. package/dist/lib/catalogue/coverage-render.js.map +1 -1
  23. package/dist/lib/catalogue/coverage-run.d.ts.map +1 -1
  24. package/dist/lib/catalogue/coverage-run.js +7 -1
  25. package/dist/lib/catalogue/coverage-run.js.map +1 -1
  26. package/dist/lib/catalogue/scores-coverage.d.ts +138 -0
  27. package/dist/lib/catalogue/scores-coverage.d.ts.map +1 -0
  28. package/dist/lib/catalogue/scores-coverage.js +346 -0
  29. package/dist/lib/catalogue/scores-coverage.js.map +1 -0
  30. package/dist/lib/mcp/parse/gate-registry.d.ts +63 -4
  31. package/dist/lib/mcp/parse/gate-registry.d.ts.map +1 -1
  32. package/dist/lib/mcp/parse/gate-registry.js +127 -31
  33. package/dist/lib/mcp/parse/gate-registry.js.map +1 -1
  34. package/dist/lib/mcp/resources/gates.d.ts.map +1 -1
  35. package/dist/lib/mcp/resources/gates.js +13 -27
  36. package/dist/lib/mcp/resources/gates.js.map +1 -1
  37. package/dist/lib/mcp/tools/query-gate-status.d.ts.map +1 -1
  38. package/dist/lib/mcp/tools/query-gate-status.js +13 -27
  39. package/dist/lib/mcp/tools/query-gate-status.js.map +1 -1
  40. package/package.json +1 -1
@@ -62,9 +62,50 @@
62
62
  # Builder contract: see docs/method/methods/guides/catalogue-builder-specification.md.
63
63
  # Category taxonomy: see docs/method/methods/standards/product-category-taxonomy.md.
64
64
 
65
- schema_version: "3.1.3"
65
+ schema_version: "3.2.0"
66
66
  schema_owner: "sdd-method"
67
67
  schema_status: "canonical"
68
+ # Bump rationale (3.2.0 — additive minor, 2026-08-06, per M-ADR 0205 §4.5):
69
+ # the rubric score registries join the catalogue metamodel. Two new catalogues
70
+ # and four new enums; no existing column, catalogue or enum is touched.
71
+ #
72
+ # 1. `quality_scores` — one row per (target, rubric), derived from
73
+ # `orchestration/gate-registry/<rubric>-scores.yaml`. The authored surface
74
+ # stays YAML (a score is a judgment, authored where it asserts intent);
75
+ # these rows are derived and never edited.
76
+ # 2. `quality_score_dimensions` — the per-dimension child. A child catalogue
77
+ # is FORCED, not stylistic: the fifteen rubrics carry fifteen disjoint
78
+ # dimension vocabularies (45 distinct keys measured in one estate), so no
79
+ # fixed column set can hold them.
80
+ # 3. Enums `quality_gate`, `score_selection_method`, `staleness_basis`,
81
+ # `scoring_form`. NONE is bound via column_enums — see quality_gate for
82
+ # the measured reason, which is the opposite lesson to 3.1.3's: there the
83
+ # defect was a binding that checked nothing, here the defect would be a
84
+ # binding that hard-fails an estate over a value it deliberately declared
85
+ # in its own registry header.
86
+ #
87
+ # Three shapes the survey behind this bump found, recorded because a builder
88
+ # written from the templates alone would get all three wrong (full record:
89
+ # the Phase-B B0 survey, 2026-08-06):
90
+ # - The live forward-estate data is FLAT, not the nested current/reviews
91
+ # shape all fifteen method templates specify. Reading only the template
92
+ # shape catalogues 6 entries out of 204.
93
+ # - The registry container key is unreliable (4 of 10 drift from the method
94
+ # template) and non-unique (`domains` and `capabilities` each name two
95
+ # different rubrics), so rubric_id comes from registry_type-or-filename.
96
+ # - `corpus_ref` — which M-ADR 0205 §4.5 names and the coverage instrument's
97
+ # staleness rule depends on — is authored NOWHERE today. It is introduced
98
+ # here as new authoring with a computed `scored_at` fallback, and
99
+ # `staleness_basis` records which of the two a row can actually use. A
100
+ # staleness verdict whose basis is unstated is not a measurement.
101
+ # `evidence_ref`, also named in §4.5, is deliberately NOT added: nothing
102
+ # authors it in any registry in either estate, and shipping it would create
103
+ # exactly the inert column that 2.48.0 deprecated `products.status` over.
104
+ # ACTIVATION NOTE (M-ADR 0200 §4.6): additive only — no existing row changes
105
+ # value and no existing check changes verdict. The new catalogues emit
106
+ # headers-only in any SDD without a gate-registry directory, which is every
107
+ # SDD in the method repo's own estate except the roots.
108
+ # Backward-compatible; SCHEMA_COMPAT "^3.0.0".
68
109
  # Bump rationale (3.1.3 — patch, 2026-08-05): `repositories.column_enums`
69
110
  # bound `service_type` — the AUTHORING field's name — but the catalogue
70
111
  # column that carries the value is `component_type` (the builder maps
@@ -565,6 +606,75 @@ schema_status: "canonical"
565
606
 
566
607
  enums:
567
608
 
609
+ quality_gate:
610
+ description: >
611
+ Gate verdict a rubric assessment records for a target, in
612
+ `quality_scores.gate` (per M-ADR 0205 §4.5). The vocabulary all fifteen
613
+ method-side gate registries declare.
614
+
615
+ DELIBERATELY NOT BOUND via `column_enums`, and the reason is measured
616
+ rather than assumed — do not "fix" this by binding it. These values come
617
+ from hand-authored score registries written by scoring runs, not from a
618
+ method-mandated authoring surface, and one estate's
619
+ `domain-architecture-scores.yaml` DECLARES AN EXTENDED VOCABULARY IN ITS
620
+ OWN FILE HEADER (`pass | pass-with-waiver | conditional | fail |
621
+ unscored`) and uses the extra value once. Binding would hard-fail that
622
+ estate's entire build over one deliberate, self-documented row. This
623
+ follows the `products.synthesis_band` precedent — the other column fed
624
+ from a rubric registry — where an out-of-vocabulary value is reported as
625
+ a convention finding and the cell left EMPTY, rather than emitting a
626
+ value no consumer can interpret. The builder names the file, the entry,
627
+ the value and the remedy, which is better diagnosis than a generic enum
628
+ violation could give. Contrast `service_type`, which IS bound: it comes
629
+ from repo-config, an authoring surface the method mandates.
630
+ values:
631
+ - { value: pass, description: "Meets the rubric's pass threshold with no hard gate triggered." }
632
+ - { value: conditional, description: "Below threshold or carrying flags — remediation required, not a failure." }
633
+ - { value: fail, description: "Below the fail threshold, or a hard gate triggered." }
634
+ - { value: unscored, description: "The entry exists but carries no assessment. Distinct from absent: an unscored row asserts that nothing has been judged, which is exactly the silence M-ADR 0205 §4.5's coverage instrument exists to make loud." }
635
+
636
+ score_selection_method:
637
+ description: >
638
+ How the effective review was chosen from a target's review history, in
639
+ `quality_scores.selection_method` — the `selection_policy.method` field
640
+ every gate registry carries. The catalogue models only the EFFECTIVE
641
+ score (one row per target/rubric); this column makes the row say WHICH
642
+ review it is rather than implying there was only one. Not bound, for the
643
+ same registry-authored reason as `quality_gate`.
644
+ values:
645
+ - { value: latest, description: "Most recent review by scored_at. The default and, at 2026-08-06, the only value in use across either estate." }
646
+ - { value: human-selected, description: "A human chose the effective review over the automatic pick." }
647
+ - { value: consensus, description: "Effective score reconciled across several reviews." }
648
+ - { value: highest-severity, description: "The most severe review wins — the conservative policy for gate-blocking rubrics." }
649
+
650
+ staleness_basis:
651
+ description: >
652
+ Which anchor a `quality_scores` row's staleness verdict can be computed
653
+ from, in `quality_scores.staleness_basis`. This column exists because a
654
+ staleness verdict whose basis is unstated is not a measurement — the
655
+ basis-error class that produced six wrong figures in a single day of this
656
+ method's own arc. The coverage predicate MUST NOT be able to emit a
657
+ staleness claim without naming which of these it used.
658
+ values:
659
+ - { value: corpus_ref, description: "The row carries the commit the assessment read — the precise anchor. Authored; introduced by the M-ADR 0205 §4.5 change-set, so absent from every score written before it." }
660
+ - { value: scored_at, description: "No corpus_ref; staleness computed from the assessment date against the target's last content change, resolved through target_path. Correct but coarser — it cannot distinguish a re-commit that changed nothing from a real edit." }
661
+ - { value: none, description: "Neither anchor available (no corpus_ref and no resolvable target_path). Staleness is UNKNOWN for this row and must be reported as unknown, never as fresh." }
662
+
663
+ scoring_form:
664
+ description: >
665
+ The scoring shape a rubric uses, in `quality_scores.scoring_form`.
666
+ Reserved by M-ADR 0205 §4.5 so the banded reverse family can arrive
667
+ additively without reshaping rows.
668
+
669
+ Only `weighted` is declared. The reverse estate's banded form (0-2 across
670
+ 5-6 dimensions with strong/working/weak/not-usable bands) is real and
671
+ measured — 142 registry files, 501 scored units — but is NOT modelled
672
+ yet, so its value is deliberately absent rather than declared-and-unemitted:
673
+ if a builder emits a banded row before that change-set lands, it should
674
+ fail loudly, not pass against a vocabulary entry nothing produces.
675
+ values:
676
+ - { value: weighted, description: "Weighted 1-5 dimensions rolled into a weighted_score against a pass threshold, with flags and hard gates. The forward house form; all fifteen method-side registries use it." }
677
+
568
678
  c4_system_kind:
569
679
  description: >
570
680
  Architectural kind of a C4 system. Derived 1:1 from the originating
@@ -1932,3 +2042,91 @@ catalogues:
1932
2042
  - { name: needs_triage, type: boolean, nullable: false, description: "True when any asymmetry exists. Triage, not auto-fail (M-ADR 0180 §2.3)." }
1933
2043
  - { name: run_date, type: string, nullable: false, description: "ISO date of the conformance run — the snapshot stamp enabling trend over time." }
1934
2044
  - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
2045
+
2046
+ quality_scores:
2047
+ primary_key: id
2048
+ description: >
2049
+ Rubric assessment of a target artefact, one row per (target, rubric), per
2050
+ M-ADR 0205 §4.5. Source: `orchestration/gate-registry/<rubric>-scores.yaml`
2051
+ — the authored surface stays YAML because a score is a judgment, authored
2052
+ where it asserts intent; these rows are DERIVED and never edited.
2053
+
2054
+ Models the EFFECTIVE score only — `current`, as chosen by the registry's
2055
+ `selection_policy`. The authored `reviews[]` history is deliberately not
2056
+ catalogued: variable-length history in a fixed-grain catalogue would give
2057
+ two answers to "what is the score". `review_run_id` and
2058
+ `selection_method` make each row name which review it is.
2059
+
2060
+ THE BUILDER MUST READ TWO AUTHORED DIALECTS. All fifteen method-side
2061
+ templates specify a nested shape (`selection_policy` / `current` /
2062
+ `reviews`), but the live forward-estate data is overwhelmingly FLAT —
2063
+ `gate`/`weighted_score`/`scored_at`/`scored_by`/`scores`/`flags` directly
2064
+ on the entry. Measured 2026-08-06: reading only the template shape would
2065
+ catalogue 6 entries out of 204. The templates were modernised; the data
2066
+ was not migrated, and both are legitimate.
2067
+
2068
+ `rubric_id` comes from the file's `registry_type` when declared, else the
2069
+ filename stem minus `-scores` — NEVER the container key, which is
2070
+ unreliable (4 of 10 forward registries drift from the method template)
2071
+ and non-unique (`domains` names both domain-architecture and
2072
+ intent-quality; `capabilities` names both feature-grounding and
2073
+ traceability-manifest).
2074
+
2075
+ Scope: the weighted house form only. The banded reverse family is
2076
+ additive later via `scoring_form` (see that enum).
2077
+ foreign_keys:
2078
+ - { column: sdd_id, references: products.id, nullable: true }
2079
+ columns:
2080
+ - { name: id, type: string, nullable: false, description: "PK: {rubric_id}__{target_kind}__{target_ref}. Composite in one slug because the natural key is a triple and the rest of this schema keys on a single `id`." }
2081
+ - { name: rubric_id, type: string, nullable: false, description: "The rubric that produced the assessment, e.g. adr-quality, contract-quality. From the registry's `registry_type` when declared, else the filename stem minus `-scores`. A `registry_type` disagreeing with its filename is a convention finding, never a silent preference." }
2082
+ - { name: scoring_form, type: string, nullable: false, description: "Scoring shape — see the scoring_form enum. `weighted` for every row the current builder emits." }
2083
+ - { name: target_kind, type: string, nullable: false, description: "What kind of thing was scored: adr | contract | c4_diagram | capability | domain | feature | product | repository | persona | screen | glossary | integration | user_story | work_order | strategic_doc. Polymorphic because scored units span catalogue entities and non-catalogued artefacts (M-ADR 0205 §4.5)." }
2084
+ - { name: target_ref, type: string, nullable: false, description: "Identifier of the scored target, in the vocabulary of its kind. For ADRs this is the prefix-stripped catalogue id (M-ADR 0186 §4.4), matching `adrs.id`." }
2085
+ - { name: target_path, type: string, nullable: true, description: "Repo-relative path to the scored artefact, from the entry's `file_path` where authored (7 of 15 registry shapes carry it). Doubles as the resolution anchor for `scored_at`-basis staleness — which is why its absence downgrades a row's staleness_basis to `none` rather than being cosmetic. Empty when the registry does not author it." }
2086
+ - { name: gate, type: string, nullable: true, description: "Verdict — see the quality_gate enum, which is deliberately UNBOUND. An out-of-vocabulary value leaves this cell EMPTY and raises a convention finding naming the file, entry and value (the products.synthesis_band precedent). Empty therefore means either unauthored or out-of-vocabulary, and the finding distinguishes them." }
2087
+ - { name: weighted_score, type: number, nullable: true, description: "The rubric's rolled-up weighted score. Empty for an unscored entry — which is a real state the registries author deliberately, not a gap." }
2088
+ - { name: score_denominator, type: number, nullable: true, description: "Denominator the weighted_score was computed against, where the rubric records one (contract-quality does). Present so a score is never reported without its basis." }
2089
+ - { name: scored_at, type: date, nullable: true, description: "Date of the effective assessment, from `scored_at` (the forward house form's field name — NOT `assessed_at`, which is the reverse family's file-level field). Date-typed: per the M-ADR 0205 §4.1 engine's TRY_CAST semantics, a prose value here is reported as a type nonconformance rather than aborting the load or being smoothed away — the `adrs.decision_date` case, which reverse practice already exercises." }
2090
+ - { name: corpus_ref, type: string, nullable: true, description: "The commit the assessment read — the precise staleness anchor. NEW AUTHORING introduced by this change-set: no score written before it carries one, so this column is empty across both estates at introduction and fills forward as registries are rewritten. The reverse family already has the idea under a different name (`snapshot.source_revision`)." }
2091
+ - { name: staleness_basis, type: string, nullable: false, description: "Which anchor this row's staleness can be computed from — see the staleness_basis enum. Emitted by the builder, never authored. Exists so no consumer can state a staleness verdict without its basis." }
2092
+ - { name: review_run_id, type: string, nullable: true, description: "Identifier of the effective review run. Empty in the flat dialect, which records no run ids." }
2093
+ - { name: selection_method, type: string, nullable: true, description: "How the effective review was chosen — see the score_selection_method enum. Empty in the flat dialect, which carries no selection_policy: absence means 'the only review', not 'policy unknown'." }
2094
+ - { name: scorer_provider, type: string, nullable: true, description: "Provider of the scoring agent (e.g. anthropic), from `current.scorer.provider`. Every score in this method is agent-produced, so which agent produced a judgment is part of the judgment, not metadata about it." }
2095
+ - { name: scorer_tool, type: string, nullable: true, description: "Tool the scoring agent ran in, from `current.scorer.tool`." }
2096
+ - { name: scorer_model, type: string, nullable: true, description: "Model that produced the assessment, from `current.scorer.model`. In the flat dialect the whole provenance block collapses to a free-text `scored_by:`, which lands here — so a value like 'intent-quality-review — rfms-connector-library' is expected and correct for flat-dialect rows, not a parse defect." }
2097
+ - { name: scorer_model_family, type: string, nullable: true, description: "Optional grouping field from `current.scorer.model_family`." }
2098
+ - { name: scorer_prompt_version, type: string, nullable: true, description: "Optional prompt-wrapper version from `current.scorer.prompt_version` — the input that makes a score reproducible." }
2099
+ - { name: flag_count, type: int, nullable: false, description: "Number of heuristic flags raised. Normalises two authored dialects: `flags: {name: bool}` (count the true ones) and `flags_raised: [names]` (count the list). A per-flag child catalogue is deliberately NOT built — it arrives when a named query needs to filter by flag name, not by accretion." }
2100
+ - { name: hard_gate_triggered, type: boolean, nullable: false, description: "Whether any hard gate fired. Normalises `hard_gates: {triggered, reasons}` and `hard_gates_triggered: [reasons]`." }
2101
+ - { name: required_actions_count, type: int, nullable: false, description: "Number of remediation actions the assessment recorded." }
2102
+ - { name: sdd_id, type: string, nullable: true, description: "SDD whose gate-registry authored this row. Soft FK to products.id — nullable because a registry can score targets in an SDD that emits no product row." }
2103
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134; left empty by per-SDD builders." }
2104
+
2105
+ quality_score_dimensions:
2106
+ primary_key: id
2107
+ description: >
2108
+ One row per (target, rubric, dimension) — the per-dimension detail behind
2109
+ a `quality_scores` row, per M-ADR 0205 §4.5.
2110
+
2111
+ A child catalogue rather than columns, and this is forced rather than
2112
+ stylistic: the fifteen rubrics carry FIFTEEN DISJOINT dimension
2113
+ vocabularies (`A1`-`A8`, `C1`-`C8`, `G1`-`G7`, `T1`-`T7`, `D1`-`D6`,
2114
+ `S1`-`S6`, `I1`-`I6`, plus five fully-named sets such as
2115
+ `definition_precision` and `intent_fidelity`) — 45 distinct keys measured
2116
+ in one estate alone. No fixed column set can hold them; serialised JSON in
2117
+ a cell would be unjoinable and break the relational metamodel; generic
2118
+ `d1..d8` columns would be lossy and re-create the positional-index failure
2119
+ class. A child table is what this metamodel already does for every
2120
+ one-to-many, and it joins natively on the M-ADR 0205 §4.1 engine.
2121
+ foreign_keys:
2122
+ - { column: quality_score_id, references: quality_scores.id, nullable: false }
2123
+ columns:
2124
+ - { name: id, type: string, nullable: false, description: "PK: {quality_score_id}__{dimension_key}." }
2125
+ - { name: quality_score_id, type: string, nullable: false, description: "The assessment this dimension belongs to." }
2126
+ - { name: rubric_id, type: string, nullable: false, description: "Denormalised from the parent so per-rubric dimension queries need no join." }
2127
+ - { name: target_kind, type: string, nullable: false, description: "Denormalised from the parent." }
2128
+ - { name: target_ref, type: string, nullable: false, description: "Denormalised from the parent." }
2129
+ - { name: dimension_key, type: string, nullable: false, description: "The rubric's own dimension identifier, verbatim — `A1` where the rubric uses codes, `definition_precision` where it uses names. NOT normalised into a method-wide vocabulary: the key is how the rubric and its registry refer to the dimension, and rewriting it here would make the row untraceable to the rubric that produced it." }
2130
+ - { name: dimension_score, type: number, nullable: true, description: "Score on that dimension. Empty for an unscored entry (the templates author explicit nulls)." }
2131
+ - { name: dimension_weight, type: number, nullable: true, description: "Weight the rubric assigns the dimension, where discoverable. Usually EMPTY: weights live in the rubric document and the registry header comment, not per entry — so this column is honest about the fact that a weighted_score cannot currently be recomputed from these rows alone." }
2132
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
@@ -15,6 +15,7 @@
15
15
  * value), because the references print through Python f-strings.
16
16
  */
17
17
  import type { ContractCoverageResult, CoverageFinding, CoverageTier, EventCoverageResult, RepoCapabilityMetrics, ServiceCapabilityMetrics } from "./coverage-predicates.js";
18
+ import type { ScoresCoverageResult } from "./scores-coverage.js";
18
19
  import type { CapabilityEventResult, DataModelEntitiesResult, DomainCatalogueGap, FeatureSpecPromotionResult, FeatureSurfaceDuplicationResult, RepoEdgesResult } from "./gate-checks.js";
19
20
  /** Python `%.1f` — half to even at an exact scaled .5, else nearest. */
20
21
  export declare function fmt1f(x: number): string;
@@ -36,4 +37,18 @@ export declare function renderFeatureEventCheck(res: {
36
37
  export declare function renderPlatformDependenciesCheck(finding: boolean): string[];
37
38
  export declare function renderFeatureSpecPromotionCheck(res: FeatureSpecPromotionResult): string[];
38
39
  export declare function renderFeatureSurfaceDuplicationCheck(res: FeatureSurfaceDuplicationResult): string[];
40
+ /**
41
+ * Unlike the thirteen predicates above, this text has NO reference shell
42
+ * script to be byte-identical with — it is a new surface, so the lines are
43
+ * chosen rather than reproduced. Two rules they follow, both paid for
44
+ * elsewhere in this arc:
45
+ *
46
+ * - every count states its basis in the same breath as the number, so a
47
+ * figure can never be read against the wrong denominator;
48
+ * - a number the predicate CANNOT reach is printed beside the number it
49
+ * reports, so a gap is never mistaken for backlog. Here that is the
50
+ * rubrics with no catalogued population and the scores whose currency is
51
+ * unknowable — both stated, never dropped.
52
+ */
53
+ export declare function renderScoresCoverage(res: ScoresCoverageResult, tier: "member" | "aggregate"): string[];
39
54
  //# sourceMappingURL=coverage-render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-render.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,+BAA+B,EAC/B,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,wEAAwE;AACxE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CASvC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,OAAO,EAAE,qBAAqB,GAC7B,MAAM,EAAE,CAmDV;AAcD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CA2CV;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAmEV;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAoFV;AAID,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,kBAAkB,EAAE,GAClC,MAAM,EAAE,CAKV;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CA2BnE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,uBAAuB,GAC3B,MAAM,EAAE,CAoBV;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAc/E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF,GAAG,MAAM,EAAE,CAMX;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAM1E;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,0BAA0B,GAC9B,MAAM,EAAE,CASV;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,+BAA+B,GACnC,MAAM,EAAE,CAUV"}
1
+ {"version":3,"file":"coverage-render.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,+BAA+B,EAC/B,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,wEAAwE;AACxE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CASvC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,OAAO,EAAE,qBAAqB,GAC7B,MAAM,EAAE,CAmDV;AAcD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CA2CV;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAmEV;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAoFV;AAID,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,kBAAkB,EAAE,GAClC,MAAM,EAAE,CAKV;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CA2BnE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAMlE;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,uBAAuB,GAC3B,MAAM,EAAE,CAoBV;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAc/E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF,GAAG,MAAM,EAAE,CAMX;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAM1E;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,0BAA0B,GAC9B,MAAM,EAAE,CASV;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,+BAA+B,GACnC,MAAM,EAAE,CAUV;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,oBAAoB,EACzB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAC3B,MAAM,EAAE,CAiGV"}
@@ -344,4 +344,89 @@ export function renderFeatureSurfaceDuplicationCheck(res) {
344
344
  `detailed slug canonical (per ADR 0177 §4.3)`,
345
345
  ];
346
346
  }
347
+ // ─── Scores coverage (M-ADR 0205 §4.5, B2 — the fourteenth check) ─────────
348
+ /**
349
+ * Unlike the thirteen predicates above, this text has NO reference shell
350
+ * script to be byte-identical with — it is a new surface, so the lines are
351
+ * chosen rather than reproduced. Two rules they follow, both paid for
352
+ * elsewhere in this arc:
353
+ *
354
+ * - every count states its basis in the same breath as the number, so a
355
+ * figure can never be read against the wrong denominator;
356
+ * - a number the predicate CANNOT reach is printed beside the number it
357
+ * reports, so a gap is never mistaken for backlog. Here that is the
358
+ * rubrics with no catalogued population and the scores whose currency is
359
+ * unknowable — both stated, never dropped.
360
+ */
361
+ export function renderScoresCoverage(res, tier) {
362
+ // Only silent when there is genuinely nothing to say. An SDD that measured
363
+ // NOTHING still reports which rubrics it skipped and why — suppressing that
364
+ // was this renderer's own first draft, and it is precisely the silent-cap
365
+ // shape the predicate exists to remove.
366
+ if (res.totalScores === 0 && res.metrics.length === 0 && res.notAdopted.length === 0) {
367
+ return [];
368
+ }
369
+ const out = [];
370
+ for (const f of res.findings) {
371
+ if (f.kind === "uncovered") {
372
+ out.push(`[finding] coverage: ${f.subject} carries no ${f.rubricId} score — ` +
373
+ `unscored is not passed; assess it or record why it is exempt ` +
374
+ `(no exemption vocabulary exists yet, per M-ADR 0199)`);
375
+ }
376
+ else if (f.kind === "orphaned-score") {
377
+ out.push(`[finding] orphan: ${f.rubricId} score for '${f.subject}' resolves to no ` +
378
+ `catalogue row — the assessment describes something the model no longer ` +
379
+ `holds; re-key the registry entry or withdraw the score`);
380
+ }
381
+ else {
382
+ out.push(`[finding] coverage: ${f.subject}`);
383
+ }
384
+ }
385
+ for (const r of res.undeclaredRubrics) {
386
+ out.push(`[finding] coverage: scores exist for rubric '${r}', which declares no ` +
387
+ `eligibility mapping — its coverage cannot be computed and its targets are ` +
388
+ `not resolution-checked; add it to RUBRIC_ELIGIBILITY`);
389
+ }
390
+ if (res.metrics.length === 0) {
391
+ out.push(`[metric] scores_coverage (${tier}): n/a — no rubric measurable in this SDD ` +
392
+ `(${res.notAdopted.length} not adopted, ${res.totalScores} score(s) present)`);
393
+ out.push(`[metric] scores_coverage.not_adopted: ${res.notAdopted.length} rubric(s) have no ` +
394
+ `registry in this SDD and are n/a here — ${res.notAdopted.join(", ")}; ` +
395
+ `absence of the surface is not a gap in it, but an EMPTY registry is`);
396
+ return out;
397
+ }
398
+ const withPop = res.metrics.filter((m) => m.eligible !== null);
399
+ const noPop = res.metrics.filter((m) => m.eligible === null);
400
+ const eligible = withPop.reduce((a, m) => a + (m.eligible ?? 0), 0);
401
+ const covered = withPop.reduce((a, m) => a + m.covered, 0);
402
+ const orphaned = res.metrics.reduce((a, m) => a + m.orphaned, 0);
403
+ const pct = eligible === 0 ? "n/a" : `${fmt1f((covered / eligible) * 100)}%`;
404
+ out.push(
405
+ // The denominator is (artefact, rubric) PAIRS, not distinct artefacts — one
406
+ // domain is eligible under domain-architecture, intent-quality AND glossary,
407
+ // so 14 domains contribute 42 eligible pairs. Naming the unit here is the
408
+ // difference between a measurement and a number that reads 3x too large.
409
+ `[metric] scores_coverage (${tier}): ${covered}/${eligible} eligible ` +
410
+ `(artefact, rubric) pair(s) scored (${pct}) across ${withPop.length} rubric(s) ` +
411
+ `with a catalogued population; ${orphaned} score(s) orphaned of ${res.totalScores} total`);
412
+ for (const m of withPop) {
413
+ out.push(`[metric] scores_coverage.${m.rubricId}: ${m.covered}/${m.eligible} ` +
414
+ `${m.targetKind}(s) scored, ${m.scored} score(s) present, ${m.orphaned} orphaned`);
415
+ }
416
+ if (noPop.length > 0) {
417
+ out.push(`[metric] scores_coverage.no_denominator: ${noPop.length} rubric(s) score ` +
418
+ `artefacts the catalogue does not model — ` +
419
+ `${noPop.map((m) => `${m.rubricId}(${m.scored})`).join(", ")}; ` +
420
+ `their coverage is NOT measurable here and is not counted above`);
421
+ }
422
+ if (res.notAdopted.length > 0) {
423
+ out.push(`[metric] scores_coverage.not_adopted: ${res.notAdopted.length} rubric(s) have no ` +
424
+ `registry in this SDD and are n/a here — ${res.notAdopted.join(", ")}; ` +
425
+ `absence of the surface is not a gap in it, but an EMPTY registry is`);
426
+ }
427
+ const b = res.stalenessBasis;
428
+ out.push(`[metric] scores_staleness_basis: ${b.corpusRef} corpus_ref, ${b.scoredAt} scored_at, ` +
429
+ `${b.none} none — a row with basis 'none' has UNKNOWN currency, not fresh`);
430
+ return out;
431
+ }
347
432
  //# sourceMappingURL=coverage-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-render.js","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage-render.js","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoBH,wEAAwE;AACxE,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAS,CAAC;IACd,IAAI,IAAI,GAAG,GAAG;QAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SACzB,IAAI,IAAI,GAAG,GAAG;QAAE,CAAC,GAAG,KAAK,CAAC;;QAC1B,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAoC,EACpC,OAA8B;IAE9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CACR,8BAA8B,CAAC,CAAC,SAAS,iCAAiC;gBACxE,IAAI,CAAC,CAAC,eAAe,IAAI,EAAE,+DAA+D;gBAC1F,mDAAmD,CACtD,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,KAAK,GACT,CAAC,CAAC,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CACR,0BAA0B,CAAC,CAAC,SAAS,2CAA2C;gBAC9E,mCAAmC,KAAK,mCAAmC;gBAC3E,0EAA0E;gBAC1E,4DAA4D,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,cAAc,KAAK,oBAAoB,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CACR,0BAA0B,CAAC,CAAC,SAAS,0CAA0C;gBAC7E,uEAAuE;gBACvE,uBAAuB,CAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,0BAA0B,CAAC,CAAC,SAAS,6CAA6C;gBAChF,uEAAuE;gBACvE,4CAA4C,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CACR,wCAAwC,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,KAAK;YAC5E,KAAK,OAAO,CAAC,YAAY,mBAAmB,OAAO,CAAC,WAAW,iBAAiB;YAChF,GAAG,OAAO,CAAC,WAAW,iBAAiB,OAAO,CAAC,UAAU,aAAa,CACzE,CAAC;QACF,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CACR,0CAA0C,OAAO,CAAC,MAAM,iBAAiB;gBACvE,qEAAqE;gBACrE,kCAAkC,OAAO,CAAC,MAAM,gCAAgC;gBAChF,2CAA2C,OAAO,CAAC,KAAK,QAAQ,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,CAAkB;IACtC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,uCAAuC,CAAC;IACxE,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CACL,6DAA6D;YAC7D,QAAQ,CAAC,CAAC,WAAW,iDAAiD,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,yBAAyB,CAAC,CAAC,WAAW,oBAAoB,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAoC,EACpC,OAAiC,EACjC,IAAkB;IAElB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CACR,iCAAiC,CAAC,CAAC,SAAS,yCAAyC;gBACnF,IAAI,CAAC,CAAC,eAAe,IAAI,EAAE,+DAA+D;gBAC1F,oDAAoD,CACvD,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,6BAA6B,CAAC,CAAC,SAAS,yCAAyC;gBAC/E,0EAA0E;gBAC1E,sEAAsE;gBACtE,iCAAiC,YAAY,CAAC,CAAC,CAAC,EAAE,CACrD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,+BAA+B,CAAC,CAAC,SAAS,wCAAwC;gBAChF,0EAA0E;gBAC1E,2DAA2D;gBAC3D,oDAAoD,YAAY,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACvE,KAAK,CAAC,IAAI,CACR,gDAAgD,IAAI,MAAM,QAAQ,IAAI,OAAO,CAAC,KAAK,GAAG;YACpF,IAAI,GAAG,QAAQ,OAAO,CAAC,OAAO,aAAa,OAAO,CAAC,MAAM,WAAW;YACpE,GAAG,OAAO,CAAC,WAAW,iBAAiB,OAAO,CAAC,UAAU,IAAI,KAAK,EAAE,CACvE,CAAC;QACF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC7D,KAAK,CAAC,IAAI,CACR,8CAA8C,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS;gBACnF,+DAA+D,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG;gBACrF,sCAAsC,OAAO,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAwB,EACxB,IAAkB;IAElB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,iCAAiC,IAAI,yCAAyC;gBAC5E,iEAAiE;gBACjE,4EAA4E;gBAC5E,2EAA2E;gBAC3E,+EAA+E;gBAC/E,+EAA+E;SAClF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAQ,CAAC;IACvB,MAAM,CAAC,GAAG,GAAG,CAAC,QAAS,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,MAAM,KAAK,GAAa;QACtB,iCAAiC,IAAI,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,WAAW;YACxF,IAAI,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,WAAW,yBAAyB;YACnE,GAAG,CAAC,CAAC,UAAU,IAAI,KAAK,EAAE;QAC5B,+DAA+D,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG;YACrF,4DAA4D;QAC9D,0EAA0E;YACxE,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,qDAAqD;KACpF,CAAC;IACF,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,uEAAuE;YACrE,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAC/B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,0BAA0B,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,oEAAoE;YAClE,0BAA0B,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CACjD,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,wEAAwE;YACtE,oCAAoC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAC3D,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CACR,2BAA2B,CAAC,CAAC,SAAS,0CAA0C;gBAC9E,uEAAuE;gBACvE,kEAAkE;gBAClE,uEAAuE;gBACvE,qEAAqE;gBACrE,qEAAqE;gBACrE,uEAAuE;gBACvE,iBAAiB,CACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,sCAAsC,CAAC,CAAC,SAAS,iCAAiC;gBAChF,sEAAsE;gBACtE,yDAAyD,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAA2B,EAC3B,IAAkB;IAElB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,OAAO;YACL,oCAAoC,IAAI,8BAA8B;gBACpE,wEAAwE;gBACxE,wEAAwE;gBACxE,+EAA+E;SAClF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,iCAAiC,GAAG,CAAC,YAAY,CAAC,QAAQ,yBAAyB;YACjF,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,0CAA0C;YAC/E,oEAAoE,CACvE,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,GAAG,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,4CAA4C,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACR,kCAAkC,CAAC,CAAC,SAAS,4BAA4B;gBACvE,IAAI,CAAC,CAAC,cAAc,4BAA4B;gBAChD,0EAA0E;gBAC1E,0EAA0E;gBAC1E,OAAO,CACV,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,8BAA8B,CAAC,CAAC,SAAS,oCAAoC;gBAC3E,sEAAsE;gBACtE,qEAAqE;gBACrE,sEAAsE;gBACtE,sEAAsE;gBACtE,gEAAgE;gBAChE,qEAAqE;gBACrE,gEAAgE;gBAChE,qEAAqE;gBACrE,oEAAoE;gBACpE,iDAAiD,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CACR,gCAAgC,CAAC,CAAC,SAAS,qCAAqC;gBAC9E,qEAAqE;gBACrE,uEAAuE;gBACvE,mEAAmE;gBACnE,qCAAqC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAQ,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACvE,KAAK,CAAC,IAAI,CACR,oCAAoC,IAAI,MAAM,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG;QAClE,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,QAAQ,GAAG;QAClF,qBAAqB,CAAC,CAAC,QAAQ,cAAc,CAAC,CAAC,WAAW,gBAAgB;QAC1E,GAAG,CAAC,CAAC,UAAU,IAAI,KAAK,EAAE,CAC7B,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,oCAAoC,IAAI,KAAK;YAC3C,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAClE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CACR,+CAA+C,IAAI,MAAM,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG;QACrF,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,4CAA4C;QAC3F,mFAAmF;QACnF,oFAAoF;QACpF,6EAA6E;QAC7E,qCAAqC,CACxC,CAAC;IACF,KAAK,CAAC,IAAI,CACR,6CAA6C,IAAI,MAAM,CAAC,CAAC,SAAS,eAAe;QAC/E,GAAG,CAAC,CAAC,QAAQ,kBAAkB,CAAC,CAAC,IAAI,kDAAkD;QACvF,gCAAgC,CACnC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,yBAAyB,CACvC,IAAmC;IAEnC,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,CAAC,EAAE,EAAE,CACJ,8BAA8B,CAAC,CAAC,MAAM,gCAAgC,CAAC,CAAC,QAAQ,mCAAmC,CAAC,CAAC,OAAO,8CAA8C,CAC7K,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAoB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,wDAAwD,CAAC,CAAC,iBAAiB,8BAA8B,CAAC,CAAC,gBAAgB,gHAAgH,CAC5O,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,sDAAsD,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,wBAAwB,sHAAsH,CACpO,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,sDAAsD,CAAC,CAAC,gBAAgB,4BAA4B,CAAC,CAAC,gBAAgB,qKAAqK,CAC5R,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC;QACrC,KAAK,CAAC,IAAI,CACR,uDAAuD,CAAC,CAAC,SAAS,uLAAuL,CAC1P,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,OAAO;QACZ,CAAC,CAAC;YACE,8LAA8L;SAC/L;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,GAA4B;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,uBAAuB,GAAG,CAAC,WAAW,CAAC,YAAY,gIAAgI,CACpL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,uBAAuB,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,QAAQ,wHAAwH,CACnL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,uBAAuB,CAAC,CAAC,qBAAqB,iCAAiC,CAAC,CAAC,aAAa,4HAA4H,CAC3N,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,GAA0B;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,sCAAsC,CAAC,CAAC,YAAY,2BAA2B,CAAC,CAAC,iBAAiB,uGAAuG,CAC1M,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,4CAA4C,GAAG,CAAC,WAAW,CAAC,OAAO,wPAAwP,CAC5T,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAEvC;IACC,OAAO,GAAG,CAAC,GAAG;QACZ,CAAC,CAAC;YACE,sCAAsC,GAAG,CAAC,GAAG,CAAC,YAAY,wBAAwB,GAAG,CAAC,GAAG,CAAC,cAAc,oGAAoG;SAC7M;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAgB;IAC9D,OAAO,OAAO;QACZ,CAAC,CAAC;YACE,6PAA6P;SAC9P;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAA+B;IAE/B,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACtB,OAAO;QACL,uBAAuB,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,KAAK,qCAAqC;YACtF,yEAAyE;YACzE,yCAAyC,CAAC,CAAC,aAAa,iBAAiB,CAAC,CAAC,IAAI,IAAI;YACnF,oBAAoB;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,GAAoC;IAEpC,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IACrE,OAAO;QACL,uBAAuB,CAAC,CAAC,KAAK,4CAA4C;YACxE,GAAG,CAAC,CAAC,YAAY,IAAI,OAAO,sDAAsD;YAClF,8EAA8E;YAC9E,6CAA6C;KAChD,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAyB,EACzB,IAA4B;IAE5B,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,wCAAwC;IACxC,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrF,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CACN,uBAAuB,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,QAAQ,WAAW;gBAClE,+DAA+D;gBAC/D,sDAAsD,CACzD,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CACN,qBAAqB,CAAC,CAAC,QAAQ,eAAe,CAAC,CAAC,OAAO,mBAAmB;gBACxE,yEAAyE;gBACzE,wDAAwD,CAC3D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CACN,gDAAgD,CAAC,uBAAuB;YACtE,4EAA4E;YAC5E,sDAAsD,CACzD,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CACN,6BAA6B,IAAI,4CAA4C;YAC3E,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAW,oBAAoB,CAChF,CAAC;QACF,GAAG,CAAC,IAAI,CACN,yCAAyC,GAAG,CAAC,UAAU,CAAC,MAAM,qBAAqB;YACjF,2CAA2C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxE,qEAAqE,CACxE,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;IAE7E,GAAG,CAAC,IAAI;IACN,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,yEAAyE;IACzE,6BAA6B,IAAI,MAAM,OAAO,IAAI,QAAQ,YAAY;QACpE,sCAAsC,GAAG,YAAY,OAAO,CAAC,MAAM,aAAa;QAChF,iCAAiC,QAAQ,yBAAyB,GAAG,CAAC,WAAW,QAAQ,CAC5F,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CACN,4BAA4B,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,GAAG;YACnE,GAAG,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,MAAM,sBAAsB,CAAC,CAAC,QAAQ,WAAW,CACpF,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CACN,4CAA4C,KAAK,CAAC,MAAM,mBAAmB;YACzE,2CAA2C;YAC3C,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAChE,gEAAgE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CACN,yCAAyC,GAAG,CAAC,UAAU,CAAC,MAAM,qBAAqB;YACjF,2CAA2C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxE,qEAAqE,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;IAC7B,GAAG,CAAC,IAAI,CACN,oCAAoC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,QAAQ,cAAc;QACrF,GAAG,CAAC,CAAC,IAAI,iEAAiE,CAC7E,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-run.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AA4BlC,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA6E/B"}
1
+ {"version":3,"file":"coverage-run.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AA8BlC,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0F/B"}
@@ -25,7 +25,8 @@ import { createEngineSession } from "./engine-validator.js";
25
25
  import { loadCanonicalSchema } from "./schema-loader.js";
26
26
  import { runContractCoverage, runEventCoverage, runRepoCapabilityCoverage, runServiceCapabilityCoverage, } from "./coverage-predicates.js";
27
27
  import { runCapabilityEventCheck, runDataModelEntitiesCheck, runEventCatalogueCheck, runFeatureEventCheck, runFeatureSpecPromotionCheck, runFeatureSurfaceDuplicationCheck, runGlossaryXrefCheck, runPlatformDependenciesCheck, runRepoEdgesCheck, } from "./gate-checks.js";
28
- import { renderCapabilityEventCheck, renderContractCoverage, renderDataModelEntitiesCheck, renderEventCatalogueCheck, renderEventCoverage, renderFeatureEventCheck, renderFeatureSpecPromotionCheck, renderFeatureSurfaceDuplicationCheck, renderGlossaryXrefCheck, renderPlatformDependenciesCheck, renderRepoCapability, renderRepoEdgesCheck, renderServiceCapability, } from "./coverage-render.js";
28
+ import { runScoresCoverage } from "./scores-coverage.js";
29
+ import { renderCapabilityEventCheck, renderContractCoverage, renderDataModelEntitiesCheck, renderEventCatalogueCheck, renderEventCoverage, renderFeatureEventCheck, renderFeatureSpecPromotionCheck, renderFeatureSurfaceDuplicationCheck, renderGlossaryXrefCheck, renderPlatformDependenciesCheck, renderRepoCapability, renderRepoEdgesCheck, renderScoresCoverage, renderServiceCapability, } from "./coverage-render.js";
29
30
  export async function runCatalogueCoverage(inputs, write) {
30
31
  const sddRoot = resolve(inputs.sddPath ?? process.cwd());
31
32
  const dir = resolve(sddRoot, inputs.cataloguesDir ?? "catalogues");
@@ -80,6 +81,11 @@ export async function runCatalogueCoverage(inputs, write) {
80
81
  lines.push(...renderPlatformDependenciesCheck((await runPlatformDependenciesCheck(session, { sddRoot })).finding));
81
82
  lines.push(...renderFeatureSpecPromotionCheck(await runFeatureSpecPromotionCheck(session)));
82
83
  lines.push(...renderFeatureSurfaceDuplicationCheck(await runFeatureSurfaceDuplicationCheck(session)));
84
+ // The fourteenth check (M-ADR 0205 §4.5, Phase B): every eligible artefact
85
+ // carries a current score. Last in the block order because it is the newest
86
+ // and the baselines hold the stream positionally-agnostic but ordered.
87
+ const available = new Set(schema.catalogues.map((c) => c.name).filter((n) => present(n)));
88
+ lines.push(...renderScoresCoverage(await runScoresCoverage(session, { tier, available, sddRoot }), tier));
83
89
  }
84
90
  finally {
85
91
  session.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Scores coverage — M-ADR 0205 §4.5's coverage instrument, the fourteenth
3
+ * engine check (Phase B, B2). SQL on the §4.1 engine, like every other
4
+ * catalogue-reading predicate; `check-repo-config-coverage.sh` remains the
5
+ * only shell survivor and is not the model for this.
6
+ *
7
+ * The claim: *every eligible artefact carries a current score*. Eligibility is
8
+ * computed per rubric against the catalogue that holds its targets, and the
9
+ * predicate reports BOTH directions, because the two say different things:
10
+ *
11
+ * - an eligible target with no score is a GAP — nobody has judged it;
12
+ * - a score whose target does not resolve is an ORPHANED SCORE — the
13
+ * assessment corpus has decayed away from the model it describes.
14
+ *
15
+ * The second direction is not decoration. Measured on the forward estate at
16
+ * introduction: 85 of 99 ADR scores point at ids that no longer exist, because
17
+ * a rename moved the ADR canon and the registry keys were never migrated. A
18
+ * one-directional predicate would have reported that estate as having 99
19
+ * scored ADRs while none of them resolved.
20
+ *
21
+ * THE JOIN VOCABULARY IS THE WHOLE DIFFICULTY, and it is declared rather than
22
+ * guessed. A registry's entry keys are not the catalogue's ids, and the
23
+ * mismatch differs per rubric — measured, not assumed:
24
+ *
25
+ * - contract-quality keys are SPEC PATHS (`contracts-avro/.../X.avsc`),
26
+ * joining `contracts.spec_path`; against `contracts.id` they score 0 of 55.
27
+ * - adr-quality keys carry a tier prefix (`M-ADR-0001`) the catalogue strips
28
+ * (`ADR-0001`); the raw join scores 0 of 99.
29
+ * - domain-architecture keys are plain domain slugs and join `domains.id`
30
+ * directly, 13 of 13.
31
+ *
32
+ * So each rubric declares its catalogue, its join column and its reference
33
+ * transform, and the predicate REPORTS the resolution rate it achieved. A join
34
+ * that silently resolves nothing looks exactly like an estate that has scored
35
+ * nothing — the confident-false-zero shape this whole phase exists to remove.
36
+ *
37
+ * Rubrics whose targets have NO catalogue (c4-diagram, strategic-doc,
38
+ * user-story, work-order) have no eligibility denominator to compute. They are
39
+ * reported as such by name and their scores are still resolution-checked as
40
+ * far as they can be — never silently omitted, because a rubric missing from
41
+ * the output reads as a rubric with nothing to say.
42
+ *
43
+ * Reporting-only at both tiers, per §4.5. Exemption vocabulary starts EMPTY
44
+ * (M-ADR 0199): there is no way to mark a target exempt yet, deliberately, so
45
+ * the first figure is the honest total.
46
+ *
47
+ * ADOPTION GATING — a rubric is measured only where its REGISTRY EXISTS. An SDD
48
+ * that carries no `<rubric>-scores.yaml` has not adopted that rubric, so it has
49
+ * no eligible population for it, and reporting its whole ADR/contract/capability
50
+ * corpus as unscored would be true-but-useless noise. This is the same n/a rule
51
+ * the repo-config predicate applies and the same rule the quality-scores builder
52
+ * applies to an absent registry directory: absence of the whole surface is not a
53
+ * gap in it. Measured before adopting it: without this rule ONE reverse-estate
54
+ * SDD emits 630 gap lines for rubrics it has never used, which across that
55
+ * estate would swamp the baseline re-take and bury the real signal.
56
+ *
57
+ * The distinction that must NOT be lost, and is not: a registry that EXISTS but
58
+ * is EMPTY reports its full population as gaps. That is the method repo's own
59
+ * state — fifteen deliberately-empty containers — and it is exactly the silence
60
+ * §4.5 exists to make loud. Absent surface and empty surface are different
61
+ * claims, and conflating them is the defect this whole phase is about.
62
+ *
63
+ * The n/a count is always printed. A rubric skipped silently reads as a rubric
64
+ * with nothing to report.
65
+ */
66
+ import type { EngineSession } from "./engine-validator.js";
67
+ export type ScoresCoverageTier = "member" | "aggregate";
68
+ /**
69
+ * How a rubric's scores reach the catalogue rows they describe.
70
+ *
71
+ * `refTransform` is applied to the SCORE's target_ref before comparison, in
72
+ * SQL, so the transform is visible in the query rather than hidden in host
73
+ * code. `null` means the ref is already in the catalogue's vocabulary.
74
+ */
75
+ export interface RubricEligibility {
76
+ readonly rubricId: string;
77
+ readonly targetKind: string;
78
+ /** Catalogue holding the eligible population; null when none exists. */
79
+ readonly catalogue: string | null;
80
+ /** Column in that catalogue the score's target_ref matches. */
81
+ readonly joinColumn: string;
82
+ /** SQL expression transforming target_ref into the catalogue's vocabulary. */
83
+ readonly refTransform: ((ref: string) => string) | null;
84
+ /** SQL predicate narrowing the catalogue to eligible rows; null = all rows. */
85
+ readonly eligibilityFilter: string | null;
86
+ /** Why the filter is what it is — rendered nowhere, read by whoever changes it. */
87
+ readonly eligibilityNote: string;
88
+ }
89
+ /**
90
+ * The declared mapping. Three entries are EXERCISED against real estate data
91
+ * (adr-quality, contract-quality, domain-architecture); the rest are declared
92
+ * from the registry and rubric shapes and have no populated corpus to verify
93
+ * against yet — a distinction the metric line states rather than blurs.
94
+ */
95
+ export declare const RUBRIC_ELIGIBILITY: readonly RubricEligibility[];
96
+ export interface ScoresCoverageFinding {
97
+ readonly kind: "uncovered" | "orphaned-score" | "unresolvable-staleness";
98
+ readonly rubricId: string;
99
+ readonly subject: string;
100
+ }
101
+ export interface RubricCoverageMetric {
102
+ readonly rubricId: string;
103
+ readonly targetKind: string;
104
+ /** null when the rubric has no catalogued population. */
105
+ readonly eligible: number | null;
106
+ readonly covered: number;
107
+ /** Scores present for this rubric, however they resolve. */
108
+ readonly scored: number;
109
+ readonly orphaned: number;
110
+ }
111
+ export interface ScoresCoverageResult {
112
+ readonly findings: readonly ScoresCoverageFinding[];
113
+ readonly metrics: readonly RubricCoverageMetric[];
114
+ /** Rubrics carrying scores that no eligibility entry declares. */
115
+ readonly undeclaredRubrics: readonly string[];
116
+ /** Rubrics skipped because this SDD carries no registry for them. */
117
+ readonly notAdopted: readonly string[];
118
+ readonly stalenessBasis: {
119
+ readonly corpusRef: number;
120
+ readonly scoredAt: number;
121
+ readonly none: number;
122
+ };
123
+ readonly totalScores: number;
124
+ }
125
+ /**
126
+ * Runs the predicate. `available` names the catalogues actually present, so a
127
+ * rubric whose population file is absent is skipped the way every other
128
+ * predicate skips an absent population — silently, because absence of the
129
+ * whole surface is not a gap in it — while a rubric whose population is
130
+ * PRESENT but empty still reports its zero.
131
+ */
132
+ export declare function runScoresCoverage(session: EngineSession, options: {
133
+ readonly tier: ScoresCoverageTier;
134
+ readonly available: ReadonlySet<string>;
135
+ /** SDD root — resolves which rubrics this SDD has actually adopted. */
136
+ readonly sddRoot: string;
137
+ }): Promise<ScoresCoverageResult>;
138
+ //# sourceMappingURL=scores-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scores-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/scores-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;IACxD,+EAA+E;IAC/E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,mFAAmF;IACnF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,iBAAiB,EAiJ1D,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAYD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IACP,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,oBAAoB,CAAC,CA+J/B"}