Skip to content

Commit 5fc40aa

Browse files
claudehyperpolymath
authored andcommitted
docs(policy): make proactive TS/RS->AffineScript conversion explicit
Enforcement rule #1 said 'convert existing TS/RS to AffineScript' but not the proactive disposition. Owner directive: convert any .ts/.res (or otherwise-banned front-end language) at the earliest opportunity as standing background work. Records the two guardrails that keep it honest and doctrine-consistent: - Portable-now only: MCP/LSP/VSCode-host glue stays carved out until the AffineScript bindings ship (per the js-to-affinescript migration doctrine); genuinely-portable Deno CLI is the convert-now bucket. - Compile-verify, wire-first: no unbuilt .affine, no deleting a working .ts/.res for one that has not compiled green in the same PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
1 parent 3874734 commit 5fc40aa

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

.claude/CLAUDE.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,19 @@ Both are FOSS with independent governance (no Big Tech).
150150

151151
### Enforcement Rules
152152

153-
1. **No new TypeScript or ReScript files** - Convert existing TS/RS to AffineScript directly (`.affine`); ReScript is no longer the destination
153+
1. **No new TypeScript or ReScript files** - Convert existing TS/RS to AffineScript directly (`.affine`); ReScript is no longer the destination.
154+
**Convert proactively at the earliest opportunity** — treat any `.ts`/`.res`
155+
(or otherwise-banned front-end language) as standing background work to port,
156+
not a one-off, subject to two guardrails:
157+
- **Portable-now only.** The `js-to-affinescript` doctrine
158+
(`docs/migrations/js-to-affinescript`) carves out MCP/LSP protocol glue and
159+
VSCode-host code (*"MCP glue … Should NOT appear in `portable now`"*). Those
160+
stay until the AffineScript MCP/LSP/VSCode bindings ship (affinescript#446).
161+
Genuinely-portable Deno CLI scripts are the convert-now bucket.
162+
- **Compile-verify, wire-first.** A port is not done until the `.affine` builds
163+
green (`just check`) and the compiled output is wired as the live entry with
164+
the original removed *in the same PR*. Never ship an unbuilt `.affine` or
165+
delete a working `.ts`/`.res` for one that has not compiled.
154166
2. **No package.json for runtime deps** - Use deno.json imports
155167
3. **No node_modules in production** - Deno caches deps automatically
156168
4. **No Go code** - Use Rust instead

0 commit comments

Comments
 (0)