Skip to content

Commit ecb32d1

Browse files
JSv4claude
andauthored
Map the Tier-2a ECCN shape key onto the CCL's own keys (#10)
OpenContracts #2276 moves ECCN citation extraction out of the Tier-1 registry extractor and into the Tier-2a grammars, where it emits a SHAPE-level key (`eccn:3a611`) instead of `ccl:3a611`. That change is right — core recognises "ECCN 3A611" without knowing whether a Commerce Control List corpus is installed, so emitting `ccl:` would hardcode the prefix THIS pack happens to bind into the framework, exactly as the `usreporter:`/`htsus:` precedent warns. But it means the pack now has to close the loop: without these rows every extracted ECCN citation resolves to nothing. 638 rows, one per CCL section, generated by `build/gen_equivalences.py` rather than hand-written — and generated for EVERY section rather than the ones some document happens to cite, so the next document to cite an ECCN works without anyone remembering this. They belong here rather than in the domain pack: ownership is decided by `to_key` alone, and `eccn:` is a shape prefix no pack declares, so these are not cross-pack rows. Verified from the registry root: `validate_pack.py ear` OK, `validate_domain.py --all` OK, both self-tests behaving. The ITAR workspace's `verify_split.py` gate confirms the split still preserves the monolith exactly (2,855 rows: 2,663 to packs, 192 cross-pack, 0 resolving to no pack). Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 316a5f0 commit ecb32d1

1 file changed

Lines changed: 1914 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)