@sdd-method/author-cli 0.10.0 → 0.12.0
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.
- package/dist/lib/behaviour-store/archive.js +13 -0
- package/dist/lib/catalogue/build.js +45 -2
- package/dist/lib/catalogue/builders/adr-governs.js +39 -0
- package/dist/lib/catalogue/builders/adrs.js +11 -0
- package/dist/lib/catalogue/builders/capability-spec.js +1 -0
- package/dist/lib/catalogue/builders/contract-revisions.js +126 -0
- package/dist/lib/catalogue/builders/data-model.js +316 -0
- package/dist/lib/catalogue/builders/entities-mermaid.js +18 -85
- package/dist/lib/catalogue/builders/feature-grounding.js +1 -0
- package/dist/lib/catalogue/builders/features.js +23 -2
- package/dist/lib/catalogue/builders/integration-components.js +49 -5
- package/dist/lib/catalogue/builders/journey-requirement.js +144 -0
- package/dist/lib/catalogue/builders/quality-scores.js +17 -0
- package/dist/lib/catalogue/builders/requirements.js +168 -32
- package/dist/lib/catalogue/canonical-schema.yaml +845 -28
- package/dist/lib/catalogue/manifest-loader.js +13 -0
- package/dist/lib/catalogue/retired-catalogues.js +25 -0
- package/dist/lib/catalogue/rubric-coverage-map.yaml +108 -2
- package/dist/lib/catalogue/schema-compat.js +1 -1
- package/dist/lib/catalogue/schema-loader.js +3 -0
- package/dist/lib/catalogue/staleness-verdicts.js +75 -6
- package/dist/lib/intents/migrate.js +35 -9
- package/dist/lib/metamodel/tql-subset-parser.js +35 -2
- package/dist/lib/structure/catalogue.js +183 -0
- package/dist/lib/structure/compose.js +174 -0
- package/dist/lib/structure/effects.js +36 -0
- package/dist/lib/structure/model.js +212 -0
- package/dist/lib/structure/render.js +242 -0
- package/dist/lib/structure/view.js +301 -0
- package/dist/lib/validate/agreement-evidence.js +216 -0
- package/dist/lib/validate/behaviour-store.js +516 -28
- package/dist/lib/validate/dispatch.js +21 -0
- package/dist/lib/validate/feature-spec-pointers.js +175 -0
- package/dist/lib/validate/journey-impact.js +193 -0
- package/dist/lib/validate/structural-model.js +265 -0
- package/dist/maintain-version.json +2 -2
- package/dist/verify-version.json +2 -2
- package/package.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# Emitted by sdd-cli's YAML emitter with no line folding; the three header scalars are quoted for the
|
|
8
8
|
# textual readers downstream. The one deliberate difference from the authored form is schema_status:
|
|
9
9
|
# the authored form says canonical; a projection never does.
|
|
10
|
-
schema_version: "
|
|
10
|
+
schema_version: "6.0.0"
|
|
11
11
|
schema_owner: "sdd-method"
|
|
12
12
|
schema_status: "generated"
|
|
13
13
|
enums:
|
|
@@ -338,6 +338,7 @@ enums:
|
|
|
338
338
|
- value: capability-spec
|
|
339
339
|
- value: capability-tree
|
|
340
340
|
- value: product-map
|
|
341
|
+
- value: structural-model
|
|
341
342
|
description: Which artefact a capabilities row was derived from. Bound at 3.13.0 from the column descriptions; measured against both reference estates before binding (M-ADR 0205 §4.4).
|
|
342
343
|
feature_source:
|
|
343
344
|
values:
|
|
@@ -346,6 +347,7 @@ enums:
|
|
|
346
347
|
- value: feature-tree
|
|
347
348
|
- value: feature-grounding
|
|
348
349
|
- value: capability-spec
|
|
350
|
+
- value: structural-model
|
|
349
351
|
description: Which artefact a features row was derived from (M-ADR 0145). Bound at 3.13.0 from the column descriptions; measured against both reference estates before binding (M-ADR 0205 §4.4).
|
|
350
352
|
artefact_maturity:
|
|
351
353
|
values:
|
|
@@ -620,6 +622,8 @@ enums:
|
|
|
620
622
|
description: "In the living spec: shipped behaviour."
|
|
621
623
|
- value: agreed
|
|
622
624
|
description: Added by an open change whose agreement record is agreed; not yet shipped.
|
|
625
|
+
- value: retired
|
|
626
|
+
description: "Removed by an archived change's REMOVED delta: kept so its lineage shows the removal; no status."
|
|
623
627
|
description: Where a catalogued requirement stands (M-ADR 0221 §4.4).
|
|
624
628
|
requirement_change_kind:
|
|
625
629
|
values:
|
|
@@ -633,16 +637,15 @@ enums:
|
|
|
633
637
|
- value: ADDED
|
|
634
638
|
- value: MODIFIED
|
|
635
639
|
- value: RENAMED
|
|
636
|
-
|
|
637
|
-
|
|
640
|
+
- value: REMOVED
|
|
641
|
+
description: How a change's delta treated a requirement.
|
|
642
|
+
requirement_assertion_kind:
|
|
638
643
|
values:
|
|
639
|
-
- value: agreed
|
|
640
|
-
description: In an agreed, open change.
|
|
641
644
|
- value: declared-shipped
|
|
642
|
-
description: Its change archived on a passing judge, with this repository's
|
|
645
|
+
description: Its change archived on a passing judge, with this repository's work order implementing it.
|
|
643
646
|
- value: observed
|
|
644
647
|
description: Independent evidence from this repository's code matches (a baseline's characterization tests or a reverse snapshot).
|
|
645
|
-
description:
|
|
648
|
+
description: The kind of evidence an assertion is about one revision, in one repository (M-ADR 0230 §4.7, Proposed).
|
|
646
649
|
change_status:
|
|
647
650
|
values:
|
|
648
651
|
- value: proposed
|
|
@@ -664,13 +667,112 @@ enums:
|
|
|
664
667
|
work_order_status:
|
|
665
668
|
values:
|
|
666
669
|
- value: agreed
|
|
667
|
-
description: Agreed; the
|
|
670
|
+
description: Agreed; the change has not yet archived on a passing judge.
|
|
668
671
|
- value: completed
|
|
669
|
-
description:
|
|
672
|
+
description: "Completed: the change archived on a passing judge, after every repository merged its judged commit."
|
|
670
673
|
description: A work order's status in its change's agreement record (M-ADR 0223 §4.2, §4.6).
|
|
674
|
+
feature_status:
|
|
675
|
+
values:
|
|
676
|
+
- value: active
|
|
677
|
+
description: The feature's behaviour is live or being built.
|
|
678
|
+
- value: retired
|
|
679
|
+
description: Its behaviour was retired by an archived change; kept so its retired requirements resolve.
|
|
680
|
+
description: A catalogued feature's status (M-ADR 0221 §4.5).
|
|
681
|
+
feature_kind:
|
|
682
|
+
values:
|
|
683
|
+
- value: feature
|
|
684
|
+
description: "A product or capability feature: the default."
|
|
685
|
+
- value: obligation
|
|
686
|
+
description: Behaviour every feature in a population depends on, owned as a feature of its own (M-ADR 0226, Proposed).
|
|
687
|
+
- value: journey
|
|
688
|
+
description: A user journey's joint behaviour, held in the behaviour store (M-ADR 0229 §4.2, option B; Proposed).
|
|
689
|
+
description: What a catalogued feature is (M-ADR 0226 and M-ADR 0229, both Proposed).
|
|
690
|
+
journey_requirement_basis:
|
|
691
|
+
values:
|
|
692
|
+
- value: tag
|
|
693
|
+
description: A @req tag in the journey's end-to-end test file (option A).
|
|
694
|
+
- value: citation
|
|
695
|
+
description: A citation in the journey feature's living spec (option B).
|
|
696
|
+
description: Where a journey's citation of a requirement was read (M-ADR 0229 §4.4, Proposed).
|
|
697
|
+
source_of_truth:
|
|
698
|
+
values:
|
|
699
|
+
- value: structure
|
|
700
|
+
description: The structural model in the behaviour store (openspec/structure/), changed by a change's structural deltas.
|
|
701
|
+
- value: behaviour
|
|
702
|
+
description: The behaviour store's living specs and changes.
|
|
703
|
+
- value: interface
|
|
704
|
+
description: The contract files.
|
|
705
|
+
- value: decision
|
|
706
|
+
description: The ADR files.
|
|
707
|
+
- value: declaration
|
|
708
|
+
description: A manifest or configuration file that is its own home, such as the SDD manifest.
|
|
709
|
+
- value: intent
|
|
710
|
+
description: Intent documents, edited in place.
|
|
711
|
+
- value: derived
|
|
712
|
+
description: "Nowhere: computed from other facts, per view; never authored."
|
|
713
|
+
- value: evidence
|
|
714
|
+
description: Observations, scores and findings, about a named revision.
|
|
715
|
+
- value: execution
|
|
716
|
+
description: "The change records and the build itself: changes, work orders, lineage, and the provenance the build or aggregation stamps."
|
|
717
|
+
description: Where a catalogue's facts, or a column's, are authored (M-ADR 0230 §4.1, Proposed). Each catalogue carries one; a column carries one only where it differs.
|
|
718
|
+
relationship_end_cardinality:
|
|
719
|
+
values:
|
|
720
|
+
- value: exactly-one
|
|
721
|
+
- value: zero-or-one
|
|
722
|
+
- value: one-or-more
|
|
723
|
+
- value: zero-or-more
|
|
724
|
+
description: "How many entities one end of a relationship holds for one entity at the other end (M-ADR 0230 §4.3, Proposed): a Mermaid ER end marker (|| exactly one, |o or o| zero or one, }| or |{ one or more, }o or o{ zero or more). A TypeQL relationship is zero-or-more at both ends, because the subset admits no participation cardinality; a role's @card is a cardinality invariant (domain_invariants). Replaced entity_relationship_cardinality in schema 6.0.0."
|
|
725
|
+
domain_invariant_kind:
|
|
726
|
+
values:
|
|
727
|
+
- value: unique
|
|
728
|
+
description: The named attributes together are unique across the entity's instances.
|
|
729
|
+
- value: required
|
|
730
|
+
description: The named attributes are always present.
|
|
731
|
+
- value: cardinality
|
|
732
|
+
description: A bound on how many entities the named relationship relates, stated in the statement.
|
|
733
|
+
- value: rule
|
|
734
|
+
description: Any other rule, stated in the statement.
|
|
735
|
+
description: The type of a domain invariant (M-ADR 0230 §4.3, Proposed).
|
|
736
|
+
revision_state:
|
|
737
|
+
values:
|
|
738
|
+
- value: current
|
|
739
|
+
description: "Published: the living spec states it."
|
|
740
|
+
- value: intended
|
|
741
|
+
description: An agreed open change states it.
|
|
742
|
+
- value: history
|
|
743
|
+
description: Once published or stated, and no longer current.
|
|
744
|
+
description: Which view a revision belongs to (M-ADR 0230 §4.7, Proposed).
|
|
745
|
+
change_effect_element_kind:
|
|
746
|
+
values:
|
|
747
|
+
- value: requirement
|
|
748
|
+
description: A requirement, written by a behaviour delta.
|
|
749
|
+
- value: structure
|
|
750
|
+
description: An element of the structural model, written by a structural delta.
|
|
751
|
+
description: What kind of element a change effect writes (M-ADR 0230 §4.7, Proposed).
|
|
752
|
+
adr_governs:
|
|
753
|
+
values:
|
|
754
|
+
- value: current
|
|
755
|
+
description: The system as published.
|
|
756
|
+
- value: intended
|
|
757
|
+
description: "The system as the agreed changes will leave it: the decision applies from its change's archive."
|
|
758
|
+
- value: none
|
|
759
|
+
description: "Neither: proposed, rejected, deprecated, superseded by a decision now in force, or its change withdrawn."
|
|
760
|
+
description: Which view a decision governs (M-ADR 0230 §4.2, Proposed).
|
|
761
|
+
contract_revision_state:
|
|
762
|
+
values:
|
|
763
|
+
- value: agreed
|
|
764
|
+
description: Introduced by an agreed open change.
|
|
765
|
+
- value: active
|
|
766
|
+
description: "Applicable in the published specification: the file's current content."
|
|
767
|
+
- value: deprecated
|
|
768
|
+
description: Applicable, with a sunset.
|
|
769
|
+
- value: retired
|
|
770
|
+
description: "No longer applicable: an archived change's revision the file no longer holds."
|
|
771
|
+
description: A contract revision's applicability in the published specification (M-ADR 0230 §4.2, Proposed).
|
|
671
772
|
catalogues:
|
|
672
773
|
domains:
|
|
673
774
|
primary_key: id
|
|
775
|
+
source_of_truth: structure
|
|
674
776
|
columns:
|
|
675
777
|
- name: id
|
|
676
778
|
type: string
|
|
@@ -687,6 +789,7 @@ catalogues:
|
|
|
687
789
|
type: string
|
|
688
790
|
nullable: false
|
|
689
791
|
description: platform-profile | application-product | integration-product.
|
|
792
|
+
source_of_truth: declaration
|
|
690
793
|
- name: reference_architecture_equivalent
|
|
691
794
|
type: string
|
|
692
795
|
nullable: true
|
|
@@ -697,19 +800,23 @@ catalogues:
|
|
|
697
800
|
- name: repo_count
|
|
698
801
|
type: int
|
|
699
802
|
nullable: false
|
|
803
|
+
source_of_truth: derived
|
|
700
804
|
- name: source_sdd_id
|
|
701
805
|
type: string
|
|
702
806
|
nullable: true
|
|
703
807
|
description: Originating SDD slug. Populated by the aggregator at merge time per M-ADR 0134; left empty by per-SDD builders.
|
|
808
|
+
source_of_truth: execution
|
|
704
809
|
- name: platform_sdd_id
|
|
705
810
|
type: string
|
|
706
811
|
nullable: true
|
|
707
812
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
813
|
+
source_of_truth: execution
|
|
708
814
|
column_enums:
|
|
709
815
|
method_profile: enums.sdd_profile
|
|
710
816
|
status: enums.domain_status
|
|
711
817
|
products:
|
|
712
818
|
primary_key: id
|
|
819
|
+
source_of_truth: declaration
|
|
713
820
|
columns:
|
|
714
821
|
- name: id
|
|
715
822
|
type: string
|
|
@@ -734,6 +841,7 @@ catalogues:
|
|
|
734
841
|
type: string
|
|
735
842
|
nullable: false
|
|
736
843
|
description: Path to _product/ directory, relative to docs/.
|
|
844
|
+
source_of_truth: derived
|
|
737
845
|
- name: lifecycle
|
|
738
846
|
type: string
|
|
739
847
|
nullable: true
|
|
@@ -770,28 +878,35 @@ catalogues:
|
|
|
770
878
|
type: int
|
|
771
879
|
nullable: true
|
|
772
880
|
description: "DEPRECATED at 3.3.0, for removal at 4.0.0 — superseded by `quality_scores` (rubric_id `reverse-product-quality.product_synthesis_quality`). Score 0-10 from the product-synthesis rubric (reverse method only). WIRED in 2.47.0 from `orchestration/gate-registry/reverse-product-quality-scores.yaml` — the registry family at product granularity — via the SELF-PRODUCT rule: the unit whose `product_path` is '.' AND whose key equals the SDD's sdd_id. Both conditions are required; product_path alone admits synthetic gate fixtures, key-matching alone admits covered sub-products. Backfill only: it fills an empty cell and never overwrites an emitted value. Empty on a forward estate by design — a forward-authored product has no reverse rubric score, and residue-based authoring signals deliberately do NOT write here (see status)."
|
|
881
|
+
source_of_truth: evidence
|
|
773
882
|
- name: synthesis_band
|
|
774
883
|
type: string
|
|
775
884
|
nullable: true
|
|
776
885
|
description: "DEPRECATED at 3.3.0, for removal at 4.0.0 — superseded by `quality_scores.band`, which is UNBOUND because the vocabulary is per-rubric. This column's closed set accepts only three of the SEVEN band values the reverse estate actually authors (measured 3.3.0: strong, working, weak, moderate, easy, hard, very-hard), silently emptying the rest. developing | working | strong — a CLOSED vocabulary; a band outside it is reported as a convention finding and the cell left empty rather than emitting a value no consumer can interpret. Wired in 2.47.0 alongside synthesis_quality."
|
|
886
|
+
source_of_truth: evidence
|
|
777
887
|
- name: last_assessed
|
|
778
888
|
type: date
|
|
779
889
|
nullable: true
|
|
890
|
+
source_of_truth: evidence
|
|
780
891
|
- name: highest_snapshot_impact
|
|
781
892
|
type: string
|
|
782
893
|
nullable: true
|
|
894
|
+
source_of_truth: evidence
|
|
783
895
|
- name: repo_count
|
|
784
896
|
type: int
|
|
785
897
|
nullable: false
|
|
786
898
|
description: Number of repos mapped to this product.
|
|
899
|
+
source_of_truth: derived
|
|
787
900
|
- name: source_sdd_id
|
|
788
901
|
type: string
|
|
789
902
|
nullable: true
|
|
790
903
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
904
|
+
source_of_truth: execution
|
|
791
905
|
- name: platform_sdd_id
|
|
792
906
|
type: string
|
|
793
907
|
nullable: true
|
|
794
908
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
909
|
+
source_of_truth: execution
|
|
795
910
|
foreign_keys:
|
|
796
911
|
- column: domain_id
|
|
797
912
|
references: domains.id
|
|
@@ -804,6 +919,7 @@ catalogues:
|
|
|
804
919
|
packaging: enums.product_packaging
|
|
805
920
|
applications:
|
|
806
921
|
primary_key: id
|
|
922
|
+
source_of_truth: derived
|
|
807
923
|
columns:
|
|
808
924
|
- name: id
|
|
809
925
|
type: string
|
|
@@ -882,10 +998,12 @@ catalogues:
|
|
|
882
998
|
type: string
|
|
883
999
|
nullable: true
|
|
884
1000
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1001
|
+
source_of_truth: execution
|
|
885
1002
|
- name: platform_sdd_id
|
|
886
1003
|
type: string
|
|
887
1004
|
nullable: true
|
|
888
1005
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1006
|
+
source_of_truth: execution
|
|
889
1007
|
description: Filtered view of products where profile = application-product.
|
|
890
1008
|
foreign_keys:
|
|
891
1009
|
- column: domain_id
|
|
@@ -899,6 +1017,7 @@ catalogues:
|
|
|
899
1017
|
packaging: enums.product_packaging
|
|
900
1018
|
integrations:
|
|
901
1019
|
primary_key: id
|
|
1020
|
+
source_of_truth: declaration
|
|
902
1021
|
columns:
|
|
903
1022
|
- name: id
|
|
904
1023
|
type: string
|
|
@@ -922,9 +1041,11 @@ catalogues:
|
|
|
922
1041
|
- name: doc_path
|
|
923
1042
|
type: string
|
|
924
1043
|
nullable: false
|
|
1044
|
+
source_of_truth: derived
|
|
925
1045
|
- name: repo_count
|
|
926
1046
|
type: int
|
|
927
1047
|
nullable: false
|
|
1048
|
+
source_of_truth: derived
|
|
928
1049
|
- name: ingestion_pattern
|
|
929
1050
|
type: string
|
|
930
1051
|
nullable: true
|
|
@@ -949,10 +1070,12 @@ catalogues:
|
|
|
949
1070
|
type: string
|
|
950
1071
|
nullable: true
|
|
951
1072
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1073
|
+
source_of_truth: execution
|
|
952
1074
|
- name: platform_sdd_id
|
|
953
1075
|
type: string
|
|
954
1076
|
nullable: true
|
|
955
1077
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1078
|
+
source_of_truth: execution
|
|
956
1079
|
description: Granular provider adapters. Each row is either (a) an integration-product SDD's own row (one per SDD; parent_product_id empty), or (b) a manifest-declared sub-integration of a multi-provider monolith (parent_product_id = umbrella SDD's id). Per M-ADR 0144 (schema 2.6.0), sub-integrations are declared via the optional `sub_integrations:` array in `integration-manifest.yaml`.
|
|
957
1080
|
foreign_keys:
|
|
958
1081
|
- column: domain_id
|
|
@@ -965,6 +1088,7 @@ catalogues:
|
|
|
965
1088
|
invocation_pattern: enums.invocation_pattern
|
|
966
1089
|
integration_component:
|
|
967
1090
|
primary_key: id
|
|
1091
|
+
source_of_truth: declaration
|
|
968
1092
|
columns:
|
|
969
1093
|
- name: id
|
|
970
1094
|
type: string
|
|
@@ -986,6 +1110,7 @@ catalogues:
|
|
|
986
1110
|
type: string
|
|
987
1111
|
nullable: false
|
|
988
1112
|
description: undeclared | repository | service | unresolved. `undeclared` = no `componentRepo` given (normal, no finding). `repository`/`service` = the declared linkage resolved. `unresolved` = declared but matched no repositories.id or services.id of this SDD, which carries a coverage finding. Re-based on `component_repo` in 2.44.0 — it previously described resolution of `component_id` itself.
|
|
1113
|
+
source_of_truth: derived
|
|
989
1114
|
- name: component_type
|
|
990
1115
|
type: string
|
|
991
1116
|
nullable: true
|
|
@@ -1030,14 +1155,17 @@ catalogues:
|
|
|
1030
1155
|
type: string
|
|
1031
1156
|
nullable: false
|
|
1032
1157
|
description: "components-array | component-manifest — WHICH of M-ADR 0171 §9.1's two homes declared this component. Added in 2.49.0, when the second home became catalogued. Required because §10.1 states that any coverage reasoning MUST say which form it counts, and once one table holds both, a consumer cannot tell them apart: merging them without this recreates the reference-exemplar problem — well-formed rows that do not mean what a consumer assumes. Measured at the time of wiring: the array form was 15 components across 5 SDDs, the per-component form 86 across 21, and the two are DISJOINT (no id collision, no SDD using both). `resolution` also reads differently by form — for the array form `componentRepo` is an optional declaration (0 of 15 declared it); for the per-component form the containing `repos/<component>/` directory IS the repo, so linkage is structural rather than declared."
|
|
1158
|
+
source_of_truth: derived
|
|
1033
1159
|
- name: source_sdd_id
|
|
1034
1160
|
type: string
|
|
1035
1161
|
nullable: true
|
|
1036
1162
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1163
|
+
source_of_truth: execution
|
|
1037
1164
|
- name: platform_sdd_id
|
|
1038
1165
|
type: string
|
|
1039
1166
|
nullable: true
|
|
1040
1167
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1168
|
+
source_of_truth: execution
|
|
1041
1169
|
description: |
|
|
1042
1170
|
Integration-product edge (M-ADR 0171 §9, catalogued per §10.1): one row per component declared in the SDD's `integration-manifest.yaml` `components:` array. A component is one of the integration's component code repos (M-ADR 0106) — an integration SDD is a one-to-many spec→code unit — and the tier is the source of truth for the interaction pattern, with the SDD-level `ingestionPattern`/`invocationPattern` as its aggregate (§9.3).
|
|
1043
1171
|
Built per-SDD, integration-product only (other profiles emit headers-only). A component id is unique within its manifest and names an **interaction surface** — commonly one provider feed — which is NOT necessarily a deployable (§10.2). The optional `component_repo` carries an explicit code linkage; when declared it MUST resolve to a `repositories.id` or `services.id` of the same SDD, and a declared-but-unresolvable linkage is a **coverage finding, not a load failure**. `resolution` records the outcome inline, including `undeclared` for the normal feed-level case, so a consumer filters on it rather than inferring from a join miss.
|
|
@@ -1052,6 +1180,7 @@ catalogues:
|
|
|
1052
1180
|
declared_in: enums.integration_component_declared_in
|
|
1053
1181
|
adrs:
|
|
1054
1182
|
primary_key: id
|
|
1183
|
+
source_of_truth: decision
|
|
1055
1184
|
columns:
|
|
1056
1185
|
- name: id
|
|
1057
1186
|
type: string
|
|
@@ -1074,25 +1203,39 @@ catalogues:
|
|
|
1074
1203
|
- name: doc_path
|
|
1075
1204
|
type: string
|
|
1076
1205
|
nullable: false
|
|
1206
|
+
source_of_truth: derived
|
|
1077
1207
|
- name: superseded_by_id
|
|
1078
1208
|
type: string
|
|
1079
1209
|
nullable: true
|
|
1210
|
+
source_of_truth: derived
|
|
1080
1211
|
- name: inference_confidence
|
|
1081
1212
|
type: string
|
|
1082
1213
|
nullable: true
|
|
1083
1214
|
description: high | medium | low (reverse-inferred ADRs only).
|
|
1215
|
+
source_of_truth: derived
|
|
1084
1216
|
- name: supersedes_raw
|
|
1085
1217
|
type: string
|
|
1086
1218
|
nullable: true
|
|
1087
1219
|
description: Raw text from Supersedes bullet for later parsing.
|
|
1220
|
+
- name: effective_change
|
|
1221
|
+
type: string
|
|
1222
|
+
nullable: true
|
|
1223
|
+
description: "From the ADR's **Effective:** line (M-ADR 0230 §4.2, Proposed): the change whose archive makes the decision apply, by its undated name; empty when it applies on acceptance. Added in schema 6.0.0."
|
|
1224
|
+
- name: governs
|
|
1225
|
+
type: string
|
|
1226
|
+
nullable: true
|
|
1227
|
+
description: "Bound to adr_governs: which view the decision governs. An Accepted ADR governs current on acceptance, or once its effective change archives; intended while that change is open; nothing once it is withdrawn or gone. A Superseded ADR governs current until a superseding ADR does. Added in schema 6.0.0."
|
|
1228
|
+
source_of_truth: derived
|
|
1088
1229
|
- name: source_sdd_id
|
|
1089
1230
|
type: string
|
|
1090
1231
|
nullable: true
|
|
1091
1232
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1233
|
+
source_of_truth: execution
|
|
1092
1234
|
- name: platform_sdd_id
|
|
1093
1235
|
type: string
|
|
1094
1236
|
nullable: true
|
|
1095
1237
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1238
|
+
source_of_truth: execution
|
|
1096
1239
|
foreign_keys:
|
|
1097
1240
|
- column: domain_id
|
|
1098
1241
|
references: domains.id
|
|
@@ -1105,8 +1248,10 @@ catalogues:
|
|
|
1105
1248
|
nullable: true
|
|
1106
1249
|
column_enums:
|
|
1107
1250
|
inference_confidence: enums.confidence_level
|
|
1251
|
+
governs: enums.adr_governs
|
|
1108
1252
|
glossary_items:
|
|
1109
1253
|
primary_key: id
|
|
1254
|
+
source_of_truth: structure
|
|
1110
1255
|
columns:
|
|
1111
1256
|
- name: id
|
|
1112
1257
|
type: string
|
|
@@ -1126,13 +1271,16 @@ catalogues:
|
|
|
1126
1271
|
type: string
|
|
1127
1272
|
nullable: true
|
|
1128
1273
|
description: Set when this term is an alias for another.
|
|
1274
|
+
source_of_truth: derived
|
|
1129
1275
|
- name: aliases
|
|
1130
1276
|
type: string
|
|
1131
1277
|
nullable: true
|
|
1132
1278
|
description: "';'-separated list."
|
|
1279
|
+
source_of_truth: derived
|
|
1133
1280
|
- name: evidence
|
|
1134
1281
|
type: string
|
|
1135
1282
|
nullable: true
|
|
1283
|
+
source_of_truth: evidence
|
|
1136
1284
|
- name: notes
|
|
1137
1285
|
type: string
|
|
1138
1286
|
nullable: true
|
|
@@ -1140,10 +1288,12 @@ catalogues:
|
|
|
1140
1288
|
type: string
|
|
1141
1289
|
nullable: true
|
|
1142
1290
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1291
|
+
source_of_truth: execution
|
|
1143
1292
|
- name: platform_sdd_id
|
|
1144
1293
|
type: string
|
|
1145
1294
|
nullable: true
|
|
1146
1295
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1296
|
+
source_of_truth: execution
|
|
1147
1297
|
foreign_keys:
|
|
1148
1298
|
- column: owning_domain_id
|
|
1149
1299
|
references: domains.id
|
|
@@ -1153,6 +1303,7 @@ catalogues:
|
|
|
1153
1303
|
nullable: true
|
|
1154
1304
|
glossary_xref:
|
|
1155
1305
|
primary_key: id
|
|
1306
|
+
source_of_truth: structure
|
|
1156
1307
|
columns:
|
|
1157
1308
|
- name: id
|
|
1158
1309
|
type: string
|
|
@@ -1169,6 +1320,10 @@ catalogues:
|
|
|
1169
1320
|
nullable: false
|
|
1170
1321
|
description: alias-of | conflicts-with | references | supersedes (extended in schema 2.12.0 per M-ADR 0158).
|
|
1171
1322
|
description: "Edge: cross-domain glossary relationships from glossary-alignment-manifest.yaml. Per M-ADR 0158, four walkers ingest into this catalogue: (a) forward declared pair-form {source, target} entries under aliases/conflicts, (b) reverse-method cross_domain_terms (emits references edges per referencer→owner), (c) reverse-method multi-domain conflicts (pair-wise expansion across domains[]), (d) forward-method supersedes (status: superseded entries with superseded_by back-link)."
|
|
1323
|
+
natural_key:
|
|
1324
|
+
- source_id
|
|
1325
|
+
- target_id
|
|
1326
|
+
- relation
|
|
1172
1327
|
foreign_keys:
|
|
1173
1328
|
- column: source_id
|
|
1174
1329
|
references: glossary_items.id
|
|
@@ -1180,6 +1335,7 @@ catalogues:
|
|
|
1180
1335
|
relation: enums.glossary_xref_relation
|
|
1181
1336
|
entity_glossary:
|
|
1182
1337
|
primary_key: id
|
|
1338
|
+
source_of_truth: structure
|
|
1183
1339
|
columns:
|
|
1184
1340
|
- name: id
|
|
1185
1341
|
type: string
|
|
@@ -1198,14 +1354,17 @@ catalogues:
|
|
|
1198
1354
|
type: string
|
|
1199
1355
|
nullable: false
|
|
1200
1356
|
description: aligned | matched_direct. Conflicting statuses within a domain resolve matched_direct > aligned with a divergence finding.
|
|
1357
|
+
source_of_truth: derived
|
|
1201
1358
|
- name: source_sdd_id
|
|
1202
1359
|
type: string
|
|
1203
1360
|
nullable: true
|
|
1204
1361
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1362
|
+
source_of_truth: execution
|
|
1205
1363
|
- name: platform_sdd_id
|
|
1206
1364
|
type: string
|
|
1207
1365
|
nullable: true
|
|
1208
1366
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1367
|
+
source_of_truth: execution
|
|
1209
1368
|
- name: entity_id
|
|
1210
1369
|
type: string
|
|
1211
1370
|
nullable: true
|
|
@@ -1223,6 +1382,7 @@ catalogues:
|
|
|
1223
1382
|
nullable: true
|
|
1224
1383
|
services:
|
|
1225
1384
|
primary_key: id
|
|
1385
|
+
source_of_truth: structure
|
|
1226
1386
|
columns:
|
|
1227
1387
|
- name: id
|
|
1228
1388
|
type: string
|
|
@@ -1261,6 +1421,7 @@ catalogues:
|
|
|
1261
1421
|
type: string
|
|
1262
1422
|
nullable: true
|
|
1263
1423
|
description: high | medium | low (reverse-method classification).
|
|
1424
|
+
source_of_truth: evidence
|
|
1264
1425
|
- name: context
|
|
1265
1426
|
type: string
|
|
1266
1427
|
nullable: true
|
|
@@ -1272,10 +1433,12 @@ catalogues:
|
|
|
1272
1433
|
type: string
|
|
1273
1434
|
nullable: true
|
|
1274
1435
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1436
|
+
source_of_truth: execution
|
|
1275
1437
|
- name: platform_sdd_id
|
|
1276
1438
|
type: string
|
|
1277
1439
|
nullable: true
|
|
1278
1440
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1441
|
+
source_of_truth: execution
|
|
1279
1442
|
foreign_keys:
|
|
1280
1443
|
- column: product_id
|
|
1281
1444
|
references: products.id
|
|
@@ -1291,6 +1454,7 @@ catalogues:
|
|
|
1291
1454
|
confidence: enums.confidence_level
|
|
1292
1455
|
capabilities:
|
|
1293
1456
|
primary_key: id
|
|
1457
|
+
source_of_truth: structure
|
|
1294
1458
|
columns:
|
|
1295
1459
|
- name: id
|
|
1296
1460
|
type: string
|
|
@@ -1313,6 +1477,7 @@ catalogues:
|
|
|
1313
1477
|
type: string
|
|
1314
1478
|
nullable: true
|
|
1315
1479
|
description: Evidence class of the capability's claims, from `capability.evidence_class` in the traceability manifest. Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty when undeclared. Added in schema 2.20.0.
|
|
1480
|
+
source_of_truth: evidence
|
|
1316
1481
|
- name: context
|
|
1317
1482
|
type: string
|
|
1318
1483
|
nullable: true
|
|
@@ -1320,6 +1485,7 @@ catalogues:
|
|
|
1320
1485
|
- name: description
|
|
1321
1486
|
type: string
|
|
1322
1487
|
nullable: true
|
|
1488
|
+
source_of_truth: intent
|
|
1323
1489
|
- name: status
|
|
1324
1490
|
type: string
|
|
1325
1491
|
nullable: false
|
|
@@ -1328,14 +1494,17 @@ catalogues:
|
|
|
1328
1494
|
type: string
|
|
1329
1495
|
nullable: true
|
|
1330
1496
|
description: Path to capability spec file when one exists.
|
|
1497
|
+
source_of_truth: derived
|
|
1331
1498
|
- name: contract_provenance
|
|
1332
1499
|
type: string
|
|
1333
1500
|
nullable: true
|
|
1334
1501
|
description: "How this capability's declared contract SET was produced, from `traceability.contracts.provenance`. hand-authored | reverse-extracted | generated — the vocabulary the method already ships for `authoring-mode`, reused deliberately so provenance has one vocabulary and not two. Empty means undeclared, and undeclared reads as `hand-authored` by convention. Added at 3.5.0. ⚠ STRICTLY ORTHOGONAL to the contract-set maturity ladder (`traceability.contracts.status`: planned | provisional | partial | complete | stable | none): provenance never constrains status and status never constrains provenance, and `reverse-extracted` + `complete` is the legitimate pair that motivated the field. Evidence: 2 reverse-estate manifests had written `reverse-extracted` INTO contracts.status, where it is invalid, because a complete reverse-derived contract surface had no way to say both true things at once and the author picked the provenance one. A rule here that constrained maturity would re-create exactly that defect. ⚠ Note the asymmetry this column exposes and does not fix: the maturity ladder it is orthogonal to has NO catalogue column at all — `traceability.contracts.status` is validator-enforced but uncatalogued, so it is queryable by no consumer. That is the authored-but-uncatalogued class (a block with no column has no automated reader, so nothing can notice when it is absent or wrong); this column is given one precisely so the provenance half does not join it. Giving the ladder a column is a candidate follow-on, not done here."
|
|
1502
|
+
source_of_truth: evidence
|
|
1335
1503
|
- name: source
|
|
1336
1504
|
type: string
|
|
1337
1505
|
nullable: false
|
|
1338
|
-
description: capability-tree | product-map | capability-spec.
|
|
1506
|
+
description: "capability-tree | product-map | capability-spec | structural-model. As of schema 6.0.0, source: structural-model is emitted for a capability only the structural model holds (M-ADR 0230 §4.3, Proposed)."
|
|
1507
|
+
source_of_truth: derived
|
|
1339
1508
|
- name: runway_classification
|
|
1340
1509
|
type: string
|
|
1341
1510
|
nullable: true
|
|
@@ -1352,10 +1521,12 @@ catalogues:
|
|
|
1352
1521
|
type: string
|
|
1353
1522
|
nullable: true
|
|
1354
1523
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1524
|
+
source_of_truth: execution
|
|
1355
1525
|
- name: platform_sdd_id
|
|
1356
1526
|
type: string
|
|
1357
1527
|
nullable: true
|
|
1358
1528
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1529
|
+
source_of_truth: execution
|
|
1359
1530
|
foreign_keys:
|
|
1360
1531
|
- column: domain_id
|
|
1361
1532
|
references: domains.id
|
|
@@ -1370,6 +1541,7 @@ catalogues:
|
|
|
1370
1541
|
source: enums.capability_source
|
|
1371
1542
|
feature_groups:
|
|
1372
1543
|
primary_key: id
|
|
1544
|
+
source_of_truth: structure
|
|
1373
1545
|
columns:
|
|
1374
1546
|
- name: id
|
|
1375
1547
|
type: string
|
|
@@ -1395,18 +1567,22 @@ catalogues:
|
|
|
1395
1567
|
type: string
|
|
1396
1568
|
nullable: true
|
|
1397
1569
|
description: Authored description (when group has explicit metadata) or null when derived from heading only.
|
|
1570
|
+
source_of_truth: intent
|
|
1398
1571
|
- name: source
|
|
1399
1572
|
type: string
|
|
1400
1573
|
nullable: false
|
|
1401
1574
|
description: feature-tree-h2 | feature-tree-h3 | feature-spec-explicit (when an authored feature spec declares group membership) | capability-spec-explicit.
|
|
1575
|
+
source_of_truth: derived
|
|
1402
1576
|
- name: source_sdd_id
|
|
1403
1577
|
type: string
|
|
1404
1578
|
nullable: true
|
|
1405
1579
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1580
|
+
source_of_truth: execution
|
|
1406
1581
|
- name: platform_sdd_id
|
|
1407
1582
|
type: string
|
|
1408
1583
|
nullable: true
|
|
1409
1584
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1585
|
+
source_of_truth: execution
|
|
1410
1586
|
description: |
|
|
1411
1587
|
Hierarchical grouping for features. First-class entity — replaces the previous reverse-only synthetic `feature-tree-group` rows in features.csv. Both forward and reverse can use feature_groups: forward application-product SDDs whose `feature-tree.md` has H2/H3 structure, reverse SDDs whose extracted feature trees are inherently hierarchical, and any SDD that promotes groups to first-class with authored metadata. Groups can nest via `parent_group_id`.
|
|
1412
1588
|
foreign_keys:
|
|
@@ -1421,6 +1597,7 @@ catalogues:
|
|
|
1421
1597
|
nullable: true
|
|
1422
1598
|
features:
|
|
1423
1599
|
primary_key: id
|
|
1600
|
+
source_of_truth: structure
|
|
1424
1601
|
columns:
|
|
1425
1602
|
- name: id
|
|
1426
1603
|
type: string
|
|
@@ -1447,30 +1624,39 @@ catalogues:
|
|
|
1447
1624
|
- name: description
|
|
1448
1625
|
type: string
|
|
1449
1626
|
nullable: true
|
|
1627
|
+
source_of_truth: intent
|
|
1450
1628
|
- name: maturity
|
|
1451
1629
|
type: string
|
|
1452
1630
|
nullable: true
|
|
1453
1631
|
description: "Standard: working | provisional | unknown | absent. Ecosystem-specific values may be added with parser awareness."
|
|
1632
|
+
source_of_truth: derived
|
|
1454
1633
|
- name: status
|
|
1455
1634
|
type: string
|
|
1456
1635
|
nullable: false
|
|
1457
|
-
description:
|
|
1636
|
+
description: "Bound to feature_status: active, or retired when the feature spec says **Status:** retired (its behaviour retired by an archived change)."
|
|
1458
1637
|
- name: source
|
|
1459
1638
|
type: string
|
|
1460
1639
|
nullable: false
|
|
1461
|
-
description: "feature-tree | feature-set | capability-spec | feature-spec | feature-grounding. NOTE: feature-tree-group source removed in 1.3.0 — groups are now first-class in feature_groups.csv. As of schema 2.2.0, source: feature-tree is emitted by the canonical builder for rows derived from feature-tree.md bullets. As of schema 2.5.0, source: feature-grounding is emitted for rows derived from `docs/domains/<dom>/design/<capability>/feature-grounding.md` markdown tables (per M-ADR 0143). As of schema 2.7.0, source: capability-spec is emitted by the canonical builder for rows derived from `## Feature Grounding (code-path trace)` tables in `docs/domains/<dom>/product/<capability>.md` capability spec markdown (per M-ADR 0145). Feature-grounding and capability-spec rows are both capability-owned: product_id is empty; capability_id resolves from the file path."
|
|
1640
|
+
description: "feature-tree | feature-set | capability-spec | feature-spec | feature-grounding | structural-model. As of schema 6.0.0, source: structural-model is emitted for a feature only the structural model holds (M-ADR 0230 §4.3, Proposed). NOTE: feature-tree-group source removed in 1.3.0 — groups are now first-class in feature_groups.csv. As of schema 2.2.0, source: feature-tree is emitted by the canonical builder for rows derived from feature-tree.md bullets. As of schema 2.5.0, source: feature-grounding is emitted for rows derived from `docs/domains/<dom>/design/<capability>/feature-grounding.md` markdown tables (per M-ADR 0143). As of schema 2.7.0, source: capability-spec is emitted by the canonical builder for rows derived from `## Feature Grounding (code-path trace)` tables in `docs/domains/<dom>/product/<capability>.md` capability spec markdown (per M-ADR 0145). Feature-grounding and capability-spec rows are both capability-owned: product_id is empty; capability_id resolves from the file path."
|
|
1641
|
+
source_of_truth: derived
|
|
1462
1642
|
- name: runway
|
|
1463
1643
|
type: string
|
|
1464
1644
|
nullable: true
|
|
1465
1645
|
description: Optional adopter-owned lifecycle / migration marker. Free string at method level — the schema declares no enum and ships no controlled vocabulary. Adopters MAY declare a per-SDD `feature-runway-vocabulary.yaml` at their SDD root; when present, the canonical builder validates captured values against it and emits a `convention` finding for unknown values. Empty when the adopter does not track migration state. Comparability across SDDs requires ecosystem-level vocabulary alignment as an explicit pre-step. Added in schema 2.2.0.
|
|
1646
|
+
- name: kind
|
|
1647
|
+
type: string
|
|
1648
|
+
nullable: false
|
|
1649
|
+
description: "Bound to feature_kind: feature (the default), obligation (M-ADR 0226, Proposed) or journey (M-ADR 0229 §4.2, Proposed), from the feature spec's **Kind:** line."
|
|
1466
1650
|
- name: source_sdd_id
|
|
1467
1651
|
type: string
|
|
1468
1652
|
nullable: true
|
|
1469
1653
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1654
|
+
source_of_truth: execution
|
|
1470
1655
|
- name: platform_sdd_id
|
|
1471
1656
|
type: string
|
|
1472
1657
|
nullable: true
|
|
1473
1658
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1659
|
+
source_of_truth: execution
|
|
1474
1660
|
foreign_keys:
|
|
1475
1661
|
- column: product_id
|
|
1476
1662
|
references: products.id
|
|
@@ -1485,10 +1671,13 @@ catalogues:
|
|
|
1485
1671
|
references: features.id
|
|
1486
1672
|
nullable: true
|
|
1487
1673
|
column_enums:
|
|
1674
|
+
status: enums.feature_status
|
|
1675
|
+
kind: enums.feature_kind
|
|
1488
1676
|
source: enums.feature_source
|
|
1489
1677
|
maturity: enums.artefact_maturity
|
|
1490
1678
|
personas:
|
|
1491
1679
|
primary_key: id
|
|
1680
|
+
source_of_truth: structure
|
|
1492
1681
|
columns:
|
|
1493
1682
|
- name: id
|
|
1494
1683
|
type: string
|
|
@@ -1506,20 +1695,24 @@ catalogues:
|
|
|
1506
1695
|
- name: description
|
|
1507
1696
|
type: string
|
|
1508
1697
|
nullable: true
|
|
1698
|
+
source_of_truth: intent
|
|
1509
1699
|
- name: source_sdd_id
|
|
1510
1700
|
type: string
|
|
1511
1701
|
nullable: true
|
|
1512
1702
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1703
|
+
source_of_truth: execution
|
|
1513
1704
|
- name: platform_sdd_id
|
|
1514
1705
|
type: string
|
|
1515
1706
|
nullable: true
|
|
1516
1707
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1708
|
+
source_of_truth: execution
|
|
1517
1709
|
foreign_keys:
|
|
1518
1710
|
- column: product_id
|
|
1519
1711
|
references: products.id
|
|
1520
1712
|
nullable: false
|
|
1521
1713
|
user_journeys:
|
|
1522
1714
|
primary_key: id
|
|
1715
|
+
source_of_truth: structure
|
|
1523
1716
|
columns:
|
|
1524
1717
|
- name: id
|
|
1525
1718
|
type: string
|
|
@@ -1541,23 +1734,28 @@ catalogues:
|
|
|
1541
1734
|
- name: trigger
|
|
1542
1735
|
type: string
|
|
1543
1736
|
nullable: true
|
|
1737
|
+
source_of_truth: intent
|
|
1544
1738
|
- name: goal
|
|
1545
1739
|
type: string
|
|
1546
1740
|
nullable: true
|
|
1741
|
+
source_of_truth: intent
|
|
1547
1742
|
- name: source_sdd_id
|
|
1548
1743
|
type: string
|
|
1549
1744
|
nullable: true
|
|
1550
1745
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1746
|
+
source_of_truth: execution
|
|
1551
1747
|
- name: platform_sdd_id
|
|
1552
1748
|
type: string
|
|
1553
1749
|
nullable: true
|
|
1554
1750
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1751
|
+
source_of_truth: execution
|
|
1555
1752
|
foreign_keys:
|
|
1556
1753
|
- column: product_id
|
|
1557
1754
|
references: products.id
|
|
1558
1755
|
nullable: false
|
|
1559
1756
|
contracts:
|
|
1560
1757
|
primary_key: id
|
|
1758
|
+
source_of_truth: interface
|
|
1561
1759
|
columns:
|
|
1562
1760
|
- name: id
|
|
1563
1761
|
type: string
|
|
@@ -1589,6 +1787,7 @@ catalogues:
|
|
|
1589
1787
|
- name: spec_path
|
|
1590
1788
|
type: string
|
|
1591
1789
|
nullable: true
|
|
1790
|
+
source_of_truth: derived
|
|
1592
1791
|
- name: visibility
|
|
1593
1792
|
type: string
|
|
1594
1793
|
nullable: true
|
|
@@ -1601,6 +1800,7 @@ catalogues:
|
|
|
1601
1800
|
type: string
|
|
1602
1801
|
nullable: true
|
|
1603
1802
|
description: Evidence class of the contract surface, from OpenAPI `info.x-evidence-class` (document root accepted as fallback, exactly like x-context). Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty when untagged. Added in schema 2.20.0.
|
|
1803
|
+
source_of_truth: evidence
|
|
1604
1804
|
- name: description
|
|
1605
1805
|
type: string
|
|
1606
1806
|
nullable: true
|
|
@@ -1608,14 +1808,17 @@ catalogues:
|
|
|
1608
1808
|
type: string
|
|
1609
1809
|
nullable: true
|
|
1610
1810
|
description: discovered | declared-external. `discovered` (default) means the builder walked the spec file and parsed it, so title/version/context/evidence_class are trustworthy. `declared-external` means the row exists ONLY because a capability traceability manifest declared it with an explicit external marker and the file was never read — so those columns are necessarily EMPTY and their emptiness carries no information. A consumer that cannot tell the two apart will treat a declaration as a validated contract. Added in schema 2.51.0 (D13).
|
|
1811
|
+
source_of_truth: derived
|
|
1611
1812
|
- name: source_sdd_id
|
|
1612
1813
|
type: string
|
|
1613
1814
|
nullable: true
|
|
1614
1815
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1816
|
+
source_of_truth: execution
|
|
1615
1817
|
- name: platform_sdd_id
|
|
1616
1818
|
type: string
|
|
1617
1819
|
nullable: true
|
|
1618
1820
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1821
|
+
source_of_truth: execution
|
|
1619
1822
|
foreign_keys:
|
|
1620
1823
|
- column: service_id
|
|
1621
1824
|
references: services.id
|
|
@@ -1630,6 +1833,7 @@ catalogues:
|
|
|
1630
1833
|
discovery: enums.contract_discovery
|
|
1631
1834
|
events:
|
|
1632
1835
|
primary_key: id
|
|
1836
|
+
source_of_truth: interface
|
|
1633
1837
|
columns:
|
|
1634
1838
|
- name: id
|
|
1635
1839
|
type: string
|
|
@@ -1658,14 +1862,17 @@ catalogues:
|
|
|
1658
1862
|
type: string
|
|
1659
1863
|
nullable: true
|
|
1660
1864
|
description: Evidence class of the event claim, from the per-event `evidence_class` key (alias `evidence-class`) in event-catalog.yaml, falling back to a file-level `evidence_class`/`evidence-class` top-level key in the same catalog YAML. Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty for avsc-only events and when undeclared. Added in schema 2.20.0.
|
|
1865
|
+
source_of_truth: evidence
|
|
1661
1866
|
- name: source_sdd_id
|
|
1662
1867
|
type: string
|
|
1663
1868
|
nullable: true
|
|
1664
1869
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1870
|
+
source_of_truth: execution
|
|
1665
1871
|
- name: platform_sdd_id
|
|
1666
1872
|
type: string
|
|
1667
1873
|
nullable: true
|
|
1668
1874
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1875
|
+
source_of_truth: execution
|
|
1669
1876
|
description: "Asynchronous messages. Cross-domain events (e.g. shared envelopes) leave domain_id empty. Per M-ADR 0156 (multi-source ingestion, schema 2.12.0): forward-method canonical source is `contracts/avro/*.avsc` files; reverse-method canonical source is `docs/domains/{domain}/contracts/events/event-catalog.yaml`. YAML wins on name/domain/publisher/transport/consumers; avsc augments schema_path/version. Both paths run and merge by id slug."
|
|
1670
1877
|
foreign_keys:
|
|
1671
1878
|
- column: publisher_service_id
|
|
@@ -1676,6 +1883,7 @@ catalogues:
|
|
|
1676
1883
|
nullable: true
|
|
1677
1884
|
c4_systems:
|
|
1678
1885
|
primary_key: id
|
|
1886
|
+
source_of_truth: structure
|
|
1679
1887
|
columns:
|
|
1680
1888
|
- name: id
|
|
1681
1889
|
type: string
|
|
@@ -1696,6 +1904,7 @@ catalogues:
|
|
|
1696
1904
|
type: string
|
|
1697
1905
|
nullable: true
|
|
1698
1906
|
description: Path to L1 mermaid/markdown. Nullable — row exists for any architectural Product even if no L1 diagram has been authored yet (visible coverage gap).
|
|
1907
|
+
source_of_truth: derived
|
|
1699
1908
|
- name: description
|
|
1700
1909
|
type: string
|
|
1701
1910
|
nullable: true
|
|
@@ -1703,10 +1912,12 @@ catalogues:
|
|
|
1703
1912
|
type: string
|
|
1704
1913
|
nullable: true
|
|
1705
1914
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1915
|
+
source_of_truth: execution
|
|
1706
1916
|
- name: platform_sdd_id
|
|
1707
1917
|
type: string
|
|
1708
1918
|
nullable: true
|
|
1709
1919
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1920
|
+
source_of_truth: execution
|
|
1710
1921
|
foreign_keys:
|
|
1711
1922
|
- column: product_id
|
|
1712
1923
|
references: products.id
|
|
@@ -1715,6 +1926,7 @@ catalogues:
|
|
|
1715
1926
|
kind: enums.c4_system_kind
|
|
1716
1927
|
c4_containers:
|
|
1717
1928
|
primary_key: id
|
|
1929
|
+
source_of_truth: structure
|
|
1718
1930
|
columns:
|
|
1719
1931
|
- name: id
|
|
1720
1932
|
type: string
|
|
@@ -1749,10 +1961,12 @@ catalogues:
|
|
|
1749
1961
|
type: string
|
|
1750
1962
|
nullable: true
|
|
1751
1963
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
1964
|
+
source_of_truth: execution
|
|
1752
1965
|
- name: platform_sdd_id
|
|
1753
1966
|
type: string
|
|
1754
1967
|
nullable: true
|
|
1755
1968
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
1969
|
+
source_of_truth: execution
|
|
1756
1970
|
description: |
|
|
1757
1971
|
C4 L2. Each container belongs to exactly one C4 system. `domain_id` is a denormalised organisational tag, not a C4-structural attribute — multi-domain ecosystems use it for filtering/reporting. `service_id` is the optional "may represent" link to a runtime service when the container is a deployable application.
|
|
1758
1972
|
foreign_keys:
|
|
@@ -1769,6 +1983,7 @@ catalogues:
|
|
|
1769
1983
|
type: enums.c4_container_type
|
|
1770
1984
|
c4_components:
|
|
1771
1985
|
primary_key: id
|
|
1986
|
+
source_of_truth: structure
|
|
1772
1987
|
columns:
|
|
1773
1988
|
- name: id
|
|
1774
1989
|
type: string
|
|
@@ -1795,10 +2010,12 @@ catalogues:
|
|
|
1795
2010
|
type: string
|
|
1796
2011
|
nullable: true
|
|
1797
2012
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2013
|
+
source_of_truth: execution
|
|
1798
2014
|
- name: platform_sdd_id
|
|
1799
2015
|
type: string
|
|
1800
2016
|
nullable: true
|
|
1801
2017
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2018
|
+
source_of_truth: execution
|
|
1802
2019
|
description: |
|
|
1803
2020
|
C4 L3. Each component belongs to exactly one C4 container. `service_id` is denormalised from `c4_containers.service_id` for query convenience — populated when the parent container represents a runtime service.
|
|
1804
2021
|
foreign_keys:
|
|
@@ -1810,6 +2027,7 @@ catalogues:
|
|
|
1810
2027
|
nullable: true
|
|
1811
2028
|
c4_external_systems:
|
|
1812
2029
|
primary_key: id
|
|
2030
|
+
source_of_truth: structure
|
|
1813
2031
|
columns:
|
|
1814
2032
|
- name: id
|
|
1815
2033
|
type: string
|
|
@@ -1835,18 +2053,22 @@ catalogues:
|
|
|
1835
2053
|
type: string
|
|
1836
2054
|
nullable: true
|
|
1837
2055
|
description: "Scope of the first-seen declaration: l1 (context diagram) or l2 (container diagram — scope-relative per M-ADR 0189 §4.1). Added 2.30.0."
|
|
2056
|
+
source_of_truth: derived
|
|
1838
2057
|
- name: source_sdd_id
|
|
1839
2058
|
type: string
|
|
1840
2059
|
nullable: true
|
|
1841
2060
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2061
|
+
source_of_truth: execution
|
|
1842
2062
|
- name: platform_sdd_id
|
|
1843
2063
|
type: string
|
|
1844
2064
|
nullable: true
|
|
1845
2065
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2066
|
+
source_of_truth: execution
|
|
1846
2067
|
description: |
|
|
1847
2068
|
C4 external software systems — peer systems at the L1 context level that the ecosystem integrates with but does not own (per M-ADR 0155). Rendered `System_Ext(...)` on L1/L2 diagrams. NOT a c4_container (external systems are not inside your system) and NOT a c4_system (they have no owning Product). External systems are inherently shared references: the same external system may be declared by multiple SDDs, so the aggregator dedups identical rows by PK rather than failing on duplicate (the one narrowly-scoped exception to M-ADR 0134's duplicate-PK rule); conflicting attributes on the same id surface as a `convention` finding.
|
|
1848
2069
|
repositories:
|
|
1849
2070
|
primary_key: id
|
|
2071
|
+
source_of_truth: structure
|
|
1850
2072
|
columns:
|
|
1851
2073
|
- name: id
|
|
1852
2074
|
type: string
|
|
@@ -1882,33 +2104,42 @@ catalogues:
|
|
|
1882
2104
|
- name: files
|
|
1883
2105
|
type: int
|
|
1884
2106
|
nullable: true
|
|
2107
|
+
source_of_truth: evidence
|
|
1885
2108
|
- name: code
|
|
1886
2109
|
type: int
|
|
1887
2110
|
nullable: true
|
|
2111
|
+
source_of_truth: evidence
|
|
1888
2112
|
- name: comment
|
|
1889
2113
|
type: int
|
|
1890
2114
|
nullable: true
|
|
2115
|
+
source_of_truth: evidence
|
|
1891
2116
|
- name: blank
|
|
1892
2117
|
type: int
|
|
1893
2118
|
nullable: true
|
|
2119
|
+
source_of_truth: evidence
|
|
1894
2120
|
- name: total_lines
|
|
1895
2121
|
type: int
|
|
1896
2122
|
nullable: true
|
|
2123
|
+
source_of_truth: evidence
|
|
1897
2124
|
- name: languages
|
|
1898
2125
|
type: string
|
|
1899
2126
|
nullable: true
|
|
1900
2127
|
description: "';'-separated."
|
|
2128
|
+
source_of_truth: evidence
|
|
1901
2129
|
- name: doc_path
|
|
1902
2130
|
type: string
|
|
1903
2131
|
nullable: false
|
|
2132
|
+
source_of_truth: derived
|
|
1904
2133
|
- name: source_sdd_id
|
|
1905
2134
|
type: string
|
|
1906
2135
|
nullable: true
|
|
1907
2136
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2137
|
+
source_of_truth: execution
|
|
1908
2138
|
- name: platform_sdd_id
|
|
1909
2139
|
type: string
|
|
1910
2140
|
nullable: true
|
|
1911
2141
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2142
|
+
source_of_truth: execution
|
|
1912
2143
|
- name: repo_scope
|
|
1913
2144
|
type: string
|
|
1914
2145
|
nullable: true
|
|
@@ -1925,6 +2156,7 @@ catalogues:
|
|
|
1925
2156
|
repo_scope: enums.repo_scope
|
|
1926
2157
|
domain_models:
|
|
1927
2158
|
primary_key: id
|
|
2159
|
+
source_of_truth: structure
|
|
1928
2160
|
columns:
|
|
1929
2161
|
- name: id
|
|
1930
2162
|
type: string
|
|
@@ -1940,6 +2172,7 @@ catalogues:
|
|
|
1940
2172
|
type: string
|
|
1941
2173
|
nullable: false
|
|
1942
2174
|
description: Path to data-model.mermaid.md.
|
|
2175
|
+
source_of_truth: derived
|
|
1943
2176
|
- name: version
|
|
1944
2177
|
type: string
|
|
1945
2178
|
nullable: true
|
|
@@ -1948,18 +2181,22 @@ catalogues:
|
|
|
1948
2181
|
type: string
|
|
1949
2182
|
nullable: true
|
|
1950
2183
|
description: Evidence class of the domain model, from a leading ```yaml fence in the data-model markdown carrying `evidence-class:` (documentation-reverse anchor convention). Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty when undeclared. Added in schema 2.20.0.
|
|
2184
|
+
source_of_truth: evidence
|
|
1951
2185
|
- name: source_sdd_id
|
|
1952
2186
|
type: string
|
|
1953
2187
|
nullable: true
|
|
1954
2188
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2189
|
+
source_of_truth: execution
|
|
1955
2190
|
- name: platform_sdd_id
|
|
1956
2191
|
type: string
|
|
1957
2192
|
nullable: true
|
|
1958
2193
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2194
|
+
source_of_truth: execution
|
|
1959
2195
|
- name: notation
|
|
1960
2196
|
type: string
|
|
1961
2197
|
nullable: true
|
|
1962
2198
|
description: "The notation the model artefact is written in — one of enums.model_notation (mermaid-erd | typeql), DERIVED by the builder from the file (data-model.mermaid.md → mermaid-erd; data-model.tql → typeql), never authored. The compliance instrument of M-ADR 0210 §4.6 Decision 2 (as amended): a mermaid-erd row is advisory until the sunset 2027-03-31 and an error after it. Added in 3.11.0."
|
|
2199
|
+
source_of_truth: derived
|
|
1963
2200
|
description: "Per-domain ER diagram modelling the domain's aggregates, entities, and domain events. Platform-profile only — application and integration profiles emit headers-only. Forward source: `traceability.domain_model.path` in capability traceability manifests. Reverse source: file-system scan of `docs/domains/*/architecture/data-model.mermaid.md`. Added in schema 2.4.0; see M-ADR 0142."
|
|
1964
2201
|
foreign_keys:
|
|
1965
2202
|
- column: domain_id
|
|
@@ -1969,6 +2206,7 @@ catalogues:
|
|
|
1969
2206
|
notation: enums.model_notation
|
|
1970
2207
|
entities:
|
|
1971
2208
|
primary_key: id
|
|
2209
|
+
source_of_truth: structure
|
|
1972
2210
|
columns:
|
|
1973
2211
|
- name: id
|
|
1974
2212
|
type: string
|
|
@@ -2006,14 +2244,17 @@ catalogues:
|
|
|
2006
2244
|
type: string
|
|
2007
2245
|
nullable: true
|
|
2008
2246
|
description: Evidence class inherited from the owning domain model's file-level declaration (the leading ```yaml fence's `evidence-class:` in data-model markdown). Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty when the source file declares none, and for manifest-sourced rows (the glossary-alignment manifest has no evidence slot). Added in schema 2.20.0.
|
|
2247
|
+
source_of_truth: evidence
|
|
2009
2248
|
- name: source_sdd_id
|
|
2010
2249
|
type: string
|
|
2011
2250
|
nullable: true
|
|
2012
2251
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2252
|
+
source_of_truth: execution
|
|
2013
2253
|
- name: platform_sdd_id
|
|
2014
2254
|
type: string
|
|
2015
2255
|
nullable: true
|
|
2016
2256
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2257
|
+
source_of_truth: execution
|
|
2017
2258
|
description: "Data-model entity (a structural realisation of a concept inside a domain's data model). Distinct from glossary_items (vocabulary-level) and from domain_models (file-level). Added in schema 2.13.0 per M-ADR 0159. Forward source: `models[].entities[]` in glossary-alignment-manifest.yaml. Reverse source: `EntityName { ... }` declarations inside `erDiagram` fences in `docs/domains/{domain}/architecture/data-model.mermaid.md`. PK uses an entity-aware slug that normalises across UPPER_SNAKE and PascalCase authoring styles."
|
|
2018
2259
|
foreign_keys:
|
|
2019
2260
|
- column: domain_id
|
|
@@ -2029,6 +2270,7 @@ catalogues:
|
|
|
2029
2270
|
persistence_kind: enums.persistence_kind
|
|
2030
2271
|
repo_capability:
|
|
2031
2272
|
primary_key: id
|
|
2273
|
+
source_of_truth: derived
|
|
2032
2274
|
columns:
|
|
2033
2275
|
- name: id
|
|
2034
2276
|
type: string
|
|
@@ -2049,6 +2291,7 @@ catalogues:
|
|
|
2049
2291
|
nullable: false
|
|
2050
2292
|
repo_capability_exemption:
|
|
2051
2293
|
primary_key: id
|
|
2294
|
+
source_of_truth: declaration
|
|
2052
2295
|
columns:
|
|
2053
2296
|
- name: id
|
|
2054
2297
|
type: string
|
|
@@ -2075,6 +2318,7 @@ catalogues:
|
|
|
2075
2318
|
reason: enums.capability_exemption_reason
|
|
2076
2319
|
service_capability_exemption:
|
|
2077
2320
|
primary_key: id
|
|
2321
|
+
source_of_truth: declaration
|
|
2078
2322
|
columns:
|
|
2079
2323
|
- name: id
|
|
2080
2324
|
type: string
|
|
@@ -2101,6 +2345,7 @@ catalogues:
|
|
|
2101
2345
|
reason: enums.service_capability_exemption_reason
|
|
2102
2346
|
external_system_exemption:
|
|
2103
2347
|
primary_key: id
|
|
2348
|
+
source_of_truth: declaration
|
|
2104
2349
|
columns:
|
|
2105
2350
|
- name: id
|
|
2106
2351
|
type: string
|
|
@@ -2127,6 +2372,7 @@ catalogues:
|
|
|
2127
2372
|
reason: enums.external_system_exemption_reason
|
|
2128
2373
|
repo_contract:
|
|
2129
2374
|
primary_key: id
|
|
2375
|
+
source_of_truth: derived
|
|
2130
2376
|
columns:
|
|
2131
2377
|
- name: id
|
|
2132
2378
|
type: string
|
|
@@ -2150,6 +2396,7 @@ catalogues:
|
|
|
2150
2396
|
- integration-product
|
|
2151
2397
|
product_capability:
|
|
2152
2398
|
primary_key: id
|
|
2399
|
+
source_of_truth: structure
|
|
2153
2400
|
columns:
|
|
2154
2401
|
- name: id
|
|
2155
2402
|
type: string
|
|
@@ -2168,6 +2415,9 @@ catalogues:
|
|
|
2168
2415
|
type: string
|
|
2169
2416
|
nullable: true
|
|
2170
2417
|
description: "Edge: product depends on / consumes capability. Forward sources from app-platform-dependencies.yaml. capability_id is external because the consuming product (an application-product SDD) references a capability owned by the platform SDD."
|
|
2418
|
+
natural_key:
|
|
2419
|
+
- product_id
|
|
2420
|
+
- capability_id
|
|
2171
2421
|
foreign_keys:
|
|
2172
2422
|
- column: product_id
|
|
2173
2423
|
references: products.id
|
|
@@ -2180,6 +2430,7 @@ catalogues:
|
|
|
2180
2430
|
role: enums.consumption_role
|
|
2181
2431
|
product_service:
|
|
2182
2432
|
primary_key: id
|
|
2433
|
+
source_of_truth: structure
|
|
2183
2434
|
columns:
|
|
2184
2435
|
- name: id
|
|
2185
2436
|
type: string
|
|
@@ -2199,6 +2450,9 @@ catalogues:
|
|
|
2199
2450
|
nullable: true
|
|
2200
2451
|
description: "provisional | stable | unknown. The consuming SDD's expectation of contract stability, carried verbatim from app-platform-dependencies.yaml. Not a bound enum: an out-of-vocabulary value is carried, not rejected, and is reported by validate-app-dependencies.sh."
|
|
2201
2452
|
description: "Edge: product depends on / consumes service. Forward sources from app-platform-dependencies.yaml. service_id is external because the consuming product (an application-product SDD) references a service owned by the platform SDD."
|
|
2453
|
+
natural_key:
|
|
2454
|
+
- product_id
|
|
2455
|
+
- service_id
|
|
2202
2456
|
foreign_keys:
|
|
2203
2457
|
- column: product_id
|
|
2204
2458
|
references: products.id
|
|
@@ -2212,6 +2466,7 @@ catalogues:
|
|
|
2212
2466
|
required_stability: enums.required_stability
|
|
2213
2467
|
service_contract:
|
|
2214
2468
|
primary_key: id
|
|
2469
|
+
source_of_truth: structure
|
|
2215
2470
|
columns:
|
|
2216
2471
|
- name: id
|
|
2217
2472
|
type: string
|
|
@@ -2228,6 +2483,10 @@ catalogues:
|
|
|
2228
2483
|
nullable: false
|
|
2229
2484
|
description: exposes | consumes.
|
|
2230
2485
|
description: "Edge: service exposes or consumes contract. Both FKs are external (per M-ADR 0147): federated SDDs that walk per-repo service-architecture tables emit consumes rows where service_id resolves to the platform-root catalogue's services.csv (post-aggregation) and contract_id resolves to the platform-root contracts.csv. Internal builds (a single-SDD platform) still optimistically validate locally. Schema 2.8.0."
|
|
2486
|
+
natural_key:
|
|
2487
|
+
- service_id
|
|
2488
|
+
- contract_id
|
|
2489
|
+
- role
|
|
2231
2490
|
foreign_keys:
|
|
2232
2491
|
- column: service_id
|
|
2233
2492
|
references: services.id
|
|
@@ -2241,6 +2500,7 @@ catalogues:
|
|
|
2241
2500
|
role: enums.contract_participation
|
|
2242
2501
|
service_event:
|
|
2243
2502
|
primary_key: id
|
|
2503
|
+
source_of_truth: structure
|
|
2244
2504
|
columns:
|
|
2245
2505
|
- name: id
|
|
2246
2506
|
type: string
|
|
@@ -2257,6 +2517,10 @@ catalogues:
|
|
|
2257
2517
|
nullable: false
|
|
2258
2518
|
description: publishes | consumes.
|
|
2259
2519
|
description: "Edge: service publishes or consumes event."
|
|
2520
|
+
natural_key:
|
|
2521
|
+
- service_id
|
|
2522
|
+
- event_id
|
|
2523
|
+
- role
|
|
2260
2524
|
foreign_keys:
|
|
2261
2525
|
- column: service_id
|
|
2262
2526
|
references: services.id
|
|
@@ -2268,6 +2532,7 @@ catalogues:
|
|
|
2268
2532
|
role: enums.event_participation
|
|
2269
2533
|
service_entity:
|
|
2270
2534
|
primary_key: id
|
|
2535
|
+
source_of_truth: structure
|
|
2271
2536
|
columns:
|
|
2272
2537
|
- name: id
|
|
2273
2538
|
type: string
|
|
@@ -2287,15 +2552,22 @@ catalogues:
|
|
|
2287
2552
|
type: string
|
|
2288
2553
|
nullable: true
|
|
2289
2554
|
description: Source markdown path or feature-grounding row that produced the edge. Audit aid.
|
|
2555
|
+
source_of_truth: derived
|
|
2290
2556
|
- name: source_sdd_id
|
|
2291
2557
|
type: string
|
|
2292
2558
|
nullable: true
|
|
2293
2559
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2560
|
+
source_of_truth: execution
|
|
2294
2561
|
- name: platform_sdd_id
|
|
2295
2562
|
type: string
|
|
2296
2563
|
nullable: true
|
|
2297
2564
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2565
|
+
source_of_truth: execution
|
|
2298
2566
|
description: "Edge: service touches data-model entity. Added in schema 2.13.0 per M-ADR 0159. Primary source: per-domain `## Data Store Mapping` markdown table in `docs/domains/{domain}/architecture/data-model.mermaid.md` (relation=owns). Optional forward source (Phase 5 deferred): `entities:` block in `orchestration/repo-config/<repo>.yaml`. Service names resolve via heuristic (slug-of-name; trailing-id-segment) with optional adopter-authored alias map at `docs/platform/reference/service-name-aliases.yaml`."
|
|
2567
|
+
natural_key:
|
|
2568
|
+
- service_id
|
|
2569
|
+
- entity_id
|
|
2570
|
+
- relation
|
|
2299
2571
|
foreign_keys:
|
|
2300
2572
|
- column: service_id
|
|
2301
2573
|
references: services.id
|
|
@@ -2307,6 +2579,7 @@ catalogues:
|
|
|
2307
2579
|
relation: enums.service_entity_relation
|
|
2308
2580
|
capability_feature:
|
|
2309
2581
|
primary_key: id
|
|
2582
|
+
source_of_truth: structure
|
|
2310
2583
|
columns:
|
|
2311
2584
|
- name: id
|
|
2312
2585
|
type: string
|
|
@@ -2318,6 +2591,9 @@ catalogues:
|
|
|
2318
2591
|
type: string
|
|
2319
2592
|
nullable: false
|
|
2320
2593
|
description: "Edge: capability decomposes into features. Forward: traceability.runway.enables. Reverse: parsed from spec Feature Grounding."
|
|
2594
|
+
natural_key:
|
|
2595
|
+
- capability_id
|
|
2596
|
+
- feature_id
|
|
2321
2597
|
foreign_keys:
|
|
2322
2598
|
- column: capability_id
|
|
2323
2599
|
references: capabilities.id
|
|
@@ -2327,6 +2603,7 @@ catalogues:
|
|
|
2327
2603
|
nullable: false
|
|
2328
2604
|
capability_service:
|
|
2329
2605
|
primary_key: id
|
|
2606
|
+
source_of_truth: structure
|
|
2330
2607
|
columns:
|
|
2331
2608
|
- name: id
|
|
2332
2609
|
type: string
|
|
@@ -2357,8 +2634,13 @@ catalogues:
|
|
|
2357
2634
|
type: string
|
|
2358
2635
|
nullable: true
|
|
2359
2636
|
description: Where the coupling is evidenced — a path or anchor in the SDD, from `evidence:` on the services[] entry. Prose about the coupling stays in dependency_notes; this is the pointer a reviewer follows.
|
|
2637
|
+
source_of_truth: evidence
|
|
2360
2638
|
description: |
|
|
2361
2639
|
Edge: capability is realised by services. Sourced from the capability traceability manifest services[] block. service_id is an external FK (schema 2.29.0): a traceability entry marked `owner_sdd:` declares a cross-SDD reference (e.g. the service moved to a sibling SDD at an M-ADR 0170 §4.2 carve) — the per-SDD builder emits the edge, logs it `[finding] external`, and aggregation validates it hard against the owning sibling's rows. An UNMARKED id that does not resolve locally is NOT emitted — it stays a member-tier orphan finding (or convention, when it names a known external system).
|
|
2640
|
+
natural_key:
|
|
2641
|
+
- capability_id
|
|
2642
|
+
- service_id
|
|
2643
|
+
- role
|
|
2362
2644
|
foreign_keys:
|
|
2363
2645
|
- column: capability_id
|
|
2364
2646
|
references: capabilities.id
|
|
@@ -2376,6 +2658,7 @@ catalogues:
|
|
|
2376
2658
|
interaction_pattern: enums.interaction_pattern
|
|
2377
2659
|
capability_event:
|
|
2378
2660
|
primary_key: id
|
|
2661
|
+
source_of_truth: structure
|
|
2379
2662
|
columns:
|
|
2380
2663
|
- name: id
|
|
2381
2664
|
type: string
|
|
@@ -2394,6 +2677,7 @@ catalogues:
|
|
|
2394
2677
|
type: string
|
|
2395
2678
|
nullable: false
|
|
2396
2679
|
description: authored | derived. `authored` rows come from a traceability declaration (shape A or shape B); `derived` rows come from `capability_service ⋈ service_event` and represent associative coupling, not ownership. Schema 2.14.0 per M-ADR 0160.
|
|
2680
|
+
source_of_truth: derived
|
|
2397
2681
|
description: "Edge: capability publishes or consumes event. Schema 2.14.0 (per M-ADR 0160) multi-source ingestion: (1) forward shape A — `traceability.events[{id, role}]` (legacy aspirational shape, unauthored across observed adopters); (2) forward shape B — `traceability.contracts.published_events[]` / `consumed_events[]` with `{event, status, notes}` (the observed forward-method shape; event name slug-resolves against events.csv); (3) derived — `capability_service ⋈ service_event` join (zero authoring; associative not authoritative). Authored rows win on PK conflict with derived. The `source` column distinguishes the two so governance queries can filter to authoritative ownership. The earlier `## Related Events` capability-spec heading is retired (no adopter authored it; the template never carried the section)."
|
|
2398
2682
|
foreign_keys:
|
|
2399
2683
|
- column: capability_id
|
|
@@ -2407,6 +2691,7 @@ catalogues:
|
|
|
2407
2691
|
source: enums.edge_source
|
|
2408
2692
|
capability_contract:
|
|
2409
2693
|
primary_key: id
|
|
2694
|
+
source_of_truth: structure
|
|
2410
2695
|
columns:
|
|
2411
2696
|
- name: id
|
|
2412
2697
|
type: string
|
|
@@ -2421,7 +2706,11 @@ catalogues:
|
|
|
2421
2706
|
type: string
|
|
2422
2707
|
nullable: false
|
|
2423
2708
|
description: "declared — the only emitted value. `derived` is reserved vocabulary: the reverse derivation it anticipated was never built (0 rows across 105 measured units) and the claim was corrected at 3.0.0 (M-ADR 0203 §4.5); the value re-enters if a decision builds a reverse source."
|
|
2709
|
+
source_of_truth: derived
|
|
2424
2710
|
description: "Edge: capability is bound to a contract. Whether the capability exposes or depends on it is not stated by the source (traceability.contracts), so this description asserts no direction (M-ADR 0211 §1). Forward-declared only. Forward-declared only (traceability.contracts). The reverse derivation this description long claimed (service_contract ⋈ capability_service) was measured nonexistent — 0 `source: derived` rows across 105 units, builder references neither catalogue — and the CLAIM was corrected at 3.0.0 (M-ADR 0203 §4.5, gap class absent-derivation per M-ADR 0196 §4.1). The edge is forward-one-directional until a decision builds a reverse source."
|
|
2711
|
+
natural_key:
|
|
2712
|
+
- capability_id
|
|
2713
|
+
- contract_id
|
|
2425
2714
|
foreign_keys:
|
|
2426
2715
|
- column: capability_id
|
|
2427
2716
|
references: capabilities.id
|
|
@@ -2431,6 +2720,7 @@ catalogues:
|
|
|
2431
2720
|
nullable: false
|
|
2432
2721
|
journey_feature:
|
|
2433
2722
|
primary_key: id
|
|
2723
|
+
source_of_truth: structure
|
|
2434
2724
|
columns:
|
|
2435
2725
|
- name: id
|
|
2436
2726
|
type: string
|
|
@@ -2442,6 +2732,9 @@ catalogues:
|
|
|
2442
2732
|
type: string
|
|
2443
2733
|
nullable: false
|
|
2444
2734
|
description: "Edge: journey touches features. Parsed from Related features bullet."
|
|
2735
|
+
natural_key:
|
|
2736
|
+
- journey_id
|
|
2737
|
+
- feature_id
|
|
2445
2738
|
foreign_keys:
|
|
2446
2739
|
- column: journey_id
|
|
2447
2740
|
references: user_journeys.id
|
|
@@ -2451,6 +2744,7 @@ catalogues:
|
|
|
2451
2744
|
nullable: false
|
|
2452
2745
|
persona_feature:
|
|
2453
2746
|
primary_key: id
|
|
2747
|
+
source_of_truth: structure
|
|
2454
2748
|
columns:
|
|
2455
2749
|
- name: id
|
|
2456
2750
|
type: string
|
|
@@ -2462,6 +2756,9 @@ catalogues:
|
|
|
2462
2756
|
type: string
|
|
2463
2757
|
nullable: false
|
|
2464
2758
|
description: "Edge: persona uses features. Parsed from Related features bullet."
|
|
2759
|
+
natural_key:
|
|
2760
|
+
- persona_id
|
|
2761
|
+
- feature_id
|
|
2465
2762
|
foreign_keys:
|
|
2466
2763
|
- column: persona_id
|
|
2467
2764
|
references: personas.id
|
|
@@ -2471,6 +2768,7 @@ catalogues:
|
|
|
2471
2768
|
nullable: false
|
|
2472
2769
|
feature_service:
|
|
2473
2770
|
primary_key: id
|
|
2771
|
+
source_of_truth: structure
|
|
2474
2772
|
columns:
|
|
2475
2773
|
- name: id
|
|
2476
2774
|
type: string
|
|
@@ -2482,6 +2780,9 @@ catalogues:
|
|
|
2482
2780
|
type: string
|
|
2483
2781
|
nullable: false
|
|
2484
2782
|
description: "Edge: feature is implemented by service. Parsed from Feature Services table in feature-tree.md."
|
|
2783
|
+
natural_key:
|
|
2784
|
+
- feature_id
|
|
2785
|
+
- service_id
|
|
2485
2786
|
foreign_keys:
|
|
2486
2787
|
- column: feature_id
|
|
2487
2788
|
references: features.id
|
|
@@ -2491,6 +2792,7 @@ catalogues:
|
|
|
2491
2792
|
nullable: false
|
|
2492
2793
|
feature_event:
|
|
2493
2794
|
primary_key: id
|
|
2795
|
+
source_of_truth: derived
|
|
2494
2796
|
columns:
|
|
2495
2797
|
- name: id
|
|
2496
2798
|
type: string
|
|
@@ -2521,6 +2823,7 @@ catalogues:
|
|
|
2521
2823
|
role: enums.event_participation
|
|
2522
2824
|
feature_repo:
|
|
2523
2825
|
primary_key: id
|
|
2826
|
+
source_of_truth: derived
|
|
2524
2827
|
columns:
|
|
2525
2828
|
- name: id
|
|
2526
2829
|
type: string
|
|
@@ -2541,6 +2844,7 @@ catalogues:
|
|
|
2541
2844
|
nullable: false
|
|
2542
2845
|
feature_contract:
|
|
2543
2846
|
primary_key: id
|
|
2847
|
+
source_of_truth: derived
|
|
2544
2848
|
columns:
|
|
2545
2849
|
- name: id
|
|
2546
2850
|
type: string
|
|
@@ -2569,6 +2873,7 @@ catalogues:
|
|
|
2569
2873
|
derivation_path: enums.feature_contract_derivation_path
|
|
2570
2874
|
feature_subscription_channels:
|
|
2571
2875
|
primary_key: id
|
|
2876
|
+
source_of_truth: structure
|
|
2572
2877
|
columns:
|
|
2573
2878
|
- name: id
|
|
2574
2879
|
type: string
|
|
@@ -2589,6 +2894,7 @@ catalogues:
|
|
|
2589
2894
|
type: string
|
|
2590
2895
|
nullable: true
|
|
2591
2896
|
description: Evidence-file citation (`<sub-repo>/<path>:<line>`) anchoring the channel declaration. Mirrors the citation pattern used elsewhere in evidence yamls.
|
|
2897
|
+
source_of_truth: evidence
|
|
2592
2898
|
- name: payload_ref
|
|
2593
2899
|
type: string
|
|
2594
2900
|
nullable: true
|
|
@@ -2597,10 +2903,12 @@ catalogues:
|
|
|
2597
2903
|
type: string
|
|
2598
2904
|
nullable: true
|
|
2599
2905
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
2906
|
+
source_of_truth: execution
|
|
2600
2907
|
- name: platform_sdd_id
|
|
2601
2908
|
type: string
|
|
2602
2909
|
nullable: true
|
|
2603
2910
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
2911
|
+
source_of_truth: execution
|
|
2604
2912
|
description: "Edge: feature delivers async push via a named channel/topic. Peer of `graphql_operations:` in the per-feature evidence shape — `graphql_operations:` carries the GraphQL operation names declared in the schema (Queries / Mutations / Subscriptions); `feature_subscription_channels` rows carry the channel/topic layer that physically delivers the push events (AppSync WebSocket endpoints, Pekko WS channels, MQTT topics, server-sent-event streams). A single GraphQL Subscription operation may listen on multiple channels; one channel may be consumed by multiple operations — modelling as a separate edge catalogue (not as a feature column) accommodates the many-to-many. Built per-SDD from `reverse-evidence/feature-grounding-evidence.yaml` `subscription_channels:` entries on each feature. Added in schema 2.9.0."
|
|
2605
2913
|
foreign_keys:
|
|
2606
2914
|
- column: feature_id
|
|
@@ -2610,6 +2918,7 @@ catalogues:
|
|
|
2610
2918
|
transport: enums.subscription_channel_transport
|
|
2611
2919
|
capability_domain_model:
|
|
2612
2920
|
primary_key: id
|
|
2921
|
+
source_of_truth: structure
|
|
2613
2922
|
columns:
|
|
2614
2923
|
- name: id
|
|
2615
2924
|
type: string
|
|
@@ -2625,7 +2934,11 @@ catalogues:
|
|
|
2625
2934
|
type: string
|
|
2626
2935
|
nullable: false
|
|
2627
2936
|
description: traceability-manifest | inferred.
|
|
2937
|
+
source_of_truth: derived
|
|
2628
2938
|
description: "Edge: capability references a domain model. Forward: declared in `traceability.domain_model` field of the capability traceability manifest. Reverse: inferred via capability → domain → domain_model. Platform-profile only. Added in schema 2.4.0; see M-ADR 0142."
|
|
2939
|
+
natural_key:
|
|
2940
|
+
- capability_id
|
|
2941
|
+
- domain_model_id
|
|
2629
2942
|
foreign_keys:
|
|
2630
2943
|
- column: capability_id
|
|
2631
2944
|
references: capabilities.id
|
|
@@ -2637,6 +2950,7 @@ catalogues:
|
|
|
2637
2950
|
source: enums.capability_domain_model_source
|
|
2638
2951
|
feature_domain_model:
|
|
2639
2952
|
primary_key: id
|
|
2953
|
+
source_of_truth: derived
|
|
2640
2954
|
columns:
|
|
2641
2955
|
- name: id
|
|
2642
2956
|
type: string
|
|
@@ -2662,6 +2976,7 @@ catalogues:
|
|
|
2662
2976
|
nullable: false
|
|
2663
2977
|
persona_journey:
|
|
2664
2978
|
primary_key: id
|
|
2979
|
+
source_of_truth: structure
|
|
2665
2980
|
columns:
|
|
2666
2981
|
- name: id
|
|
2667
2982
|
type: string
|
|
@@ -2677,6 +2992,10 @@ catalogues:
|
|
|
2677
2992
|
nullable: false
|
|
2678
2993
|
description: primary | handoff | supporting.
|
|
2679
2994
|
description: "Edge: persona participates in journey. Roles: primary | handoff | supporting."
|
|
2995
|
+
natural_key:
|
|
2996
|
+
- persona_id
|
|
2997
|
+
- journey_id
|
|
2998
|
+
- role
|
|
2680
2999
|
foreign_keys:
|
|
2681
3000
|
- column: persona_id
|
|
2682
3001
|
references: personas.id
|
|
@@ -2688,6 +3007,7 @@ catalogues:
|
|
|
2688
3007
|
role: enums.journey_participation
|
|
2689
3008
|
persona_c4system:
|
|
2690
3009
|
primary_key: id
|
|
3010
|
+
source_of_truth: structure
|
|
2691
3011
|
columns:
|
|
2692
3012
|
- name: id
|
|
2693
3013
|
type: string
|
|
@@ -2704,6 +3024,9 @@ catalogues:
|
|
|
2704
3024
|
nullable: true
|
|
2705
3025
|
description: Optional interaction label from the Rel(...) line, e.g. 'Web browser' / 'Mobile app'.
|
|
2706
3026
|
description: "Edge: persona (C4 Person) uses a C4 system. Captures the L1 context 'Person uses System' relationship, extracted from Person(...) macros on the L1 context diagram and matched to personas rows. Per M-ADR 0155. Added in schema 2.10.0."
|
|
3027
|
+
natural_key:
|
|
3028
|
+
- persona_id
|
|
3029
|
+
- c4_system_id
|
|
2707
3030
|
foreign_keys:
|
|
2708
3031
|
- column: persona_id
|
|
2709
3032
|
references: personas.id
|
|
@@ -2713,6 +3036,7 @@ catalogues:
|
|
|
2713
3036
|
nullable: false
|
|
2714
3037
|
persona_container:
|
|
2715
3038
|
primary_key: id
|
|
3039
|
+
source_of_truth: structure
|
|
2716
3040
|
columns:
|
|
2717
3041
|
- name: id
|
|
2718
3042
|
type: string
|
|
@@ -2730,6 +3054,9 @@ catalogues:
|
|
|
2730
3054
|
description: Optional interaction label from the Rel(...) line. May hold multiple '; '-joined labels.
|
|
2731
3055
|
description: |
|
|
2732
3056
|
Edge: a persona uses a C4 container — the L2-granularity companion to persona_c4system (M-ADR 0189, ratified 2026-07-10). Eleven of one estate's L2 diagrams and the bulk of another's 81 unroutable Rels drew Person→Container relationships that had no catalogue and raised no finding. Harvested at member tier from Rel(...) lines whose endpoints resolve to a file-local Person and a local container (either direction; the row is normalised persona→container). A Person that matches no persona row is a coverage finding, never a silent skip. Both authoring directions feed from the same diagram surface (M-ADR 0157 parity). Added in schema 2.34.0.
|
|
3057
|
+
natural_key:
|
|
3058
|
+
- persona_id
|
|
3059
|
+
- container_id
|
|
2733
3060
|
foreign_keys:
|
|
2734
3061
|
- column: persona_id
|
|
2735
3062
|
references: personas.id
|
|
@@ -2739,6 +3066,7 @@ catalogues:
|
|
|
2739
3066
|
nullable: false
|
|
2740
3067
|
system_external_dependency:
|
|
2741
3068
|
primary_key: id
|
|
3069
|
+
source_of_truth: structure
|
|
2742
3070
|
columns:
|
|
2743
3071
|
- name: id
|
|
2744
3072
|
type: string
|
|
@@ -2759,6 +3087,9 @@ catalogues:
|
|
|
2759
3087
|
nullable: true
|
|
2760
3088
|
description: The Rel's non-external endpoint resolved to a local container at member tier, when it is one (2.33.0) — the datum that lets adjudication rewrite this edge onto container_dependency instead of destroying it. Empty when the endpoint is the system itself or unresolvable.
|
|
2761
3089
|
description: "Edge: a C4 system integrates with an external software system. Captures the L1 context 'System integrates with External System' relationship, extracted from System_Ext(...) + Rel(...) on L1/L2 diagrams. Per M-ADR 0155. Container-level external dependencies are out of scope (system-level only). Added in schema 2.10.0. From 2.30.0 (M-ADR 0189 §4.4): edges whose external endpoint the aggregator adjudicates as an INTERNAL system are rewritten onto system_system_dependency and removed from this catalogue."
|
|
3090
|
+
natural_key:
|
|
3091
|
+
- c4_system_id
|
|
3092
|
+
- external_system_id
|
|
2762
3093
|
foreign_keys:
|
|
2763
3094
|
- column: c4_system_id
|
|
2764
3095
|
references: c4_systems.id
|
|
@@ -2771,6 +3102,7 @@ catalogues:
|
|
|
2771
3102
|
nullable: true
|
|
2772
3103
|
container_dependency:
|
|
2773
3104
|
primary_key: id
|
|
3105
|
+
source_of_truth: structure
|
|
2774
3106
|
columns:
|
|
2775
3107
|
- name: id
|
|
2776
3108
|
type: string
|
|
@@ -2790,12 +3122,17 @@ catalogues:
|
|
|
2790
3122
|
type: string
|
|
2791
3123
|
nullable: true
|
|
2792
3124
|
description: SDD whose diagram declared the originating reference. Member-emitted rows set it directly; adjudication-derived rows are stamped by the aggregator.
|
|
3125
|
+
source_of_truth: execution
|
|
2793
3126
|
- name: platform_sdd_id
|
|
2794
3127
|
type: string
|
|
2795
3128
|
nullable: true
|
|
2796
3129
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3130
|
+
source_of_truth: execution
|
|
2797
3131
|
description: |
|
|
2798
3132
|
Edge: a C4 container depends on another INTERNAL container (the system-tier gap exactly one tier down: "no edge for internal" at L2). Derived by the aggregator at adjudication: an external-system candidate that resolves to an internal container was never external — each of its dependency edges whose member-resolved `from_container_id` is known is rewritten here, and a candidate with no remaining edges is dropped (it was a phantom duplicate of the container). A candidate with unconvertible edges is kept with the tier-contradiction finding, so no edge is ever destroyed to make a build quieter — the measured cost that stopped an adopter remediating 22 contradictions was eight real edges. ALSO emitted at member tier (2.33.1): the C4-correct authoring — Rel(container_a, container_b) between two Container(...) nodes — emits its edge directly; adjudication merges into a catalogue that already has content rather than being its only source, so the metamodel no longer rewards mis-declaration over correct authoring. Added in schema 2.33.0.
|
|
3133
|
+
natural_key:
|
|
3134
|
+
- from_container_id
|
|
3135
|
+
- to_container_id
|
|
2799
3136
|
foreign_keys:
|
|
2800
3137
|
- column: from_container_id
|
|
2801
3138
|
references: c4_containers.id
|
|
@@ -2805,6 +3142,7 @@ catalogues:
|
|
|
2805
3142
|
nullable: false
|
|
2806
3143
|
system_system_dependency:
|
|
2807
3144
|
primary_key: id
|
|
3145
|
+
source_of_truth: derived
|
|
2808
3146
|
columns:
|
|
2809
3147
|
- name: id
|
|
2810
3148
|
type: string
|
|
@@ -2824,10 +3162,12 @@ catalogues:
|
|
|
2824
3162
|
type: string
|
|
2825
3163
|
nullable: true
|
|
2826
3164
|
description: SDD whose diagram declared the originating reference. Populated by the aggregator.
|
|
3165
|
+
source_of_truth: execution
|
|
2827
3166
|
- name: platform_sdd_id
|
|
2828
3167
|
type: string
|
|
2829
3168
|
nullable: true
|
|
2830
3169
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3170
|
+
source_of_truth: execution
|
|
2831
3171
|
description: |
|
|
2832
3172
|
Edge: a C4 system depends on another INTERNAL system (M-ADR 0189 §4.3). Derived by the aggregator at adjudication (§4.4): an external-system candidate whose declared identity resolves to an internal system was never external — its Rel(...) dependency edges are rewritten onto this catalogue and the candidate row is dropped. Not emitted at member tier (a member cannot see sibling systems); headers-only there, like cross_sdd_platform_capability. Both authoring directions feed it from the same diagram surface (M-ADR 0157 parity). Added in schema 2.30.0.
|
|
2833
3173
|
foreign_keys:
|
|
@@ -2839,6 +3179,7 @@ catalogues:
|
|
|
2839
3179
|
nullable: false
|
|
2840
3180
|
c4_container_entity:
|
|
2841
3181
|
primary_key: id
|
|
3182
|
+
source_of_truth: derived
|
|
2842
3183
|
columns:
|
|
2843
3184
|
- name: id
|
|
2844
3185
|
type: string
|
|
@@ -2857,10 +3198,12 @@ catalogues:
|
|
|
2857
3198
|
- name: source_sdd_id
|
|
2858
3199
|
type: string
|
|
2859
3200
|
nullable: true
|
|
3201
|
+
source_of_truth: execution
|
|
2860
3202
|
- name: platform_sdd_id
|
|
2861
3203
|
type: string
|
|
2862
3204
|
nullable: true
|
|
2863
3205
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3206
|
+
source_of_truth: execution
|
|
2864
3207
|
description: "Derived edge: C4 container is responsible for data-model entity. Added in schema 2.13.0 per M-ADR 0159 §4.8. Pure transitive derivation: `service_entity ⋈ c4_containers.service_id`. Only the subset of containers with `service_id` populated contribute edges (per M-ADR 0155 the container ↔ service cardinality is o-or-1; data-store containers and infra-umbrella containers without a service mapping legitimately emit no rows)."
|
|
2865
3208
|
foreign_keys:
|
|
2866
3209
|
- column: container_id
|
|
@@ -2871,6 +3214,7 @@ catalogues:
|
|
|
2871
3214
|
nullable: false
|
|
2872
3215
|
c4_system_entity:
|
|
2873
3216
|
primary_key: id
|
|
3217
|
+
source_of_truth: derived
|
|
2874
3218
|
columns:
|
|
2875
3219
|
- name: id
|
|
2876
3220
|
type: string
|
|
@@ -2889,10 +3233,12 @@ catalogues:
|
|
|
2889
3233
|
- name: source_sdd_id
|
|
2890
3234
|
type: string
|
|
2891
3235
|
nullable: true
|
|
3236
|
+
source_of_truth: execution
|
|
2892
3237
|
- name: platform_sdd_id
|
|
2893
3238
|
type: string
|
|
2894
3239
|
nullable: true
|
|
2895
3240
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3241
|
+
source_of_truth: execution
|
|
2896
3242
|
description: "Derived edge: C4 system is responsible for data-model entity. Added in schema 2.13.0 per M-ADR 0159 §4.8. Pure aggregation roll-up: `c4_container_entity ⋈ c4_containers.system_id`, with container_count recording how many of the system's containers touch the entity (governance signal for cross-container concerns)."
|
|
2897
3243
|
foreign_keys:
|
|
2898
3244
|
- column: system_id
|
|
@@ -2903,6 +3249,7 @@ catalogues:
|
|
|
2903
3249
|
nullable: false
|
|
2904
3250
|
capability_adr:
|
|
2905
3251
|
primary_key: id
|
|
3252
|
+
source_of_truth: structure
|
|
2906
3253
|
columns:
|
|
2907
3254
|
- name: id
|
|
2908
3255
|
type: string
|
|
@@ -2917,7 +3264,11 @@ catalogues:
|
|
|
2917
3264
|
type: string
|
|
2918
3265
|
nullable: false
|
|
2919
3266
|
description: spec | high | medium.
|
|
3267
|
+
source_of_truth: derived
|
|
2920
3268
|
description: "Edge: ADR informs capability. Forward: declared in capability spec Architecture Decisions. Reverse: same plus heuristic match supplements with confidence."
|
|
3269
|
+
natural_key:
|
|
3270
|
+
- capability_id
|
|
3271
|
+
- adr_id
|
|
2921
3272
|
foreign_keys:
|
|
2922
3273
|
- column: capability_id
|
|
2923
3274
|
references: capabilities.id
|
|
@@ -2929,6 +3280,7 @@ catalogues:
|
|
|
2929
3280
|
confidence: enums.capability_adr_confidence
|
|
2930
3281
|
adr_supersedes:
|
|
2931
3282
|
primary_key: id
|
|
3283
|
+
source_of_truth: decision
|
|
2932
3284
|
columns:
|
|
2933
3285
|
- name: id
|
|
2934
3286
|
type: string
|
|
@@ -2949,6 +3301,7 @@ catalogues:
|
|
|
2949
3301
|
nullable: false
|
|
2950
3302
|
product_platform_dependencies:
|
|
2951
3303
|
primary_key: id
|
|
3304
|
+
source_of_truth: structure
|
|
2952
3305
|
columns:
|
|
2953
3306
|
- name: id
|
|
2954
3307
|
type: string
|
|
@@ -2994,14 +3347,17 @@ catalogues:
|
|
|
2994
3347
|
type: string
|
|
2995
3348
|
nullable: true
|
|
2996
3349
|
description: Comma-separated list of service names within the consuming product that consume the dependency. Free-text; not FK-validated (services are within-product and resolution is owner-side concern).
|
|
3350
|
+
source_of_truth: derived
|
|
2997
3351
|
- name: source_sdd_id
|
|
2998
3352
|
type: string
|
|
2999
3353
|
nullable: true
|
|
3000
3354
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3355
|
+
source_of_truth: execution
|
|
3001
3356
|
- name: platform_sdd_id
|
|
3002
3357
|
type: string
|
|
3003
3358
|
nullable: true
|
|
3004
3359
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3360
|
+
source_of_truth: execution
|
|
3005
3361
|
description: |
|
|
3006
3362
|
Per-SDD edge: an application-side or integration-side SDD declares that its product depends on a platform-side capability + service pair. Built from `reverse-evidence/feature-grounding-evidence.yaml` `platform_dependencies:` block (product-level — the cohort source shape carries product-scoped dependency rows with a `consumed_by:` list naming which services within the consuming product depend on the target). Each row records one (consuming product, target capability, target service) triple. The aggregator then joins these rows against platform-side `capability_service` to emit `cross_sdd_platform_capability` edges at aggregation time. Cross- SDD references (target_capability_id, target_service_id) are external — they're not expected to resolve in the per-SDD build, only at aggregation. Added in schema 2.9.0.
|
|
3007
3363
|
foreign_keys:
|
|
@@ -3022,6 +3378,7 @@ catalogues:
|
|
|
3022
3378
|
contract_type: enums.dependency_contract_type
|
|
3023
3379
|
cross_sdd_platform_capability:
|
|
3024
3380
|
primary_key: id
|
|
3381
|
+
source_of_truth: derived
|
|
3025
3382
|
columns:
|
|
3026
3383
|
- name: id
|
|
3027
3384
|
type: string
|
|
@@ -3039,6 +3396,7 @@ catalogues:
|
|
|
3039
3396
|
type: string
|
|
3040
3397
|
nullable: false
|
|
3041
3398
|
description: SDD slug of the platform side that owns the resolved capability.
|
|
3399
|
+
source_of_truth: execution
|
|
3042
3400
|
- name: platform_capability_id
|
|
3043
3401
|
type: string
|
|
3044
3402
|
nullable: false
|
|
@@ -3064,6 +3422,7 @@ catalogues:
|
|
|
3064
3422
|
external: true
|
|
3065
3423
|
application_data_plane_bindings:
|
|
3066
3424
|
primary_key: id
|
|
3425
|
+
source_of_truth: declaration
|
|
3067
3426
|
columns:
|
|
3068
3427
|
- name: id
|
|
3069
3428
|
type: string
|
|
@@ -3081,6 +3440,7 @@ catalogues:
|
|
|
3081
3440
|
type: string
|
|
3082
3441
|
nullable: false
|
|
3083
3442
|
description: "inbound | output. DERIVED from `pattern` by a single method-tier mapping — not authored, and not a manifest field, so it cannot disagree with `pattern`. Materialises the output-side sub-set §4.7 declares (generate/publish => output; everything else => inbound). Exists because three §4.7 rules branch on direction: platform-dep reconciliation is inbound-only, the archetype WARN must compare like with like, and the M-ADR 0187 convergence reasoning differs by direction. Added in 2.40.0."
|
|
3443
|
+
source_of_truth: derived
|
|
3084
3444
|
- name: locality
|
|
3085
3445
|
type: string
|
|
3086
3446
|
nullable: true
|
|
@@ -3105,10 +3465,12 @@ catalogues:
|
|
|
3105
3465
|
type: string
|
|
3106
3466
|
nullable: true
|
|
3107
3467
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3468
|
+
source_of_truth: execution
|
|
3108
3469
|
- name: platform_sdd_id
|
|
3109
3470
|
type: string
|
|
3110
3471
|
nullable: true
|
|
3111
3472
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3473
|
+
source_of_truth: execution
|
|
3112
3474
|
description: |
|
|
3113
3475
|
Application-product edge (M-ADR 0193): one row per declared data-plane binding — a typed way the service sources, holds, produces or exposes data. The data-plane is a COMPOSITION of these bindings, a second axis orthogonal to `application_archetype` (0191). Built per-SDD from the manifest's `data_plane.bindings` block (application-product only; other profiles emit headers-only). The `pattern` vocabulary splits by DIRECTION (§4.7): an INBOUND data-sourcing sub-set (retrieve | own-store | stream-ingest | project) and an OUTPUT-side sub-set (generate | publish), materialised as the derived `direction` column. An INBOUND binding whose `target` is a platform capability/service reconciles with `product_platform_dependencies` — a `retrieve@internal` binding is a synchronous platform dependency and a `stream-ingest@internal` binding is the M-ADR 0192 `contract_type: event` async dependency; the genuinely new inbound rows are `own-store` (a self-binding) and any `external-vendor` binding. OUTPUT-side rows do NOT participate in that reconciliation (§4.7 rule 1): `publish` is a contract the service PROVIDES, not one it consumes, so it has no inbound counterpart to cross-check — consumers must filter on `direction` before reconciling, which is what the column is for. The archetype-default-vs-declared WARN keys on the bare `pattern` token and so spans both directions (§4.7 rule 2). Added in schema 2.37.0; `direction` added in 2.40.0.
|
|
3114
3476
|
foreign_keys:
|
|
@@ -3121,6 +3483,7 @@ catalogues:
|
|
|
3121
3483
|
locality: enums.data_plane_locality
|
|
3122
3484
|
application_data_plane_deviations:
|
|
3123
3485
|
primary_key: id
|
|
3486
|
+
source_of_truth: declaration
|
|
3124
3487
|
columns:
|
|
3125
3488
|
- name: id
|
|
3126
3489
|
type: string
|
|
@@ -3142,10 +3505,12 @@ catalogues:
|
|
|
3142
3505
|
type: string
|
|
3143
3506
|
nullable: true
|
|
3144
3507
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3508
|
+
source_of_truth: execution
|
|
3145
3509
|
- name: platform_sdd_id
|
|
3146
3510
|
type: string
|
|
3147
3511
|
nullable: true
|
|
3148
3512
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3513
|
+
source_of_truth: execution
|
|
3149
3514
|
description: |
|
|
3150
3515
|
Application-product annotation (M-ADR 0191 §4.3 overlay): one row per declared departure from the archetype's default data-plane composition. Built per-SDD from the manifest's `data_plane.deviations` block so the overlay WARN — which runs at AGGREGATION tier, where the reference- architecture bundle (and its `expected_bindings`) resolves — can suppress a mismatch it is told is sanctioned variance. The `expectation` value is the **bare pattern token** (`retrieve` | `own-store` | `stream-ingest` | `project` | `generate` | `publish`) that the product knowingly diverges from; it must match the pattern the WARN keys on. The token set spans both directions — the WARN keys on the bare pattern, so an output-side expectation is deviated exactly like an inbound one (M-ADR 0193 §4.7 rule 2). Added in schema 2.38.0; output-side tokens documented in 2.40.0.
|
|
3151
3516
|
foreign_keys:
|
|
@@ -3156,6 +3521,7 @@ catalogues:
|
|
|
3156
3521
|
expectation: enums.data_plane_pattern
|
|
3157
3522
|
application_conformance_coverage:
|
|
3158
3523
|
primary_key: id
|
|
3524
|
+
source_of_truth: declaration
|
|
3159
3525
|
columns:
|
|
3160
3526
|
- name: id
|
|
3161
3527
|
type: string
|
|
@@ -3173,6 +3539,7 @@ catalogues:
|
|
|
3173
3539
|
type: string
|
|
3174
3540
|
nullable: false
|
|
3175
3541
|
description: covered (the product's suite exercises it) | deviated (deliberately not covered, with a rationale).
|
|
3542
|
+
source_of_truth: derived
|
|
3176
3543
|
- name: rationale
|
|
3177
3544
|
type: string
|
|
3178
3545
|
nullable: true
|
|
@@ -3181,10 +3548,12 @@ catalogues:
|
|
|
3181
3548
|
type: string
|
|
3182
3549
|
nullable: true
|
|
3183
3550
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3551
|
+
source_of_truth: execution
|
|
3184
3552
|
- name: platform_sdd_id
|
|
3185
3553
|
type: string
|
|
3186
3554
|
nullable: true
|
|
3187
3555
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3556
|
+
source_of_truth: execution
|
|
3188
3557
|
description: |
|
|
3189
3558
|
Application-product annotation (M-ADR 0191 §4.3 overlay, second element): one row per conformance tag the product asserts about its archetype's conformance expectations. Built per-SDD from the manifest's `conformance` block so the AGGREGATION-tier conformance GATE can read it. `status=covered` means the product's own conformance suite exercises the tag; `status=deviated` means the product declares (with a rationale) that it deliberately does not. At aggregation, an archetype-expected conformance tag that is neither covered nor deviated raises a deviation-visible WARN. The method gates the DECLARATION — it does not run the adopter's conformance suite. Added in schema 2.39.0.
|
|
3190
3559
|
foreign_keys:
|
|
@@ -3193,6 +3562,7 @@ catalogues:
|
|
|
3193
3562
|
nullable: false
|
|
3194
3563
|
screens:
|
|
3195
3564
|
primary_key: id
|
|
3565
|
+
source_of_truth: declaration
|
|
3196
3566
|
columns:
|
|
3197
3567
|
- name: id
|
|
3198
3568
|
type: string
|
|
@@ -3218,6 +3588,7 @@ catalogues:
|
|
|
3218
3588
|
type: string
|
|
3219
3589
|
nullable: false
|
|
3220
3590
|
description: screen-spec (forward) | screen-extraction (reverse).
|
|
3591
|
+
source_of_truth: derived
|
|
3221
3592
|
- name: domain
|
|
3222
3593
|
type: string
|
|
3223
3594
|
nullable: true
|
|
@@ -3234,14 +3605,17 @@ catalogues:
|
|
|
3234
3605
|
type: string
|
|
3235
3606
|
nullable: true
|
|
3236
3607
|
description: "Evidence class of the screen's claims, from frontmatter `evidence_class:` (alias `evidence-class:`). Free-form; conventional values code-reverse | vendor-doc | operational (M-ADR 0175). Empty when undeclared. Completes the evidence-class dimension for the packaged-SaaS case: a packaged-SaaS SDD catalogues the vendor's STANDARD screens (documentation-reversed from vendor publications, `vendor-doc`) alongside the organisation's CUSTOMISED screens (code-reversed, `code-reverse`) per M-ADR 0175 §3.1 — without this column the two are indistinguishable, and doc-derived UI claims masquerade as code-verified. Orthogonal to `source` (`screen-spec` | `screen-extraction`), which records the authoring DIRECTION, not the evidence's strength: a `screen-extraction` screen can be either class, since a vendor's documented UI is extracted-but-not-code-verified. Added in schema 2.42.0."
|
|
3608
|
+
source_of_truth: evidence
|
|
3237
3609
|
- name: source_sdd_id
|
|
3238
3610
|
type: string
|
|
3239
3611
|
nullable: true
|
|
3240
3612
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3613
|
+
source_of_truth: execution
|
|
3241
3614
|
- name: platform_sdd_id
|
|
3242
3615
|
type: string
|
|
3243
3616
|
nullable: true
|
|
3244
3617
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3618
|
+
source_of_truth: execution
|
|
3245
3619
|
description: "UI screen specified in the OpenUI Lang grammar (per M-ADR 0166). One row per screen / coherent screen group. Application-product profile (other profiles emit headers-only). Source: authored `screens/*.md` (frontmatter + ```openui-lang block); the reverse toolkit produces these from a router + component-tree projection."
|
|
3246
3620
|
foreign_keys:
|
|
3247
3621
|
- column: product_id
|
|
@@ -3251,6 +3625,7 @@ catalogues:
|
|
|
3251
3625
|
status: enums.artefact_maturity
|
|
3252
3626
|
ui_components:
|
|
3253
3627
|
primary_key: id
|
|
3628
|
+
source_of_truth: derived
|
|
3254
3629
|
columns:
|
|
3255
3630
|
- name: id
|
|
3256
3631
|
type: string
|
|
@@ -3276,10 +3651,12 @@ catalogues:
|
|
|
3276
3651
|
type: string
|
|
3277
3652
|
nullable: true
|
|
3278
3653
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3654
|
+
source_of_truth: execution
|
|
3279
3655
|
- name: platform_sdd_id
|
|
3280
3656
|
type: string
|
|
3281
3657
|
nullable: true
|
|
3282
3658
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3659
|
+
source_of_truth: execution
|
|
3283
3660
|
description: "An entry in the adopter-owned component registry that screens compose against (per M-ADR 0166) — the UI-structure contract. A screen composes registry components but never defines one. Application-product profile. Source: components referenced across the SDD's screen-spec ```openui-lang blocks (registry projection); the reverse toolkit discovers the authoritative registry from the design-system import surface."
|
|
3284
3661
|
foreign_keys:
|
|
3285
3662
|
- column: product_id
|
|
@@ -3289,6 +3666,7 @@ catalogues:
|
|
|
3289
3666
|
kind: enums.ui_component_kind
|
|
3290
3667
|
screen_component:
|
|
3291
3668
|
primary_key: id
|
|
3669
|
+
source_of_truth: derived
|
|
3292
3670
|
columns:
|
|
3293
3671
|
- name: id
|
|
3294
3672
|
type: string
|
|
@@ -3304,10 +3682,12 @@ catalogues:
|
|
|
3304
3682
|
type: string
|
|
3305
3683
|
nullable: true
|
|
3306
3684
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3685
|
+
source_of_truth: execution
|
|
3307
3686
|
- name: platform_sdd_id
|
|
3308
3687
|
type: string
|
|
3309
3688
|
nullable: true
|
|
3310
3689
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3690
|
+
source_of_truth: execution
|
|
3311
3691
|
description: "Edge: screen composes a UI component. Parsed from the screen-spec ```openui-lang block's component references (per M-ADR 0166)."
|
|
3312
3692
|
foreign_keys:
|
|
3313
3693
|
- column: screen_id
|
|
@@ -3318,6 +3698,7 @@ catalogues:
|
|
|
3318
3698
|
nullable: false
|
|
3319
3699
|
screen_feature:
|
|
3320
3700
|
primary_key: id
|
|
3701
|
+
source_of_truth: declaration
|
|
3321
3702
|
columns:
|
|
3322
3703
|
- name: id
|
|
3323
3704
|
type: string
|
|
@@ -3333,10 +3714,12 @@ catalogues:
|
|
|
3333
3714
|
type: string
|
|
3334
3715
|
nullable: true
|
|
3335
3716
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3717
|
+
source_of_truth: execution
|
|
3336
3718
|
- name: platform_sdd_id
|
|
3337
3719
|
type: string
|
|
3338
3720
|
nullable: true
|
|
3339
3721
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3722
|
+
source_of_truth: execution
|
|
3340
3723
|
description: "Edge: screen realises a feature (traceability). Forward: `realises:` frontmatter on the screen-spec. Reverse: route → feature mapping. Per M-ADR 0166."
|
|
3341
3724
|
foreign_keys:
|
|
3342
3725
|
- column: screen_id
|
|
@@ -3350,6 +3733,7 @@ catalogues:
|
|
|
3350
3733
|
- integration-product
|
|
3351
3734
|
persona_screen:
|
|
3352
3735
|
primary_key: id
|
|
3736
|
+
source_of_truth: declaration
|
|
3353
3737
|
columns:
|
|
3354
3738
|
- name: id
|
|
3355
3739
|
type: string
|
|
@@ -3365,10 +3749,12 @@ catalogues:
|
|
|
3365
3749
|
type: string
|
|
3366
3750
|
nullable: true
|
|
3367
3751
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3752
|
+
source_of_truth: execution
|
|
3368
3753
|
- name: platform_sdd_id
|
|
3369
3754
|
type: string
|
|
3370
3755
|
nullable: true
|
|
3371
3756
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3757
|
+
source_of_truth: execution
|
|
3372
3758
|
description: "Edge: persona can access a screen. Forward: `persona_access:` frontmatter. Reverse: route persona-access guards, permission/feature-flag config, or a host shell's per-persona menu (where the backend pre-filters visible screens). Per M-ADR 0166."
|
|
3373
3759
|
foreign_keys:
|
|
3374
3760
|
- column: persona_id
|
|
@@ -3379,6 +3765,7 @@ catalogues:
|
|
|
3379
3765
|
nullable: false
|
|
3380
3766
|
screen_action:
|
|
3381
3767
|
primary_key: id
|
|
3768
|
+
source_of_truth: derived
|
|
3382
3769
|
columns:
|
|
3383
3770
|
- name: id
|
|
3384
3771
|
type: string
|
|
@@ -3399,10 +3786,12 @@ catalogues:
|
|
|
3399
3786
|
type: string
|
|
3400
3787
|
nullable: true
|
|
3401
3788
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3789
|
+
source_of_truth: execution
|
|
3402
3790
|
- name: platform_sdd_id
|
|
3403
3791
|
type: string
|
|
3404
3792
|
nullable: true
|
|
3405
3793
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3794
|
+
source_of_truth: execution
|
|
3406
3795
|
description: "Edge: screen emits an action, optionally resolved to a catalogued event. The behavioural MFE seam — inter-bundle communication as a catalogued contract, not an ad-hoc string. Forward: `action=` declarations in the ```openui-lang block. Reverse: emitted custom-event / event-bus wiring. event_id is external-capable (the event may live in the platform SDD). Per M-ADR 0166 + M-ADR 0156."
|
|
3407
3796
|
foreign_keys:
|
|
3408
3797
|
- column: screen_id
|
|
@@ -3414,6 +3803,7 @@ catalogues:
|
|
|
3414
3803
|
external: true
|
|
3415
3804
|
conformance_finding:
|
|
3416
3805
|
primary_key: id
|
|
3806
|
+
source_of_truth: evidence
|
|
3417
3807
|
columns:
|
|
3418
3808
|
- name: id
|
|
3419
3809
|
type: string
|
|
@@ -3473,10 +3863,12 @@ catalogues:
|
|
|
3473
3863
|
type: string
|
|
3474
3864
|
nullable: true
|
|
3475
3865
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
3866
|
+
source_of_truth: execution
|
|
3476
3867
|
- name: platform_sdd_id
|
|
3477
3868
|
type: string
|
|
3478
3869
|
nullable: true
|
|
3479
3870
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3871
|
+
source_of_truth: execution
|
|
3480
3872
|
description: "Conformance-reverse drift summary, one row per check (method M-ADR 0180). NOT produced by `catalogue build` (it reads the spec repo) — produced by `sdd-cli conformance --emit-finding` (which has the code repo) and federated here by the aggregator. Each row is a run-dated snapshot of declared-vs-observed drift for an implementation member (M-ADR 0181 role/lifecycle), so estate-wide conformance is queryable (aggregate union) and trendable (snapshot diff across runs/commits). Verdicts are PROVISIONAL — disposition (code-defect | spec-stale | divergence) is triage, recorded elsewhere. No enforced FK on implementation_repo: the code repo is frequently cross-repo and not in this SDD's repositories.csv. Added in schema 2.25.0."
|
|
3481
3873
|
column_enums:
|
|
3482
3874
|
target: enums.conformance_target
|
|
@@ -3484,6 +3876,7 @@ catalogues:
|
|
|
3484
3876
|
lifecycle: enums.implementation_lifecycle
|
|
3485
3877
|
quality_scores:
|
|
3486
3878
|
primary_key: id
|
|
3879
|
+
source_of_truth: evidence
|
|
3487
3880
|
columns:
|
|
3488
3881
|
- name: id
|
|
3489
3882
|
type: string
|
|
@@ -3537,6 +3930,10 @@ catalogues:
|
|
|
3537
3930
|
type: string
|
|
3538
3931
|
nullable: true
|
|
3539
3932
|
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`)."
|
|
3933
|
+
- name: input_paths
|
|
3934
|
+
type: string
|
|
3935
|
+
nullable: true
|
|
3936
|
+
description: "';'-separated paths of the review's other assessed inputs (its `inputs:` list, M-ADR 0230 §4.9, Proposed), beside target_path: a feature's UX evidence, say. Each is read at corpus_ref, so a later edit to any of them makes the score stale, as an edit to the target does. Added in schema 6.0.0."
|
|
3540
3937
|
- name: staleness_basis
|
|
3541
3938
|
type: string
|
|
3542
3939
|
nullable: false
|
|
@@ -3589,10 +3986,12 @@ catalogues:
|
|
|
3589
3986
|
type: string
|
|
3590
3987
|
nullable: true
|
|
3591
3988
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134; left empty by per-SDD builders.
|
|
3989
|
+
source_of_truth: execution
|
|
3592
3990
|
- name: platform_sdd_id
|
|
3593
3991
|
type: string
|
|
3594
3992
|
nullable: true
|
|
3595
3993
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
3994
|
+
source_of_truth: execution
|
|
3596
3995
|
description: |
|
|
3597
3996
|
Rubric assessment of a target artefact, one row per (target, rubric), per M-ADR 0205 §4.5. Source: `orchestration/gate-registry/<rubric>-scores.yaml` — the authored surface stays YAML because a score is a judgment, authored where it asserts intent; these rows are DERIVED and never edited.
|
|
3598
3997
|
Models the EFFECTIVE score only — `current`, as chosen by the registry's `selection_policy`. The authored `reviews[]` history is deliberately not catalogued: variable-length history in a fixed-grain catalogue would give two answers to "what is the score". `review_run_id` and `selection_method` make each row name which review it is.
|
|
@@ -3605,6 +4004,7 @@ catalogues:
|
|
|
3605
4004
|
nullable: true
|
|
3606
4005
|
quality_score_dimensions:
|
|
3607
4006
|
primary_key: id
|
|
4007
|
+
source_of_truth: evidence
|
|
3608
4008
|
columns:
|
|
3609
4009
|
- name: id
|
|
3610
4010
|
type: string
|
|
@@ -3642,10 +4042,12 @@ catalogues:
|
|
|
3642
4042
|
type: string
|
|
3643
4043
|
nullable: true
|
|
3644
4044
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4045
|
+
source_of_truth: execution
|
|
3645
4046
|
- name: platform_sdd_id
|
|
3646
4047
|
type: string
|
|
3647
4048
|
nullable: true
|
|
3648
4049
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
4050
|
+
source_of_truth: execution
|
|
3649
4051
|
description: |
|
|
3650
4052
|
One row per (target, rubric, dimension) — the per-dimension detail behind a `quality_scores` row, per M-ADR 0205 §4.5.
|
|
3651
4053
|
A child catalogue rather than columns, and this is forced rather than stylistic: the fifteen rubrics carry FIFTEEN DISJOINT dimension vocabularies (`A1`-`A8`, `C1`-`C8`, `G1`-`G7`, `T1`-`T7`, `D1`-`D6`, `S1`-`S6`, `I1`-`I6`, plus five fully-named sets such as `definition_precision` and `intent_fidelity`) — 45 distinct keys measured in one estate alone. No fixed column set can hold them; serialised JSON in a cell would be unjoinable and break the relational metamodel; generic `d1..d8` columns would be lossy and re-create the positional-index failure class. A child table is what this metamodel already does for every one-to-many, and it joins natively on the M-ADR 0205 §4.1 engine.
|
|
@@ -3655,6 +4057,7 @@ catalogues:
|
|
|
3655
4057
|
nullable: false
|
|
3656
4058
|
scaffolds:
|
|
3657
4059
|
primary_key: id
|
|
4060
|
+
source_of_truth: declaration
|
|
3658
4061
|
columns:
|
|
3659
4062
|
- name: id
|
|
3660
4063
|
type: string
|
|
@@ -3672,6 +4075,7 @@ catalogues:
|
|
|
3672
4075
|
type: string
|
|
3673
4076
|
nullable: false
|
|
3674
4077
|
description: Repo-relative path of the manifest this row derives from, e.g. orchestration/scaffolds/payments-settlement.yaml.
|
|
4078
|
+
source_of_truth: derived
|
|
3675
4079
|
- name: corpus_ref
|
|
3676
4080
|
type: string
|
|
3677
4081
|
nullable: false
|
|
@@ -3688,10 +4092,12 @@ catalogues:
|
|
|
3688
4092
|
type: string
|
|
3689
4093
|
nullable: true
|
|
3690
4094
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134; left empty by per-SDD builders.
|
|
4095
|
+
source_of_truth: execution
|
|
3691
4096
|
- name: platform_sdd_id
|
|
3692
4097
|
type: string
|
|
3693
4098
|
nullable: true
|
|
3694
4099
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
4100
|
+
source_of_truth: execution
|
|
3695
4101
|
description: |
|
|
3696
4102
|
Forward scaffold declaration, one row per unit of work, per M-ADR 0207 §4.1. Source: `orchestration/scaffolds/*.yaml` — the authored surface stays YAML because a scaffold is a declaration of intent, authored where the work is scoped; these rows are DERIVED and never edited (M-ADR 0205 §4.0 governs unchanged).
|
|
3697
4103
|
The scaffold states the catalogue shape a unit of work will comprise — its items are `scaffold_items` rows — and the declared-vs-derived delta against the built catalogues is the unit's definition of done: delta zero (structural) AND every realised artefact score-current (content, via `quality_scores`), per M-ADR 0207 §4.5. The unit is the change-set's declared delta; estate-level scaffold totality is an explicit non-goal (M-ADR 0207 §4.4), so an estate region no scaffold covers produces no finding.
|
|
@@ -3704,6 +4110,7 @@ catalogues:
|
|
|
3704
4110
|
status: enums.scaffold_status
|
|
3705
4111
|
scaffold_items:
|
|
3706
4112
|
primary_key: id
|
|
4113
|
+
source_of_truth: declaration
|
|
3707
4114
|
columns:
|
|
3708
4115
|
- name: id
|
|
3709
4116
|
type: string
|
|
@@ -3737,14 +4144,17 @@ catalogues:
|
|
|
3737
4144
|
type: string
|
|
3738
4145
|
nullable: false
|
|
3739
4146
|
description: Resolution verdict — see the scaffold_item_state enum. Derived, never authored; recomputed on every build, so realisation flips rows exactly when the target lands.
|
|
4147
|
+
source_of_truth: derived
|
|
3740
4148
|
- name: source_sdd_id
|
|
3741
4149
|
type: string
|
|
3742
4150
|
nullable: true
|
|
3743
4151
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4152
|
+
source_of_truth: execution
|
|
3744
4153
|
- name: platform_sdd_id
|
|
3745
4154
|
type: string
|
|
3746
4155
|
nullable: true
|
|
3747
4156
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4 (preserve-if-set, fill rule by pull path); left empty by per-SDD builders. Added in 3.7.0.
|
|
4157
|
+
source_of_truth: execution
|
|
3748
4158
|
description: |
|
|
3749
4159
|
One declared item of a scaffold — an entity, edge, or contract the unit of work promises — per M-ADR 0207 §4.1. Derived from the manifest's item list; `state` is the builder's resolution verdict against the same build's catalogue rows.
|
|
3750
4160
|
THE POLYMORPHIC TARGET DECLARES NO FOREIGN KEY, by design (the quality_scores.target_ref precedent, taken further): a scaffold exists to reference targets BEFORE they exist. FK truth here is CONDITIONAL ON STATE — a `declared` item's (target_kind, target_ref) MUST NOT resolve in the built catalogues, a `realised` item's MUST — and the builder's resolution pass is what enforces it: it computes `state` FROM resolution, so a disagreement between state and resolution cannot be emitted by a conforming builder. The M-ADR 0207 §4.8 delta instrument re-derives the same verdict on the engine as its self-check.
|
|
@@ -3758,6 +4168,7 @@ catalogues:
|
|
|
3758
4168
|
state: enums.scaffold_item_state
|
|
3759
4169
|
implementations:
|
|
3760
4170
|
primary_key: id
|
|
4171
|
+
source_of_truth: declaration
|
|
3761
4172
|
columns:
|
|
3762
4173
|
- name: id
|
|
3763
4174
|
type: string
|
|
@@ -3779,17 +4190,21 @@ catalogues:
|
|
|
3779
4190
|
type: string
|
|
3780
4191
|
nullable: false
|
|
3781
4192
|
description: Path of the binding file, relative to the SDD root.
|
|
4193
|
+
source_of_truth: derived
|
|
3782
4194
|
- name: source_sdd_id
|
|
3783
4195
|
type: string
|
|
3784
4196
|
nullable: true
|
|
3785
4197
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4198
|
+
source_of_truth: execution
|
|
3786
4199
|
- name: platform_sdd_id
|
|
3787
4200
|
type: string
|
|
3788
4201
|
nullable: true
|
|
3789
4202
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4.
|
|
4203
|
+
source_of_truth: execution
|
|
3790
4204
|
description: "An implementation of this SDD's spec: the durable system identity whose snapshots are its versions (M-ADR 0181 §2.5, M-ADR 0214 §4.1). One row per .sdd/implementation-binding.yaml that names its implementation; a binding without an implementation key emits nothing and a finding, because there is no identity to key on."
|
|
3791
4205
|
implementation_members:
|
|
3792
4206
|
primary_key: id
|
|
4207
|
+
source_of_truth: declaration
|
|
3793
4208
|
columns:
|
|
3794
4209
|
- name: id
|
|
3795
4210
|
type: string
|
|
@@ -3820,10 +4235,12 @@ catalogues:
|
|
|
3820
4235
|
type: string
|
|
3821
4236
|
nullable: true
|
|
3822
4237
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4238
|
+
source_of_truth: execution
|
|
3823
4239
|
- name: platform_sdd_id
|
|
3824
4240
|
type: string
|
|
3825
4241
|
nullable: true
|
|
3826
4242
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4.
|
|
4243
|
+
source_of_truth: execution
|
|
3827
4244
|
description: "Edge: a repository is a member of an implementation, with the member's role, lifecycle and evidence direction (M-ADR 0181 §2.1, M-ADR 0214 §4.2). Role and lifecycle live here once: repo_capability, repo_contract and feature_repo resolve their repository to this row rather than copying them (M-ADR 0214 §4.3). Membership is independent of the repository's repo_scope (M-ADR 0213): a shared library under conformance checks is a support member."
|
|
3828
4245
|
foreign_keys:
|
|
3829
4246
|
- column: implementation_id
|
|
@@ -3838,6 +4255,7 @@ catalogues:
|
|
|
3838
4255
|
evidence_direction: enums.evidence_direction
|
|
3839
4256
|
snapshots:
|
|
3840
4257
|
primary_key: id
|
|
4258
|
+
source_of_truth: evidence
|
|
3841
4259
|
columns:
|
|
3842
4260
|
- name: id
|
|
3843
4261
|
type: string
|
|
@@ -3862,10 +4280,12 @@ catalogues:
|
|
|
3862
4280
|
type: string
|
|
3863
4281
|
nullable: true
|
|
3864
4282
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4283
|
+
source_of_truth: execution
|
|
3865
4284
|
- name: platform_sdd_id
|
|
3866
4285
|
type: string
|
|
3867
4286
|
nullable: true
|
|
3868
4287
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4.
|
|
4288
|
+
source_of_truth: execution
|
|
3869
4289
|
description: One implementation's member set pinned at one observation (M-ADR 0181 §2.5, M-ADR 0214 §4.4). One row per dated baseline in the implementation's snapshot area whose snapshot.yaml names the same implementation. Needs the snapshot store root (build --snapshot-store or SDD_SNAPSHOT_STORE); without it the catalogue is empty and the build says so.
|
|
3870
4290
|
foreign_keys:
|
|
3871
4291
|
- column: implementation_id
|
|
@@ -3876,6 +4296,7 @@ catalogues:
|
|
|
3876
4296
|
nullable: true
|
|
3877
4297
|
snapshot_members:
|
|
3878
4298
|
primary_key: id
|
|
4299
|
+
source_of_truth: evidence
|
|
3879
4300
|
columns:
|
|
3880
4301
|
- name: id
|
|
3881
4302
|
type: string
|
|
@@ -3907,10 +4328,12 @@ catalogues:
|
|
|
3907
4328
|
type: string
|
|
3908
4329
|
nullable: true
|
|
3909
4330
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4331
|
+
source_of_truth: execution
|
|
3910
4332
|
- name: platform_sdd_id
|
|
3911
4333
|
type: string
|
|
3912
4334
|
nullable: true
|
|
3913
4335
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator per M-ADR 0208 §4.4.
|
|
4336
|
+
source_of_truth: execution
|
|
3914
4337
|
description: "Edge: a repository at one revision in one snapshot, with its presence — observed in this baseline, carried from an earlier one, or removed since the prior (M-ADR 0214 §4.4)."
|
|
3915
4338
|
foreign_keys:
|
|
3916
4339
|
- column: snapshot_id
|
|
@@ -3923,6 +4346,7 @@ catalogues:
|
|
|
3923
4346
|
presence: enums.member_presence
|
|
3924
4347
|
data_items:
|
|
3925
4348
|
primary_key: id
|
|
4349
|
+
source_of_truth: structure
|
|
3926
4350
|
columns:
|
|
3927
4351
|
- name: id
|
|
3928
4352
|
type: string
|
|
@@ -3946,13 +4370,16 @@ catalogues:
|
|
|
3946
4370
|
type: string
|
|
3947
4371
|
nullable: true
|
|
3948
4372
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4373
|
+
source_of_truth: execution
|
|
3949
4374
|
- name: platform_sdd_id
|
|
3950
4375
|
type: string
|
|
3951
4376
|
nullable: true
|
|
3952
4377
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4378
|
+
source_of_truth: execution
|
|
3953
4379
|
description: "A unit of data an integration may supply and a feature may need, at the canonical boundary (M-ADR 0216 §4.1). Platform-owned, like events. Not a wire signal: payload grammar stays adopter territory."
|
|
3954
4380
|
integration_data_item:
|
|
3955
4381
|
primary_key: id
|
|
4382
|
+
source_of_truth: evidence
|
|
3956
4383
|
columns:
|
|
3957
4384
|
- name: id
|
|
3958
4385
|
type: string
|
|
@@ -3984,10 +4411,12 @@ catalogues:
|
|
|
3984
4411
|
type: string
|
|
3985
4412
|
nullable: true
|
|
3986
4413
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4414
|
+
source_of_truth: execution
|
|
3987
4415
|
- name: platform_sdd_id
|
|
3988
4416
|
type: string
|
|
3989
4417
|
nullable: true
|
|
3990
4418
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4419
|
+
source_of_truth: execution
|
|
3991
4420
|
description: "Supply: what one integration states about one data item, from its feature-grounding (M-ADR 0216 §4.2). Several rows per item are normal (one per evidence_ref); coverage reads the best. No row reads unknown, and unknown is never written."
|
|
3992
4421
|
foreign_keys:
|
|
3993
4422
|
- column: integration_id
|
|
@@ -4004,6 +4433,7 @@ catalogues:
|
|
|
4004
4433
|
basis: enums.supply_basis
|
|
4005
4434
|
feature_data_requirement:
|
|
4006
4435
|
primary_key: id
|
|
4436
|
+
source_of_truth: structure
|
|
4007
4437
|
columns:
|
|
4008
4438
|
- name: id
|
|
4009
4439
|
type: string
|
|
@@ -4027,15 +4457,21 @@ catalogues:
|
|
|
4027
4457
|
type: string
|
|
4028
4458
|
nullable: true
|
|
4029
4459
|
description: Where the need is stated (path and line).
|
|
4460
|
+
source_of_truth: evidence
|
|
4030
4461
|
- name: source_sdd_id
|
|
4031
4462
|
type: string
|
|
4032
4463
|
nullable: true
|
|
4033
4464
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4465
|
+
source_of_truth: execution
|
|
4034
4466
|
- name: platform_sdd_id
|
|
4035
4467
|
type: string
|
|
4036
4468
|
nullable: true
|
|
4037
4469
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4470
|
+
source_of_truth: execution
|
|
4038
4471
|
description: "Demand: a data item one feature needs, from the feature spec's Data Requirements table (M-ADR 0216 §4.3). Feature grain only: a capability's need is the union of its features'."
|
|
4472
|
+
natural_key:
|
|
4473
|
+
- feature_id
|
|
4474
|
+
- data_item_id
|
|
4039
4475
|
foreign_keys:
|
|
4040
4476
|
- column: feature_id
|
|
4041
4477
|
references: features.id
|
|
@@ -4050,6 +4486,7 @@ catalogues:
|
|
|
4050
4486
|
necessity: enums.data_necessity
|
|
4051
4487
|
feature_integration_support:
|
|
4052
4488
|
primary_key: id
|
|
4489
|
+
source_of_truth: derived
|
|
4053
4490
|
columns:
|
|
4054
4491
|
- name: id
|
|
4055
4492
|
type: string
|
|
@@ -4077,10 +4514,12 @@ catalogues:
|
|
|
4077
4514
|
type: string
|
|
4078
4515
|
nullable: true
|
|
4079
4516
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4517
|
+
source_of_truth: execution
|
|
4080
4518
|
- name: platform_sdd_id
|
|
4081
4519
|
type: string
|
|
4082
4520
|
nullable: true
|
|
4083
4521
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4522
|
+
source_of_truth: execution
|
|
4084
4523
|
description: "Coverage: whether one integration can support one feature, DERIVED at aggregation from supply and demand (M-ADR 0216 §4.4); empty in a member build. SUPPORTED MEANS THE ITEMS REACH THE CANONICAL BOUNDARY, NOT THAT THE FEATURE WORKS END TO END: routing past that boundary is not checked."
|
|
4085
4524
|
foreign_keys:
|
|
4086
4525
|
- column: feature_id
|
|
@@ -4097,6 +4536,7 @@ catalogues:
|
|
|
4097
4536
|
limiting_reason: enums.limiting_reason
|
|
4098
4537
|
evidence_target_repo:
|
|
4099
4538
|
primary_key: id
|
|
4539
|
+
source_of_truth: evidence
|
|
4100
4540
|
columns:
|
|
4101
4541
|
- name: id
|
|
4102
4542
|
type: string
|
|
@@ -4114,10 +4554,12 @@ catalogues:
|
|
|
4114
4554
|
type: string
|
|
4115
4555
|
nullable: true
|
|
4116
4556
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4557
|
+
source_of_truth: execution
|
|
4117
4558
|
- name: platform_sdd_id
|
|
4118
4559
|
type: string
|
|
4119
4560
|
nullable: true
|
|
4120
4561
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4562
|
+
source_of_truth: execution
|
|
4121
4563
|
description: "A reverse evidence file names a repository another SDD owns, through its top-level target_repo (M-ADR 0214 §4.10). A reference, never a claim: the repository is described by exactly one SDD, elsewhere."
|
|
4122
4564
|
foreign_keys:
|
|
4123
4565
|
- column: repo_id
|
|
@@ -4126,6 +4568,7 @@ catalogues:
|
|
|
4126
4568
|
external: true
|
|
4127
4569
|
repo_dependency:
|
|
4128
4570
|
primary_key: id
|
|
4571
|
+
source_of_truth: structure
|
|
4129
4572
|
columns:
|
|
4130
4573
|
- name: id
|
|
4131
4574
|
type: string
|
|
@@ -4151,15 +4594,21 @@ catalogues:
|
|
|
4151
4594
|
type: string
|
|
4152
4595
|
nullable: false
|
|
4153
4596
|
description: The file the row came from, relative to the SDD root; the declared source when both name the dependency.
|
|
4597
|
+
source_of_truth: derived
|
|
4154
4598
|
- name: source_sdd_id
|
|
4155
4599
|
type: string
|
|
4156
4600
|
nullable: true
|
|
4157
4601
|
description: Originating SDD slug. Populated by the aggregator per M-ADR 0134.
|
|
4602
|
+
source_of_truth: execution
|
|
4158
4603
|
- name: platform_sdd_id
|
|
4159
4604
|
type: string
|
|
4160
4605
|
nullable: true
|
|
4161
4606
|
description: The platform this row belongs to — sdd_id of its platform-root. Stamped by the aggregator (M-ADR 0208 §4.4).
|
|
4607
|
+
source_of_truth: execution
|
|
4162
4608
|
description: "Edge: a repository depends on another repository's code without either being a running service — a library linked at build time, or a template family it was generated from (M-ADR 0217). The depended-on repository may belong to another SDD, which describes it; this row only references it."
|
|
4609
|
+
natural_key:
|
|
4610
|
+
- from_repo_id
|
|
4611
|
+
- to_repo_id
|
|
4163
4612
|
foreign_keys:
|
|
4164
4613
|
- column: from_repo_id
|
|
4165
4614
|
references: repositories.id
|
|
@@ -4172,6 +4621,7 @@ catalogues:
|
|
|
4172
4621
|
kind: enums.repo_dependency_kind
|
|
4173
4622
|
requirements:
|
|
4174
4623
|
primary_key: id
|
|
4624
|
+
source_of_truth: behaviour
|
|
4175
4625
|
columns:
|
|
4176
4626
|
- name: id
|
|
4177
4627
|
type: string
|
|
@@ -4188,23 +4638,28 @@ catalogues:
|
|
|
4188
4638
|
- name: stage
|
|
4189
4639
|
type: string
|
|
4190
4640
|
nullable: false
|
|
4191
|
-
description: "Bound to requirement_stage: living (in the living spec)
|
|
4641
|
+
description: "Bound to requirement_stage: living (in the living spec), agreed (added by an open change whose agreement record is agreed) or retired (removed by an archived change)."
|
|
4642
|
+
source_of_truth: derived
|
|
4192
4643
|
- name: spec_path
|
|
4193
4644
|
type: string
|
|
4194
4645
|
nullable: false
|
|
4195
4646
|
description: "The file that holds the requirement: the living spec, or the open change's delta."
|
|
4647
|
+
source_of_truth: derived
|
|
4196
4648
|
- name: scenario_count
|
|
4197
4649
|
type: integer
|
|
4198
4650
|
nullable: false
|
|
4199
4651
|
description: Scenarios under the requirement in that file.
|
|
4652
|
+
source_of_truth: derived
|
|
4200
4653
|
- name: source_sdd_id
|
|
4201
4654
|
type: string
|
|
4202
4655
|
nullable: true
|
|
4203
4656
|
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
4657
|
+
source_of_truth: execution
|
|
4204
4658
|
- name: platform_sdd_id
|
|
4205
4659
|
type: string
|
|
4206
4660
|
nullable: true
|
|
4207
4661
|
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
4662
|
+
source_of_truth: execution
|
|
4208
4663
|
description: "A requirement in the SDD's behaviour store (M-ADR 0221): one row per requirement of a living spec, keyed by the catalogue feature the spec describes, and per requirement an open agreed change adds. Projected from openspec/ at the SDD's commit; never authored here."
|
|
4209
4664
|
foreign_keys:
|
|
4210
4665
|
- column: feature_id
|
|
@@ -4214,6 +4669,7 @@ catalogues:
|
|
|
4214
4669
|
stage: enums.requirement_stage
|
|
4215
4670
|
requirement_lineage:
|
|
4216
4671
|
primary_key: id
|
|
4672
|
+
source_of_truth: execution
|
|
4217
4673
|
columns:
|
|
4218
4674
|
- name: id
|
|
4219
4675
|
type: string
|
|
@@ -4225,7 +4681,7 @@ catalogues:
|
|
|
4225
4681
|
- name: change_id
|
|
4226
4682
|
type: string
|
|
4227
4683
|
nullable: false
|
|
4228
|
-
description: The archived change's directory
|
|
4684
|
+
description: "The archived change's id: <sdd_id>::<archive directory> (its archive date prefix included); a changes.id."
|
|
4229
4685
|
- name: change_kind
|
|
4230
4686
|
type: string
|
|
4231
4687
|
nullable: false
|
|
@@ -4233,7 +4689,7 @@ catalogues:
|
|
|
4233
4689
|
- name: operation
|
|
4234
4690
|
type: string
|
|
4235
4691
|
nullable: false
|
|
4236
|
-
description: "Bound to requirement_operation: how the change's delta treated the requirement."
|
|
4692
|
+
description: "Bound to requirement_operation: how the change's delta treated the requirement; REMOVED retires it."
|
|
4237
4693
|
- name: archived_on
|
|
4238
4694
|
type: string
|
|
4239
4695
|
nullable: false
|
|
@@ -4257,53 +4713,66 @@ catalogues:
|
|
|
4257
4713
|
column_enums:
|
|
4258
4714
|
change_kind: enums.requirement_change_kind
|
|
4259
4715
|
operation: enums.requirement_operation
|
|
4260
|
-
|
|
4716
|
+
requirement_assertions:
|
|
4261
4717
|
primary_key: id
|
|
4718
|
+
source_of_truth: evidence
|
|
4262
4719
|
columns:
|
|
4263
4720
|
- name: id
|
|
4264
4721
|
type: string
|
|
4265
4722
|
nullable: false
|
|
4266
|
-
description: <
|
|
4723
|
+
description: <revision_id>__<repo_id>.
|
|
4724
|
+
- name: revision_id
|
|
4725
|
+
type: string
|
|
4726
|
+
nullable: false
|
|
4727
|
+
description: The revision the evidence is about.
|
|
4267
4728
|
- name: requirement_id
|
|
4268
4729
|
type: string
|
|
4269
4730
|
nullable: false
|
|
4731
|
+
description: The revision's requirement, copied for joining without the revision; the revision's foreign key is the reference.
|
|
4732
|
+
source_of_truth: derived
|
|
4270
4733
|
- name: repo_id
|
|
4271
4734
|
type: string
|
|
4272
4735
|
nullable: false
|
|
4273
4736
|
description: "The implementing repository: a work order's repository, or a repository a baseline was observed in."
|
|
4274
|
-
- name:
|
|
4737
|
+
- name: kind
|
|
4275
4738
|
type: string
|
|
4276
4739
|
nullable: false
|
|
4277
|
-
description: Bound to
|
|
4740
|
+
description: Bound to requirement_assertion_kind.
|
|
4278
4741
|
- name: basis
|
|
4279
4742
|
type: string
|
|
4280
4743
|
nullable: false
|
|
4281
|
-
description: "The change that produced the
|
|
4744
|
+
description: "The change that produced the evidence: its changes.id, <sdd_id>::<directory>."
|
|
4282
4745
|
- name: source_sdd_id
|
|
4283
4746
|
type: string
|
|
4284
4747
|
nullable: true
|
|
4285
4748
|
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
4749
|
+
source_of_truth: execution
|
|
4286
4750
|
- name: platform_sdd_id
|
|
4287
4751
|
type: string
|
|
4288
4752
|
nullable: true
|
|
4289
4753
|
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
4290
|
-
|
|
4754
|
+
source_of_truth: execution
|
|
4755
|
+
description: "Edge: evidence about one revision of a requirement, in one repository that implements it (M-ADR 0230 §4.7, Proposed; replaces requirement_status in schema 6.0.0). Derived, never authored: observed from a baseline's **Observed in:** line, declared-shipped from an archived change's PASS verdict through its work orders' implements lists, each about the revision that change's delta states. An assertion is current while its revision is, and history once a later change moves the requirement, so evidence about one revision is never read as proof of another. An agreed change is not an assertion: it is an intended revision (requirement_revisions) and a change effect (change_effects). Per (revision, repository), the latest assertion wins."
|
|
4756
|
+
natural_key:
|
|
4757
|
+
- revision_id
|
|
4758
|
+
- repo_id
|
|
4291
4759
|
foreign_keys:
|
|
4292
|
-
- column:
|
|
4293
|
-
references:
|
|
4760
|
+
- column: revision_id
|
|
4761
|
+
references: requirement_revisions.id
|
|
4294
4762
|
nullable: false
|
|
4295
4763
|
- column: repo_id
|
|
4296
4764
|
references: repositories.id
|
|
4297
4765
|
nullable: false
|
|
4298
4766
|
column_enums:
|
|
4299
|
-
|
|
4767
|
+
kind: enums.requirement_assertion_kind
|
|
4300
4768
|
changes:
|
|
4301
4769
|
primary_key: id
|
|
4770
|
+
source_of_truth: execution
|
|
4302
4771
|
columns:
|
|
4303
4772
|
- name: id
|
|
4304
4773
|
type: string
|
|
4305
4774
|
nullable: false
|
|
4306
|
-
description: "
|
|
4775
|
+
description: "<sdd_id>::<directory>: the SDD the store belongs to and the change's directory name there, the open change's name or the archived change's directory (its archive date prefix included). A change name is its store's own, so the SDD is part of its identity: two SDDs' changes of one name are two changes. requirement_lineage.change_id references it."
|
|
4307
4776
|
- name: name
|
|
4308
4777
|
type: string
|
|
4309
4778
|
nullable: false
|
|
@@ -4339,6 +4808,7 @@ catalogues:
|
|
|
4339
4808
|
verdict: enums.judge_verdict
|
|
4340
4809
|
change_work_order:
|
|
4341
4810
|
primary_key: id
|
|
4811
|
+
source_of_truth: execution
|
|
4342
4812
|
columns:
|
|
4343
4813
|
- name: id
|
|
4344
4814
|
type: string
|
|
@@ -4354,7 +4824,7 @@ catalogues:
|
|
|
4354
4824
|
- name: status
|
|
4355
4825
|
type: string
|
|
4356
4826
|
nullable: false
|
|
4357
|
-
description: "Bound to work_order_status: the record's status for the work order; a judge PASS marks it completed (M-ADR 0223 §4.6)."
|
|
4827
|
+
description: "Bound to work_order_status: the record's status for the work order; the change archiving on a judge PASS marks it completed (M-ADR 0223 §4.6)."
|
|
4358
4828
|
- name: source_sdd_id
|
|
4359
4829
|
type: string
|
|
4360
4830
|
nullable: true
|
|
@@ -4375,15 +4845,16 @@ catalogues:
|
|
|
4375
4845
|
status: enums.work_order_status
|
|
4376
4846
|
change_work_item:
|
|
4377
4847
|
primary_key: id
|
|
4848
|
+
source_of_truth: execution
|
|
4378
4849
|
columns:
|
|
4379
4850
|
- name: id
|
|
4380
4851
|
type: string
|
|
4381
4852
|
nullable: false
|
|
4382
|
-
description: "<change_name>__<work_item_id>: keyed by the change's undated name, so the row is the same before and after archive."
|
|
4853
|
+
description: "<sdd_id>::<change_name>__<work_item_id>: keyed by the SDD and the change's undated name, so the row is the same before and after archive."
|
|
4383
4854
|
- name: change_id
|
|
4384
4855
|
type: string
|
|
4385
4856
|
nullable: false
|
|
4386
|
-
description: "The change as it stands now: its open name
|
|
4857
|
+
description: "The change as it stands now (a changes.id): <sdd_id>:: with its open name or its archive directory."
|
|
4387
4858
|
- name: change_name
|
|
4388
4859
|
type: string
|
|
4389
4860
|
nullable: false
|
|
@@ -4405,3 +4876,349 @@ catalogues:
|
|
|
4405
4876
|
- column: change_id
|
|
4406
4877
|
references: changes.id
|
|
4407
4878
|
nullable: false
|
|
4879
|
+
journey_requirement:
|
|
4880
|
+
primary_key: id
|
|
4881
|
+
source_of_truth: derived
|
|
4882
|
+
columns:
|
|
4883
|
+
- name: id
|
|
4884
|
+
type: string
|
|
4885
|
+
nullable: false
|
|
4886
|
+
description: <journey_id>__<requirement_id>.
|
|
4887
|
+
- name: journey_id
|
|
4888
|
+
type: string
|
|
4889
|
+
nullable: false
|
|
4890
|
+
- name: requirement_id
|
|
4891
|
+
type: string
|
|
4892
|
+
nullable: false
|
|
4893
|
+
- name: basis
|
|
4894
|
+
type: string
|
|
4895
|
+
nullable: false
|
|
4896
|
+
description: "Bound to journey_requirement_basis: where the citation was read."
|
|
4897
|
+
- name: source_sdd_id
|
|
4898
|
+
type: string
|
|
4899
|
+
nullable: true
|
|
4900
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
4901
|
+
source_of_truth: execution
|
|
4902
|
+
- name: platform_sdd_id
|
|
4903
|
+
type: string
|
|
4904
|
+
nullable: true
|
|
4905
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
4906
|
+
source_of_truth: execution
|
|
4907
|
+
description: "Edge: a requirement a user journey cites for one of its steps (M-ADR 0229 §4.4, Proposed). Derived, never authored: from the @req tags in the journey's end-to-end test file, or from the citations in its journey feature's living spec. A journey with no row is untraced."
|
|
4908
|
+
foreign_keys:
|
|
4909
|
+
- column: journey_id
|
|
4910
|
+
references: user_journeys.id
|
|
4911
|
+
nullable: false
|
|
4912
|
+
- column: requirement_id
|
|
4913
|
+
references: requirements.id
|
|
4914
|
+
nullable: false
|
|
4915
|
+
column_enums:
|
|
4916
|
+
basis: enums.journey_requirement_basis
|
|
4917
|
+
entity_attributes:
|
|
4918
|
+
primary_key: id
|
|
4919
|
+
source_of_truth: structure
|
|
4920
|
+
columns:
|
|
4921
|
+
- name: id
|
|
4922
|
+
type: string
|
|
4923
|
+
nullable: false
|
|
4924
|
+
description: "Immutable id: <entity_id>__<attribute name slug> when first written; never re-keyed."
|
|
4925
|
+
- name: entity_id
|
|
4926
|
+
type: string
|
|
4927
|
+
nullable: false
|
|
4928
|
+
description: The entity the attribute belongs to.
|
|
4929
|
+
- name: name
|
|
4930
|
+
type: string
|
|
4931
|
+
nullable: false
|
|
4932
|
+
description: The attribute's name, unique within its entity.
|
|
4933
|
+
- name: type
|
|
4934
|
+
type: string
|
|
4935
|
+
nullable: false
|
|
4936
|
+
description: The attribute's type as the domain model states it (a primitive, a value object, or another entity's id); open by decision.
|
|
4937
|
+
- name: nullable
|
|
4938
|
+
type: boolean
|
|
4939
|
+
nullable: true
|
|
4940
|
+
description: 'True when the attribute may be absent: false for a primary key or a TypeQL @key or @card(1..1); true for @card(0..1), an unannotated TypeQL ownership (whose default is @card(0..1)) or a Mermaid comment that opens with "nullable"; empty where the model does not say.'
|
|
4941
|
+
- name: foreign_key
|
|
4942
|
+
type: boolean
|
|
4943
|
+
nullable: true
|
|
4944
|
+
description: "True when the domain model marks the attribute as a foreign key (a Mermaid FK or PK_FK marker). TypeQL has none: a reference is a role. Added in schema 6.0.0."
|
|
4945
|
+
- name: description
|
|
4946
|
+
type: string
|
|
4947
|
+
nullable: true
|
|
4948
|
+
- name: source_sdd_id
|
|
4949
|
+
type: string
|
|
4950
|
+
nullable: true
|
|
4951
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
4952
|
+
source_of_truth: execution
|
|
4953
|
+
- name: platform_sdd_id
|
|
4954
|
+
type: string
|
|
4955
|
+
nullable: true
|
|
4956
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
4957
|
+
source_of_truth: execution
|
|
4958
|
+
description: "An attribute of a domain-model entity, an element of its own (M-ADR 0230 §4.3, Proposed): adding a field to an entity adds an attribute and does not modify the entity. Built from the domain model: a Mermaid ER diagram's attribute lines, or a TypeQL entity's owned attributes. Authored in the structural model (openspec/structure/) where an SDD has one. Added in schema 5.1.0; built from domain models since 6.0.0."
|
|
4959
|
+
natural_key:
|
|
4960
|
+
- entity_id
|
|
4961
|
+
- name
|
|
4962
|
+
foreign_keys:
|
|
4963
|
+
- column: entity_id
|
|
4964
|
+
references: entities.id
|
|
4965
|
+
nullable: false
|
|
4966
|
+
entity_relationships:
|
|
4967
|
+
primary_key: id
|
|
4968
|
+
source_of_truth: structure
|
|
4969
|
+
columns:
|
|
4970
|
+
- name: id
|
|
4971
|
+
type: string
|
|
4972
|
+
nullable: false
|
|
4973
|
+
description: "Immutable id: <from_entity_id>__<relationship name slug>__<to_entity_id> when first written; never re-keyed."
|
|
4974
|
+
- name: from_entity_id
|
|
4975
|
+
type: string
|
|
4976
|
+
nullable: false
|
|
4977
|
+
description: The entity the relationship is stated on.
|
|
4978
|
+
- name: to_entity_id
|
|
4979
|
+
type: string
|
|
4980
|
+
nullable: false
|
|
4981
|
+
description: The entity it relates to.
|
|
4982
|
+
- name: name
|
|
4983
|
+
type: string
|
|
4984
|
+
nullable: false
|
|
4985
|
+
description: "The relationship's name, unique among the relationships between its two entities: a Mermaid relationship's label, or a TypeQL relation's label."
|
|
4986
|
+
- name: from_cardinality
|
|
4987
|
+
type: string
|
|
4988
|
+
nullable: false
|
|
4989
|
+
description: How many from-entities relate to one to-entity. Bound to relationship_end_cardinality.
|
|
4990
|
+
- name: to_cardinality
|
|
4991
|
+
type: string
|
|
4992
|
+
nullable: false
|
|
4993
|
+
description: How many to-entities relate to one from-entity. Bound to relationship_end_cardinality.
|
|
4994
|
+
- name: from_role
|
|
4995
|
+
type: string
|
|
4996
|
+
nullable: true
|
|
4997
|
+
description: The role the from-entity plays, where the domain model names one (a TypeQL role).
|
|
4998
|
+
- name: to_role
|
|
4999
|
+
type: string
|
|
5000
|
+
nullable: true
|
|
5001
|
+
description: The role the to-entity plays, where the domain model names one (a TypeQL role).
|
|
5002
|
+
- name: description
|
|
5003
|
+
type: string
|
|
5004
|
+
nullable: true
|
|
5005
|
+
- name: source_sdd_id
|
|
5006
|
+
type: string
|
|
5007
|
+
nullable: true
|
|
5008
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
5009
|
+
source_of_truth: execution
|
|
5010
|
+
- name: platform_sdd_id
|
|
5011
|
+
type: string
|
|
5012
|
+
nullable: true
|
|
5013
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
5014
|
+
source_of_truth: execution
|
|
5015
|
+
description: "A named relationship from one domain-model entity to another, an element of its own (M-ADR 0230 §4.3, Proposed). Built from the domain model: a Mermaid ER diagram's relationship lines, or a TypeQL binary relation, with each end's cardinality and role. Authored in the structural model (openspec/structure/) where an SDD has one. Added in schema 5.1.0; built from domain models since 6.0.0, when one cardinality became two, one per end."
|
|
5016
|
+
natural_key:
|
|
5017
|
+
- from_entity_id
|
|
5018
|
+
- to_entity_id
|
|
5019
|
+
- name
|
|
5020
|
+
foreign_keys:
|
|
5021
|
+
- column: from_entity_id
|
|
5022
|
+
references: entities.id
|
|
5023
|
+
nullable: false
|
|
5024
|
+
- column: to_entity_id
|
|
5025
|
+
references: entities.id
|
|
5026
|
+
nullable: false
|
|
5027
|
+
column_enums:
|
|
5028
|
+
from_cardinality: enums.relationship_end_cardinality
|
|
5029
|
+
to_cardinality: enums.relationship_end_cardinality
|
|
5030
|
+
domain_invariants:
|
|
5031
|
+
primary_key: id
|
|
5032
|
+
source_of_truth: structure
|
|
5033
|
+
columns:
|
|
5034
|
+
- name: id
|
|
5035
|
+
type: string
|
|
5036
|
+
nullable: false
|
|
5037
|
+
description: Immutable id, never re-keyed.
|
|
5038
|
+
- name: entity_id
|
|
5039
|
+
type: string
|
|
5040
|
+
nullable: false
|
|
5041
|
+
description: The entity the invariant constrains.
|
|
5042
|
+
- name: kind
|
|
5043
|
+
type: string
|
|
5044
|
+
nullable: false
|
|
5045
|
+
description: Bound to domain_invariant_kind.
|
|
5046
|
+
- name: attribute_ids
|
|
5047
|
+
type: string
|
|
5048
|
+
nullable: true
|
|
5049
|
+
description: "';'-separated list of entity_attributes ids, each the entity's own. Required for unique and required."
|
|
5050
|
+
- name: relationship_id
|
|
5051
|
+
type: string
|
|
5052
|
+
nullable: true
|
|
5053
|
+
description: The entity's own relationship the invariant constrains. Required for cardinality.
|
|
5054
|
+
- name: statement
|
|
5055
|
+
type: string
|
|
5056
|
+
nullable: false
|
|
5057
|
+
description: The invariant as the domain model states it.
|
|
5058
|
+
- name: source_sdd_id
|
|
5059
|
+
type: string
|
|
5060
|
+
nullable: true
|
|
5061
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
5062
|
+
source_of_truth: execution
|
|
5063
|
+
- name: platform_sdd_id
|
|
5064
|
+
type: string
|
|
5065
|
+
nullable: true
|
|
5066
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
5067
|
+
source_of_truth: execution
|
|
5068
|
+
description: "A domain invariant, a typed element of the domain model (M-ADR 0230 §4.3, Proposed): a rule the entity's data always satisfies. It is structure, not intent, wherever it is first written. Built from the domain model's keys: a primary key (PK, or a TypeQL @key) or a unique key (UK) is a unique invariant over its attributes, and a TypeQL role's @card is a cardinality invariant on its relationship. Authored in the structural model (openspec/structure/) where an SDD has one, which can state every kind. Added in schema 5.1.0; built from domain models since 6.0.0."
|
|
5069
|
+
foreign_keys:
|
|
5070
|
+
- column: entity_id
|
|
5071
|
+
references: entities.id
|
|
5072
|
+
nullable: false
|
|
5073
|
+
- column: relationship_id
|
|
5074
|
+
references: entity_relationships.id
|
|
5075
|
+
nullable: true
|
|
5076
|
+
column_enums:
|
|
5077
|
+
kind: enums.domain_invariant_kind
|
|
5078
|
+
requirement_revisions:
|
|
5079
|
+
primary_key: id
|
|
5080
|
+
source_of_truth: behaviour
|
|
5081
|
+
columns:
|
|
5082
|
+
- name: id
|
|
5083
|
+
type: string
|
|
5084
|
+
nullable: false
|
|
5085
|
+
description: <requirement_id>@<the digest's first 12 hex digits>.
|
|
5086
|
+
- name: requirement_id
|
|
5087
|
+
type: string
|
|
5088
|
+
nullable: false
|
|
5089
|
+
- name: digest
|
|
5090
|
+
type: string
|
|
5091
|
+
nullable: false
|
|
5092
|
+
description: sha256:<hex> of the requirement block, its lines trimmed and blank lines dropped.
|
|
5093
|
+
source_of_truth: derived
|
|
5094
|
+
- name: state
|
|
5095
|
+
type: string
|
|
5096
|
+
nullable: false
|
|
5097
|
+
description: Bound to revision_state.
|
|
5098
|
+
source_of_truth: derived
|
|
5099
|
+
- name: change_id
|
|
5100
|
+
type: string
|
|
5101
|
+
nullable: true
|
|
5102
|
+
description: The change whose delta states this text (changes.id), the latest where several do; empty where none does.
|
|
5103
|
+
source_of_truth: execution
|
|
5104
|
+
- name: source_sdd_id
|
|
5105
|
+
type: string
|
|
5106
|
+
nullable: true
|
|
5107
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
5108
|
+
source_of_truth: execution
|
|
5109
|
+
- name: platform_sdd_id
|
|
5110
|
+
type: string
|
|
5111
|
+
nullable: true
|
|
5112
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
5113
|
+
source_of_truth: execution
|
|
5114
|
+
description: "One row per distinct text of a requirement (M-ADR 0230 §4.7, Proposed; schema 6.0.0). Derived from the behaviour store: the living spec's text is current; an agreed open change's ADDED or MODIFIED block is intended; an archived change's block the living spec no longer holds is history. A revision is identified by its digest, so the same text is one revision wherever it appears."
|
|
5115
|
+
foreign_keys:
|
|
5116
|
+
- column: requirement_id
|
|
5117
|
+
references: requirements.id
|
|
5118
|
+
nullable: false
|
|
5119
|
+
- column: change_id
|
|
5120
|
+
references: changes.id
|
|
5121
|
+
nullable: true
|
|
5122
|
+
column_enums:
|
|
5123
|
+
state: enums.revision_state
|
|
5124
|
+
change_effects:
|
|
5125
|
+
primary_key: id
|
|
5126
|
+
source_of_truth: execution
|
|
5127
|
+
columns:
|
|
5128
|
+
- name: id
|
|
5129
|
+
type: string
|
|
5130
|
+
nullable: false
|
|
5131
|
+
description: <change_id>__<element_kind>__<element_id>.
|
|
5132
|
+
- name: change_id
|
|
5133
|
+
type: string
|
|
5134
|
+
nullable: false
|
|
5135
|
+
- name: element_kind
|
|
5136
|
+
type: string
|
|
5137
|
+
nullable: false
|
|
5138
|
+
description: Bound to change_effect_element_kind.
|
|
5139
|
+
- name: element_id
|
|
5140
|
+
type: string
|
|
5141
|
+
nullable: false
|
|
5142
|
+
description: A requirements.id (for a requirement a change not yet agreed adds, the id it will have), or a structural element as <catalogue>/<id>.
|
|
5143
|
+
- name: operation
|
|
5144
|
+
type: string
|
|
5145
|
+
nullable: false
|
|
5146
|
+
description: Bound to requirement_operation.
|
|
5147
|
+
- name: base_revision
|
|
5148
|
+
type: string
|
|
5149
|
+
nullable: true
|
|
5150
|
+
description: The revision the change was written against; empty for an addition.
|
|
5151
|
+
- name: target_revision
|
|
5152
|
+
type: string
|
|
5153
|
+
nullable: true
|
|
5154
|
+
description: The revision the change leaves; empty for a removal.
|
|
5155
|
+
- name: source_sdd_id
|
|
5156
|
+
type: string
|
|
5157
|
+
nullable: true
|
|
5158
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
5159
|
+
- name: platform_sdd_id
|
|
5160
|
+
type: string
|
|
5161
|
+
nullable: true
|
|
5162
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
5163
|
+
description: "One row per element a change writes (M-ADR 0230 §4.7, Proposed; schema 6.0.0): a requirement from its behaviour deltas, a structural element from its structural deltas (an archived change's from its effect record, structure/applied.yaml). Base and target are the revisions it moves the element between; a requirement's are revision ids (<requirement>@<12 hex digits of its digest>), catalogued in requirement_revisions except the target of a change not yet agreed; a structural element's are sha256 digests."
|
|
5164
|
+
natural_key:
|
|
5165
|
+
- change_id
|
|
5166
|
+
- element_kind
|
|
5167
|
+
- element_id
|
|
5168
|
+
foreign_keys:
|
|
5169
|
+
- column: change_id
|
|
5170
|
+
references: changes.id
|
|
5171
|
+
nullable: false
|
|
5172
|
+
column_enums:
|
|
5173
|
+
element_kind: enums.change_effect_element_kind
|
|
5174
|
+
operation: enums.requirement_operation
|
|
5175
|
+
contract_revisions:
|
|
5176
|
+
primary_key: id
|
|
5177
|
+
source_of_truth: interface
|
|
5178
|
+
columns:
|
|
5179
|
+
- name: id
|
|
5180
|
+
type: string
|
|
5181
|
+
nullable: false
|
|
5182
|
+
description: <contract_id>@<the digest's first 12 hex digits>.
|
|
5183
|
+
- name: contract_id
|
|
5184
|
+
type: string
|
|
5185
|
+
nullable: false
|
|
5186
|
+
- name: digest
|
|
5187
|
+
type: string
|
|
5188
|
+
nullable: false
|
|
5189
|
+
description: sha256:<hex> of the contract file's bytes.
|
|
5190
|
+
source_of_truth: derived
|
|
5191
|
+
- name: state
|
|
5192
|
+
type: string
|
|
5193
|
+
nullable: false
|
|
5194
|
+
description: Bound to contract_revision_state.
|
|
5195
|
+
source_of_truth: derived
|
|
5196
|
+
- name: sunset_date
|
|
5197
|
+
type: string
|
|
5198
|
+
nullable: true
|
|
5199
|
+
description: "For a deprecated revision, the date it is retired. Not yet populated: the builder does not yet read a version's sunset date (BASELINE.md's optional sunset_date)."
|
|
5200
|
+
- name: change_id
|
|
5201
|
+
type: string
|
|
5202
|
+
nullable: true
|
|
5203
|
+
description: "The change that moved the revision to its state (changes.id): the change whose agreement record agrees it (for an agreed or a retired revision), or, for the active one, the archived change that agreed the current content; empty where none is recorded."
|
|
5204
|
+
source_of_truth: execution
|
|
5205
|
+
- name: source_sdd_id
|
|
5206
|
+
type: string
|
|
5207
|
+
nullable: true
|
|
5208
|
+
description: Originating SDD (stamped at aggregation; empty in a per-SDD build).
|
|
5209
|
+
source_of_truth: execution
|
|
5210
|
+
- name: platform_sdd_id
|
|
5211
|
+
type: string
|
|
5212
|
+
nullable: true
|
|
5213
|
+
description: The platform SDD the row belongs to (stamped at aggregation).
|
|
5214
|
+
source_of_truth: execution
|
|
5215
|
+
description: A contract version's content revisions, each identified by its content digest (M-ADR 0230 §4.2, Proposed; schema 6.0.0). The contract file's current content is active (deprecated where the contract is); a revision an agreed open change pins as the one it agrees (agreement record 1.2.0, contracts[].agrees) is agreed; one an archived change agreed that the file no longer holds is retired. A compatible amendment is a new revision at the same path, so an agreed revision and the active one coexist, both checked. Active is a claim about the published specification, not about deployment.
|
|
5216
|
+
foreign_keys:
|
|
5217
|
+
- column: contract_id
|
|
5218
|
+
references: contracts.id
|
|
5219
|
+
nullable: false
|
|
5220
|
+
- column: change_id
|
|
5221
|
+
references: changes.id
|
|
5222
|
+
nullable: true
|
|
5223
|
+
column_enums:
|
|
5224
|
+
state: enums.contract_revision_state
|