@@ -33,10 +33,46 @@ That means these files are allowed to exist before:
3333- Wesley IR is vendored for the runtime freeze set,
3434- or generated Rust replaces hand-written runtime mirrors.
3535
36+ ## Validation
37+
38+ Run the local fragment validator before touching any generation plumbing:
39+
40+ ``` sh
41+ pnpm schema:runtime:check
42+ ```
43+
44+ The validator does two narrow jobs:
45+
46+ - parse-check the SDL fragments via the repo's existing ` prettier --check `
47+ toolchain path,
48+ - and verify that every referenced runtime type is defined somewhere inside the
49+ local ` schemas/runtime/ ` fragment set.
50+
51+ This keeps Phase 8 moving without pretending Wesley is already stable enough to
52+ own the runtime freeze loop.
53+
54+ ## Planned Output Contract
55+
56+ Generation is explicitly deferred, but the intended artifact boundary is:
57+
58+ - ` schemas/runtime/*.graphql `
59+ Human-authored source fragments for Artifacts A-D.
60+ - ` schemas/runtime/generated/runtime-schema.graphql `
61+ Planned normalized single-file runtime schema bundle.
62+ - ` schemas/runtime/generated/runtime-ir.json `
63+ Planned vendored Wesley IR snapshot for the frozen runtime schema.
64+ - ` schemas/runtime/generated/runtime-manifest.json `
65+ Planned vendored schema manifest/metadata for deterministic regeneration.
66+
67+ No generated Rust output path is frozen yet. That stays deferred until Wesley's
68+ Echo-facing contract stabilizes enough that wiring ` cargo xtask wesley sync `
69+ will not thrash the Phase 8 freeze target.
70+
3671## Notes
3772
3873- These files are SDL ** fragments** , not a standalone executable GraphQL API.
3974- Comments here carry semantic constraints that current GraphQL type syntax
4075 cannot express directly, such as opaque-hash ids and logical-counter rules.
4176- Generation plumbing (` cargo xtask wesley sync ` ) still does not exist for this
42- runtime schema tree; Phase 8 is pinning source files before generation.
77+ runtime schema tree; Phase 8 is pinning and validating source files before
78+ generation.
0 commit comments