Skip to content

Commit 856f7a2

Browse files
ultraplan: mass recon + phased plan + systemet->system-et rename assessment (#768)
## Summary Mass recon of ecosystem topology as seen from affinescript, plus ultraplan (do-nothing per request) and explicit rename assessment for systemet -> system-et. ### Recon - **Chain**: systemet (theory L0-L4 Equality Theory, totality cut) → anytype (kernel, pluggable Grade.Algebra semiring) → affinescript (product profile affine+cost, premier PL work, Stage E) → *script faces (rattlescript, jaffascript, cafescripto, lucidscript, pseudoscript, planned properscript/realscript) - Faces are shims, no compiler, pin affinescript as submodule, single .affine extension + pragma, same-cube invariant (currently 2 cubes #601) - Satellites: INT-01..04/07/08/09/11 closed, WASI preview1+adapter --command default #486, typed-wasm L7+L10+L13 enforced L1-L6/L14-L16 need new carrier multi-producer ABI - Estate: ~300 repos via reposystem, control plane standards/megasweep ### Mathematical foundations = world-changing bet - L1 totality cut: normalize+compare, type-level total by construction, no coercion machinery inside equality (anti-System-Fc, avoids coherence cliff that killed v0.1) - L2 pluggable grades: same kernel many disciplines (affine, privacy budget, security lattice, cost, latency×billing), categorical LCCC/SMCC/graded comonad D_π/Freyd/presheaf - If holds: dial-a-discipline kernel, N faces cost one proof ### Rename assessment - Without sweep: 8/10 damage — mass broken links, confused AI agents (0-AI-MANIFEST.deed), failing CI, hyphen invalid in Cargo/opam, 100-200 files across estate - With sweep: 3/10 — 1-2 week churn, GitHub redirect saves URLs not strings - **Recommendation Option A**: KEEP repo name systemet, display as system-et / System ET everywhere, topics both, alias in deed, zero damage +2 discoverability. Norwegian pun 'systemet = the system' valuable. - Option B full rename only after Phases 1-5 green with reposystem scenario + rg sweep ### Ultraplan Phases (doc only, no execution) 0. Recon (this PR) 1. Math hardening: L1/L2 formalization, L3/L4 open problems 2. Anytype kernel: instances, branching join, L0 lowering, ABI in-process 3. AffineScript soundness Stage D→E: Polonius production 0 divergences, effect handlers CPS/loud-fail, typed-wasm widening, same-cube fix #601, WASI preview2 native 4. Faces sealing: Face Contract accepted, js_face split (JaffaScript plain JS, ProperScript TS), RealScript, ActionScript preset 5. Ecosystem & distribution: releases + JSR/npm, satellites published, dogfood 6. Rename if still wanted (optional) ### Files - docs/ULTRAPLAN.adoc (full, authoritative) - docs/decisions/0027-systemet-rename-to-system-et.adoc (ADR) - .machine_readable/descriptiles/ULTRAPLAN.deed (machine companion) - docs/reports/ULTRAPLAN-EXEC-SUMMARY-2026-09-25.adoc (exec summary) - docs/NAVIGATION.adoc cross-link ### Compliance - No code changes, no renames, no moves per request — docs only - SPDX headers present - Branch arena/01a0d873-affinescript Closes: N/A (plan only)
2 parents b7a5eba + 777b316 commit 856f7a2

5 files changed

Lines changed: 934 additions & 0 deletions

File tree

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
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"

‎docs/NAVIGATION.adoc‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ This guide helps you navigate the AffineScript repository structure.
5252

5353
**Key specification documents:**
5454

55+
* link:ULTRAPLAN.adoc[Ultraplan — Mass Recon & Strategic Plan] - **NEW 2026-09-25** — ecosystem topology systemet→anytype→affinescript→faces, mathematical foundations, rename assessment, phased execution (do-nothing plan only)
56+
* link:decisions/0027-systemet-rename-to-system-et.adoc[ADR-027: systemet→system-et Rename Assessment] - **NEW 2026-09-25** — blast radius, options, recommendation (Option A: keep systemet repo, display as system-et)
5557
* link:specs/affinescript-spec.md[AffineScript Specification] - Complete language spec
5658
* link:specs/SPEC.adoc[Core Specification] - Core language features
5759

0 commit comments

Comments
 (0)