This guide explains how to update Tigrcorn's mutable repository surface without creating truth conflicts between code, tests, machine-readable artifacts, human documentation, and immutable release roots.
Current maintainer of record in package metadata: Jacob Stewart (jacob@swarmauri.com).
- authors updating
README.md, operator docs, or governance docs - maintainers changing public CLI/API behavior
- release owners refreshing current-state or promotion materials
- agents/automation making repository edits
README.md.codex/AGENTS.mddocs/review/conformance/state/CURRENT_REPOSITORY_STATE.mddocs/review/conformance/CERTIFICATION_BOUNDARY.mddocs/review/conformance/BOUNDARY_NON_GOALS.mddocs/review/conformance/README.md- the relevant folder guide:
docs/ops/README.mddocs/gov/README.mddocs/protocols/docs/comp/README.md
When sources disagree, use this order:
- Definitive machine-readable truth
.ssot/registry.json- normalized
.ssotscaffold and document rows maintained through the SSOT CLI
- Canonical current-state truth
docs/review/conformance/state/CURRENT_REPOSITORY_STATE.mddocs/review/conformance/current_state_chain.current.json
- Boundary and applicability policy
docs/review/conformance/CERTIFICATION_BOUNDARY.mddocs/review/conformance/STRICT_PROFILE_TARGET.mddocs/review/conformance/BOUNDARY_NON_GOALS.mddocs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md
- Machine-readable public surface truth
docs/review/conformance/cli_flag_surface.jsondocs/review/conformance/deployment_profiles.json- current JSON checkpoints under
docs/review/conformance/
- Human operator/API docs
README.mddocs/ops/cli.mddocs/ops/public.mddocs/LIFECYCLE_AND_EMBEDDED_SERVER.md
- Immutable release roots
docs/review/conformance/releases/0.3.9/release-0.3.9/- older frozen roots under
docs/review/conformance/releases/
Never “fix” a frozen release root in place. Supersede it with new mutable work and new current-state pointers.
Use short, purpose-scoped folders:
docs/ops/— operator-facing CLI and programmatic/public-surface docsdocs/gov/— governance, release, mutability, authoring workflowdocs/comp/— comparison matrices and companion sourcesdocs/protocols/— protocol-specific technical materialdocs/architecture/— system architecture docsdocs/adr/— design decisionsdocs/review/— conformance, state, reports, delivery notes, release artifactsdocs/release-notes/- maintained release notes
Root remains intentionally narrow. Root documentation is limited to package entrypoints and community entrypoints such as:
README.md.codex/AGENTS.mdCONTRIBUTING.mdCODE_OF_CONDUCT.md
The root README.md is the package entrypoint for developers, operators, reviewers, and maintainers. Keep it aligned with the current repository truth.
It should continue to include:
- centered badge rows
- current release line and canonical promoted root pointers
docs/review/conformance/CERTIFICATION_BOUNDARY.mddocs/review/conformance/state/CURRENT_REPOSITORY_STATE.mddocs/LIFECYCLE_AND_EMBEDDED_SERVER.mddocs/review/conformance/PHASE9_IMPLEMENTATION_PLAN.mddocs/review/conformance/phase9_implementation_plan.current.jsondocs/review/conformance/PHASE9A_PROMOTION_CONTRACT_FREEZE.mddocs/review/conformance/phase9a_promotion_contract.current.jsondocs/review/conformance/CERTIFICATION_ENVIRONMENT_FREEZE.mddocs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md- the external matrix JSON references:
external_matrix.same_stack_replay.jsonexternal_matrix.release.jsonexternal_matrix.current_release.json
Use footnotes for nuanced claim language rather than hiding qualifications in prose.
When a machine-readable statement exists in .ssot/registry.json, prose and derived JSON must conform to it rather than silently diverge.
Update .ssot/registry.json first, then regenerate or reconcile downstream docs and JSON views.
The .ssot directory scaffold itself is initialized and maintained through the SSOT CLI.
Update:
src/tigrcorn/cli.py- tests
docs/review/conformance/CLI_FLAG_SURFACE.mddocs/review/conformance/cli_flag_surface.jsondocs/review/conformance/cli_help.current.txtdocs/ops/cli.mdREADME.md- current-state / promotion docs if the change affects release truth
Update:
src/tigrcorn/__init__.pyand/or module__all__exports- tests
docs/ops/public.mddocs/LIFECYCLE_AND_EMBEDDED_SERVER.mdif lifecycle semantics changedREADME.md- current-state docs if the operator surface or public claim changed
Update boundary docs first, then code/tests/docs. The README is downstream of boundary policy, not upstream of it.
Confirm path and naming rules in docs/gov/tree.md, add MUT.json where needed, and give the folder a pointer file such as README.md.
Run, at minimum:
uv run ssot validate .
python tools/govchk.py scan
PYTHONPATH=src python -m compileall -q src benchmarks tools
PYTHONPATH=src pytest -qPromotion-sensitive or boundary-sensitive work should also run:
PYTHONPATH=src python - <<'PY'
from tigrcorn.compat.release_gates import evaluate_release_gates, evaluate_promotion_target
print(evaluate_release_gates('.').passed)
print(
evaluate_release_gates(
'.',
boundary_path='docs/review/conformance/certification_boundary.strict_target.json',
).passed
)
print(evaluate_promotion_target('.').passed)
PYMutability is controlled by MUT.json.
Remember:
- nearest ancestor wins
mutablemeans normal working areaimmutablemeans frozen evidence or release areamixedmeans the folder contains children with different states
Do not edit:
docs/review/conformance/releases/0.3.8/docs/review/conformance/releases/0.3.9/
in place.
- Keep root narrow.
- Prefer adding docs under
docs/ops/,docs/gov/, or another scoped docs folder. - Respect path limits for new or renamed mutable paths.
- Do not create a new root note when the material belongs in
docs/review/conformance/ordocs/ops/. - If you are changing public claims, update code/tests/docs/current-state together.