Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/architecture/rfcs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,19 @@ changes.
- **Current boundary:** Stage 1 and 2A are complete. Stage 2B is cutting over
whole semantic transactions and retiring Python facades under parity and
differential gates.
- [Semantic Vocabulary Convergence and Commit-Time Drift Checks v0](semantic-vocabulary-convergence-v0.md)
([中文版](semantic-vocabulary-convergence-v0.zh-CN.md))
- **RFC status:** Draft.
- **Delivery on `main`:** M0 registry, generated inventory, and drift smoke
shipped with the RFC.
- **Current boundary:** Repository-wide. A curated registry names 26 kernel
and cross-runtime vocabularies with `module::Symbol` owners, relations,
the route-to-disposition projection, the Turn Envelope schema owner, and
ratchets for legacy should-run fields, py/ts twins, and constant forks; a
generated inventory maps every other closed-set carrier under `loopx/`; a
public smoke fails closed on drift in either runtime and on any narrowing
of the registry itself. No enum merge, slot split, field removal, or code
generation is approved yet.
- [Shared-goal Online Authority and Pluggable Coordination Provider v0](shared-goal-authority-state-provider-v0.md)
([中文版](shared-goal-authority-state-provider-v0.zh-CN.md),
[validation boundary](shared-goal-authority-state-provider-v0-evidence.zh-CN.md))
Expand Down
664 changes: 664 additions & 0 deletions docs/architecture/rfcs/semantic-vocabulary-convergence-v0.md

Large diffs are not rendered by default.

557 changes: 557 additions & 0 deletions docs/architecture/rfcs/semantic-vocabulary-convergence-v0.zh-CN.md

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions examples/canary/premerge-validation-gate-smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def commands_from(run: dict | None) -> list[str]:
return commands


def assert_control_plane_change_selects_state_machine_validation() -> None:
def assert_control_plane_change_retains_state_machine_and_vocabulary_validation() -> None:
payload = build_premerge_validation_gate(
changed_files=[
"loopx/control_plane/work_items/interaction_contract.py",
Expand All @@ -59,6 +59,7 @@ def assert_control_plane_change_selects_state_machine_validation() -> None:
assert any("interaction-contract-state-machine-smoke.py" in item for item in catalog_commands), payload
assert not any("control-plane-integrated-canary-smoke.py" in item for item in catalog_commands), payload
assert any("heartbeat-quota-flow-smoke.py" in item for item in catalog_commands), payload
assert any("semantic-vocabulary-drift-smoke.py" in item for item in catalog_commands), payload
assert any("bounded-context-namespace-smoke.py" in item for item in catalog_commands), payload
assert risk_commands, payload
assert payload["gate"]["status"] == "preview_only", payload
Expand Down Expand Up @@ -513,7 +514,7 @@ def assert_inherited_maintainability_red_is_advisory_only() -> None:


def main() -> None:
assert_control_plane_change_selects_state_machine_validation()
assert_control_plane_change_retains_state_machine_and_vocabulary_validation()
assert_public_docs_change_adds_boundary_scan()
assert_quick_public_docs_change_skips_risk_profile_smokes()
assert_public_boundary_scan_executes_in_process()
Expand Down
13 changes: 9 additions & 4 deletions examples/canary/smoke-suite-runner-smoke.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,13 @@ def assert_catalog_profile_preview_is_supported() -> None:
execute=False,
)
assert payload["ok"] is True, payload
assert payload["selected_check_count"] == 1, payload
assert payload["selected_checks"][0]["command"] == "python3 examples/control_plane/control-plane-maintainability-ratchet-smoke.py", payload
assert payload["catalog_plan"]["planned_check_count"] == 1, payload
assert payload["selected_check_count"] == 2, payload
commands = [check["command"] for check in payload["selected_checks"]]
assert commands == [
"python3 examples/control_plane/control-plane-maintainability-ratchet-smoke.py",
"python3 examples/semantic-vocabulary-drift-smoke.py",
], payload
assert payload["catalog_plan"]["planned_check_count"] == 2, payload


def assert_named_smoke_profile_expands_to_suite_selection() -> None:
Expand Down Expand Up @@ -246,11 +250,12 @@ def assert_named_smoke_profile_can_mix_with_catalog_profile() -> None:
assert payload["ok"] is True, payload
assert payload["selection_inputs"]["smoke_profiles"] == ["canary-runner"], payload
assert payload["selection_inputs"]["catalog_profiles"] == ["repo-architecture-budget"], payload
assert payload["catalog_plan"]["planned_check_count"] == 1, payload
assert payload["catalog_plan"]["planned_check_count"] == 2, payload
commands = [check["command"] for check in payload["selected_checks"]]
assert any("examples/canary/" in command for command in commands), payload
assert all("canary-promotion" not in command for command in commands), payload
assert any("examples/control_plane/control-plane-maintainability-ratchet-smoke.py" in command for command in commands), payload
assert any("examples/semantic-vocabulary-drift-smoke.py" in command for command in commands), payload


def assert_cli_json_preview_works() -> None:
Expand Down
Loading