|
| 1 | +# SPDX-License-Identifier: MPL-2.0 |
| 2 | +# ULTRAPLAN.deed — machine-readable companion to docs/ULTRAPLAN.adoc |
| 3 | +# Date: 2026-09-25, Status: DRAFT, Execution: NONE (plan only) |
| 4 | + |
| 5 | +[metadata] |
| 6 | +project = "affinescript" |
| 7 | +doc = "docs/ULTRAPLAN.adoc" |
| 8 | +date = "2026-09-25" |
| 9 | +status = "draft-recon-complete" |
| 10 | +execution = "none-per-request" |
| 11 | + |
| 12 | +[ecosystem] |
| 13 | +chain = "systemet → anytype → affinescript → faces" |
| 14 | +theory = "hyperpolymath/systemet" |
| 15 | +kernel = "hyperpolymath/anytype" |
| 16 | +product = "hyperpolymath/affinescript" |
| 17 | +convergence = "hyperpolymath/typed-wasm" |
| 18 | +coproducer = "hyperpolymath/ephapax" |
| 19 | +control_plane = "hyperpolymath/reposystem" |
| 20 | +portfolio = "hyperpolymath/hyperpolymath.github.io" |
| 21 | + |
| 22 | +[faces] |
| 23 | +shipped = ["canonical", "rattlescript", "jaffascript", "cafescripto", "lucidscript", "pseudoscript"] |
| 24 | +planned = ["properscript", "realscript"] |
| 25 | +retired = ["tortoisescript"] |
| 26 | +not_standalone = ["actionscript"] # folded into properscript AS3 preset |
| 27 | +contract = "docs/specs/FACE-CONTRACT.adoc" |
| 28 | +same_cube_issue = 601 |
| 29 | +same_cube_status = "2-cubes-known-gap" |
| 30 | +same_cube_fix = "post-typecheck-tail-normalisation-pass" |
| 31 | + |
| 32 | +[mathematical_foundations] |
| 33 | +bet = "L1 totality cut + L2 pluggable grades = dial-a-discipline kernel, avoids coherence cliff" |
| 34 | +L0 = "runtime — lowering to WASM/C, not started in anytype" |
| 35 | +L1 = "equality — normalize+compare, total-by-construction, syntactic gate %default total, no coercion machinery" |
| 36 | +L2 = "resources — graded modal, Anytype.Grade.Algebra semiring {0,1,ω} + laws as proof fields, instances: affine, ℕ, privacy budget, security lattice, probability, Latency×Billing" |
| 37 | +L3 = "recursion — guarded recursion, not started" |
| 38 | +L4 = "effects — TEA-erasure open problem, blocks anytype L4 and affinescript handlers full story" |
| 39 | +categorical = "LCCC for dependent types, SMCC for linear/affine, graded comonad D_π for QTT, Freyd for effects, presheaf over regions for borrow, fibration for refinements" |
| 40 | +logic = "Curry-Howard: affine=affine logic, QTT=graded linear logic, effects=modal, ownership=reader/state comonads" |
| 41 | +coherence_cliff = "v0.1 hit failure where equality machinery collapses, forked to Panoply + Anytype/SystemET, v0.2 save faces" |
| 42 | +borrow_checker = "lexical + NLL last-use + flow-sensitive escape + CFG-join merge_arm_results + loop 2-iteration re-check + @linear capture rejection + Polonius M1-M3 test-only 7 divergences ADR-022 #553" |
| 43 | +proof_status = "Idris2 Solo-core QTT, Coq/Rocq codegen preservation initial, Lean tropical-session-types, Agda echo-boundary, SOUNDNESS.adoc ledger content-bound" |
| 44 | + |
| 45 | +[dependencies] |
| 46 | +systemet_to_anytype = "implements, must not silently diverge, semantic authority" |
| 47 | +anytype_to_affinescript = "product profile grade=affine+cost, currently conceptual not code reuse, goal: real library dependency" |
| 48 | +affinescript_to_faces = "face transformers text→canonical, error vocab per face, single extension .affine + pragma + --face flag wins, shim protocol hardened, canonical pin via submodule, conformance: snapshot+round-trip+same-cube, proof: F-1..F-7" |
| 49 | +affinescript_to_typed_wasm = "narrow contract L7 aliasing + L10 linearity + L13 module isolation negative form enforced via Tw_verify.verify_module_isolation, L1-L6/L14-L16 need new carrier section multi-producer ABI change ADR-021" |
| 50 | +faces_to_apps = "idaptik titlescreen.wasm via tea-bridge 512 bytes, road-skate retro game, affinescript-dom VDOM reconciler INT-08 closed verified e2e, affinescript-tea runtime INT-07 closed, cadre router INT-09 closed, vite scaffold, affine-js host-agnostic loader INT-02 fixed" |
| 51 | + |
| 52 | +[current_status] |
| 53 | +anytype = "early MVP simply-graded λ-calculus, 5 RSR template proofs quarantined, branching join not yet, L3/L0/L4 not started, process-boundary seam" |
| 54 | +systemet = "no compiler, spec+invariants+proof obligations only, L1/L2 spec, L3/L4 open, TEA-erasure open" |
| 55 | +affinescript_version = "0.1.1 dune-project, v0.2 architecture, Stage E active" |
| 56 | +affinescript_tests = "260 baseline 2026-05-19, now 263-281, dune runtest green" |
| 57 | +affinescript_stdlib = "19/19 AOT green Stage C closed 2026-05-18" |
| 58 | +affinescript_spine = "A closed, B closed residual conflicts intentional won't-fix ADR-012, C closed, D closed 2026-07-25, E active typed-wasm convergence" |
| 59 | +affinescript_soundness = "#554 fixed, #555 loud-fail + residual pinned non-tail #623, #556 loud-fail, #558 removed, #559 fixed, #553 partial Polonius test-only" |
| 60 | +affinescript_backends = "wasm core works preview1 on-demand + componentize adapter --command default #486, wasm-gc partial, typed-wasm narrow, bun-esm works deno-esm retired E0826, 22+ source-to-source uneven" |
| 61 | +satellites = "INT-01..04 substrate closed, INT-07/08/09/11 closed 2026-07-25, residual #485 FS landed #487 sockio landed #486 wrap default flipped, #56 Pixi closed via #760" |
| 62 | +faces_status = "6 shipped same-cube 2-classes #601, ProperScript/RealScript planned, ActionScript folded into ProperScript preset" |
| 63 | + |
| 64 | +[rename_assessment] |
| 65 | +question = "systemet → system-et mass damage?" |
| 66 | +current_name_semantics = "system + ET, ET=Equality Theory, Norwegian 'the system' pun" |
| 67 | +proposed_name_semantics = "system-et explicit hyphen, emphasizes ET, loses Norwegian pun, hyphen invalid in many package managers" |
| 68 | +blast_radius_url = "medium with redirect, high without sweep — submodule pointers, docs, portfolio, reposystem graph, downstream DEP trackers" |
| 69 | +blast_radius_strings = "high — 100-200 files across estate, AI agents read 0-AI-MANIFEST.deed" |
| 70 | +blast_radius_package = "low today but hyphen invalid in Cargo lib, opam, etc — keep package id systemet" |
| 71 | +blast_radius_seo = "medium-high — systemet noisy Norwegian, system-et distinctive, but breaks existing citations" |
| 72 | +blast_radius_rsr = "low-medium — deeds + governance + CODEOWNERS need update" |
| 73 | +blast_radius_brand = "medium — loses elegant pun, gains clarity" |
| 74 | +blast_radius_automation = "high if not coordinated — reposystem, standards megasweep, github.io" |
| 75 | +blast_radius_external = "low-medium — typed-wasm, ephapax, anytype, face repos need PRs" |
| 76 | +time_sweep_automated = "1-2 days" |
| 77 | +time_sweep_manual = "1 week" |
| 78 | +risk_missed_ref = "high manual, low with rg+reposystem+hypatia" |
| 79 | +option_A = "keep systemet repo, display as system-et, topics both, alias in deed, 0/10 damage, +2 discoverability RECOMMENDED" |
| 80 | +option_B_without_sweep = "8/10 damage — mass broken links, confused agents, failing CI, lost SEO, invalid package" |
| 81 | +option_B_with_sweep = "3/10 damage — 1-2 week churn, recoverable, redirect saves URLs" |
| 82 | +option_C = "9/10 damage — new repo, archive old, breaks redirect, loses stars/issues" |
| 83 | +recommendation = "Option A — dual-name strategy, keep repo systemet, display system-et, no rename yet. Phase 6 optional after Phases 1-5 green." |
| 84 | + |
| 85 | +[ultraplan_phases] |
| 86 | +phase_0 = "Recon complete 2026-09-25 — this doc, no code" |
| 87 | +phase_1 = "Mathematical foundations hardening — L1 totality cut formalization, L2 grade algebra spec+instances, L3/L4 open problems, categorical semantics grounding, exit: systemet L1+L2 proven, anytype faithful" |
| 88 | +phase_2 = "Anytype kernel hardening — L2 instances privacy/security/cost/latency, L1 branching join, L0 lowering, ABI seam in-process, proof quarantine cleanup, exit: anytype usable as library by affinescript" |
| 89 | +phase_3 = "AffineScript core soundness Stage D→E — Polonius production M4-M6 0 divergences, effect handlers CPS or loud-fail everywhere, typed-wasm widening L1-L6/L14-L16 new carrier multi-producer ADR-021, same-cube fix #601 1 cube CI required, WASI preview2 native S6c, exit: Stage E closed stable multi-producer ABI" |
| 90 | +phase_4 = "Faces sealing — Face Contract accepted, js_face split JaffaScript→plain JS ProperScript→TS, RealScript tribute, ActionScript preset in ProperScript, brand repos sync submodule+hardened shim+conformance gate, exit: 8 faces sealed same-cube" |
| 91 | +phase_5 = "Ecosystem & distribution — compiler releases + thin Deno/JSR shim ADR-019 #260, satellites published browser parity, dogfood idaptik+road-skate, docs tutorials, exit: opam+npm+shims work" |
| 92 | +phase_6 = "Rename decision if still wanted — tracking issue standards, reposystem scenario, GitHub rename keeps redirect, estate sweep rg+reposystem+standards, package id keep systemet, deprecation notice, keep topic 6 months, exit: rename done or Option A kept" |
| 93 | + |
| 94 | +[face_implications] |
| 95 | +ast_change = "all faces need new snapshot, bump submodule" |
| 96 | +quantity_change = "error vocab update in face.ml" |
| 97 | +typecheck_new_error = "add arm in format_type_error per face" |
| 98 | +borrow_polonius = "no face impact, re-run same-cube gate" |
| 99 | +codegen_new_backend = "faces benefit automatically, update CAPABILITY-MATRIX" |
| 100 | +tw_new_carrier = "faces benefit, update brand README guarantees" |
| 101 | +new_face = "new brand repo, Face variant, CLI alias, transformer, shim, submodule pin, conformance gate, same-cube inclusion" |
| 102 | +rename_systemet = "all face READMEs mention systemet, must update if rename, keep alias" |
| 103 | + |
| 104 | +[proof_obligations] |
| 105 | +F1 = "every face transformer preserves typed-wasm denotation — partial toy model only, need per-face vs real ast/wasm" |
| 106 | +F2 = "tail/statement normalisation preserves denotation — partial unit-tail SameCube.agda, need generalisation #601" |
| 107 | +F6 = "preview round-trip totality — absent" |
| 108 | +F7 = "face/canon confluence — absent" |
| 109 | +CORE01 = "borrow-checker Phase-3 landed, Polonius residual #553 M1-M3 test-only" |
| 110 | +SOUNDNESS_554 = "fixed callee-returned borrow UAM" |
| 111 | +SOUNDNESS_555 = "loud-fail compiled backends + multi-shot, residual pinned non-tail #623" |
| 112 | +SOUNDNESS_556 = "loud-fail async CPS table-miss" |
| 113 | +SOUNDNESS_558 = "removed refinement" |
| 114 | +SOUNDNESS_559 = "fixed trait coherence" |
| 115 | +SOUNDNESS_553 = "partial Polonius test-only" |
| 116 | +world_changing_proof = "L1 normalization terminates syntactically + L2 semiring laws for all instances = kernel cannot hit coherence cliff = reusable" |
| 117 | + |
| 118 | +[deliverables_checklist] |
| 119 | +ULTRAPLAN_adoc = "done 2026-09-25" |
| 120 | +ADR027_rename = "done 2026-09-25" |
| 121 | +ULTRAPLAN_deed = "done 2026-09-25" |
| 122 | +ECOSYSTEM_crosslink = "future" |
| 123 | +NAVIGATION_list = "future" |
| 124 | +tracking_issues = "future not in this PR" |
| 125 | +code_changes = "none per request" |
| 126 | + |
| 127 | +[open_questions] |
| 128 | +q1_rename = "Option A dual-name or Option B full rename? Recommendation A" |
| 129 | +q2_proper_vs_real = "ProperScript TS before RealScript ReScript given community size?" |
| 130 | +q3_tortoisescript = "Logo-shaped teaching retired merged into PseudoScript or still desired?" |
| 131 | +q4_anytype_reuse = "affinescript depend on anytype as library or keep independent OCaml QTT for speed?" |
| 132 | +q5_face_order = "same-cube fix #601 first then ProperScript/RealScript or new faces first?" |
| 133 | +q6_wasi = "native preview2 S6c blocking for dogfood or preview1+adapter sufficient?" |
| 134 | + |
| 135 | +[references] |
| 136 | +systemet = "https://github.com/hyperpolymath/systemet" |
| 137 | +anytype = "https://github.com/hyperpolymath/anytype" |
| 138 | +affinescript = "https://github.com/hyperpolymath/affinescript" |
| 139 | +typed_wasm = "https://github.com/hyperpolymath/typed-wasm" |
| 140 | +ephapax = "https://github.com/hyperpolymath/ephapax" |
| 141 | +rattlescript = "https://github.com/hyperpolymath/rattlescript" |
| 142 | +jaffascript = "https://github.com/hyperpolymath/jaffascript" |
| 143 | +cafescripto = "https://github.com/hyperpolymath/cafescripto" |
| 144 | +lucidscript = "https://github.com/hyperpolymath/lucidscript" |
| 145 | +pseudoscript = "https://github.com/hyperpolymath/pseudoscript" |
| 146 | +reposystem = "https://github.com/hyperpolymath/reposystem" |
| 147 | +capability_matrix = "docs/CAPABILITY-MATRIX.adoc" |
| 148 | +ecosystem = "docs/ECOSYSTEM.adoc" |
| 149 | +tech_debt = "docs/TECH-DEBT.adoc" |
| 150 | +soundness = "docs/SOUNDNESS.adoc" |
| 151 | +face_contract = "docs/specs/FACE-CONTRACT.adoc" |
| 152 | +design_vision = "docs/DESIGN-VISION.adoc" |
| 153 | +affinescript_vision = "docs/vision/AFFINESCRIPT-VISION.adoc" |
0 commit comments