Repository navigation
Description
domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj
Filing gate: maintainer ruling 6632500982 on #29465 (decision card pick 「直接立卡拆」, 2026-11-04T13:55Z). It extends the facade form of ruling 6624258595 to sql-driver.ts. ⛔ Not a claim.
Ruling-ref: 6632500982
Governs: 6624258595 items 1 and 2 (facade form, generated, under the same proofs); 6624345766 (public-surface .d.ts EQUAL, plus named exceptions that cite a card); 6597555122 item 3 (by-path readers widen in the same PR); 6591753301 (the pilot's cut-pattern widening); the landing plan 6582376616.
Reader who acts: the domain:devx seat (the pilot #29520's lane), dispatching one dev.
What to build
- Extend
scripts/codemod-split-sql-driver.mjs, the pilot's script, with the facade layer the server codemods added:scripts/codemod-split-engine.mjs(Codemod split: generate the objectql engine.ts split with a deterministic script, verified byte-identical #29986 / PR refactor(objectql): generate the engine.ts section split with a deterministic codemod #30012, plus the facet-host compression of refactor: compress the codemod facade stubs in engine.ts and protocol.ts — one shared host per facet instead of a per-call host literal (body-identical; about 1,000 lines off engine.ts) #30051 / PR refactor(objectql): one shared host per facet in the engine.ts codemod stubs (body-identical; engine.ts 14,140 -> 13,548) #30083) andscripts/codemod-split-protocol.mjs(Codemod split: generate the rest of the metadata-protocol protocol.ts split with a deterministic script, verified byte-identical #29985 / PR refactor(metadata-protocol): generate the protocol.ts section split with a deterministic codemod #29998).SqlDriverinpackages/drivers/driver-sql/src/sql-driver.ts(12,460 lines onmainf68b47ca, class from line 357) becomes a thin facade.- Every public member stays as a one-line delegation to stateless facet classes over the host.
- Shared state stays on the facade.
- Private docblocks move with their bodies; public docblocks stay on the facade.
- Run the pilot's proofs plus the facade proofs:
- byte-identity of every moved body
- determinism
- public
.d.tsEQUAL per 6624345766, read pairwise if the build is nondeterministic (see spec build: two builds of the same main source write different .d.ts files (10 files, chunk hash rename) #30061) - typecheck
- the driver-sql suites and their direct consumers, at base counts
- dispatch-gates
check-tenant-chokepointreadings equal at base and head (itsSCAN_FILESalready coverssql-driver-*.ts)- every by-path reader of
sql-driver.tswidened in the same PR
- Register the facade in
scripts/facade-delegation-registry.jsonin the same PR, so the tooling: a structural gate that refuses any method body in a facade file once protocol.ts and engine.ts land in facade form (ruling 6624258595) #30019 gate (PR tooling: a structural gate that keeps a registered facade class delegation-only #30030) guards it on landing. Each member the codemod cannot make a delegation gets a named exception row. That row cites the card that will move it: refactor: move shared state out of the protocol.ts and engine.ts facades into state-owning facets, so the hot bodies left on the class can become delegations (ruling 6624345766) #30020 for state-owning bodies, or a new card the dev names for codemod limits.
How it lands (landing plan 6582376616)
- Phase 0, no pause: build and prove the codemod and its generated facade in a draft PR.
- Phase 1, a window the maintainer orders: regenerate on the latest
main(⛔ never rebase), run CI once, then the maintainer approves if the diff exceeds 3,000 lines, then the queue. - ⛔ The generated output is never hand-edited to pass. A proof that fails is reported as a fork on [Decision] Large source files: replace the hand-cut split with a script-generated split per file, so the remaining monoliths split in days, not months #29465.
Done when
The draft PR holds the extended script, the generated facade and the registry row, with every proof passing, and it has landed in the maintainer's window. The alternative ending is a fork reported on #29465.
Re-measure: git show origin/main:packages/drivers/driver-sql/src/sql-driver.ts | wc -l; git log --since='7 days ago' --oneline origin/main -- packages/drivers/driver-sql/src/sql-driver.ts | wc -l (3 at filing).
Dedupe (open and closed): sql-driver facade, codemod split, 29465. Hits: #29465, #29520 (the pilot, closed), #29985 and #29986 (the facade cards, closed). None is a facade card for this file. New.
Activity
objectstack-fleet commentedon Nov 4, 2026
domain:devx#1 · os-support-ai · session_01WGufzgBDcBNVmSmo7VFHpj
Claim: PM loop · card thread · 2026-11-04T13:59Z
Session:
session_01WGufzhBZia3VxBbmZ7wCkS(dev: os-dev card thread; seatsession_01WGufzgBDcBNVmSmo7VFHpj)Account:
os-support-aiBranch:
claude/project-thread-y0okk4(harness-pinned card-thread branch; platform exception toclaude/issue-<n>-<slug>)Worktree: the card thread's own container checkout
Domain:
domain:devxSeat:
domain:devx#1Ruling-ref: 6632500982 (extends 6624258595 items 1-2; 6624345766; 6597555122 item 3)
File surface:
scripts/codemod-split-sql-driver.mjs(facade layer), generatedpackages/drivers/driver-sql/src/sql-driver.tsand new facet/host modules beside it, by-path readers ofsql-driver.ts,scripts/facade-delegation-registry.json(one facade row plus its exception rows). ⛔ No hand edit of generated output; no edit to the gate script.Container & model:
L,mode:thread,model: TIER_DEFAULT,effort: highClause-②: no
Metadata-protocol: none
Responsibility:
sql-driver.tslands as a delegation-only facade under the #30019 gate, with public.d.tsEQUAL and bodies byte-identicalThread-read: none
Premise: holds (
sql-driver.ts12,460 lines onmainf68b47ca; the pilot script and both facade codemods are onmain)Serial constraints cleared: no open PR touches
sql-driver.ts(3 commits in 7 days); Phase 0 is a draft, landing waits for the maintainer's window