Skip to content

docs(charter): admit one opt-in C++ engine behind the Three.js API - #494

Closed
jonit-dev wants to merge 1 commit into
developfrom
docs/native-engine-charter
Closed

jonit-dev wants to merge 1 commit into
developfrom
docs/native-engine-charter

Conversation

@jonit-dev

Copy link
Copy Markdown
Contributor

TL;DR: the charter now admits one owned C++ engine behind the Three.js API, opt-in per game, with the legacy host as the default until it proves itself. Owner decision 2026-10-12. Docs only. This is slice 0 of the gradual native-engine merge.

Why

The native engine (feat/native-engine, PR #438) is merged into develop in small slices. Each slice must pass develop's gates on its own. Without this amendment, every engine slice breaks root rule 5 ("an IR") and the charter row "a second renderer".

What changed

  • docs/architecture/CHARTER.md
    • §2: the ban is now on an authored IR. The shader IR is internal.
    • §2: "A second renderer" names the one exception, the opt-in C++ engine.
    • §7: "The default runtime is a host, not a renderer". The opt-in engine is the exception.
    • §11.1: same wording as §2.
    • §6b: the CSS line says "also an exception", because there are now two.
  • docs/architecture/CHARTER-HISTORY.md: one amendment row.
  • Root AGENTS.md rule 5 names the exception. CLAUDE.md is regenerated.
  • docs/architecture/NATIVE-ENGINE-DECISION.md is new. It is the batch's decision record, with three changes:
    • the parked decisions on compiling game code (Perry, gate T) are removed;
    • links to PRDs that are not on develop yet are plain text;
    • legacy is the default until the owner promotes the engine (decision 10).

NATIVE-RUNTIME.md and packages/runtime-native/AGENTS.md are unchanged. They describe the shipped host, and primary docs name only shipped things.

Evidence

  • pnpm check:docs: pass
  • pnpm sync:agents --check: pass
  • vitest on check-doc-links, evidence-budget, evidence-citations, sync-agent-docs, ci-structure, ci-needs and primary-docs specs: 7 files, 254 tests pass

Next slices

Slice 1 is a separate PR: core fixes that need no engine. The engine C++ slices come after this PR merges.

Owner decision 2026-10-12: ThreeNative owns one C++ engine (renderer
plus internal shader IR) behind the Three.js API, opt-in per game, with
the legacy host as the default until it proves itself.

- CHARTER.md: the closed list bans an authored IR; "a second renderer"
  and "the runtime is a host, not a renderer" admit the one opt-in
  engine; amendment logged in CHARTER-HISTORY.md.
- Root AGENTS.md rule 5 names the exception; CLAUDE.md regenerated.
- NATIVE-ENGINE-DECISION.md: the decision record from the native-engine
  batch, without the parked decisions on compiling game code, without
  links to PRDs that are not on develop yet, and with legacy as default.

Slice 0 of the gradual native-engine merge. No code changes.
@jonit-dev

Copy link
Copy Markdown
Contributor Author

Merged into #493: the epic now has one PRD and one PR. The charter commit is on #493 as fc261bb.

@jonit-dev jonit-dev closed this Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant