Quick reference for determining your change class and requirements.
Start here and follow the branches:
βββββββββββββββββββββββββββββββββββββββ
β What files are you changing? β
ββββββββββββββββ¬βββββββββββββββββββββββ
β
βΌ
βββββββββ΄ββββββββ
β Only *.md β YES β β
β files? β β
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β registries/ β β
β *.json? β YES β [FM - Level 5]
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β schemas/ or β β
β schema.py? β YES β [Schema - Level 4]
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β tests/corpus/ β YES β [Corpus - Level 3]
β β β
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β base120/ β β
β validators/ β YES β [FM - Level 5]
β (not schema) β β
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β Breaking any β YES β [Breaking - Level 5+]
β tests? β β
βββββββββ¬ββββββββ β
β NO β
βΌ β
βββββββββ΄ββββββββ β
β Other files β β
β (CI, docs, β YES β [Editorial - Level 2]
β examples) β β
βββββββββββββββββ β
β
βββββββββββββββββ
βΌ
βββββββββ΄ββββββββ
β Only typos/ β
β formatting? β YES β [Trivial - Level 1]
βββββββββ¬ββββββββ
β NO
βΌ
[Editorial - Level 2]
| Files Changed | Semantic Impact | Classification | Level |
|---|---|---|---|
| Only *.md (typos) | None | Trivial | 1 |
| docs/, README.md | Structure only | Editorial | 2 |
| tests/corpus/valid/ (add) | New test | Corpus | 3 |
| tests/corpus/valid/ (modify) | Test change | Corpus (needs review) | 3 |
| schemas/*.json | Validation rules | Schema | 4 |
| registries/*.json | FM mappings | FM | 5 |
| base120/validators/*.py | Core logic | FM | 5 |
| Any (breaks tests) | API change | Breaking | 5+ |
Once youβve identified your change class, use this checklist:
β‘ Only *.md files changed
β‘ Only typos/formatting/comments
β‘ No semantic changes
β‘ CODEOWNER approval only
β‘ Documentation structure changes
β‘ Examples added/improved
β‘ No code changes
β‘ CODEOWNER approval only
β‘ Documentation builds (if applicable)
β‘ Added new test in tests/corpus/
β‘ All existing tests pass
β‘ New test passes
β‘ Justification in commit/PR
β‘ CODEOWNER approval
β‘ Audit update (commit message OK)
β‘ Modified existing test in tests/corpus/
β‘ Clear justification (why was old test wrong?)
β‘ All tests pass
β‘ PR description explains impact
β‘ CODEOWNER + 1 reviewer approval
β‘ Audit update in GOVERNANCE.md
β‘ Full test suite passes
β‘ Corpus diff reviewed
β‘ Backward compatibility analysis provided
β‘ Audit update in GOVERNANCE.md
β‘ CODEOWNER + 1 reviewer approval
β‘ Mathematical soundness justification
β‘ v1.0.x: PROHIBITED (unless security fix)
β‘ Full test suite passes
β‘ Mathematical soundness proof provided
β‘ Impact analysis on all corpus cases
β‘ Audit update in GOVERNANCE.md with rationale
β‘ CODEOWNER + 2 reviewers approval
β‘ Formal proof or detailed justification
β‘ v1.0.x: PROHIBITED (unless security fix)
β‘ Full test suite passes with updated expectations
β‘ Migration guide for users
β‘ Deprecation warnings (if phased)
β‘ Audit update in GOVERNANCE.md
β‘ Version bump justification
β‘ CODEOWNER + 3 reviewers approval
β‘ Governance board approval
β‘ v1.0.x: PROHIBITED (defer to v1.1.0)
If pyproject.toml version starts with 1.0.:
Classification: Highest impact level wins
Example:
Classification: Should be Trivial, but classifier may flag as FM
Action:
Classification: Likely a security fix or CI hardening
Action:
Classification: Depends on test impact
Decision:
Classification: Breaking (prohibited in v1.0.x)
Action:
# Run this in your branch:
git diff --name-only main | sort
# Count files by type:
git diff --name-only main | grep '\.md$' | wc -l # Docs
git diff --name-only main | grep 'registries/' | wc -l # Registries
git diff --name-only main | grep 'corpus/' | wc -l # Corpus
# If 100% docs β Trivial/Editorial
# If any registries β FM
# If any corpus β Corpus
# If any base120/*.py β FM or Schema
# Required for Level 3+:
pytest tests/test_corpus.py -v # Must pass
# Required for Level 4+:
pytest -v # Full suite must pass
# Check for audit update:
git diff main GOVERNANCE.md # Should show changes
# Check version:
grep '^version' pyproject.toml
# Check prohibited files:
git diff --name-only main | grep -E 'schemas/v1.0.0/|registries/'
# If any matches β PROHIBITED in v1.0.x
README.mdtests/corpus/valid/my-test.json, tests/corpus/expected/my-test.errs.jsonpytest tests/test_corpus.py -v passesbase120/validators/validate.py, tests/test_corpus.pydocs/*.md, examples/*.jsonDocument Version: 1.0.0
Last Updated: 2026-01-03
Related: GOVERNANCE.md v2.0.0
Status: Reference Guide