@sdd-method/sdd-cli 0.99.0 → 0.101.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.
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkFH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAmHtB"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqFH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CAmHtB"}
@@ -23,7 +23,7 @@ import { CLI_VERSION } from "./cli-version.js";
23
23
  import { loadCanonicalSchema } from "./schema-loader.js";
24
24
  import { loadSddManifest } from "./manifest-loader.js";
25
25
  import { UNCLASSIFIED } from "./application-archetype/vocabulary.js";
26
- import { checkDataPlanePlatformDepCoherence } from "./data-plane-coherence.js";
26
+ import { checkDataPlanePlatformDepCoherence, checkPublishSurfaceCoherence, } from "./data-plane-coherence.js";
27
27
  import { writeCatalogue } from "./csv-writer.js";
28
28
  import { validateForeignKeys } from "./fk-validator.js";
29
29
  import { dedupeKeyedTables } from "./dedupe-keyed-tables.js";
@@ -571,6 +571,14 @@ async function collectRows(schema, manifest, findings, sddPath) {
571
571
  platformDeps,
572
572
  findings,
573
573
  });
574
+ // publish binding ↔ surface: api coherence (M-ADR 0193 §4.7 / 0167):
575
+ // complementary views cross-checked, not derived.
576
+ checkPublishSurfaceCoherence({
577
+ productId: manifest.sddId,
578
+ surface: manifest.surface,
579
+ bindings: dpBindings,
580
+ findings,
581
+ });
574
582
  }
575
583
  }
576
584
  // 11. Events + service_event + capability_event.
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAwB,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAqB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,iCAAiC,EACjC,mCAAmC,EACnC,mCAAmC,EACnC,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,gCAAgC,EAChC,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,+BAA+B,EAC/B,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AA8B3E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAmB,EACnB,KAAa;IAEb,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAErE,4BAA4B;IAC5B,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC3C,KAAK,CACH,6CAA6C,MAAM,CAAC,aAAa,KAAK,CACvE,CAAC;IAEF,uCAAuC;IACvC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7E,KAAK,CACH,aAAa,QAAQ,CAAC,KAAK,cAAc,QAAQ,CAAC,OAAO,eAAe,QAAQ,CAAC,QAAQ,IAAI,CAC9F,CAAC;IAEF,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/E,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,uDAAuD;IACvD,sEAAsE;IACtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEpE,kCAAkC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,wEAAwE;IACxE,8EAA8E;IAC9E,oEAAoE;IACpE,mDAAmD;IACnD,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE;QAChE,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IAEH,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAE9D,aAAa;IACb,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACzE,KAAK,CAAC,MAAM,UAAU,kBAAkB,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CACH,gCAAgC,MAAM,CAAC,WAAW,qDAAqD,CACxG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CACH,4BAA4B,MAAM,CAAC,SAAS,CAAC,MAAM,mCAAmC,CACvF,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IACvC,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,qCAAqC,EAAE,CAAC,gBAAgB,CAAC,MAAM,cAAc,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACpC,KAAK,CACH,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,cAAc,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,IAAI,CACnG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,CAAC,sBAAsB,EAAE,CAAC,gBAAgB,8BAA8B,CAAC,CAAC;IAE/E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,mDAAmD;IACnD,+EAA+E;IAC/E,6CAA6C;IAC7C,MAAM,QAAQ,GACZ,CAAC,EAAE,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,UAAU;QACxF,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;IAER,OAAO;QACL,QAAQ;QACR,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS;QACT,cAAc,EAAE,EAAE,CAAC,YAAY;QAC/B,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;QACrC,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE;QAC/B,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;QACpC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,WAAW,CACxB,MAAuB,EACvB,QAAqB,EACrB,QAAqB,EACrB,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,sDAAsD;IACtD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,uEAAuE;IACvE,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;QAC1C,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,cAAc;QACd,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAE/B,wEAAwE;IACxE,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,QAAQ;QACR,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE9B,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,4EAA4E;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,2EAA2E;IAC3E,8DAA8D;IAC9D,IACE,QAAQ,CAAC,OAAO,KAAK,qBAAqB;QAC1C,CAAC,QAAQ,CAAC,oBAAoB,KAAK,SAAS;YAC1C,QAAQ,CAAC,oBAAoB,KAAK,YAAY,CAAC,EACjD,CAAC;QACD,QAAQ,CAAC,GAAG,CACV,UAAU,EACV,oDAAoD,QAAQ,CAAC,KAAK,KAAK;YACrE,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,GAAG,CAAC,GAAG,CACL,cAAc,EACd,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,qBAAqB,CAAC,CAC/D,CAAC;IAEF,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,0EAA0E;IAC1E,+EAA+E;IAC/E,yEAAyE;IACzE,GAAG,CAAC,GAAG,CACL,iCAAiC,EACjC,iCAAiC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAC1D,CAAC;IACF,GAAG,CAAC,GAAG,CACL,mCAAmC,EACnC,mCAAmC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAC5D,CAAC;IACF,+EAA+E;IAC/E,qEAAqE;IACrE,+EAA+E;IAC/E,yEAAyE;IACzE,GAAG,CAAC,GAAG,CACL,kCAAkC,EAClC,mCAAmC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAC5D,CAAC;IAEF,6CAA6C;IAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE;gBAAE,SAAS;YACvB,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,GAAG,CACL,SAAS,EACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC;YACJ,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SACxD,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,IAAI,KAAK,EAAE;YAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACnC,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,OAAO;QACP,gBAAgB;KACjB,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE9B,+DAA+D;IAC/D,8BAA8B;IAC9B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC;QAChC,OAAO;QACP,QAAQ;QACR,cAAc;QACd,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3C,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAC3C,OAAO,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/D,gEAAgE;IAChE,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,cAAc;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAEtC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,2EAA2E;IAC3E,iEAAiE;IACjE,oEAAoE;IACpE,uEAAuE;IACvE,2CAA2C;IAC3C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1F,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAClE,IACE,IAAI,KAAK,EAAE;gBACX,IAAI,KAAK,EAAE;gBACX,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC7B,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAC7B,CAAC;gBACD,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,2EAA2E;IAC3E,sDAAsD;IACtD,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;QAC9C,OAAO;QACP,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE;QAAE,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEzF,GAAG,CAAC,GAAG,CACL,oBAAoB,EACpB,sBAAsB,CAAC;QACrB,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,eAAe;QACf,sBAAsB;KACvB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CACL,gBAAgB,EAChB,kBAAkB,CAAC;QACjB,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,WAAW;KACZ,CAAC,CACH,CAAC;IAEF,8DAA8D;IAC9D,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC;QAC7C,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAEzC,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC;QACzC,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,gBAAgB,EAAE,WAAW,EAAE,MAAM,IAAI,IAAI;KAC9C,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzC,GAAG,CAAC,GAAG,CACL,oBAAoB,EACpB,sBAAsB,CAAC;QACrB,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,eAAe,EAAE,cAAc,CAAC,QAAQ;KACzC,CAAC,CACH,CAAC;IAEF,2CAA2C;IAC3C,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,kBAAkB,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,CACL,qBAAqB,EACrB,uBAAuB,CAAC;QACtB,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,gBAAgB,EAAE,eAAe,CAAC,QAAQ;KAC3C,CAAC,CACH,CAAC;IAEF,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,EAAE,KAAK,EAAE;YAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,0EAA0E;IAC1E,mEAAmE;IACnE,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC;QAC/B,QAAQ;QACR,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,kBAAkB;QAClB,gBAAgB,EAAE,eAAe,CAAC,QAAQ;QAC1C,YAAY,EAAE,eAAe,CAAC,IAAI;QAClC,WAAW,EAAE,QAAQ;QACrB,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC1D,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC1D,eAAe,EAAE,EAAE,EAAG,4DAA4D;QAClF,YAAY;KACb,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CACf,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CACL,2BAA2B,EAC3B,4BAA4B,CAAC;QAC3B,QAAQ;QACR,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,YAAY;QACZ,cAAc,EAAE,gBAAgB;KACjC,CAAC,CACH,CAAC;IAEF,gEAAgE;IAChE,wEAAwE;IACxE,wEAAwE;IACxE,8EAA8E;IAC9E,oEAAoE;IACpE,+DAA+D;IAC/D,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC;QAC5C,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,OAAO,EAAE,gBAAgB;QACzB,qBAAqB,EAAE,kBAAkB;KAC1C,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAChF,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACxC,GAAG,SAAS,CAAC,qBAAqB;SACnC,CAAC,CAAC;IACL,CAAC;IACD,oEAAoE;IACpE,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,qEAAqE;IACrE,+CAA+C;IAC/C,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAClC,GAAG,SAAS,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAEzD,8DAA8D;IAC9D,sEAAsE;IACtE,kEAAkE;IAClE,+CAA+C;IAC/C,iEAAiE;IACjE,oEAAoE;IACpE,gEAAgE;IAChE,6BAA6B;IAC7B,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAC9C,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC;QAC/C,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,kBAAkB,EAAE,gCAAgC;QACpD,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE;YAClB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC9B,GAAG,cAAc,CAAC,WAAW;SAC9B,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAC5B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YACxC,GAAG,cAAc,CAAC,qBAAqB;SACxC,CAAC,CAAC;IACL,CAAC;IACD,oEAAoE;IACpE,sEAAsE;IACtE,0EAA0E;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,+CAA+C;IAC/C,kEAAkE;IAClE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAClC,GAAG,cAAc,CAAC,eAAe;KAClC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACrC,GAAG,cAAc,CAAC,kBAAkB;KACrC,CAAC,CAAC;IAEH,uEAAuE;IACvE,2EAA2E;IAC3E,wEAAwE;IACxE,0EAA0E;IAC1E,sEAAsE;IACtE,sBAAsB;IACtB,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5D,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QACvC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7E,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QACvC,MAAM,eAAe,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC7C,MAAM,EAAE,GAAG,GAAG,MAAM,KAAK,GAAG,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAS;YAClC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,oEAAoE;IACpE,8DAA8D;IAC9D,gDAAgD;IAChD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxD,CAAC;IACF,GAAG,CAAC,GAAG,CACL,+BAA+B,EAC/B,MAAM,gCAAgC,CAAC;QACrC,OAAO;QACP,QAAQ;QACR,kBAAkB,EAAE,yBAAyB;QAC7C,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CACH,CAAC;IAEF,uEAAuE;IACvE,mEAAmE;IACnE,uEAAuE;IACvE,yDAAyD;IACzD,oDAAoD;IACpD,sCAAsC;IACtC,GAAG,CAAC,GAAG,CACL,+BAA+B,EAC/B,MAAM,gCAAgC,CAAC;QACrC,OAAO;QACP,QAAQ;QACR,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CACH,CAAC;IAEF,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,qEAAqE;IACrE,CAAC;QACC,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,kCAAkC,CAAC;gBACjC,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,QAAQ,EAAE,UAAU;gBACpB,YAAY;gBACZ,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,8EAA8E;IAC9E,sEAAsE;IACtE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAC7B,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;QACrC,OAAO;QACP,QAAQ;QACR,aAAa;QACb,gBAAgB,EAAE,eAAe,CAAC,QAAQ;QAC1C,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,eAAe;QACf,cAAc;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CACL,eAAe,EACf,iBAAiB,CAAC;QAChB,QAAQ;QACR,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,gBAAgB,EAAE,eAAe,CAAC,QAAQ;QAC1C,eAAe;QACf,aAAa;QACb,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CACL,kBAAkB,EAClB,oBAAoB,CAAC;QACnB,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,kBAAkB;QAClB,aAAa;QACb,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC1D,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;KACjD,CAAC,CACH,CAAC;IAEF,wEAAwE;IACxE,iDAAiD;IACjD,0EAA0E;IAC1E,6DAA6D;IAC7D,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,oBAAoB,CAAC;QACvC,QAAQ;QACR,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,gBAAgB,EAAE,eAAe,CAAC,QAAQ;QAC1C,eAAe;KAChB,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,MAAM,4BAA4B,CAAC;QACtD,OAAO;QACP,QAAQ;QACR,eAAe;QACf,OAAO,EAAE,sBAAsB;KAChC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IAE/D,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,oBAAoB,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,WAAW,GAAmB,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC1C,MAAM,EAAE,GAAG,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;QACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACvC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,oBAAoB,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,uEAAuE;IACvE,+DAA+D;IAC/D,4CAA4C;IAC5C,GAAG,CAAC,GAAG,CACL,kBAAkB,EAClB,oBAAoB,CAAC;QACnB,QAAQ;QACR,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC1D,sBAAsB,EAAE,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAC5D,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACpD,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;KACvD,CAAC,CACH,CAAC;IAEF,sEAAsE;IACtE,2EAA2E;IAC3E,4EAA4E;IAC5E,GAAG,CAAC,GAAG,CACL,eAAe,EACf,iBAAiB,CAAC;QAChB,eAAe,EAAE,yBAAyB;QAC1C,aAAa;QACb,kBAAkB,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACpD,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;KACjD,CAAC,CACH,CAAC;IAEF,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,uBAAuB;IACvB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,cAAc;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzC,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,yBAAyB,EACzB,0BAA0B,CAAC;QACzB,QAAQ;QACR,QAAQ;QACR,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,YAAY;QAC5B,kBAAkB;QAClB,mBAAmB;KACpB,CAAC,CACH,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,sBAAsB,EACtB,uBAAuB,CAAC;QACtB,QAAQ;QACR,QAAQ;QACR,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC1D,yBAAyB,EAAE,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE;KACpE,CAAC,CACH,CAAC;IAEF,wEAAwE;IACxE,mEAAmE;IACnE,qEAAqE;IACrE,oEAAoE;IACpE,4BAA4B;IAC5B,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;IAChD,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;IAEhD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC;QACzC,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC;QAC7C,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE9C,GAAG,CAAC,GAAG,CACL,iBAAiB,EACjB,mBAAmB,CAAC;QAClB,QAAQ;QACR,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,yBAAyB,EAAE,cAAc,CAAC,kBAAkB;QAC5D,6BAA6B,EAAE,cAAc,CAAC,sBAAsB;KACrE,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CACL,iBAAiB,EACjB,mBAAmB,CAAC;QAClB,QAAQ;QACR,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;QACvD,eAAe;QACf,eAAe;KAChB,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CACL,iBAAiB,EACjB,mBAAmB,CAAC;QAClB,QAAQ;QACR,uBAAuB,EAAE,cAAc,CAAC,gBAAgB;QACxD,8BAA8B,EAAE,cAAc,CAAC,uBAAuB;QACtE,eAAe;QACf,eAAe;KAChB,CAAC,CACH,CAAC;IAEF,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC;QACvC,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,eAAe;QACf,eAAe;QACf,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,aAAa,EAAE,gBAAgB,EAAE,aAAa;QAC9C,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB;QAC5D,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB;KACvD,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAErD,wEAAwE;IACxE,sEAAsE;IACtE,8DAA8D;IAC9D,qEAAqE;IACrE,mEAAmE;IACnE,uEAAuE;IACvE,4BAA4B,CAAC;QAC3B,QAAQ;QACR,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;QACjC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC9C,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;QACnC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE;KAC5C,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,KAAK;KAC1B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;IAExD,qEAAqE;IACrE,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC;QAC/C,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS,EAAE,KAAK,CAAC,MAAM;KACxB,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAE1C,yEAAyE;IACzE,8EAA8E;IAC9E,uEAAuE;IACvE,yEAAyE;IACzE,mEAAmE;IACnE,kEAAkE;IAClE,qCAAqC;IACrC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;QACrC,OAAO;QACP,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,eAAe;QACf,cAAc;QACd,uBAAuB,EAAE,oBAAoB;QAC7C,yBAAyB,EAAE,sBAAsB;QACjD,yBAAyB,EAAE,sBAAsB;KAClD,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC;QAC3C,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,eAAe,EAAE,YAAY;KAC9B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAEvC,iEAAiE;IACjE,wEAAwE;IACxE,wEAAwE;IACxE,+DAA+D;IAC/D,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhD,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CACtC,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAClE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CACf,CACF,CAAC;IACF,GAAG,CAAC,GAAG,CACL,2BAA2B,EAC3B,MAAM,4BAA4B,CAAC;QACjC,OAAO;QACP,QAAQ;QACR,gBAAgB,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtE,cAAc,EAAE,wBAAwB;KACzC,CAAC,CACH,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,4BAA4B,EAC5B,MAAM,6BAA6B,CAAC;QAClC,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,mBAAmB,EAAE,UAAU,CAAC,WAAW;QAC3C,oBAAoB;KACrB,CAAC,CACH,CAAC;IAEF,qEAAqE;IACrE,wEAAwE;IACxE,6DAA6D;IAC7D,GAAG,CAAC,GAAG,CACL,sBAAsB,EACtB,MAAM,wBAAwB,CAAC;QAC7B,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,oBAAoB;QACpB,mBAAmB,EAAE,UAAU,CAAC,WAAW;KAC5C,CAAC,CACH,CAAC;IACF,gEAAgE;IAChE,gDAAgD;IAChD,GAAG,CAAC,GAAG,CACL,mBAAmB,EACnB,MAAM,qBAAqB,CAAC;QAC1B,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,oBAAoB;QACpB,mBAAmB,EAAE,UAAU,CAAC,WAAW;QAC3C,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,eAAe,EAAE,cAAc,CAAC,QAAQ;KACzC,CAAC,CACH,CAAC;IAEF,+BAA+B,CAAC;QAC9B,QAAQ;QACR,sBAAsB;QACtB,sBAAsB;QACtB,qBAAqB,EAAE,UAAU,CAAC,aAAa;QAC/C,qBAAqB,EAAE,UAAU,CAAC,mBAAmB;QACrD,qBAAqB,EAAE,UAAU,CAAC,oBAAoB;KACvD,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CACL,kBAAkB,EAClB,MAAM,oBAAoB,CAAC;QACzB,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,eAAe,EAAE,cAAc,CAAC,QAAQ;KACzC,CAAC,CACH,CAAC;IAEF,yCAAyC;IACzC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC;QAC9C,OAAO;QACP,QAAQ;QACR,cAAc;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChD,CAAC;IACF,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,4BAA4B;IAC5B,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC;QACnC,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,gBAAgB;QAChB,cAAc;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAEhD,yEAAyE;IACzE,wDAAwD;IACxD,GAAG,CAAC,GAAG,CACL,gBAAgB,EAChB,yBAAyB,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAClE,CAAC;IAEF,sEAAsE;IACtE,sDAAsD;IACtD,EAAE;IACF,sEAAsE;IACtE,wCAAwC;IACxC,yEAAyE;IACzE,oCAAoC;IACpC,oEAAoE;IACpE,8BAA8B;IAC9B,iEAAiE;IACjE,gCAAgC;IAChC,uEAAuE;IACvE,oDAAoD;IACpD,MAAM,oBAAoB,GAAG,MAAM,yBAAyB,CAAC;QAC3D,OAAO;QACP,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,cAAc;QACd,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,CAAC;QACzD,OAAO;QACP,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACjC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SAChC,CAAC,CAAC;QACH,gBAAgB;KACjB,CAAC,CAAC;IACH,4EAA4E;IAC5E,qEAAqE;IACrE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,mBAAmB;QAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,CAAC,IAAI,oBAAoB;QAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEhC,0EAA0E;IAC1E,oEAAoE;IACpE,sEAAsE;IACtE,6DAA6D;IAC7D,qDAAqD;IACrD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChD,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;YAAE,SAAS;QAChD,MAAM,EAAE,GAAG,GAAG,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;QAC7D,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAChD,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,sBAAsB,CAAC,IAAI,CAAC;YAC1B,EAAE,EAAE,EAAE;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,UAAU;YAC5B,MAAM,EAAE,gBAAgB;YACxB,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC;IAEnD,gDAAgD;IAChD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG;YAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,kBAAkB,GAAG,MAAM,2BAA2B,CAAC;QAC3D,OAAO;QACP,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACjC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SAChC,CAAC,CAAC;QACH,oBAAoB;QACpB,cAAc;QACd,UAAU;KACX,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAExC,MAAM,iBAAiB,GAAG,MAAM,4BAA4B,CAAC;QAC3D,OAAO;QACP,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACjC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;SAChC,CAAC,CAAC;QACH,oBAAoB;QACpB,cAAc;QACd,QAAQ;QACR,eAAe;KAChB,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;QACjD,iBAAiB;QACjB,YAAY;KACb,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;IAEpD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;QAC3C,mBAAmB;QACnB,YAAY;KACb,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAE9C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAE9C;;;;;;;GAOG;AACH,SAAS,4BAA4B,CAAC,IAMrC;IACC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,EAAE;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,KAAK,KAAK,EAAE;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,GAAG,KAAK,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACnE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,YAAY,EACZ,+CAA+C,QAAQ,IAAI;gBACzD,YAAY,IAAI,0BAA0B,KAAK,IAAI;gBACnD,YAAY,IAAI,+CAA+C,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CatalogueRow } from "../csv-writer.js";
2
2
  import type { FindingsLog } from "../findings.js";
