@norskvideo/ctl-dev-kit 0.1.10 → 0.1.11

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.
@@ -50,5 +50,16 @@
50
50
  same as this core block and `flake.nix`; `check:drift` fails CI if a copy
51
51
  diverges. Only the `product:` key is per-repo. Never hand-edit the copy — edit
52
52
  the dev-kit source and re-sync.
53
+ - **A config-driven workflow needs a parity-checked invariant contract.** If this
54
+ product emits its Studio graph dynamically from config, every config dimension's
55
+ rules are documented as stable-ID statements in
56
+ `shared/src/schemas/INVARIANTS.md`, and every ID has an executable rule in the
57
+ composer rule-sweep (`shared/src/workflow/composer-rules.test.ts`). A parity
58
+ guard in that suite fails CI on any drift — a documented ID with no rule, or a
59
+ rule with no doc ID. So a config change is never done until the invariant is in
60
+ BOTH the doc and its test (same ID, added together); a runtime-only invariant
61
+ the emitted graph can't show goes in the explicit untestable-IDs set
62
+ (`COMPOSER_UNTESTABLE_IDS`), still parity-checked. `norsk-ctl-product-playout`
63
+ and `-commentary` are the worked examples.
53
64
 
54
65
  <!-- END ctl-shared-conventions v1 -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-dev-kit",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json"