@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.
- package/conventions/CLAUDE.core.md +11 -0
- package/package.json +1 -1
|
@@ -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 -->
|