fix: align CI, schema, metadata, and docs with the four-layer rename - #6
Merged
Conversation
The l1-core / l2-extensions / l3-enterprise rename left CI globs, fallback discovery paths, version compatibility declarations, and docs counts pointing at the old layout. This PR closes those gaps and tightens the L2/L3 schema so the same drift cannot recur. CI / tooling - ontology-validate.yml watches l1-core/, l2-extensions/, l3-enterprise/, schema/ instead of the obsolete core/, extensions/, enterprise/, private_enterprise/. Drops the merge step for non-existent deloitte-china-consulting and points the acme merge at l3-enterprise/. - validate_l3.py fallback discover_files uses the new directory names. - mkdocs.yml site_dir is "site" so deploy-docs.yml no longer needs an intermediate _mkdocs_site copy step. Schema hardening (schema/extension_schema.json) - compatible_core_version and description_en are now required. - layer pattern enforces L2_*_extension or L3_* shape. - compatible_extension_version pattern added for L3. L2 / L3 metadata - consulting v1.1.1 and luxury-goods v2.0.1 declare compatible_core_version 2.1.0. - fnb extension renamed L2_fnb_industry -> L2_fnb_industry_extension, bumped to 1.0.2, and gained compatible_core_version + description_en. - acme L3 extends now references the bare layer IDs (no _v2/_v1 suffixes), bumped to 1.0.1, compatible_core_version raised to 2.1.0. - L2 and L3 templates updated so new extensions inherit the required fields. Documentation - L1 class count corrected from 28 to 24 (6 abstract + 18 concrete) in glossary/l1-classes.md and glossary/index.md. - CHANGELOG, RELEASE_NOTES, docs-site/changelog updated to "6 abstract + 18 concrete" instead of the inaccurate "4 abstract domains + 20 concrete". - CONTRIBUTING G-01 / G-05 entries reflect the real 13 relations / 24 classes ratio and clarify that G-01 caps abstract+concrete combined. - glossary/index.md G-01 row clarifies the cap unit and current usage 24/25. - Acme L3 README inheritance chain shows the real L1 (24/13) and L2 (54/45) sizes. - New docs-site/architecture/versioning.md explains why the repo version (2.4.0) and the L1 ontology content version (2.1.0) intentionally diverge. Verified locally - validate_governance.py: 15/15 PASS (24 classes, 13 relations, 18 axioms). - validate_l3.py --all: 7 L2 + 1 L3 = 0 errors, 0 warnings. - merge_layers.py on acme L3: 104 classes merged across L1+L2+L3. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for ontologystudio canceled.
|
PR #6 was opened against an older master. While in review, master gained 20 commits implementing Phase 0-4 of the parallel security/quality plan, which subsumed most of PR #6's CI and schema work but missed some consistency findings unique to PR #6. This merge keeps the strictly better master versions and preserves the PR #6 fixes that master did not address. Conflict resolution - ontology-validate.yml: take master (adds schema-validate job, check_docs_sync, health_report, run-documented-commands). - validate_l3.py: take master (adds extends-cycle detection, keeps private_enterprise/ in fallback for downstream private deployments). - deploy-docs.yml: take master's per-ref concurrency and PR-only build, drop the `_mkdocs_site -> site` copy step (mkdocs now writes to site/ directly via mkdocs.yml site_dir). - schema/extension_schema.json: keep PR #6's stricter `layer` pattern (anyOf L2_*_extension / L3_*) — master's `^L[23]_` would have allowed the original L2_fnb_industry name we just fixed. Keep master's abstract / owner additions to class items. - l2-extensions/fnb/...json: keep PR #6's bilingual description; drop the empty sample_instances: [] (it failed the schema's minItems: 5). - docs-site/glossary/{l1-classes,index}.md: keep PR #6's "(6 abstract + 18 concrete)" breakdown. Preserved from PR #6 (master did not have these) - L3 acme extends references the bare layer IDs (no _v2/_v1 suffixes). - L3 acme compatible_core_version raised 2.0.0 -> 2.1.0; version 1.0.0 -> 1.0.1. - CHANGELOG / RELEASE_NOTES / docs-site/changelog: "4 abstract domains + 20 concrete" -> "6 abstract: 4 domain roots + Party + Resource; 18 concrete leaves". - L3 acme README inheritance chain shows the real L1 (24/13) and L2 (54/45) sizes. - CONTRIBUTING G-05 ratio updated to 13/24 ≈ 0.54. - New docs-site/architecture/versioning.md (added to nav) explains why the repo version (2.4.0) and L1 ontology content version (2.1.0) diverge. Verified locally - validate_governance.py: 15/15 PASS. - validate_l3.py --all: 7 L2 + 1 L3, 0 errors / 0 warnings. - validate_schema.py: 9 OK / 2 SKIP / 0 FAIL. - check_docs_sync.py: PASS (22 bindings, no drift). - merge_layers.py on acme: 104 classes across L1+L2+L3. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
l1-core / l2-extensions / l3-enterpriserename left CI globs, fallback discovery paths, version compatibility declarations, and documentation counts pointing at the old layout. This PR closes 12 distinct consistency findings and tightens the L2/L3 schema so the same drift cannot silently recur.compatible_core_version,description_en, and a layer-name pattern are nowrequiredinschema/extension_schema.json. Future extensions cannot be merged with these fields missing.28to24(6 abstract + 18 concrete) across all docs; G-01 governance rule clarified to count abstract+concrete combined.docs-site/architecture/versioning.mdexplains why the repo version (2.4.0) and L1 ontology content version (2.1.0) intentionally diverge.What changed
CI / tooling
.github/workflows/ontology-validate.yml: globs updated tol1-core/**,l2-extensions/**,l3-enterprise/**,schema/**. Removed merge step for non-existentprivate_enterprise/deloitte-china-consulting/.scripts/validate_l3.py: fallbackdiscover_files()uses new directory names.mkdocs.ymlsite_dir: site;deploy-docs.ymlno longer needs the_mkdocs_site→sitecopy step.Schema (
schema/extension_schema.json)compatible_core_versionanddescription_enadded torequired.layerpattern:^L2_[a-z][a-z0-9_]*_extension$or^L3_[a-z][a-z0-9_]+$.compatible_extension_versionsemver pattern added (used by L3).Metadata fixes
l2-extensions/consulting/...1.1.0 → 1.1.1,compat 2.0.0 → 2.1.0l2-extensions/luxury-goods/...2.0.0 → 2.0.1,compat 2.0.0 → 2.1.0l2-extensions/fnb/...L2_fnb_industry → L2_fnb_industry_extension, version1.0.1 → 1.0.2, addedcompatible_core_version: 2.1.0anddescription_enl3-enterprise/acme-tech-solutions/...extendsno longer uses_v2/_v1suffixes (matches actual layer IDs); version1.0.0 → 1.0.1,compat 2.0.0 → 2.1.0_template/filesDocumentation
docs-site/glossary/l1-classes.mdanddocs-site/glossary/index.md:28→24classes.CHANGELOG.md,RELEASE_NOTES.md,docs-site/changelog.md: "4 abstract domains + 20 concrete" → "6 abstract + 18 concrete" (matches reality).CONTRIBUTING.md: G-01 clarified to count abstract+concrete; G-05 ratio updated to 13/24.docs-site/glossary/index.mdG-01 row notes "abstract + concrete combined" and shows current 24/25.l3-enterprise/acme-tech-solutions/README.md: inheritance chain shows real L1 (24/13) and L2 (54/45) sizes.docs-site/architecture/versioning.md(added to nav) explains repo version vs L1 ontology content version.Reviewer notes
compatible_core_versionanddescription_en.extendspreviously relied on a fuzzy prefix match invalidate_l3.py:118to reconcile the_v2/_v1suffixes against the bare layer IDs in L1/L2. Now it matches exactly — same merge result, no fuzzy fallback needed.mkdocs.yml site_dirchange:_mkdocs_site/is still ignored by.gitignore, so no untracked artifacts will appear after this merges.Test plan
python scripts/validate_governance.py→ 15/15 PASS (24 classes, 13 relations, 18 axioms)python scripts/validate_l3.py --all→ 7 L2 + 1 L3, 0 errors, 0 warnings on every filepython scripts/merge_layers.py l3-enterprise/acme-tech-solutions/...→ 104 classes merged across L1+L2+L3mkdocs build --strict(will be exercised bydeploy-docs.ymlon merge)🤖 Generated with Claude Code