Tracking issue for porting reposystem's ReScript to AffineScript (ReScript is banned-in-new-code per CLAUDE.md, 2026-04-30).
Current state
213 .res files : 75 first-party (gui/src, recon-silly-ation, forge-ops/src, tools/dispatcher, tools/hud) + 138 vendored (gui/lib/rescript-webapi/).
The governance cicd_rules/banned_language_file gate flags all of them. They are baselined in .hypatia-ignore (PR docs: Phase-2 standalone-vs-local verification + ReScript governance baseline #91 ) so CI is green while this migration proceeds. New .res files are not baselined and remain blocked.
Evidence this is a human effort (not a mechanical transpile)
Ran AffineScript's own res-to-affine --partial over the 75 first-party files with a locally-built toolchain:
0 / 75 compile ; 0 declarations auto-translated; 397 TODO holes ; 151 markers (144 untyped-exception, 7 raw-js).
WIP skeletons seeded in PR for branch claude/affinescript-migration-wip (migration/affinescript/).
Plan
Upstream: affinescript#488 (partial-port mode). Methodology: affinescript repo tools/res-to-affine/CORPUS-RUN.md.
Tracking issue for porting reposystem's ReScript to AffineScript (ReScript is banned-in-new-code per
CLAUDE.md, 2026-04-30).Current state
.resfiles: 75 first-party (gui/src,recon-silly-ation,forge-ops/src,tools/dispatcher,tools/hud) + 138 vendored (gui/lib/rescript-webapi/).cicd_rules/banned_language_filegate flags all of them. They are baselined in.hypatia-ignore(PR docs: Phase-2 standalone-vs-local verification + ReScript governance baseline #91) so CI is green while this migration proceeds. New.resfiles are not baselined and remain blocked.Evidence this is a human effort (not a mechanical transpile)
Ran AffineScript's own
res-to-affine --partialover the 75 first-party files with a locally-built toolchain:TODOholes; 151 markers (144untyped-exception, 7raw-js).claude/affinescript-migration-wip(migration/affinescript/).Plan
TODOholes (untyped exceptions →Result/Validation;%%raw/@val external→ typedextern/effects; module-load side effects → explicit registration), type-checking each withaffinescript check.gui/lib/rescript-webapi/with AffineScript's nativeaffinescript-dom(do not hand-port the binding library)..resand remove its.hypatia-ignoreline..resis gone, delete.hypatia-ignore's ReScript section.Upstream:
affinescript#488(partial-port mode). Methodology:affinescriptrepotools/res-to-affine/CORPUS-RUN.md.