3
- import type { SddManifest } from "../manifest-loader.js";
3
+ import { type SddManifest } from "../manifest-loader.js";
4
4
  export interface ApplicationDataPlaneBindingsBuildInputs {
5
5
  readonly manifest: SddManifest;
6
6
  readonly findings: FindingsLog;
@@ -1 +1 @@
1
- {"version":3,"file":"application-data-plane-bindings.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/application-data-plane-bindings.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAeD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,uCAAuC,GAC9C,YAAY,EAAE,CAyDhB;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,uCAAuC,GAC9C,YAAY,EAAE,CA6BhB"}
1
+ {"version":3,"file":"application-data-plane-bindings.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/application-data-plane-bindings.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAeD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,uCAAuC,GAC9C,YAAY,EAAE,CA8DhB;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,uCAAuC,GAC9C,YAAY,EAAE,CA6BhB"}
@@ -8,13 +8,18 @@
8
8
  // already validated the closed enums and the runtime/locality rules (malformed
9
9
  // bindings FAIL at load), so this builder only shapes valid bindings into rows.
10
10
  //
11
- // A binding whose target is a platform capability/service reconciles with
12
- // `product_platform_dependencies` (a retrieve@internal binding is a synchronous
13
- // platform dependency; a stream-ingest@internal binding is the M-ADR 0192
14
- // contract_type:event async dependency). That reconciliation deriving/sharing
15
- // the platform-targeting bindings rather than double-authoring — and the
16
- // archetype-default-vs-declared WARN are fast-follows that land with the 0191
17
- // §4.3 overlay. This builder ships the axis itself.
11
+ // The `pattern` vocabulary splits by DIRECTION (§4.7): an INBOUND data-sourcing
12
+ // sub-set (retrieve/own-store/stream-ingest/project) and an OUTPUT-side sub-set
13
+ // (generate/publish). Each row carries a derived `direction` column so consumers
14
+ // can branch on the sub-set the ADR declares instead of re-deriving the split.
15
+ //
16
+ // An INBOUND binding whose target is a platform capability/service reconciles
17
+ // with `product_platform_dependencies` (a retrieve@internal binding is a
18
+ // synchronous platform dependency; a stream-ingest@internal binding is the
19
+ // M-ADR 0192 contract_type:event async dependency). OUTPUT-side rows do NOT
20
+ // participate in that reconciliation (§4.7 rule 1) — `publish` is a contract the
21
+ // service PROVIDES, so it has no inbound counterpart to cross-check.
22
+ import { dataPlaneDirection } from "../manifest-loader.js";
18
23
  // Recommended transport values (open string per the schema; a value outside the
19
24
  // set is a convention finding, never a hard fail — the M-ADR 0156/0192 pattern).
20
25
  const RECOMMENDED_TRANSPORTS = new Set([
@@ -60,6 +65,11 @@ export function buildApplicationDataPlaneBindings(inputs) {
60
65
  id,
61
66
  product_id: manifest.sddId,
62
67
  pattern,
68
+ // Derived from `pattern` (M-ADR 0193 §4.7), not authored — it materialises
69
+ // the output-side sub-set so consumers can branch on direction (notably
70
+ // the inbound-only platform-dep reconciliation) without re-deriving the
71
+ // pattern split. Not a PK component: it adds nothing to identity.
72
+ direction: dataPlaneDirection(pattern),
63
73
  locality,
64
74
  transport,
65
75
  runtime,
@@ -1 +1 @@
1
- {"version":3,"file":"application-data-plane-bindings.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/application-data-plane-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-data-plane-bindings.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/application-data-plane-bindings.ts"],"names":[],"mappings":"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"}
@@ -45,9 +45,41 @@
45
45
  # Builder contract: see docs/method/methods/catalogue-builder-specification.md.
46
46
  # Category taxonomy: see docs/method/methods/product-category-taxonomy.md.
47
47
 
48
- schema_version: "2.39.0"
48
+ schema_version: "2.40.0"
49
49
  schema_owner: "sdd-method"
50
50
  schema_status: "canonical"
51
+ # Bump rationale (2.40.0 — additive minor, per M-ADR 0193 §4.7, 2026-07-24):
52
+ # adds a derived `direction` column (inbound | output) to
53
+ # application_data_plane_bindings. §4.7 models the output side as a
54
+ # DISTINGUISHED SUB-SET of the `pattern` vocabulary, and names three rules that
55
+ # branch on direction — reconciliation with product_platform_dependencies is
56
+ # inbound-only, the archetype-default WARN must compare like with like, and the
57
+ # M-ADR 0187 convergence reasoning differs by direction. The catalogue could not
58
+ # express that distinction: consumers had to re-derive it by hardcoding the
59
+ # pattern→direction mapping, and any that forgot would silently reconcile an
60
+ # output-side binding as though it consumed something. `direction` materialises
61
+ # the sub-set the ADR already declares. Derived from `pattern` by a single
62
+ # method-tier mapping (not authored — it is not a manifest field), so it adds no
63
+ # authoring burden and cannot disagree with `pattern`. Deliberately NOT part of
64
+ # the primary key: identity is unchanged ({product_id}__{pattern}__{locality}__
65
+ # {target}), and a derived value adds nothing to it. Also corrects four
66
+ # descriptions left stale by 2.37.0/2.38.0: `pattern` and the deviations
67
+ # `expectation` token list both omitted generate/publish, `runtime` omitted
68
+ # generate from the compute-bearing set, and `locality` claimed only own-store
69
+ # may be empty. Backward-compatible; SCHEMA_COMPAT "^2.0.0".
70
+ # Bump rationale (2.35.0–2.39.0 — RESTORED to canonical 2026-07-24): these five
71
+ # versions were authored directly into sdd-cli's VENDORED copy and never landed
72
+ # here, leaving the canonical five versions behind while builders shipped
73
+ # against the newer shape — the exact silent divergence M-ADR 0133 §4.2's
74
+ # direction-of-truth rule (canonical -> vendored, never the reverse) exists to
75
+ # prevent. check-canonical-schema-digest.sh detects it when pointed at a
76
+ # consumer checkout. Restored content: 2.35.0 `surface` +
77
+ # `application_archetype` columns on products (M-ADR 0167 / 0191); 2.36.0
78
+ # conditionally-nullable target_service_id on product_platform_dependencies
79
+ # (M-ADR 0192 async shared-stream); 2.37.0 application_data_plane_bindings
80
+ # (M-ADR 0193); 2.38.0 application_data_plane_deviations (M-ADR 0191 §4.3
81
+ # overlay); 2.39.0 application_conformance_coverage (§4.3 WS4). No content is
82
+ # newly decided here — this records where it came from.
51
83
  # Bump rationale (2.34.0 — additive minor, per M-ADR 0189 F26 §3, ratified
52
84
  # 2026-07-10): adds the `persona_container` edge — the L2-granularity
53
85
  # companion to persona_c4system. Person→Container Rels are drawn routinely
@@ -376,13 +408,13 @@ catalogues:
376
408
  - { name: deprecated_date, type: date, nullable: true, description: "Date the deprecation decision took effect. Only meaningful when lifecycle=deprecated. From the manifest's deprecated_date:. Added in 2.22.0." }
377
409
  - { name: successor_sdd_id, type: string, nullable: true, description: "For deprecated products: sdd_id of the superseding SDD. Same vocabulary as sdd_id/source_sdd_id (NOT products.id). Soft reference — the aggregator orphan-checks it against contributing sdd_ids ([finding] orphan when unresolved), never a hard FK: the successor may live outside the aggregation scope. Added in 2.22.0." }
378
410
  - { name: surface, type: string, nullable: true, description: "ui | api (empty for non-application-product). Application-product surface trait from the manifest's surface: field (M-ADR 0167, sdd-manifest-schema 1.2.0). Empty on non-application products. Added in 2.35.0." }
379
- - { name: application_archetype, type: string, nullable: true, description: "Application-product shape classification from the manifest's application_archetype: field (M-ADR 0191, sdd-manifest-schema 1.2.0). Resolved-enum over a tiered vocabulary (method: unclassified; reference-architecture bundle; adopter). Defaults to 'unclassified' for application-product (with a coverage finding), empty for other profiles. Distinct from the ADR 0173 domain archetype and ADR 0169 openui archetype. Added in 2.35.0." }
411
+ - { name: application_archetype, type: string, nullable: true, description: "Application-product shape classification from the manifest's application_archetype: field (M-ADR 0191, sdd-manifest-schema 1.2.0). Resolved-enum over a tiered vocabulary (method: unclassified; reference-architecture bundle; adopter). Defaults to 'unclassified' for application-product (with a coverage finding), empty for other profiles. Distinct from the M-ADR 0173 domain archetype and M-ADR 0169 openui archetype. Added in 2.35.0." }
380
412
  - { name: synthesis_quality, type: int, nullable: true, description: "Score 0-10 from assessment block (reverse method only)." }
381
413
  - { name: synthesis_band, type: string, nullable: true, description: "developing | working | strong." }
382
414
  - { name: last_assessed, type: date, nullable: true }
383
415
  - { name: highest_snapshot_impact, type: string, nullable: true }
384
416
  - { name: repo_count, type: int, nullable: false, description: "Number of repos mapped to this product." }
385
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
417
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
386
418
 
387
419
  applications:
388
420
  <<: *products_def
@@ -402,7 +434,7 @@ catalogues:
402
434
  - { name: category, type: string, nullable: false, description: "oem | device | fleet | camera | legacy | data-sharing | gateway-framework (extensible per ecosystem)." }
403
435
  - { name: doc_path, type: string, nullable: false }
404
436
  - { name: repo_count, type: int, nullable: false }
405
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
437
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
406
438
 
407
439
  adrs:
408
440
  primary_key: id
@@ -419,7 +451,7 @@ catalogues:
419
451
  - { name: superseded_by_id, type: string, nullable: true }
420
452
  - { name: inference_confidence, type: string, nullable: true, description: "high | medium | low (reverse-inferred ADRs only)." }
421
453
  - { name: supersedes_raw, type: string, nullable: true, description: "Raw text from Supersedes bullet for later parsing." }
422
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
454
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
423
455
 
424
456
  glossary_items:
425
457
  primary_key: id
@@ -435,7 +467,7 @@ catalogues:
435
467
  - { name: aliases, type: string, nullable: true, description: "';'-separated list." }
436
468
  - { name: evidence, type: string, nullable: true }
437
469
  - { name: notes, type: string, nullable: true }
438
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
470
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
439
471
 
440
472
  glossary_xref:
441
473
  primary_key: id
@@ -461,7 +493,7 @@ catalogues:
461
493
  - { name: entity_name, type: string, nullable: false }
462
494
  - { name: glossary_item_id, type: string, nullable: false }
463
495
  - { name: status, type: string, nullable: false, description: "aligned | matched_direct. Conflicting statuses within a domain resolve matched_direct > aligned with a divergence finding." }
464
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
496
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
465
497
 
466
498
  services:
467
499
  primary_key: id
@@ -482,7 +514,7 @@ catalogues:
482
514
  - { name: confidence, type: string, nullable: true, description: "high | medium | low (reverse-method classification)." }
483
515
  - { name: context, type: string, nullable: true, description: "Bounded-context membership (per ADR 0170 §4.6). Free-form adopter label, orthogonal to domain_id. Not an FK. Carried for forward-parity; awaits a derivation source (e.g. from the service's contracts' x-context). Added in schema 2.19.0." }
484
516
  - { name: description, type: string, nullable: true }
485
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
517
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
486
518
  column_enums:
487
519
  component_type: enums.service_type # canonical builder validates against the service_type enum above
488
520
 
@@ -510,7 +542,7 @@ catalogues:
510
542
  - { name: runway_classification, type: string, nullable: true, description: "Business | Enabler-Runway | Hybrid (forward declares; reverse nullable until backfilled)." }
511
543
  - { name: data_subset, type: string, nullable: true, description: "Keying-axis marker for foundational-tier / synthesis-tier capabilities whose evidence is keyed by ownership boundary or data subset rather than app group. Populated from `capability.data_subset` in the traceability manifest. Empty for implementing-tier capabilities (those use app_group on per-evidence rows). See `docs/method/methods/reverse/rubrics/reverse-platform-evidence-quality.md` §`app_group:` → `data_subset:` rename. Added in schema 2.9.0." }
512
544
  - { name: slice_scope, type: string, nullable: true, description: "Per-slice marker when one capability legitimately covers multiple app groups or data subsets (e.g. a compliance capability spanning several regulated-fleet sub-groups). Same capability_id may appear across multiple rows when sliced; row identity is then `(id, slice_scope)`. Empty when the capability is not sliced. Per-slice AC numbering convention: AC1-ACN unsuffixed for the first slice; subsequent slices use AC numbering suffixed by slice. See `docs/method/methods/reverse/rubrics/reverse-platform-evidence-quality.md` §`slice_scope:` and `docs/method/methods/capability-spec-template.md` Guideline 9. Added in schema 2.9.0." }
513
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
545
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
514
546
 
515
547
  feature_groups:
516
548
  primary_key: id
@@ -535,7 +567,7 @@ catalogues:
535
567
  - { name: parent_group_id, type: string, nullable: true, description: "Self-reference for nested groups (H3 within H2)." }
536
568
  - { name: description, type: string, nullable: true, description: "Authored description (when group has explicit metadata) or null when derived from heading only." }
537
569
  - { name: source, type: string, nullable: false, description: "feature-tree-h2 | feature-tree-h3 | feature-spec-explicit (when an authored feature spec declares group membership) | capability-spec-explicit." }
538
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
570
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
539
571
 
540
572
  features:
541
573
  primary_key: id
@@ -556,7 +588,7 @@ catalogues:
556
588
  - { name: status, type: string, nullable: false, description: "Default 'active'." }
557
589
  - { name: source, type: string, nullable: false, 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 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 ADR 0145). Feature-grounding and capability-spec rows are both capability-owned: product_id is empty; capability_id resolves from the file path." }
558
590
  - { name: runway, type: string, nullable: true, 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." }
559
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
591
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
560
592
 
561
593
  personas:
562
594
  primary_key: id
@@ -568,7 +600,7 @@ catalogues:
568
600
  - { name: product_id, type: string, nullable: false }
569
601
  - { name: role, type: string, nullable: true }
570
602
  - { name: description, type: string, nullable: true }
571
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
603
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
572
604
 
573
605
  user_journeys:
574
606
  primary_key: id
@@ -582,7 +614,7 @@ catalogues:
582
614
  - { name: supporting_personas, type: string, nullable: true }
583
615
  - { name: trigger, type: string, nullable: true }
584
616
  - { name: goal, type: string, nullable: true }
585
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
617
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
586
618
 
587
619
  contracts:
588
620
  primary_key: id
@@ -602,7 +634,7 @@ catalogues:
602
634
  - { name: context, type: string, nullable: true, description: "Bounded-context membership from OpenAPI `info.x-context` (per ADR 0170 §4.6). Free-form adopter label, orthogonal to the contract's domain folder. Not an FK. Empty when untagged. Added in schema 2.19.0." }
603
635
  - { name: evidence_class, type: string, nullable: true, 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 (ADR 0175). Empty when untagged. Added in schema 2.20.0." }
604
636
  - { name: description, type: string, nullable: true }
605
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
637
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
606
638
 
607
639
  events:
608
640
  primary_key: id
@@ -619,7 +651,7 @@ catalogues:
619
651
  - { name: schema_path, type: string, nullable: true, description: "Path to event schema (Avro .avsc or JSON-Schema .json/.schema.json). Nullable — leave empty for loosely-typed events (e.g. ActiveMQ JMS, NATS with payload_schema: {type: object}). Per ADR 0156." }
620
652
  - { name: version, type: string, nullable: true }
621
653
  - { name: evidence_class, type: string, nullable: true, 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 (ADR 0175). Empty for avsc-only events and when undeclared. Added in schema 2.20.0." }
622
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
654
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
623
655
 
624
656
  c4_systems:
625
657
  primary_key: id
@@ -632,7 +664,7 @@ catalogues:
632
664
  - { name: kind, type: string, nullable: false, description: "platform | subsystem | application | integration. Derived 1:1 from manifest.category — see enums.c4_system_kind." }
633
665
  - { name: diagram_path, type: string, nullable: true, 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)." }
634
666
  - { name: description, type: string, nullable: true }
635
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
667
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
636
668
  column_enums:
637
669
  kind: enums.c4_system_kind
638
670
 
@@ -657,7 +689,7 @@ catalogues:
657
689
  - { name: type, type: string, nullable: true, description: "Canonical C4 container kind — see enums.c4_container_type (Application | Data Store). Legacy values Infrastructure | External System are recognised-but-deprecated during 2.x (WARN); External System boxes belong in c4_external_systems. Per ADR 0155. Enum binding is advisory until 3.0.0." }
658
690
  - { name: technology, type: string, nullable: true }
659
691
  - { name: description, type: string, nullable: true }
660
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
692
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
661
693
 
662
694
  c4_components:
663
695
  primary_key: id
@@ -676,7 +708,7 @@ catalogues:
676
708
  - { name: service_id, type: string, nullable: true, description: "Denormalised: the service the parent container represents, when applicable." }
677
709
  - { name: path, type: string, nullable: true }
678
710
  - { name: responsibility, type: string, nullable: true }
679
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
711
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
680
712
 
681
713
  c4_external_systems:
682
714
  primary_key: id
@@ -698,7 +730,7 @@ catalogues:
698
730
  - { name: description, type: string, nullable: true, description: "What the external system provides." }
699
731
  - { name: declared_id, type: string, nullable: true, description: "The diagram entry id of the first-seen declaration (M-ADR 0189 §4.2) — the declared identity the aggregator resolves against estate identifiers at adjudication. Added 2.30.0." }
700
732
  - { name: source_scope, type: string, nullable: true, 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." }
701
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
733
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
702
734
 
703
735
  repositories:
704
736
  primary_key: id
@@ -722,7 +754,7 @@ catalogues:
722
754
  - { name: total_lines, type: int, nullable: true }
723
755
  - { name: languages, type: string, nullable: true, description: "';'-separated." }
724
756
  - { name: doc_path, type: string, nullable: false }
725
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
757
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
726
758
  column_enums:
727
759
  service_type: enums.service_type # canonical builder validates against the service_type enum above
728
760
 
@@ -738,7 +770,7 @@ catalogues:
738
770
  - { name: doc_path, type: string, nullable: false, description: "Path to data-model.mermaid.md." }
739
771
  - { name: version, type: string, nullable: true, description: "Optional explicit version; null until the domain model is formally versioned (typically at first contract lock-in)." }
740
772
  - { name: evidence_class, type: string, nullable: true, 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 (ADR 0175). Empty when undeclared. Added in schema 2.20.0." }
741
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
773
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
742
774
 
743
775
  entities:
744
776
  primary_key: id
@@ -757,7 +789,7 @@ catalogues:
757
789
  - { name: glossary_term, type: string, nullable: true, description: "FK to glossary_items.id when the entity name resolves to a canonical glossary term (by entity-aware slug). Drives entity_glossary edge emission." }
758
790
  - { name: notes, type: string, nullable: true, description: "Free-form notes preserved from the authoring source. Carries `status=...`, `superseded_by=...`, and column count for diagnostic value." }
759
791
  - { name: evidence_class, type: string, nullable: true, 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 (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." }
760
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
792
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
761
793
 
762
794
  # ---- Edge catalogues ----
763
795
  # Edge catalogues do not carry source_sdd_id — provenance is recoverable
@@ -904,7 +936,7 @@ catalogues:
904
936
  - { name: entity_id, type: string, nullable: false }
905
937
  - { name: relation, type: string, nullable: false, description: "Open string; recommended values: owns | reads | writes | references. Data Store Mapping table source emits `owns`. Values outside the recommended set fire `[finding] convention`." }
906
938
  - { name: evidence_path, type: string, nullable: true, description: "Source markdown path or feature-grounding row that produced the edge. Audit aid." }
907
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
939
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
908
940
 
909
941
  capability_feature:
910
942
  primary_key: id
@@ -1044,7 +1076,7 @@ catalogues:
1044
1076
  - { name: transport, type: string, nullable: false, description: "Delivery protocol: `appsync-websocket | pekko-ws | mqtt | sse | webhook-push | other`. The `other` value is escape-valve; adopters using it SHOULD record the actual transport in evidence." }
1045
1077
  - { name: evidence, type: string, nullable: true, description: "Evidence-file citation (`<sub-repo>/<path>:<line>`) anchoring the channel declaration. Mirrors the citation pattern used elsewhere in evidence yamls." }
1046
1078
  - { name: payload_ref, type: string, nullable: true, description: "Optional reference to a payload-contract event (`{event-name}` in the `events` catalogue) when the channel carries a contract-shaped payload. Empty when the payload is channel-private." }
1047
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1079
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1048
1080
 
1049
1081
  capability_domain_model:
1050
1082
  primary_key: id
@@ -1262,7 +1294,7 @@ catalogues:
1262
1294
  - { name: required_stability, type: string, nullable: true, description: "locked | provisional | unknown. Optional; the consuming SDD's expectation of contract stability." }
1263
1295
  - { name: contract_path, type: string, nullable: true, description: "Path to the contract file the dependency is against, as declared in the consuming SDD's evidence. External — resolution happens at aggregation if it happens at all." }
1264
1296
  - { name: consumed_by_services, type: string, nullable: true, 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)." }
1265
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1297
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1266
1298
 
1267
1299
  cross_sdd_platform_capability:
1268
1300
  primary_key: id
@@ -1300,30 +1332,39 @@ catalogues:
1300
1332
  primary_key: id
1301
1333
  description: >
1302
1334
  Application-product edge (M-ADR 0193): one row per declared data-plane
1303
- binding — a typed way the service sources or holds data. The data-plane is
1304
- a COMPOSITION of these bindings, a second axis orthogonal to
1305
- `application_archetype` (0191). Built per-SDD from the manifest's
1335
+ binding — a typed way the service sources, holds, produces or exposes data.
1336
+ The data-plane is a COMPOSITION of these bindings, a second axis orthogonal
1337
+ to `application_archetype` (0191). Built per-SDD from the manifest's
1306
1338
  `data_plane.bindings` block (application-product only; other profiles emit
1307
- headers-only). A binding whose `target` is a platform capability/service
1308
- reconciles with `product_platform_dependencies` a `retrieve@internal`
1309
- binding is a synchronous platform dependency and a `stream-ingest@internal`
1310
- binding is the M-ADR 0192 `contract_type: event` async dependency; the
1311
- genuinely new rows are `own-store` (a self-binding) and any
1312
- `external-vendor` binding. The archetype-default-vs-declared WARN is a
1313
- fast-follow that lands with the M-ADR 0191 §4.3 expectations overlay.
1314
- Added in schema 2.37.0.
1339
+ headers-only). The `pattern` vocabulary splits by DIRECTION (§4.7): an
1340
+ INBOUND data-sourcing sub-set (retrieve | own-store | stream-ingest |
1341
+ project) and an OUTPUT-side sub-set (generate | publish), materialised as
1342
+ the derived `direction` column. An INBOUND binding whose `target` is a
1343
+ platform capability/service reconciles with
1344
+ `product_platform_dependencies` a `retrieve@internal` binding is a
1345
+ synchronous platform dependency and a `stream-ingest@internal` binding is
1346
+ the M-ADR 0192 `contract_type: event` async dependency; the genuinely new
1347
+ inbound rows are `own-store` (a self-binding) and any `external-vendor`
1348
+ binding. OUTPUT-side rows do NOT participate in that reconciliation
1349
+ (§4.7 rule 1): `publish` is a contract the service PROVIDES, not one it
1350
+ consumes, so it has no inbound counterpart to cross-check — consumers must
1351
+ filter on `direction` before reconciling, which is what the column is for.
1352
+ The archetype-default-vs-declared WARN keys on the bare `pattern` token and
1353
+ so spans both directions (§4.7 rule 2). Added in schema 2.37.0;
1354
+ `direction` added in 2.40.0.
1315
1355
  foreign_keys:
1316
1356
  - { column: product_id, references: products.id, nullable: false }
1317
1357
  columns:
1318
- - { name: id, type: string, nullable: false, description: "{product_id}__{pattern}__{locality}__{target} (empty components collapse to blanks). A duplicate emits a divergence finding and is dropped." }
1358
+ - { name: id, type: string, nullable: false, description: "{product_id}__{pattern}__{locality}__{target} (empty components collapse to blanks). A duplicate emits a divergence finding and is dropped. `direction` is NOT a component — it is derived from `pattern`, so it adds nothing to identity." }
1319
1359
  - { name: product_id, type: string, nullable: false, description: "The application-product declaring this binding (this SDD's product id)." }
1320
- - { name: pattern, type: string, nullable: false, description: "Closed method-tier enum: retrieve | own-store | stream-ingest | project. How the data relates to the service (M-ADR 0193 §4.1)." }
1321
- - { name: locality, type: string, nullable: true, description: "Closed enum: internal-platform | internal-domain | external-vendor. Where the other end sits. Empty for own-store (a self-binding with no other end)." }
1360
+ - { name: pattern, type: string, nullable: false, description: "Closed method-tier enum: retrieve | own-store | stream-ingest | project (inbound, data-sourcing) | generate | publish (output-side, per M-ADR 0193 §4.7). How the data relates to the service (§4.1)." }
1361
+ - { name: direction, type: string, nullable: false, 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." }
1362
+ - { name: locality, type: string, nullable: true, description: "Closed enum: internal-platform | internal-domain | external-vendor. Where the other end sits. REQUIRED on the inbound data-sourcing patterns (retrieve/stream-ingest/project); may be empty for own-store (a self-binding with no other end) and for the output-side patterns (generate/publish), which may carry one but do not require it (M-ADR 0193 §4.7)." }
1322
1363
  - { name: transport, type: string, nullable: true, description: "Open string — the wire (rest | graphql | grpc | appsync | kinesis | kafka | eventhub | cdc | ...). Values outside the recommended set emit a convention finding." }
1323
- - { name: runtime, type: string, nullable: true, description: "Free adopter-tier field — backend-compute runtime (e.g. java | node). Only on compute-bearing patterns (stream-ingest/project); empty otherwise." }
1364
+ - { name: runtime, type: string, nullable: true, description: "Free adopter-tier field — backend-compute runtime (e.g. java | node). Only on compute-bearing patterns (stream-ingest | project | generate — `generate` is compute-bearing per M-ADR 0193 §4.7); empty otherwise. A runtime on retrieve/own-store/publish is malformed and FAILs at manifest load." }
1324
1365
  - { name: target, type: string, nullable: true, description: "Free adopter-tier field — the specific counterpart (a platform service id, an upstream domain service, a named vendor). Instance identity; keeps locality a small class enum." }
1325
1366
  - { name: notes, type: string, nullable: true, description: "Optional free-text annotation." }
1326
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1367
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1327
1368
 
1328
1369
  application_data_plane_deviations:
1329
1370
  primary_key: id
@@ -1335,16 +1376,19 @@ catalogues:
1335
1376
  architecture bundle (and its `expected_bindings`) resolves — can suppress a
1336
1377
  mismatch it is told is sanctioned variance. The `expectation` value is the
1337
1378
  **bare pattern token** (`retrieve` | `own-store` | `stream-ingest` |
1338
- `project`) that the product knowingly diverges from; it must match the
1339
- pattern the WARN keys on. Added in schema 2.38.0.
1379
+ `project` | `generate` | `publish`) that the product knowingly diverges
1380
+ from; it must match the pattern the WARN keys on. The token set spans both
1381
+ directions — the WARN keys on the bare pattern, so an output-side
1382
+ expectation is deviated exactly like an inbound one (M-ADR 0193 §4.7 rule
1383
+ 2). Added in schema 2.38.0; output-side tokens documented in 2.40.0.
1340
1384
  foreign_keys:
1341
1385
  - { column: product_id, references: products.id, nullable: false }
1342
1386
  columns:
1343
1387
  - { name: id, type: string, nullable: false, description: "{product_id}__{expectation}. A duplicate emits a divergence finding and is dropped." }
1344
1388
  - { name: product_id, type: string, nullable: false, description: "The application-product declaring this deviation (this SDD's product id)." }
1345
- - { name: expectation, type: string, nullable: false, description: "The bare data-plane pattern token the product diverges from (retrieve | own-store | stream-ingest | project). Must match the WARN's pattern key." }
1389
+ - { name: expectation, type: string, nullable: false, description: "The bare data-plane pattern token the product diverges from (retrieve | own-store | stream-ingest | project | generate | publish). Must match the WARN's pattern key. Spans both directions per M-ADR 0193 §4.7 rule 2." }
1346
1390
  - { name: rationale, type: string, nullable: false, description: "Why the deviation is correct. Non-empty (enforced at manifest load)." }
1347
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1391
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1348
1392
 
1349
1393
  application_conformance_coverage:
1350
1394
  primary_key: id
@@ -1367,7 +1411,7 @@ catalogues:
1367
1411
  - { name: tag, type: string, nullable: false, description: "The conformance-expectation tag (opaque; matches an archetype's `conformance` tag in the reference-architecture vocabulary)." }
1368
1412
  - { name: status, type: string, nullable: false, description: "covered (the product's suite exercises it) | deviated (deliberately not covered, with a rationale)." }
1369
1413
  - { name: rationale, type: string, nullable: true, description: "Why the tag is deviated. Present (non-empty) only when status=deviated." }
1370
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1414
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1371
1415
 
1372
1416
  # ---- UI screens family (schema 2.16.0, per ADR 0166) ----
1373
1417
  # Application-product profile. Builder reads authored screen-spec artefacts
@@ -1390,7 +1434,7 @@ catalogues:
1390
1434
  - { name: domain, type: string, nullable: true, description: "Authored owning-domain hint from frontmatter `domain:` (a docs/domains/<domain>/ slug). Organisational grouping for multi-domain (platform-profile) SDDs; the authoritative screen->domain relationship is still derived via realises -> feature -> capability.domain_id (screen_feature). Empty when unauthored." }
1391
1435
  - { name: group, type: string, nullable: true, description: "Authored sub-grouping hint from frontmatter `group:` — a finer organisational axis within (or orthogonal to) domain, e.g. shell | shell-embed | identity. Free-form adopter label; not an FK. Empty when unauthored." }
1392
1436
  - { name: context, type: string, nullable: true, description: "Bounded-context membership from frontmatter `context:` (per ADR 0170 §4.6). Free-form adopter label, orthogonal to domain/group — the consumed bounded context for a surface that spans several. Not an FK. Empty when unauthored. Added in schema 2.19.0." }
1393
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1437
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1394
1438
 
1395
1439
  ui_components:
1396
1440
  primary_key: id
@@ -1403,7 +1447,7 @@ catalogues:
1403
1447
  - { name: product_id, type: string, nullable: false, description: "Owning application-product." }
1404
1448
  - { name: kind, type: string, nullable: true, description: "Optional classification: layout | display | input | chart | element | composite | remote | remote-iframe | remote-webcomponent. A `remote*` kind marks a micro-frontend federation seam (ADR 0166 §4.7)." }
1405
1449
  - { name: source, type: string, nullable: false, description: "screen-spec (forward) | design-system-import (reverse)." }
1406
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1450
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1407
1451
 
1408
1452
  screen_component:
1409
1453
  primary_key: id
@@ -1415,7 +1459,7 @@ catalogues:
1415
1459
  - { name: id, type: string, nullable: false, description: "Composite PK: {screen_id}__{component_id}." }
1416
1460
  - { name: screen_id, type: string, nullable: false }
1417
1461
  - { name: component_id, type: string, nullable: false }
1418
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1462
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1419
1463
 
1420
1464
  screen_feature:
1421
1465
  primary_key: id
@@ -1431,7 +1475,7 @@ catalogues:
1431
1475
  - { name: id, type: string, nullable: false, description: "Composite PK: {screen_id}__{feature_id}. For app/integration builds the feature_id may be a bare realises slug until the aggregator resolves it to the platform feature id (then the PK is regenerated)." }
1432
1476
  - { name: screen_id, type: string, nullable: false }
1433
1477
  - { name: feature_id, type: string, nullable: false }
1434
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1478
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1435
1479
 
1436
1480
  persona_screen:
1437
1481
  primary_key: id
@@ -1443,7 +1487,7 @@ catalogues:
1443
1487
  - { name: id, type: string, nullable: false, description: "Composite PK: {persona_id}__{screen_id}." }
1444
1488
  - { name: persona_id, type: string, nullable: false }
1445
1489
  - { name: screen_id, type: string, nullable: false }
1446
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1490
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1447
1491
 
1448
1492
  screen_action:
1449
1493
  primary_key: id
@@ -1456,7 +1500,7 @@ catalogues:
1456
1500
  - { name: screen_id, type: string, nullable: false }
1457
1501
  - { name: action, type: string, nullable: false, description: "Declared action label emitted by the screen." }
1458
1502
  - { name: event_id, type: string, nullable: true, description: "Catalogued event the action maps to (per ADR 0156). External-capable; empty when the action does not resolve to a domain event." }
1459
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1503
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1460
1504
 
1461
1505
  conformance_finding:
1462
1506
  primary_key: id
@@ -1476,4 +1520,4 @@ catalogues:
1476
1520
  - { name: observed_not_declared, type: number, nullable: false, description: "Count observed but not declared (candidate: binding-stale / code-defect)." }
1477
1521
  - { name: needs_triage, type: boolean, nullable: false, description: "True when any asymmetry exists. Triage, not auto-fail (ADR 0180 §2.3)." }
1478
1522
  - { name: run_date, type: string, nullable: false, description: "ISO date of the conformance run — the snapshot stamp enabling trend over time." }
1479
- - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
1523
+ - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
@@ -7,10 +7,29 @@ export interface DataPlaneCoherenceInputs {
7
7
  readonly findings: FindingsLog;
8
8
  }
9
9
  /**
10
- * Coarse coherence check: if a product declares platform-targeting data-plane
11
- * bindings (internal locality) but no `product_platform_dependencies` rows at
12
- * all, the two complementary surfaces are out of step. Returns 1 if flagged,
13
- * else 0. Per-target correspondence is intentionally NOT checked (see header).
10
+ * Coarse coherence check: if a product declares platform-targeting INBOUND
11
+ * data-plane bindings (internal locality) but no `product_platform_dependencies`
12
+ * rows at all, the two complementary surfaces are out of step. Returns 1 if
13
+ * flagged, else 0. Per-target correspondence is intentionally NOT checked, and
14
+ * output-side bindings are excluded entirely (see header).
14
15
  */
15
16
  export declare function checkDataPlanePlatformDepCoherence(inputs: DataPlaneCoherenceInputs): number;
17
+ export interface PublishSurfaceCoherenceInputs {
18
+ readonly productId: string;
19
+ /** Manifest `surface` trait; absent means "ui" (M-ADR 0167). */
20
+ readonly surface: string | undefined;
21
+ readonly bindings: readonly CatalogueRow[];
22
+ readonly findings: FindingsLog;
23
+ }
24
+ /**
25
+ * Coherence cross-check between the `surface: api` trait and a `publish`
26
+ * data_plane binding. Returns 1 if a drift finding was raised, else 0.
27
+ *
28
+ * One-directional: only a headless (`surface: api`) product missing its
29
+ * `publish` binding is flagged. A `publish` binding on a `ui` surface is
30
+ * legitimate and never flagged (see header). Runs only over a DECLARED
31
+ * data-plane (bindings present) — same gating as the platform-dep check; a
32
+ * product that has not authored a data_plane is not nagged.
33
+ */
34
+ export declare function checkPublishSurfaceCoherence(inputs: PublishSurfaceCoherenceInputs): number;
16
35
  //# sourceMappingURL=data-plane-coherence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-plane-coherence.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/data-plane-coherence.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOjD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAkB3F"}
1
+ {"version":3,"file":"data-plane-coherence.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/data-plane-coherence.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQjD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAoB3F;AA4BD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,6BAA6B,GAAG,MAAM,CAgB1F"}
@@ -21,28 +21,55 @@
21
21
  // platform-targeting data-plane bindings should also declare *some* platform
22
22
  // dependency. A product with internal bindings and zero platform-deps has one
23
23
  // surface without the other — a genuine coherence gap worth surfacing.
24
+ import { isOutputSidePattern } from "./manifest-loader.js";
24
25
  const INTERNAL_LOCALITIES = new Set([
25
26
  "internal-platform",
26
27
  "internal-domain",
27
28
  ]);
28
29
  /**
29
- * Coarse coherence check: if a product declares platform-targeting data-plane
30
- * bindings (internal locality) but no `product_platform_dependencies` rows at
31
- * all, the two complementary surfaces are out of step. Returns 1 if flagged,
32
- * else 0. Per-target correspondence is intentionally NOT checked (see header).
30
+ * Coarse coherence check: if a product declares platform-targeting INBOUND
31
+ * data-plane bindings (internal locality) but no `product_platform_dependencies`
32
+ * rows at all, the two complementary surfaces are out of step. Returns 1 if
33
+ * flagged, else 0. Per-target correspondence is intentionally NOT checked, and
34
+ * output-side bindings are excluded entirely (see header).
33
35
  */
34
36
  export function checkDataPlanePlatformDepCoherence(inputs) {
35
37
  const { productId, bindings, platformDeps, findings } = inputs;
36
- const platformTargeting = bindings.filter((b) => INTERNAL_LOCALITIES.has(String(b["locality"] ?? "")));
38
+ const platformTargeting = bindings.filter((b) => INTERNAL_LOCALITIES.has(String(b["locality"] ?? "")) &&
39
+ !isOutputSidePattern(String(b["pattern"] ?? "")));
37
40
  if (platformTargeting.length === 0)
38
41
  return 0; // no platform-targeting bindings
39
42
  if (platformDeps.length > 0)
40
43
  return 0; // both surfaces present — coherent
41
44
  findings.add("convention", `data_plane coherence: ${productId} declares ${platformTargeting.length} platform-targeting ` +
42
- `data_plane binding(s) (internal locality) but no product_platform_dependencies rows — the two ` +
45
+ `inbound data_plane binding(s) (internal locality) but no product_platform_dependencies rows — the two ` +
43
46
  `complementary surfaces are out of step; declare the platform dependencies in ` +
44
47
  `app-platform-dependencies.yaml (M-ADR 0193 §4.2). Per-target correspondence is not asserted ` +
45
48
  `(gateway indirection, M-ADR 0189).`);
46
49
  return 1;
47
50
  }
51
+ /**
52
+ * Coherence cross-check between the `surface: api` trait and a `publish`
53
+ * data_plane binding. Returns 1 if a drift finding was raised, else 0.
54
+ *
55
+ * One-directional: only a headless (`surface: api`) product missing its
56
+ * `publish` binding is flagged. A `publish` binding on a `ui` surface is
57
+ * legitimate and never flagged (see header). Runs only over a DECLARED
58
+ * data-plane (bindings present) — same gating as the platform-dep check; a
59
+ * product that has not authored a data_plane is not nagged.
60
+ */
61
+ export function checkPublishSurfaceCoherence(inputs) {
62
+ const { productId, surface, bindings, findings } = inputs;
63
+ const effectiveSurface = surface ?? "ui";
64
+ if (effectiveSurface !== "api")
65
+ return 0; // publish is orthogonal to a ui surface
66
+ const hasPublish = bindings.some((b) => String(b["pattern"] ?? "") === "publish");
67
+ if (hasPublish)
68
+ return 0; // both views present — coherent
69
+ findings.add("convention", `data_plane/surface coherence: ${productId} declares surface: api (headless, M-ADR 0167) but its ` +
70
+ `data_plane has no publish binding — a headless product's entire surface is programmatic, so the ` +
71
+ `contract that constitutes it is missing from the declared composition. Add a publish binding, or ` +
72
+ `reconsider the surface classification (M-ADR 0193 §4.7). Complementary views, not a derivation.`);
73
+ return 1;
74
+ }
48
75
  //# sourceMappingURL=data-plane-coherence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-plane-coherence.js","sourceRoot":"","sources":["../../../src/lib/catalogue/data-plane-coherence.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,4CAA4C;AAC5C,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,iFAAiF;AACjF,0EAA0E;AAC1E,+BAA+B;AAC/B,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,uEAAuE;AAKvE,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACvD,mBAAmB;IACnB,iBAAiB;CAClB,CAAC,CAAC;AASH;;;;;GAKG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAAgC;IACjF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE/D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CACrD,CAAC;IACF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,iCAAiC;IAC/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,mCAAmC;IAE1E,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,yBAAyB,SAAS,aAAa,iBAAiB,CAAC,MAAM,sBAAsB;QAC3F,gGAAgG;QAChG,+EAA+E;QAC/E,8FAA8F;QAC9F,oCAAoC,CACvC,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"data-plane-coherence.js","sourceRoot":"","sources":["../../../src/lib/catalogue/data-plane-coherence.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,4CAA4C;AAC5C,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,iFAAiF;AACjF,0EAA0E;AAC1E,+BAA+B;AAC/B,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,uEAAuE;AAavE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACvD,mBAAmB;IACnB,iBAAiB;CAClB,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAAC,MAAgC;IACjF,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE/D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACJ,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CACnD,CAAC;IACF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,iCAAiC;IAC/E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC,mCAAmC;IAE1E,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,yBAAyB,SAAS,aAAa,iBAAiB,CAAC,MAAM,sBAAsB;QAC3F,wGAAwG;QACxG,+EAA+E;QAC/E,8FAA8F;QAC9F,oCAAoC,CACvC,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAoCD;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAqC;IAChF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC1D,MAAM,gBAAgB,GAAG,OAAO,IAAI,IAAI,CAAC;IACzC,IAAI,gBAAgB,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC,CAAC,wCAAwC;IAElF,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;IAClF,IAAI,UAAU;QAAE,OAAO,CAAC,CAAC,CAAC,gCAAgC;IAE1D,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,iCAAiC,SAAS,wDAAwD;QAChG,kGAAkG;QAClG,mGAAmG;QACnG,iGAAiG,CACpG,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -15,6 +15,18 @@ export declare const DATA_PLANE_PATTERNS: readonly ["retrieve", "own-store", "st
15
15
  export type DataPlanePattern = (typeof DATA_PLANE_PATTERNS)[number];
16
16
  export declare const DATA_PLANE_LOCALITIES: readonly ["internal-platform", "internal-domain", "external-vendor"];
17
17
  export type DataPlaneLocality = (typeof DATA_PLANE_LOCALITIES)[number];
18
+ /** `inbound` (data-sourcing) | `output` (production/exposure) — M-ADR 0193 §4.7. */
19
+ export type DataPlaneDirection = "inbound" | "output";
20
+ /**
21
+ * Direction of a data-plane pattern. DERIVED, never authored — `direction` is not
22
+ * a manifest field, so it cannot disagree with `pattern`. Three §4.7 rules branch
23
+ * on it: platform-dep reconciliation is inbound-only, the archetype-default WARN
24
+ * compares like with like, and the M-ADR 0187 convergence reasoning differs by
25
+ * direction.
26
+ */
27
+ export declare function dataPlaneDirection(pattern: string): DataPlaneDirection;
28
+ /** True for the output-side sub-set (`generate`/`publish`). */
29
+ export declare function isOutputSidePattern(pattern: string): boolean;
18
30
  declare const DataPlaneBindingSchema: z.ZodObject<{
19
31
  pattern: z.ZodEnum<{
20
32
  retrieve: "retrieve";
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,25 @@ export const DATA_PLANE_LOCALITIES = [
64
64
  "internal-domain",
65
65
  "external-vendor",
66
66
  ];
67
+ // The OUTPUT-SIDE sub-set (M-ADR 0193 §4.7). This is the single method-tier
68
+ // direction mapping: every consumer that needs to branch on direction reads it
69
+ // from here rather than re-deriving the pattern split, so the sub-set the ADR
70
+ // declares has exactly one definition in the codebase.
71
+ const OUTPUT_SIDE_PATTERNS = new Set(["generate", "publish"]);
72
+ /**
73
+ * Direction of a data-plane pattern. DERIVED, never authored — `direction` is not
74
+ * a manifest field, so it cannot disagree with `pattern`. Three §4.7 rules branch
75
+ * on it: platform-dep reconciliation is inbound-only, the archetype-default WARN
76
+ * compares like with like, and the M-ADR 0187 convergence reasoning differs by
77
+ * direction.
78
+ */
79
+ export function dataPlaneDirection(pattern) {
80
+ return OUTPUT_SIDE_PATTERNS.has(pattern) ? "output" : "inbound";
81
+ }
82
+ /** True for the output-side sub-set (`generate`/`publish`). */
83
+ export function isOutputSidePattern(pattern) {
84
+ return OUTPUT_SIDE_PATTERNS.has(pattern);
85
+ }
67
86
  // Patterns that carry a backend-compute role and therefore a runtime choice
68
87
  // (M-ADR 0193 §4.1, extended by §4.7). `stream-ingest`/`project` (inbound
69
88
  // compute) and `generate` (scheduled-generation) carry a runtime; `retrieve`
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sdd-method/sdd-cli",
3
- "version": "0.99.0",
3
+ "version": "0.101.0",
4
4
  "description": "Method-layer CLI for SDD repository lifecycle — init, sync, validate, list, plan, generate-briefing, mcp serve, catalogue {build,aggregate,validate,version}, pack {build,validate}, render {screen}. v0.58.0 ships catalogue schema 2.24.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged): cross-SDD screen_feature realises (R3 of the cross-SDD-linkage family). An application/integration-product screen can now realises: a platform-resident feature — the MFE-over-platform shape where the platform owns the capability tree AND its features and apps are thin shells (e.g. Connect: 417 app-feature specs platform-side, 14 app SDDs holding screens with zero local feature specs). Three parts: (1) screen_feature.feature_id gains external_for_profiles [application-product, integration-product] (reuses the 2.23.0 R5 mechanism) — internal for platform-profile, which owns its features; (2) the screens builder, for app/integration profiles, no longer drops an unresolved realises: with an orphan finding — it emits the edge carrying the bare realises slug as a deferred cross-SDD ref (platform-profile keeps drop+orphan; persona_access unchanged); (3) the aggregator resolveCrossSddScreenFeature pass rewrites a bare-slug feature_id to the platform features.id by matching the slug against each merged feature's recovered slug (id minus its capability_id/product_id prefix), regenerating the composite PK. One slug vocabulary per capability (ADR 0177), not estate-wide, so a unique match is authoritative, an ambiguous cross-capability match is refused with a divergence finding (never guessed), and an unmatched slug is an orphan finding — all surfaced at aggregation where the full feature set is visible. This retires the duplicate-features.id collision at its root: the feature is authored once wherever owned and the edge crosses SDDs, so there is no second app-side feature row to collide. Forward/app-owned estates are unaffected (the realised feature resolves locally → internal pass). No adopter data migration — previously-dropped app screen->feature edges re-materialise at aggregation on update. 1055 tests green (+7); e2e confirms an app build emits the deferred edge, logs it [finding] external, and exits 0 (was a dropped edge with zero realises). v0.57.0 ships catalogue schema 2.23.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged): profile-conditional external FKs (R5 of the cross-SDD-linkage coordination family). FK rules gain an optional external_for_profiles array, and capabilities.domain_id carries [application-product, integration-product]. An app- or integration-product SDD legitimately names a platform-resident domain (ADR 0136: it owns no domains.csv rows), so that FK cannot resolve in its own per-SDD build — previously a hard FK FAIL (e.g. fleet-attribution declaring domain: vehicle); now it is logged [finding] external and resolves at aggregation, exactly like product_service.service_id and platform deps already do. The platform SDD keeps the local check (internal for platform-profile — it owns its domains). The validator computes an effective-external per (FK, profile): the resolution skip goes profile-aware while the required-empty check stays keyed on the DECLARED external flag, so an app capability must still NAME a domain — only its resolution defers to aggregation. build.ts passes manifest.profile; catalogue validate derives the profile from products.csv (single profile → pass it; aggregated/mixed → undefined, forcing internal resolution since merged platform domains are present); the aggregator is unchanged (treatExternalAsInternal already validates all FKs post-merge). No adopter data change — affected app/integration builds flip FAIL→PASS on update. The fix generalises to the other cross-SDD-linkage cases (cross-SDD realises:, surfaces:, traceability services[]) which can reuse external_for_profiles rather than minting new edge types. 1048 tests green (+6). v0.56.0 ships catalogue schema 2.22.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged) and sdd-manifest-schema 1.1.0 support (additive; the ^1.0.0 compat range already accepts 1.1.x — no compat change needed): products/applications gain nullable lifecycle (active | deprecated, default active — owner-declared via the manifest's new lifecycle: field), deprecated_date, and successor_sdd_id columns, so a sunset product is expressible in the catalogues instead of prose (per the product-lifecycle coordination item, 2026-06-12). Unknown lifecycle values hard-fail manifest load — a typo silently defaulting to active would recreate the exact false-active bug the field exists to fix; companion fields declared while lifecycle is not deprecated are cleared with a convention finding (the schema's ignored-otherwise rule). The aggregator orphan-checks successor_sdd_id (sdd_id vocabulary, soft reference — [finding] orphan, never a hard FK failure; resolution set = direct contributors + stamped source_sdd_ids, so org-tier re-aggregation sees through cohort roots). Folded into the same pass per the coordination item: contracts.status (same empty-column family) now wires deprecated from BASELINE.md deprecation-runway entries (ADR 0073 §4.8, the validate-deprecation-runway.sh source) matched on path == spec_path, with a divergence finding for deprecated entries matching no discovered spec; absent BASELINE.md keeps all-active (unchanged). domains.status hardcode triaged as correct vocabulary (a discovered domain directory is active by definition; deferred/absent await an authoring source) and documented in-schema. products.status maturity divergence (builders emit active, not in the scaffolded|populated|reviewed enum) documented in-schema, deliberately unchanged pending triage. Estate note: every products.csv/applications.csv rebuild gains the three columns — default-filled and semantically neutral, not zero-diff. 1042 tests green (+17). v0.55.2 fixes the persona_c4system L1-priority bug: the builder now reads a sibling SDD's own `docs/c4-l1.md` before the syndicated platform L1. The 0.30.1 c4-systems L1 fix reordered only c4-systems; persona-c4system kept the old syndicated-first order, so persona_c4system matched the platform's personas instead of the sibling's (it stayed empty for siblings with their own L1). The three L1-reading builders (c4-systems, persona-c4system, c4-external-systems) now share one own-first candidate list (`c4-l1-candidates.ts`) so they cannot drift. No schema change; behaviour changes only for siblings that author their own `docs/c4-l1.md` (platform-roots and own-L1-less siblings are byte-identical). Verified cross-adopter: Contextua fleet-tracking persona_c4system 0->3, Connect sdd-linton 0->4 (diff isolated to persona_c4system.csv), Connect sdd-connect unchanged. 1025 tests green (+2). v0.46.0 ships catalogue schema 2.18.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged): adds the nullable `screens.group` column from frontmatter `group:` — a finer organisational sub-axis within/orthogonal to domain (e.g. shell | shell-embed | identity), free-form adopter label. Mirrors the 2.17.0 domain-column addition; empty when unauthored. 949 tests green (+1). v0.45.0 ships catalogue schema 2.17.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged): adds the nullable `screens.domain` column, sourced from screen-spec frontmatter `domain:` (a docs/domains/<domain>/ slug). It is an organisational grouping hint for multi-domain platform-profile SDDs (e.g. sdd-connect grouping identity vs platform screens) — the AUTHORITATIVE screen->domain relationship remains derived via realises -> feature -> capability.domain_id (screen_feature). Empty when unauthored; existing single-product SDDs are unaffected (column emits empty until they set domain:). 948 tests green (+1). v0.44.1 excludes reserved docs (INDEX.md / README.md) from recursive screen-spec discovery — a per-SDD screens/INDEX.md cross-reference must not be lexed as a phantom screen. 947 tests green (+the nested-discovery test now also asserts INDEX.md/README.md are skipped). v0.44.0 lets the screens builder discover screen-spec *.md RECURSIVELY under screens/ (new collectScreenSpecFiles walk), so a multi-platform adopter may nest specs by platform — screens/<platform>/<slug>.md — while single-platform adopters keep them flat (screens/<slug>.md); both are found and emit identical catalogues (screen id comes from frontmatter `screen:`, not the path, so nesting is purely organisational). The screens/wireframes/ subtree (rendered SVG artifacts) is skipped during the walk. Backward-compatible (flat layout unchanged); motivated by the Connect mobile cohort splitting iOS/Android variants into screens/{ios,android}/. No schema change (2.16.0 retained; SCHEMA_COMPAT ^2.0.0). 947 unit tests green (+1 nested-discovery test). v0.43.0 raises deterministic wireframe-renderer fidelity (ADR 0169 §4.4) by deriving human labels from tokens ALREADY in the openui-lang block — no spec change, no fabrication (Track 1 of the Connect wireframe-fidelity plan). screen-tree.ts buildCompositionTree now also captures each node's positional string args (MdcTab(\"Job Types\") → [\"Job Types\"]) and action=\"...\" values as render-only metadata (CompositionNode.args / .actions) — catalogue rows + depth metrics are byte-identical (the builders parse their own way; this is additive tree metadata). wireframe.ts picks each node's display label in priority order: positional arg → humanised action verb for button/fab leaves (action=\"new-job-type\" → \"+ New Job Type\", a +-prefix for create/new/add) → a windowed-pane tab label (a tab-strip sibling of a paged-panes with equal pane count takes each tab's text from the corresponding pane's content component name) → a humanised component name (strip a vendor prefix + an archetype-ish suffix, split camelCase, Title Case) for bespoke names (override/heuristic/fallback resolutions) → the raw short vendor name for recognised standard widgets (by_token `default` resolutions, e.g. VStack/RecyclerView). The :archetype is now a small dim secondary tspan annotation rather than inline same-size text, keeping resolution provenance visible (~ heuristic / ? fallback) without dominating the label. Humanisation is pure rule-based + deterministic (no Date/random; goldens byte-stable). Adopter-agnostic: the renderer reads vendor prefixes from the resolved default map's strip_prefixes PLUS a new render-only `strip_prefixes` array on the adopter overlay (ArchetypeOverlay.strip_prefixes, parsed by screen-validation-loader from `.sdd/screen-validation.yaml` archetype_overlays.<platform>.strip_prefixes) — bespoke prefixes like Mdc/Mde/St live in the adopter overlay, never in method code. No schema change (2.16.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged); render-only — no catalogue/aggregate impact. 943 unit tests green (was 936; +7 across screen-tree args/actions + renderer label-derivation/humanisation/paged-tab-linking). v0.40.0 closes out the ADR 0168/0169 screen-spec surface, no schema change (2.16.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged). (1) Source discrimination + the last depth finding: buildScreens reads `source:` from screen frontmatter (ADR 0135 — default screen-spec, screen-extraction for reverse-derived, others flagged) and carries it to ui_components rows; screen-evidence-missing (warn) fires when a reverse-extracted screen cites no [^…] evidence footnote, scoped to reverse-derived screens so forward authoring (no evidence claim) is exempt — all six ADR 0168 findings are now live. (2) Deterministic wireframe renderer: new `sdd-cli render screen <file>` verb lowers a screen-spec's openui-lang block to a structural-wireframe SVG — the deterministic companion to the LLM render-screen-wireframe skill. screen-tree.ts gains buildCompositionTree (cycle-safe, sharing a new parseStatements with analyzeComposition — metrics behaviour unchanged); archetype/resolver.ts exposes archetypeInfo (container flag + render hints); archetype/wireframe.ts resolves each node to an archetype, lays out nested boxes by the archetype's orientation hint, labels them component :archetype, and shades by resolution provenance (heuristic dashed, fallback dotted); platform comes from frontmatter, the overlay from .sdd/screen-validation.yaml. A structural wireframe, not a pixel design; parameterised entirely by the map (adopter-agnostic). 927 unit tests green (was 916; +5 source/evidence + +6 tree/wireframe). v0.39.0 completes the ADR 0168/0169 screen-spec depth surface with adopter-config wiring, no schema change (2.16.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged). New optional `.sdd/screen-validation.yaml` (loaded by screen-validation-loader.ts, returns null → method defaults, mirroring the .sdd/*-aliases.yaml pattern) carries three adopter-tunable params: flat_threshold (the screen-flat-composition N, default 6), decorative_primitives (component names that unlock screen-styling-primitive-as-structure), and archetype_overlays (per-platform {overrides: {Component: archetype}} refining the screen-root-is-leaf resolver, ADR 0169 §4.3). screens.ts now emits screen-styling-primitive-as-structure (warn) when a screen composes an adopter-flagged decorative primitive and threads the per-platform overlay into isContainerArchetype; build.ts loads the config and passes it into buildScreens. All three params no-op safely when unset (the vocabulary-free checks still run); the checks stay vocabulary-free — they consume adopter params, never hardcode them. Five of six ADR 0168 findings now live (flat / empty / status-gate / root-is-leaf / styling-primitive); only screen-evidence-missing remains deferred (needs forward/reverse source discrimination — source is hardcoded screen-spec). 916 unit tests green (was 910; +6 across the loader + styling-primitive + overlay-root-is-leaf paths). v0.38.0 implements sdd-method ADR 0168 (Screen-Spec Composition-Depth Validation) + ADR 0169 (OpenUI Archetype Maps and Screen Wireframe Rendering) — a fidelity floor on the screens family, no schema change (2.16.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged). The buildScreens path previously accepted any ```openui-lang block that parsed, so a low-fidelity reverse seed (flat / empty / mis-rooted \"widget bag\") was lowered into rows and could be marked status: working undetected. ADR 0168: new builders/screen-tree.ts parses the block into a composition tree (cycle-safe) and computes maxDepth / maxBreadth / rootChildCount / componentCount / containers; screens.ts strips inline # comments before the component + action scans (defect g — a Capitalised( token inside a comment no longer emits a phantom ui_components row) and emits screen-empty-composition + screen-flat-composition (warn) and screen-status-exceeds-depth (error) — a screen cannot claim the completeness-asserting maturity `working` (the sole such value in the ADR 0165 standard set {working, provisional, unknown, absent}) over an empty or flat composition. FindingsLog gains an optional severity (warn|error, default warn) + errorCount(); build.ts now fails the build on any error-severity finding by default, independent of --strict (the same tier as an internal FK failure). ADR 0169: new archetype/resolver.ts resolves a component name to a visual archetype (resolveArchetype → {archetype, provenance}, order override → default by_token after vendor-prefix strip → suffix heuristic → panel fallback) against a method-owned vocabulary (29 archetypes) + four default maps (web-generic / android / swiftui / uikit) vendored from sdd-method — vendor-standard names only, shipped to dist by copy-yaml-assets alongside canonical-schema.yaml; isContainerArchetype feeds the archetype-aware screen-root-is-leaf (error), which fires when a screen declares a known platform: and the map classifies the childless root as a leaf (combined with the appears-with-children heuristic) and no-ops without a platform: (the heuristic alone can't tell an empty container root from a leaf root). The flat-composition threshold N (default 6) is a builder input. The SVG wireframe renderer stays the LLM-driven render-screen-wireframe skill (sdd-method); a deterministic `sdd-cli render screen` verb is a deferred convergence target. Deferred within these ADRs: screen-evidence-missing (needs forward/reverse source discrimination — source is currently hardcoded screen-spec) and screen-styling-primitive-as-structure + manifest-wired adopter parameters (threshold / decorative-set / overlay). All checks reason about tree shape, status, and evidence presence only — never a component vocabulary (adopter-agnostic by construction). 910 unit tests green (was 882; +28 across screen-tree, resolver, and screens depth / status-gate / root-is-leaf / comment-leak tests). v0.37.0 ships catalogue schema 2.16.0 (additive minor; SCHEMA_COMPAT ^2.0.0 unchanged) implementing sdd-method ADR 0166 (Screen Specifications via OpenUI Lang Grammar) — the first forward-authorable + reverse-extractable UI-structure surface and the close of the last reverse-only parity gap (screens). Six new catalogues: screens + ui_components nodes and screen_component, screen_feature, persona_screen, screen_action edges (screen_action.event_id external-capable per ADR 0156); application-product profile, other profiles emit headers-only. New buildScreens builder reads authored screens/*.md screen-spec artefacts (YAML frontmatter + ```openui-lang block): Capitalised call heads → ui_components + screen_component (deduped), realises: → screen_feature and persona_access: → persona_screen (resolved via the feature/persona id maps, orphan findings when unresolved), action=\"...\" → screen_action (event_id best-effort, empty when no domain-event match); an entity-style slug normalises mixed-case component/feature keys. Phase Pre validated the design against a reverse adopter's real Vue 3 estate (research/adr-0166-prototypes/): component registry from the design-system barrel with nested-export resolution (114→183 components, zero genuine compose-only orphans), ~97 shell screens from the host-shell menu/passport registry, persona_screen via featureKey∈token-feature gating, screen_action from postMessage/event-bus messages. The from-code extraction is the reverse toolkit's job (reverse-screen-spec-extraction skill + workflow); the builder consumes the resulting screen-spec artefacts (source: screen-extraction) identically to forward authoring (source: screen-spec) per ADR 0135. 882 unit tests green (was 876; +6 buildScreens tests). v0.36.0 batches three wave-2 follow-ons, no schema change (2.15.0 retained; SCHEMA_COMPAT ^2.0.0). (1) ADR 0165 — features.maturity is wired from the feature-tree `[runway: X]` bullet marker when its value is in the standard set {working, provisional, unknown, absent}: the marker IS the maturity signal, so `maturity` (the cross-SDD-comparable column) is populated from it while `runway` keeps the full verbatim marker (adopter-owned, including non-standard values such as migration codes). Only the feature-tree bullet path sources a marker — feature-spec / capability-spec / feature-grounding leave maturity empty. features.ts gains STANDARD_MATURITY + maturityFromRunway(); the bullet row sets maturity: maturityFromRunway(ev.runway). Reverse adopter maturity 0 → ~185 (the standard-set subset of its 222 aggregated runway rows; the coordination doc's 388/393 was a raw pre-aggregation marker census, deduped to 222 runway / 185 maturity at aggregation); forward adopter unchanged (authors no markers — reverse-only today, a forward authoring source is a future parity item). (2) entities.glossary_term matcher — the glossary builder collapses multi-word term slugs (CONTAINER_MESSAGING → applications-containermessaging) while entitySlug hyphenates (container-messaging), so multi-word same-domain terms missed the exact/cross-domain-suffix match; resolveGlossaryTermBySlug in entities-mermaid.ts gains a boundary-insensitive SAME-DOMAIN fallback (compare hyphen-stripped forms, scoped to the entity's own domain to avoid cross-domain false positives). Reverse adopter glossary_term 100 → 142 (+42, e.g. CONTAINER_MESSAGING / VIEW_POOL / VIEW_POOL_ITEM / LOG_REQUEST / CANONICAL_EVENT / accountFeatures); forward adopter resolves via the manifest path, unaffected. (3) entitySlug acronym-boundary fix (ADR 0164 follow-on) — the [A-Z]{2,} rule that stops splitting a single leading capital off a following word (OAuthClient ≡ OAUTH_CLIENT), held from 0.35.0, ships here; reverse adopter persistence_kind 111 → 112 (OAuthClient resolves). Zero PK churn across both adopters. 876 unit tests green (was 871; +5 across the three changes). v0.35.0 implements ADR 0164 FSC-01 (Option A): the feature_subscription_channels builder now also reads the reverse-method per-domain reverse-evidence layout — `reverse-evidence/<domain>-feature-grounding.yaml` at the SDD root carrying a top-level `feature_subscription_channels:` list ({feature_slug, subscription_channels: [{name, transport, evidence}]}) — alongside the existing per-design-dir `features:` → `subscription_channels:` shape. The reverse adopter's per-domain files are capability-structured with no feature-level entries, so a top-level key is the right home (confirmed against the adopter's authored sample). The walker now collects both `feature-grounding-evidence.yaml` AND `*-feature-grounding.yaml` files in any reverse-evidence/ dir, and the parse loop gathers entries from both the `features:` and `feature_subscription_channels:` keys. Because the per-domain files are primarily authored for other tooling and aren't always strict YAML (backtick scalars, compact mappings), only the canonical per-design-dir `feature-grounding-evidence.yaml` surfaces read/parse-error convention findings — per-domain files that fail to parse are skipped silently (the builder isn't their validation authority). Validated against the reverse adopter's live authored block: 1 row (transport=other preserved verbatim — a custom API Gateway WebSocket broadcast, not AppSync; never auto-corrected), 0 spurious findings. No schema change (2.15.0 retained; SCHEMA_COMPAT ^2.0.0). 872 unit tests green (was 871; +1 per-domain-layout test). Companion wave-2 note: the 0.34.0 persistence_kind coverage at the reverse adopter landed at 109/263 — confirmed correct (the ~157 estimate counted Data Store Mapping store-rows, not distinct erDiagram-resolvable entities; 41 of 43 unresolved are legitimately data-store-only rows with no entity node, 2 are an entitySlug acronym-boundary edge — OAuthClient↔OAUTH_CLIENT — flagged for separate triage, not bundled here because entitySlug drives entity PKs catalogue-wide). v0.34.0 implements sdd-method ADR 0164 (Entity Persistence-Kind Reverse Source) — the tenth instance of the parity-series arc and the second on a node catalogue's descriptive columns (after 0.33.0's services columns). entities.persistence_kind was 0% on both reference adopters: the reverse adopter authors the physical store per entity in the `## Data Store Mapping` table's `Store` column (MySQL/MongoDB/DynamoDB/Kinesis/ActiveMQ/in-memory across four column-shape variants), and `service-entity-tables.ts` ALREADY parsed that table for service_entity edges but read past the Store column; the entity builders (entities-mermaid.ts, entities-manifest.ts) hardcoded persistence_kind empty. Phase Pre against live checkouts overturned the originating coordination doc's proposed mechanism: the doc proposed storing the raw engine family (MySQL/MongoDB/...), but the schema (ADR 0159) already defines persistence_kind as a CLASSIFICATION (relational-table | document-collection | event-payload | dto | view | other) with a [finding] convention on out-of-set values — storing engines verbatim would flag every row. Resolved by DERIVING the classification from the engine (the deriveLanguage precedent — a normalised token from a raw cell: MySQL/Aurora/Postgres→relational-table, Mongo/Dynamo→document-collection, Kinesis/ActiveMQ/Kafka→event-payload, in-memory/transient→dto, else other) and preserving the raw engine string in notes (store=...). New shared builders/data-store-mapping.ts holds the table primitives (findDataStoreTable/detectColumn/splitRow/collectTableLines/normaliseEntity) + derivePersistenceKind, refactored out of service-entity-tables.ts (byte-identical edge output, 12 tests green); new builders/entity-persistence.ts enrichEntityPersistenceKind runs in build.ts after the entity-id indexes exist, fill-if-empty (a persistence_kind already set is never overwritten), emitting a [finding] coverage with the fill count + any unmapped store values. erDiagram-only entities (not in any Data Store Mapping row) stay empty (legitimate partial coverage); forward-method adopters author a store-less Data Store Mapping (Entity | Owning Service | Notes — no Store column) so persistence_kind stays empty with no finding (reverse-only, like services runtime/status in 0.33.0). No schema change (persistence_kind exists since schema 2.13.0; SCHEMA_COMPAT ^2.0.0 unchanged). Cross-adopter validation: Connect (reverse) classifies 157 entities (relational-table 72 / document-collection 36 / dto 19 / event-payload 16 / other 14 — object/blob/cache stores like S3/Redis/Blob); Contextua (forward) 0 (store-less table → reverse-only, correctly empty). 871 unit tests green (was 857; +14 across data-store-mapping classification + entity-persistence enrichment). Wave 2 of the 2026-05-30 column-coverage audit also triaged feature_subscription_channels (Option A — builder to read the reverse adopter's per-domain reverse-evidence layout — accepted but deferred until channels are authored) and events.version (no action, unauthored both); see ADR 0164 §5. v0.33.0 implements sdd-method ADR 0163 (Service Metadata Forward Parity and Federated Reverse Enrichment) — the ninth instance of the parity-series arc and the FIRST on a node catalogue's descriptive columns rather than an edge, extending the ADR 0157 principle from edges to node columns. Two additive pieces, no schema change (schema 2.15.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged). P1 (forward parity for services.description): the column now also sources from the FORWARD `repo-config.<repo>.description` field — already parsed by RepoConfigSchema but previously dropped (repositories.ts emitted no description column; services.ts never read it) — alongside the REVERSE `service-architecture.md ## Purpose` source 0.32.0 added. build.ts threads a repoId→description map off reposResult.configs into buildServices, which coalesces forward-wins-on-conflict with a [finding] divergence (usually a plain coalesce since an adopter authors only one of the two). Contextua (forward, 60/60 repo-configs carry description:) lifts services.description 0%→~100%; Connect unaffected by P1 (0% repo-config description; keeps the reverse ## Purpose source). P2 (federated reverse-metadata enrichment): the service-architecture parsing is extracted verbatim into a shared service-architecture-parser.ts (parseServiceArchitecture / readServiceMetadata / indexServiceArchitectures) imported by BOTH the per-SDD services builder and the aggregator — no behaviour change to the per-SDD path. aggregate.ts gains a post-services-union pass (enrichFederatedServiceMetadata) that backfills ONLY the empty reverse columns (runtime_type/language/status/confidence/description) on platform-root service rows whose service-architecture.md lives one federation hop away in a member SDD, indexing each sibling's <sddRoot>/repos/**/docs/service-architecture.md (the aggregator already resolves every sibling root) and matching repo-slug == service-id. Fill-if-empty (connect-local / platform-root metadata is never overwritten; order-independent across members); a slug whose arch doc exists in >1 member is AMBIGUOUS and refused with a [finding] convention rather than guessed; an enrichment [finding] coverage logs cells/rows filled vs still-empty. Option 1 (aggregator reads member repos/ docs directly) chosen over a per-member catalogues/ side-emission (1b) to avoid a schema touch while the deferred 3.0.0 cleanup is pending; member service-emission rejected (both reference adopters centralise the service inventory in the platform-root). Phase Pre validated both against live checkouts: Contextua 60/60 description: (P1 0→~100%); Connect's member arch-doc slugs resolve to platform-root service ids with ZERO cross-member collisions, and the shared parser was run against a live member arch doc (status/confidence/description extracted; runtime_type faithfully empty where the doc carries no Primary-runtime row). For Connect's 38-sibling federation this lifts the ~172 federated services (whose detail lives in member SDDs) from the 0.32.0 connect-local ceiling toward full inventory coverage. The four runtime/operational columns (runtime_type/language/status/confidence) are documented in the metamodel as reverse-only — forward-method adopters legitimately leave them empty (they declare service_type + dependencies). 857 unit tests green (was 843; +14: P1 forward-wins / reverse-fallback / divergence / no-false-divergence; P2 member-enrich / fill-only-empty / no-doc-stays-empty / ambiguous-slug-refused). v0.32.0 lifts catalogue-builder column coverage that the canonical builder previously hardcoded empty, with no schema change (schema 2.15.0 retained; SCHEMA_COMPAT ^2.0.0 unchanged) — the source content already existed and was simply unwired (regression class from the retired python build-catalogues.py → canonical sdd-cli migration). Four builders now populate from existing source: (1) repositories.ts joins `docs/platform/reference/loc-report.csv` (keyed repo_name==id) to fill files/code/comment/blank/total_lines/languages (graceful coverage-finding when the report is absent, as in federated SDDs); (2) services.ts reads each service's `repos/**/docs/service-architecture.md` (recursive index over both flat repos/<repo>/ and grouped repos/<group>/<repo>/ layouts) — `## Runtime / Build Shape` Primary-runtime → runtime_type + derived language; `## Operational Status` Classification → status, Confidence → confidence; `## Purpose` lead paragraph → description (buildServices is now async + takes sddPath); (3) capabilities.ts extracts each spec's `## Overview` lead paragraph → description; (4) glossary.ts backfills glossary_items.canonical_term_id + aliases from the glossary_xref alias-of/references edges (same alignment manifest). Connect rebuild impact: repositories LOC 0%→95% (632/660); capabilities description 0%→99% (193/195); glossary canonical_term_id/aliases 0→6 (the genuinely cross-domain-duplicated terms, the G-02 data floor); services metadata to the 88/260 connect-local ceiling (status/confidence 33%, runtime/language 23%, description 30%) — the remaining 172 services' architecture docs live in federated member SDDs (a federation-topology follow-up, not a builder gap). 851 unit tests green (was 842; +9 across the four builders). v0.31.3 patches the per-SDD catalogue build to make keyed-table emission set-correct over the metamodel-declared primary key per `coordination/feature-edge-cross-source-duplicate-coordination.md` (sdd-method-gov, 2026-05-29) — the direct consequence of the 0.30.2/0.30.3 unconditional-emit fixes. Those fixes correctly stopped feature_repo / feature_service edges being dropped on feature-id collision by relying on each walker's per-walker seenFeatureService / seenFeatureRepo dedup sets; but those sets are fresh per walker, so when two edge sources (feature-grounding from design docs + capability-spec from product specs) assert the SAME feature→service / feature→repo fact, build.ts concatenated both contributions with no cross-source reconciliation, emitting duplicate edge PKs that `catalogue aggregate` then correctly rejected. New `dedupe-keyed-tables.ts` pass runs over every catalogue after collectRows: rows are grouped by the schema-declared primary_key; identical rows for the same PK union to one (silent — the same fact asserted by ≥2 sources is not an error); a same-PK/different-payload collision is a hard build failure with provenance, giving a build-time PK-uniqueness guarantee that catches this class of defect at `build` (where the offending SDD is unambiguous) one level earlier than `aggregate`. Generalises the per-walker guard across sources for ALL keyed tables, not just the two edge tables, so any future multi-source-derived table is set-correct by construction. Connect (first multi-source-edge adopter — feature-grounding + capability-spec both populating feature edges) is the first to exercise the overlap: a fresh build unioned 36 exact-duplicate edge rows (32 feature_service + 4 feature_repo) to 0 dup PKs with aggregate FK PASS and no post-build dedupe workaround; forward single-source adopters (Contextua) emit byte-identical output (no overlap to dedupe). 842 unit tests green (was 836; +6 dedupe-keyed-tables tests: cross-source union, feature_repo union, same-PK/different-payload conflict, null/empty cell parity, single-source untouched, empty-PK verbatim). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged; schema 2.15.0 retained. v0.31.0 implements sdd-method ADR 0162 (Platform-Dependencies Forward-Path Parity) — the eighth instance of the parity-series arc and the inverse direction of ADR 0157 (a reverse-only edge gaining its forward sibling). The `product-platform-dependencies` builder now multi-source ingests (ADR 0156 pattern): in addition to the reverse-method `reverse-evidence/feature-grounding-evidence.yaml` `platform_dependencies:` block, it reads the FORWARD source `app-platform-dependencies.yaml` at the SDD root — the same file product-edges already reads for product_capability / product_service. Phase Pre reframed the originating coord doc's Option A (a NEW `repo-config.platform_dependencies:` block): the forward authoring already exists in `app-platform-dependencies.yaml` (its `platform_dependencies:` entries carry capability_id + service_id), so reading it is zero-new-authoring rather than asking adopters to re-author. An entry needs both capability_id and service_id to form a product_platform_dependencies row (single-sided entries remain valid product_capability / product_service rows, skipped silently here). Merge by PK {product_id}__{target_capability_id}__{target_service_id}; forward wins on conflict (reverse entry dropped with [finding] divergence); within-source duplicates keep the first. The aggregator's deriveCrossSddPlatformCapability is unchanged — forward-sourced rows flow through the same per-SDD table, so cross_sdd_platform_capability populates automatically. Forward read is file-presence gated (the file only exists in consuming SDDs), covering both application-product and integration-product consumers. Predicted impact: the reference forward-method 35-sibling federation (already authoring app-platform-dependencies.yaml, feeding product_capability=55 / product_service=53) emits ~55 product_platform_dependencies rows on rebuild; reverse-method adopters unaffected (their reverse-evidence rows emit exactly as before). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged; schema 2.15.0 retained. 834 unit tests green (was 830; +4 forward-source tests: forward-only emission, single-sided skip, forward+reverse merge on distinct PKs, forward-wins-with-divergence on PK conflict). v0.30.3 patches the capability-spec walker (`capability-spec.ts`) per `coordination/capability-spec-collision-edges-coordination.md` (sdd-method-gov, 2026-05-29) — the same two-level drop-edges-on-collision bug fixed for feature-grounding in 0.30.2, surfaced by the 0.30.2 defensive-review follow-up. capability-spec runs last of all feature sources (after feature-tree, feature-spec, feature-grounding), so in any forward SDD where feature-spec already emitted every feature, every capability-spec feature id collides; pre-0.30.3 the walker `continue`d past the whole row on collision, dropping its `feature_repo` + `feature_service` edge contributions (the edges live only in capability-spec's `## Feature Grounding (code-path trace)` columns per ADR 0145), and `build.ts:473-491` additionally gated those edges' storage on `featureRows.length > 0` — the identical second-level wiring bug feature-grounding had at `build.ts:431`. Latent in shipped catalogues today (no observed adopter authors edge-bearing capability-spec files that collide), but a real defect. Fix mirrors 0.30.2 exactly: collision skip narrowed to the feature row + capability_feature (those go to the earlier source); `feature_repo` + `feature_service` edges emit unconditionally (the existing `seenFeatureService` / `seenFeatureRepo` dedup sets prevent double-emission); edge storage in `build.ts` moved outside the row-count conditional, matching the grounding fix at `build.ts:445`. Divergence finding softened to '... wins; edges still emitted'. 830 unit tests green (was 830; existing capability-spec collision test extended to assert the colliding feature's `feature_service` edge still emits). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged; schema 2.15.0 retained. v0.30.2 patches the feature-grounding walker per `coordination/feature-grounding-collision-edges-coordination.md` (sdd-method-gov, 2026-05-29). Pre-0.30.2 the walker dropped the ENTIRE grounding row — including its `feature_repo` and `feature_service` edge emissions — whenever the feature id collided with a row already emitted by an earlier source (feature-tree or feature-spec). Because feature-spec extraction runs first and covers every feature with an authored spec, grounding's edge contribution was structurally unreachable in any forward SDD with a complete feature spec layer; the canonical builder contradicted ADR 0143 §2's stated purpose ('the three edge catalogues feature_repo, feature_service, capability_feature are easiest to populate from this source'). Fix narrows the collision skip to the row identity only — `features.csv` and `capability_feature.csv` go to the earlier source (correct per spec text: feature-tree/feature-spec carry runway / group / parent context that grounding doesn't), but `feature_repo` and `feature_service` edges emit unconditionally (correct per ADR 0143 §2: those edges live only in grounding's column shape). Phase Pre against the contextua-platform canary file at `docs/domains/party/design/organization-management/feature-grounding.md` (9 features, all pre-existing as feature-spec rows; all pointing at real `contextua-platform-code/party-management/src/...` paths) ALSO caught a second-level bug in `build.ts:431`: the `if (grounding.featureRows.length > 0)` block gated `feature_repo` storage on the row emission; in the all-collide case (every grounding row already exists from feature-spec), the walker would compute the repo edges correctly but `build.ts` would never persist them. Both bugs fixed in this patch; `feature_repo` and `feature_service` are now stored unconditionally from `grounding.*Rows` outputs. Cross-adopter regression on the canary: 0 → **9 feature_repo rows + 11 feature_service rows + 18 feature_event rows** (derived via ADR 0161's `feature_service ⋈ service_event` join); FK PASS. Divergence finding language softened to clarify edges still emit: 'feature id ... already emitted by an earlier source (feature-tree / feature-spec wins for the row; feature_repo + feature_service edges still emitted per ADR 0143 §2)'. Method docs amended: catalogue-builder-specification.md §'Feature grounding table form' precedence rule rewritten to spell out the narrow-collision semantics. 830 unit tests green (was 830; existing collision test extended to assert feature_repo + feature_service edges still emit for the colliding row; no new test files). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged; schema 2.15.0 retained. v0.30.1 patched the c4-systems walker per `coordination/c4-systems-l1-priority-bug-coordination.md` (sdd-method-gov, 2026-05-29). Pre-0.30.1 the walker's `L1_CANDIDATES` priority list read `docs/platform/diagrams/c4-l1-context.mermaid.md` first; in federated cohorts where siblings carry a syndicated copy of the platform-root L1 at that path AND also author their own L1 at `docs/c4-l1.md`, the walker would shadow the sibling's own L1. Result: every Connect application sibling's `c4_systems` row reflected the platform's description text instead of its own. Option A from the coord doc applied — `L1_CANDIDATES` order reversed so `docs/c4-l1.md` ranks first (sibling's own L1), `docs/platform/diagrams/c4-l1-context.mermaid.md` ranks last (platform-root's own L1 / syndicated fallback). The platform-root SDD is unaffected — its own L1 IS the syndicated path; the walker now reaches it via fall-through to priority 4, reading identical content. Sibling SDDs that don't author their own L1 (Connect's 23 data-capture + 4 mobile siblings) also unaffected — they fall through to the syndicated copy as before. Cross-adopter regression: Connect cold-chain (forward-method application sibling with own `docs/c4-l1.md`) — `c4_systems` row refreshes from `name=Connect, description='Fleet management platform...'` to `name=Cold Chain, description='Temperature monitoring, alarm management, and EN 12830 compliance reporting'`; FK PASS. Connect calamp (data-capture, no own L1) — row unchanged. Connect + Contextua platform-roots — unchanged. Method docs amended: catalogue-builder-specification.md §Builder-inputs gains the priority-ordered candidate list with rationale; catalogue-metamodel.md §C4System gains the L1 source resolution paragraph. 830 unit tests green (was 828; +2 cross-adopter regression tests: own-L1-wins-over-syndicated; data-capture-fallback-preserved). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged. Important: v0.30.0 (released same day) did NOT include this fix — that release shipped the separately-tracked C4 L3 components walker. Patch sequence: 0.30.0 = L3 walker; 0.30.1 = L1 priority fix. v0.30.0 shipped the C4 L3 components walker per `coordination/c4-l3-walker-and-path-convention-coordination.md` (sdd-method-gov, 2026-05-29). New `c4-components.ts` walker reads `c4-l3-*.mermaid.md` files from the same three location patterns as the L2 walker (per-domain under `docs/domains/<dom>/architecture/diagrams/`; platform-wide at `docs/platform/diagrams/`; per-product at `docs/`). Each `Component(...)` inside a `Container_Boundary(local_id, \"Display Name\")` emits one `c4_components.csv` row with id=`{container_id}-{component-slug}`. container_id resolution: slugify the Container_Boundary's display name and match against `c4_containers.id` rows ending in `-{slug}`; unresolved boundaries fire `[finding] orphan: c4_components: ... Container_Boundary \"X\" doesn't resolve to a c4_containers row — N component(s) skipped`. `service_id` is denormalised from the resolved container. Walker is granularity-agnostic — both per-container files (one Container_Boundary block per file) and per-domain rollup files (multiple Container_Boundary blocks per file) produce identical row output; adopters pick the shape that suits their workflow. The earlier Path-B deferral (build.ts comment, since superseded) assumed reverse-method code-walking for L3; this walker is the forward-method analogue. Phase Pre against both reference adopters confirmed: 0 c4_components rows pre-fix in both (universal-empty across 121 Contextua containers + 329 Connect containers; no L3 file authored anywhere); the L2 walker is the structural template. Cross-adopter regression: Contextua + Connect each emit 0 c4_components on tag day (no L3 files authored yet); FK PASS in both; no regression to c4_containers / c4_systems / persona_c4system row counts. 828 unit tests green (was 818; +10 buildC4Components tests covering single-component, per-domain rollup, orphan resolution, platform-wide path, per-product path, service_id denormalisation, responsibility emission, dedupe, empty-input). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged; schema 2.15.0 retained. Phase Pre also surfaced a separate pre-existing bug (c4-systems walker prioritises syndicated platform L1 over sibling's own `docs/c4-l1.md` — every Connect sibling's c4_systems row currently reflects platform content) — filed as a follow-on coord finding in sdd-method-gov, not blocking this release. v0.29.1 patched the personas walker per `persona-walker-platform-product-gap-coordination.md` (sdd-method-gov, 2026-05-29). The walker was profile-gated to application-product only, so platform-product SDDs that author Person() shapes on their L1 context diagram (the natural location for cross-app personas — Group Manager, Operator, Platform Admin, etc.) had no canonical source for the personas walker to resolve against. Every build emitted N coverage findings (one per declared Person) and `persona_c4system` materialised 0 rows from those declarations. The walker now reads `personas/<slug>.md` at SDD root regardless of profile — each SDD's personas/ holds personas at that SDD's scope (application-product: app-specific; platform-product: platform-wide/cross-app surfaced on L1). Phase Pre against both reference adopters surfaced that the original coordination doc's 'symmetric with ADR 0146' framing was incorrect — ADR 0146 chose Option C (cross-app journeys routed through `docs/domains/applications/product/features/cross-app-journeys/` via the capability-spec-as-feature-source pipeline per ADR 0145), NOT a walker extension. The user_journeys walker stays profile-gated to application-product (confirmed in user-journeys.ts:59). With no walker-extension precedent to mirror, the location decision needed fresh argument; relaxing the profile gate (the location both reference adopters independently tried first) is the smallest method change and the obvious-to-authors path. Cross-adopter regression: Contextua (had already authored 4 persona files at `personas/` SDD root before discovering the gap, per coord doc evidence) — 0 → **4 personas + 4 persona_c4system** edges (all 4 L1 Person declarations resolve cleanly: Group Manager, Operator, Partner Developer, Platform Admin). FK PASS. Connect (no personas/ authored yet) — stays at 0 + 0 rows; gains one new informational `personas/ not found` finding under platform-profile (the previously-silent gap is now visible). FK PASS. Sibling application-product SDDs unchanged (regression-checked). 818 unit tests green (was 817; +2 cross-profile personas tests, -1 application-product-only gate test). No schema change; SCHEMA_COMPAT (^2.0.0) unchanged. v0.29.0 shipped catalogue schema 2.15.0 (additive minor) implementing sdd-method ADR 0161 (Feature-Event Derived Edge) — the seventh instance of the parity-series arc and the completion of the capability/feature/service trio of materialised event edges. New edge catalogue `feature_event` (id, feature_id, event_id, role, source) emits from the pure derived join `feature_service ⋈ service_event`, mirroring ADR 0160's capability_event derived path one rung lower in the hierarchy. PK is `{feature_id}__{event_id}__{role}` so a feature can carry both publishes + consumes rows for the same event without collision. No authored shape — every row carries source=derived (the authored signal lives at the service level via service_event, which the feature inherits through feature_service). Phase Pre against both adopters surfaced three findings that materially changed the original coord doc's premise: (1) the parent dependency `events-catalogue-builder-gap-coordination.md` claim that Connect's events.csv = 0 was stale; 0.26.1's slug-from-name patch has events.csv at 62 rows + service_event at 61 rows + capability_event at 144 rows; no parent blocker existed for this work; (2) the existing `feature_subscription_channels` table in canonical-schema is for GraphQL/MQTT/AppSync push channels (sourced from `reverse-evidence/feature-grounding-evidence.yaml` `subscription_channels:` entries per schema 2.9.0), NOT for event-bus subscriptions as the metamodel doc and coord doc both assumed — Track A reconciles the metamodel doc to match canonical-schema's actual semantics; (3) the (feature, event) edge the coord doc imagined is a different concept entirely and is the right scope for materialisation. Cross-adopter regression: Adopter A (Connect, reverse-method) — 0 → 82 derived rows (FK PASS; Phase Pre estimated 55, actual higher because service_event has 61 rows averaging ~2.7 features/service via feature_service's 556 rows); Adopter B (Contextua, forward-method) — 0 → 0 rows (feature_service.csv = 0 today; will populate when ADR 0143's feature-grounding extractor gets a forward-method analogue, same parity gap as platform-dependencies). 825 unit tests green (was 817; +8 buildFeatureEvent tests covering single match, fan-out across features, fan-out across services, both publishes+consumes for same (feature, event), unknown-feature/event filtering, empty input, source=derived assertion). SCHEMA_COMPAT (^2.0.0) unchanged. v0.28.0 shipped catalogue schema 2.14.0 (additive minor) implementing sdd-method ADR 0160 (Capability-Event Multi-Source Ingestion) — the sixth instance of ADR 0157's parity principle and the cleanest 'builder reads X, adopter authors Y' instance in the parity series (a forward adopter actively authoring event intent in a shape the builder never read). The `capability_event` walker (`event-edges.ts::buildCapabilityEvent`) now reads three equal-status sources merged by PK: (1) forward shape A — legacy `traceability.events[{id, role}]` (unauthored across observed adopters, retained for compatibility); (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 via the same normaliser the events walker uses; pre-lock sketches fire `[finding] orphan` rather than dropping silently); (3) reverse-derived — `capability_service ⋈ service_event` join on service_id (zero-authoring associative path; no role filter because Phase Pre verified the originally-proposed role=primary filter is ineffective in practice — Connect 144 → 144). Authored wins on PK conflict. New `source ∈ {authored, derived}` column distinguishes authoritative ownership from associative coupling for governance queries — the 2.4× fan-out in Adopter A (services owning multiple primary capabilities) makes the provenance signal non-negotiable. The retired `## Related Events` capability-spec heading is struck from the canonical schema description, both reverse skills (`reverse-capability-spec-synthesis`, `reverse-event-catalogue-authoring`), and the metamodel — no adopter authored it and the template never carried the section. Cross-adopter regression: Adopter A — 0 → 144 derived rows (FK PASS); Adopter B — 0 → 21 derived rows + 4 shape-B orphan findings for sketches (calendars events pre-lock, will populate authored rows at contract lock-in; FK PASS). 809 unit tests green (was 802; +7 shape-B and derived-path tests). SCHEMA_COMPAT (^2.0.0) unchanged. v0.27.1 patched two issues in the 0.27.0 ADR 0159 walkers reported by adopter cross-validation: (a) profile-gates entities-manifest + glossary-xref to platform-profile only — both walkers read the platform-owned `docs/platform/reference/glossary-alignment-manifest.yaml`, which adopters syndicate verbatim to sibling application-product / integration-product SDDs for documentation accessibility; without profile-gating, every sibling re-emitted the same entity registry locally with unresolved-domain PKs, then collided en masse at aggregation (one adopter reported 304 duplicate-entity findings across 35 siblings). Mirrors the precedent set by domain-models.ts per ADR 0142. (b) platform-wide PK shape: replaces the leading-hyphen `-{slug}` PK for the 107 entries with `domain: platform-wide` with the sentinel-prefix `_platform-wide-{slug}`. The underscore prefix is unreachable via entitySlug (slugify strips underscores), so the sentinel can't collide with any real domain id including ecosystem-named domains. Cross-adopter regression: contextua-platform — entities=411 unchanged at platform-root; 107 platform-wide entries carry `_platform-wide-*` PKs; sibling SDDs cease re-emitting (0 entity rows from siblings); aggregator exit 0 cleanly. Connect — entities=263 unchanged (no `domain: platform-wide` entries authored); 0 `_platform-wide-*` PKs; FK PASS. 802 unit tests green (was 800; +1 profile-gate test per walker). Schema 2.13.0 unchanged; SCHEMA_COMPAT (^2.0.0) unchanged. v0.27.0 shipped catalogue schema 2.13.0 (additive minor) implementing sdd-method ADR 0159 (Data-Model Entities as First-Class Catalogue Nodes) — the fourth instance of ADR 0157's parity principle. Four new catalogues land in one release: entities (data-model entity nodes — distinct from glossary_items vocabulary and from domain_models files); service_entity (services touching entities, relation=owns from Data Store Mapping tables); c4_container_entity (transitive: service_entity ⋈ c4_containers.service_id); c4_system_entity (aggregation: c4_container_entity ⋈ c4_containers.system_id with container_count). Five walkers: entities-manifest (forward: models[].entities[] in glossary-alignment-manifest.yaml; handles platform-wide non-canonical domain, duplicate model entries, superseded status with superseded_by); entities-mermaid (reverse: parses erDiagram blocks in domain_models doc_paths; handles UPPER_SNAKE/PascalCase/lowercase entity authoring, multi-erDiagram-per-file with within-file dedup, Mermaid comments, relationship-arrow skipping, mixed-diagram-types-per-file); service-entity-tables (reverse primary: ## Data Store Mapping markdown tables with heading + column-shape variants, compound owning-service split on ' / ', trailing-parenthetical-annotation strip, cross-domain entity-resolution fallback); c4-container-entity + c4-system-entity (pure derivations, graceful empty-input). New optional alias map at docs/platform/reference/service-name-aliases.yaml resolves adopter display names ('App Shell UI', 'Cloud Bridge', etc.) to canonical services.id; graceful degradation when absent. New entity-aware slug helper (entity-slug.ts) adds an ALLCAPS-then-Pascal split rule on top of the base slugify so OBUConfigurationTemplate and OBU_CONFIGURATION_TEMPLATE produce the same slug — kept local to the entity walkers to avoid affecting events/contracts/capabilities (per ADR 0159 §4.6 deferred decision). Phase 1.1 entity_glossary lift: now also appends rows from entities.csv (reverse-method side) when glossary_term FK is populated, on top of the existing forward-method emission per ADR 0158. Cross-adopter regression: contextua (forward, pre-lock) — entities=411 (manifest-sourced), service_entity / c4_container_entity / c4_system_entity = 0 (empty-input regression-checked); FK PASS. Connect (reverse, mono-SDD platform-product) — entities=263 (Mermaid-extracted across 11 domains; matches Phase Pre prototype), service_entity=97 (heuristic-only resolution against the Data Store Mapping tables; ~135-155 expected after alias-map authoring per ADR 0159 §4.7), c4_container_entity=88, c4_system_entity=82, entity_glossary lifts from 6→100; FK PASS. Phase Pre prototypes (sdd-method/research/adr-0159-prototypes/) ran the walkers as throw-away Python against both adopters before committing to the spec — first ADR in the parity series to formalise this discipline after the 0.26.0→0.26.1 patch cycle showed real-data validation was needed. SCHEMA_COMPAT unchanged (^2.0.0). v0.26.1 fixed two Phase 1 outcomes from v0.26.0's three-ADR rollout, reported by adopter cross-validation. (a) ADR 0156 events walker: required explicit `id:` field on event-catalog.yaml entries, but the original coordination doc spec was \"derive id from name (slugged)\". Connect's authoring uses `name:` only, so all ~62 events skipped in 0.26.0. Walker now derives id-from-name when id absent (lowercase, hyphenate camelCase boundaries, replace non-alphanumerics with hyphens; explicit id wins when both present; within-domain slug collisions fire divergence finding). (b) ADR 0157 §4.2 amendment: repo_contract had only `contracts.source_repo_id` as its reverse derivation, but Connect's 0/30 source_repo_id outcome left them empty. Added a universal Path X analogous to §4.3 — `service_contract ⋈ services.primary_repo_id` (a service exposing a contract is implemented by a repo; the repo \"owns\" the contract). Schema 2.12.0 unchanged; SCHEMA_COMPAT (^2.0.0) unchanged; pure derivation-logic patch. Cross-adopter regression: contextua-platform — 108 repo_contract rows preserved (Path X reproduces forward-path edges; dedup keeps 108 net); Connect expects ~57 new rows via Path X plus ~62 events plus all downstream service_event edges once they rebuild. v0.26.0 ships catalogue schema 2.12.0 (additive minor) implementing three ADRs in one release: ADR 0156 (Event Catalogue Multi-Source Ingestion) adds the reverse-method `docs/domains/<domain>/contracts/events/event-catalog.yaml` walker alongside the existing forward avsc path — YAML wins on name/domain/publisher/transport/consumers; avsc augments schema_path/version when YAML is null. Transport enum opens (no hardcoded \"nats\" default); recommended values surface a convention finding when violated. service_event edges populate from YAML's publisher + consumers[] in addition to repo-config events.produces/consumes. ADR 0157 (Forward-Declared / Reverse-Derived Parity for Edge Catalogues) codifies the principle that every edge with a forward declared source MUST also have a reverse derived source, applied here to repo_capability + repo_contract: reverse derivations add `capability_service ⋈ services.primary_repo_id` (universal Path X) and `capability_feature ⋈ feature_repo` (Path Y via ADR 0143 evidence) for repo_capability, and `contracts.source_repo_id` denormalisation for repo_contract — alongside the existing forward-declared `additional_context:` / `repo-config.contracts:` paths. The orphan-finding pattern surfaces when reverse paths can't derive (e.g. capability_service rows referencing services with empty primary_repo_id). ADR 0158 (Glossary Cross-Reference Multi-Source Ingestion) extends glossary_xref ingestion from one walker to four (forward declared pair-form, reverse cross_domain_terms, reverse multi-domain conflicts with field-inspection disambiguation, forward supersedes via models[].entities[].superseded_by) plus introduces a new sibling edge catalogue entity_glossary for data-model-entity → glossary-term mappings (status ∈ {aligned, matched_direct}). Dedupe by (domain, entity_name, glossary_item_id) collapses same-domain multi-diagram entries while preserving cross-domain cross-level cataloguing. glossary_xref.relation enum extends from {alias-of, conflicts-with} to {alias-of, conflicts-with, references, supersedes}. SCHEMA_COMPAT unchanged (^2.0.0); additive minor across all three ADRs. Cross-adopter regression verified: contextua's existing forward-path rows (12 repo_contract, 78 events, 42 service_event) preserved exactly; new reverse-path additions (+30 repo_capability via Path X; +10 entity_glossary). v0.25.3 ships catalogue schema 2.11.0 (additive minor): relaxes c4_systems.product_id to a nullable FK. Every product is a system, but not every system is a product — external/SaaS systems catalogued as c4_systems (e.g. Salesforce, DocuSign, Zendesk) legitimately have no owning product. The FK + column were nullable: false, so organisation-level aggregation FAILed with dangling-FK errors on c4_systems rows whose product_id is empty (63 such across the bko/latam/masternaut platforms). The FK validator already passes nullable empty values (fk-validator.test.ts \"treats nullable FK with empty value as PASS\"), so no logic change. Builds with populated product_id (e.g. connect, where every c4_system has an owning product) are unaffected — nullable is strictly more permissive. SCHEMA_COMPAT unchanged (still ^2.0.0); backward compatible — existing 2.10.0 catalogues read unchanged, no migration. v0.25.2 fixes a sync bug: bundle.ts inferred is_forward_base from isBundleName (true for ANY known bundle) instead of isForwardBase, so an additive bundle that omits is_forward_base in its manifest — every sdd-method-cut reverse-extension-baseline — was misclassified as a forward base, making `sdd-cli sync` throw \"Forward-base bundle reverse-extension-baseline has no profile mapping\" and blocking adopters from layering the reverse extension over a forward base. Inference now uses isForwardBase (additive bundles correctly resolve to false). v0.25.1 is a conformance patch: v0.25.0's notes advertised that the legacy c4_containers types Infrastructure / External System \"remain recognised-but-WARNed during the 2.x line\", but no code emitted that finding (the builder-spec's \"a conforming builder MUST emit [finding] convention\" was unimplemented). v0.25.1 adds checkContainerTypeAdvisory, wired into both `catalogue build` and `catalogue validate`, emitting a `convention` finding for any c4_containers.type outside the canonical c4_container_type set {Application, Data Store}. It reads the allowed values from the schema enum (no hardcoded list) and self-disables once the enum is bound via column_enums (the 3.0.0 hard-fail path) or removed — handing off cleanly at the major bump with no double-reporting. The validate path has teeth (it fires over an existing catalogues/ dir — e.g. an adopter who upgraded sdd-cli but has not yet rebuilt a catalogue still carrying Infrastructure rows from the old builder, which is the warn-then-enforce migration window ADR 0155 §4.3 relies on before 3.0.0); the build path is defensive (the canonical builder derives type from the C4 macro and cannot emit a legacy value). No schema change; SCHEMA_COMPAT unchanged (^2.0.0); patch release. v0.25.0 ships catalogue schema 2.10.0 (lockstep with sdd-method ADR 0155 — Align C4 Catalogue Capture with Strict C4 Abstractions), bringing the catalogue's C4 layer into line with c4model.com/abstractions. New node catalogue c4_external_systems (C4 L1 external software systems extracted from System_Ext(...) / Container_Ext(...) on L1+L2 mermaid; id = ext-{slug}); new edges persona_c4system (the C4 Person-uses-System relationship, mapping Person(...) actors to personas rows — the C4 Person abstraction reuses Persona) and system_external_dependency (system integrates-with external, from Rel(...) lines, collapsed to system level per ADR 0155 §4.2). New advisory enum c4_container_type = {Application, Data Store}: the c4-containers builder now types ContainerQueue as Data Store (was the non-canonical \"Infrastructure\") and no longer emits Container_Ext as an internal container row (external containers are catalogued as c4_external_systems); the legacy types Infrastructure / External System remain recognised-but-WARNed during the 2.x line and are removed at the 3.0.0 major bump (the enum is intentionally not bound in column_enums until then). The aggregator dedups c4_external_systems by id across SDDs rather than failing the duplicate-PK check — the one narrowly-scoped exception per ADR 0134, since the same external system (e.g. ext-google-maps) is legitimately declared by multiple SDDs; attribute conflicts on a shared id surface as a convention finding. SCHEMA_COMPAT unchanged (still ^2.0.0); additive minor. v0.24.0 ships sdd-mcp Phase 8 — catalogue resources + tools on the read-only MCP server (sdd-method ADR 0128 + ADR 0150). New resources: sdd://catalogue/schema (vendored canonical schema as JSON), sdd://catalogue/metamodel, sdd://catalogue/category-taxonomy, sdd://catalogue (list of built catalogues), and sdd://catalogue/{name} (rows from catalogues/{name}.csv, validated against the schema, distinguishing not-declared from not-built). New tools: query_catalogue_coverage (row count + internal-FK pass), find_products_by_category, find_orphan_rows (broken internal FK targets), and query_edges_for_entity (every edge row referencing an entity). All reuse the existing src/lib/catalogue schema-loader + csv-reader rather than re-parsing; FK checks consider internal FKs only per ADR 0134 (external FKs are validated at aggregation). Markdown resources try the post-IA path (guides/, standards/) then fall back, returning a structured 'run sdd-cli sync' error when absent. v0.23.1 patches v0.23.0: `sdd-cli pack build` now populates source_commit + source_branch in the rendered BUNDLE_MANIFEST.yaml from `git rev-parse HEAD` / `git rev-parse --abbrev-ref HEAD` against the producer-repo working tree, matching sdd-method's build-method-baseline-bundle.sh provenance behaviour. Non-git producer dirs (CI artefact directories etc.) get the sentinel \"uncommitted\" so consumer-side parseManifest (which rejects empty source_commit) still accepts the bundle. Pre-v0.23.1 packs wrote empty strings and were unsyncable — discovered during the contextua-platform Phase 7 first-adopter pilot (ADR 0151) when operations-console refused the first build of contextua-app-context-pack@v0.1.0. v0.23.0 ships the adopter pack producer + consumer surface per sdd-method ADR 0151 (companion plan adopter-bundle-producer-model.md Phases 3a + 3b + 3c). New `pack` verb with build and validate subcommands lets platform-profile adopters (contextua-platform, CXS Connect) produce additive-layer bundles from a context-pack-seed.yaml declaration. The builder validates the seed against the canonical schema, resolves include: directives across files, expands managed_paths (literal + glob against the producer working tree), runs a producer-side leakage check (disjointness with the declared forward base + disjointness with declared forbidden_paths globs), stages the payload tree, emits SHA-256 checksums per managed file, renders BUNDLE_MANIFEST.yaml mirroring the .hbs template shape, and produces <pack-name>-v<semver>.tar.gz + sidecar .sha256. Consumer-side enforcement extends `sdd-cli sync` for the multi-bundle lock chain: requires_forward_base resolution verifies the consumer's lock carries a compatible forward base; requires_pack resolution enforces vertical-extension dependencies with full semver-range support (caret with pre-1.0 narrow per npm convention, tilde, exact pin, >=); the existing cross-bundle path-ownership check now functions for adopter pack names too (consumer-side leakage assertion); produced_by_adopter / scope / requires_forward_base / requires_pack carry from the manifest into the lock entry as additive optional fields preserving lock_version: 2. New `sdd-cli sync --config <path>` reads a multi-bundle method-baseline.config.yaml (ordered bundles[].source list) and iterates each through the single-bundle sync engine — mutually exclusive with --bundle. `sdd-cli list` surfaces adopter pack provenance: forward-base version in the repo line plus indented `+ <pack-name> <version> from <adopter-repo> [requires <base-pack>]` lines beneath; --verbose adds per-bundle managed_path counts; JSON format adds a per-repo bundles[] array carrying full provenance. Type relaxation: BundleManifest.bundleName and BundleEntry.name widened from the closed BundleName enum to string (adopter pack names are arbitrary per ADR 0151); the closed enum still applies to sdd-method forward bases, validated at parse time only when is_forward_base: true. BundleManifest parser migrated from line-by-line scalar regex to the existing yaml library dependency for nested requires_forward_base / requires_pack object parsing. v0.22.0 bundles three landed scopes. (a) ADR 0141 Phase 5 — `--agent-harness` flag on init/sync now accepts `github-copilot-cli` as the second reference implementation alongside the `claude-code` default; Copilot CLI sync writes `.github/hooks/{pre-tool-use,session-start}.json` with the same sentinel-based ownership pattern as the Claude Code `.claude/settings.json` block. Default changes from \"unset\" to `claude-code`; existing adopters on v0.12.2+ get sentinel-tagged-in-place via the dedupe pre-pass. Unknown harness values fail loudly instead of warning. (b) ADR 0148 Phase 4 — init and sync now emit `agent-instructions.md` at the SDD root (harness-neutral, fully method-managed, unconditional overwrite) plus a thin harness wrapper (`CLAUDE.md` under claude-code, `AGENTS.md` under github-copilot-cli) with `<!-- method-managed: begin/end -->` markers; adopter content around the marker block survives sync via the existing `writeMarkedBlockFile` machinery. The v0.3–v0.21 `generate-claude-md` verb + native rich-content renderer retire; the new `generate-briefing` verb regenerates both files from the on-disk templates for the no-bundle-sync case. Older bundles pre-dating ADR 0148 templates sync gracefully with a \"Skipped\" log line. Existing repos carrying a hand-rolled CLAUDE.md without markers will see the wrapper rewrite refused on first sync; pass --allow-overwrite after rehoming any custom content (covered in the upstream agent-instructions-migration-guide). (c) Catalogue schema 2.9.0 (lockstep with sdd-method v0.10.0 reverse-extension-baseline v0.9.0) carrying the Track 2 cohort-sweep field additions per content/plans/v0-9-0-cohort-sweep-derived-bundle.md: capabilities now carries data_subset (foundational/synthesis-tier keying axis) + slice_scope (multi-app-group capability slicing — same capability_id may appear with distinct slice_scope values, row identity becomes (id, slice_scope)); new per-feature edge catalogue feature_subscription_channels built from reverse-evidence/feature-grounding-evidence.yaml subscription_channels: entries (AppSync WebSocket / Pekko WS / MQTT / SSE channel layer, peer of graphql_operations: per resolved §1, kebab name + transport + evidence + optional payload_ref); new per-SDD edge catalogue product_platform_dependencies built from the product-scoped platform_dependencies: block in the same evidence file; new federated edge catalogue cross_sdd_platform_capability derived by the aggregator joining product_platform_dependencies × capability_service on target_service_id == service_id, emitting one row per resolved (consuming-product, platform-capability) pair with orphan findings for unresolved references. SCHEMA_COMPAT unchanged (still ^2.0.0); additive minor across both new catalogues and capability column additions. v0.21.0 ships catalogue schema 2.8.0 closing the long-tail contract-consumer mapping gap (K-03a). The contracts builder now also walks the platform-profile layout `docs/domains/<dom>/contracts/{openapi,proto,avro}/<file>.<ext>` documented in reverse/workflows/contract.md, in addition to the canonical `contracts/<subdir>/<dom>/<file>.<ext>` layout — backward-compatible additive change for federated SDDs that don't carry per-domain contracts. Adds a new buildServiceContractConsumes builder that parses each service's `repos/<service>/docs/service-architecture.md` External Interfaces table, reads Outbound rows, and emits `service_contract` rows with role=consumes via an adopter-supplied `.sdd/service-contract-aliases.yaml` (case-insensitive interface_aliases + interface_contains substring tier + same_product_inference templates with `{prefix}` substitution). Schema 2.8.0 marks service_contract.contract_id as external:true so federated SDDs can emit consumes rows pointing to platform-root contracts; aggregator validates the merged catalogue. Resolution failures become convention findings, not FK-invalid rows. Pattern documented in sdd-method ADR 0147. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.19.0 ships catalogue schema 2.6.0 (lockstep with sdd-method): adds optional `sub_integrations:` array on integration-manifest.yaml per ADR 0144. Multi-provider integration monoliths (modernisation-in-flight or intentional permanent gateways brokering N providers) can declare each provider; the integrations.ts builder emits one integrations.csv row per sub_integration with parent_product_id = umbrella SDD's integrationId. Uses the existing parent_product_id column — no new schema columns. Backward compatible (optional field); SDDs without sub_integrations emit identical output to pre-2.6.0. Originating motivation: connect's sdd-camera-platform-legacy covering Surfsight v2 + VisionTrack v1/v2 + SureCam in one Spring-Boot codebase. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.18.0 ships catalogue schema 2.5.0 (lockstep with sdd-method): adds feature-grounding source per ADR 0143. Canonical builder walks `docs/domains/<dom>/design/<capability>/feature-grounding.md` (platform-profile) and `docs/design/integration/feature-grounding.md` (integration-product), parses the markdown table form, and emits features.csv rows (source: feature-grounding, capability-owned) plus capability_feature / feature_repo / feature_service edges derived from the table columns. Optional per-SDD `.sdd/feature-grounding-aliases.yaml` translates display names (class names, file basenames) to canonical service / repo ids. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.17.0 enables multi-level federation: organisation-level SDDs can now aggregate from organisation-level children (e.g. CXS aggregating sdd-mining, sdd-latam) via optional level: organisation field on siblings, skipping manifest requirements for pure orchestration repos. v0.16.0 adds organisation-profile support for system-of-systems aggregators (e.g. CXS aggregating sdd-connect, sdd-mining, sdd-latam), closing the gap for organisation-level SDD manifests. v0.15.0 ships catalogue schema 2.4.0 (lockstep with sdd-method): adds feature_contract derived edge (forward: capability_feature ⋈ capability_contract; reverse: feature_service ⋈ service_contract) closing the Capability → Feature → Contract chain pre-implementation, plus the new DomainModel entity per ADR 0142 with domain_models / capability_domain_model / feature_domain_model catalogues sourced from a new traceability.domain_model manifest field (forward) or docs/domains/*/architecture/data-model.mermaid.md file-system scan (reverse). Platform-profile only for domain_models; the metamodel now also documents non-catalogued method artefacts (work orders, discovery stories, execution stories, traceability manifests) so it's a complete reference for the forward SDD method's artefact set. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.14.1 patches v0.14.0's domains-builder fix: products-builder now also clears domain_id for non-platform-profile rows even when manifest.domainId is declared. v0.14.0 stopped emitting umbrella domain rows but products.domain_id (and the applications.csv filtered view) still pointed at them, dangling at FK validation. Per ADR 0136 + schema description for products.domain_id, app/integration/support products do not have a primary domain — the builder now honours that statement regardless of manifest declaration, and emits an inferred finding when a manifest-declared value is overridden. v0.14.0 ships two post-v0.9.0-release fixes surfaced by the connect-cohort sync: (1) sync now enforces minimum_sdd_cli_version declared by bundle manifests — previously the orchestration check existed only in the shell sync script and was a no-op when adopters used `sdd-cli sync`, leaving the safety net for stale-CLI scenarios silently absent; (2) per ADR 0136 (App and Integration Products Do Not Belong to a Primary Domain), the domains.ts catalogue builder now skips row emission for non-platform-profile SDDs — application-product and integration-product SDDs that have a docs/domains/<umbrella>/ subdirectory as a structural-organisation convention no longer emit a member-declaration row that collides on PK at aggregation against the canonical platform-profile contribution. v0.13.2 fixed the aggregator's sibling-vendored-schema cross-check to use semver range satisfaction against SCHEMA_COMPAT.catalogue_schema (^2.0.0) instead of strict equality — siblings vendored at lower minor versions inside the same major are now accepted, unblocking aggregation across federated cohorts where the canonical schema is ahead of the bundled schema. v0.13.0 ships the feature-tree.md bullet parser per sdd-method schema 2.2.0 + plan extract-feature-tree-bullets.md: application-product builders now emit features.csv rows with source: \"feature-tree\" from per-app feature-tree.md bullets, populating the previously-empty edge catalogues (persona_feature, journey_feature) for portfolio monoliths whose feature inventory lives in the bullet form. Adds the optional runway column on features.csv with adopter-owned controlled-vocabulary validation via feature-runway-vocabulary.yaml at the SDD root. v0.12.2 dedupes equivalent unmarked adopter PreToolUse entries on settings.json upsert. v0.12.0 extends the integration profileType enum to 11 values (per sdd-method ADR 0137) and fixes the init→sync conflict. v0.11.0 shipped the canonical catalogue surface per ADR 0134 + schema 2.1.0.",
5
5
  "keywords": [
6
6
  "sdd-method",