Files
rune/scripts/admit_wave_retirement_map.py
Nick 82b79e46a7 docs(retirement): 7.1 oracle/retirement map — 19 capabilities, honest ledger
PROVEN 0 / PARTIAL 16 / UNPROVEN 1 / NOT-STARTED 2. Every cited artifact
path programmatically confirmed; cross-checked by live suite runs.
Honest gaps named: no capability meets the retirement bar yet (module
proofs != capability proofs); the mutant-hardened parity harness (7.2)
blocks all PROVEN promotions; Python remains authoritative; seam-registry
enforcement gate red at map time (new python failures — investigating at
landing). cmd/rune-tui build red is I3 mid-flight (expected).
2026-10-17 00:26:32 +01:00

98 lines
3.5 KiB
Python

"""Admission dispatch for wave: retirement map (task 7.1).
classify + activate + admit (the headless scaffolding entry law,
tests/test_construction_admission.py pattern): the oracle/retirement-map
research+artifact build on the existing rune project, user-dispatch approved.
Artifacts: docs/retirement-map.md + verification/retirement-map.json.
"""
import json
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
from rune import construction_activation as cact # noqa: E402
from rune import construction_admission as cadm # noqa: E402
from rune import construction_mode as cmode # noqa: E402
from rune import scaffold as sc # noqa: E402
ROOT = os.path.join(os.path.dirname(__file__), "..")
OBJECTIVE = (
"task 7.1 oracle/retirement map: every mimocode capability mapped to its "
"native path and proof state — docs/retirement-map.md plus the "
"machine-readable verification/retirement-map.json, built from the "
"rebase parity/oracle artifacts (store/spine, store/rebase ratchets, the "
"truth batteries, research/harness-survey), the spec's 19 capabilities, "
"and the landed tui/ + src/go packages; every row carries owner, native "
"path, proof artifact, and retirement state with honest gaps named; "
"cross-checked by running the cited suites"
)
AFFECTED = [
"docs/retirement-map.md",
"verification/retirement-map.json",
]
def main() -> int:
store = os.path.join(ROOT, "store", "scaffold")
scaffold = sc.Scaffold(store, "rune")
md = cmode.classify_mode(
OBJECTIVE,
target_project="rune",
project_exists=True,
affected_surface=AFFECTED,
)
print("classified mode:", md.mode)
need = {
"need_id": "need-wave-retirement-map",
"objective": OBJECTIVE,
"origin": "worker",
"project": "rune",
"task_ref": "wave-retirement-map",
"affected_surface": AFFECTED,
"evidence_refs": [
"store/rebase/retired_modules.json",
"store/rebase/classification.json",
"docs/openspec/changes/add-native-rune-tui/specs/migration-and-retirement/spec.md",
"docs/openspec/changes/add-native-rune-tui/tasks.md",
],
}
act = cact.activate(md, need=need, scaffold=scaffold,
builder="wave-retirement-map")
print("activated:", act.get("activated"), act.get("mode"))
env = cadm.admit(
act,
objective=OBJECTIVE,
builder="wave-retirement-map",
affected_surface=AFFECTED,
evidence_refs=need["evidence_refs"],
origin="worker",
task_ref="wave-retirement-map",
expected_new_entities=[
"docs/retirement-map.md",
"verification/retirement-map.json",
],
expected_runtime_effects=[
"retirement ledger has a spine: 19 rows with honest states "
"(PROVEN 0 / PARTIAL 16 / UNPROVEN 1 / NOT-STARTED 2)",
],
verification_obligations=[
"verification/retirement-map.json parses and cites only existing paths",
"cited suite results reproducible via scripts/unified_check.py members",
],
approval_ref="user:wave-retirement-map dispatch",
contract_id="ADMIT-wave-retirement-map",
project_store=store,
project_id="rune",
)
print(json.dumps(env, indent=2, default=str)[:2400])
return 0 if env.get("success") else 1
if __name__ == "__main__":
sys.exit(main())