diff --git a/docs/plans/E3M1-prototype-backlog.md b/docs/plans/E3M1-prototype-backlog.md index ed7afad..23439c0 100644 --- a/docs/plans/E3M1-prototype-backlog.md +++ b/docs/plans/E3M1-prototype-backlog.md @@ -63,7 +63,7 @@ Working backlog for **Epic 3 — Slice 2** ([gather nodes and outputs](../decomp **In scope** -- `content/schemas/resource-node-def.schema.json` and `content/schemas/resource-yield-table.schema.json` (or a single catalog schema if simpler — pick one in the plan PR and document). +- `content/schemas/resource-node-def.schema.json` and `content/schemas/resource-yield-row.schema.json` (two row schemas; catalogs in `prototype_resource_nodes.json` + `prototype_resource_yields.json` — [NEO-57](NEO-57-implementation-plan.md)). - `content/resource-nodes/prototype_resource_nodes.json` with stable **`nodeDefId`** values aligned to interactable ids (see module doc freeze table). - `content/resource-nodes/prototype_resource_yields.json` (or embedded yields — plan decides) referencing only **`scrap_metal_bulk`** from the E3.M3 freeze. - `scripts/validate_content.py`: schema validation, duplicate ids, exact four-node allowlist, **`gatherLens`** coverage, cross-check that every yield **`itemId`** exists in `content/items/`. @@ -75,10 +75,12 @@ Working backlog for **Epic 3 — Slice 2** ([gather nodes and outputs](../decomp **Acceptance criteria** -- [ ] PR gate validates resource-node JSON against schema. -- [ ] Exactly four prototype node ids; duplicate `nodeDefId` fails CI. -- [ ] Every yield references a valid frozen item id. -- [ ] Stable id list documented in module doc freeze box. +- [x] PR gate validates resource-node JSON against schema. +- [x] Exactly four prototype node ids; duplicate `nodeDefId` fails CI. +- [x] Every yield references a valid frozen item id. +- [x] Stable id list documented in module doc freeze box. + +**Landed:** [NEO-57](https://linear.app/neon-sprawl/issue/NEO-57) — content + CI only; server load is E3M1-02. --- diff --git a/docs/reviews/2026-05-24-NEO-57.md b/docs/reviews/2026-05-24-NEO-57.md index 4ba1a7c..0135714 100644 --- a/docs/reviews/2026-05-24-NEO-57.md +++ b/docs/reviews/2026-05-24-NEO-57.md @@ -17,7 +17,7 @@ NEO-57 lands **content-only** Slice 2 gather spine: two JSON Schemas (`resource- | Document | Result | |----------|--------| | [`docs/plans/NEO-57-implementation-plan.md`](../plans/NEO-57-implementation-plan.md) | **Matches** — two-file layout, `maxGathers`, differentiated quantities 1/2/3/5, acceptance checklist complete; no server scope. | -| [`docs/plans/E3M1-prototype-backlog.md`](../plans/E3M1-prototype-backlog.md) | **Partially matches** — E3M1-01 scope and files match; acceptance bullets still `[ ]` (see Suggestions); backlog still names `resource-yield-table.schema.json` while shipped schema is `resource-yield-row.schema.json`. | +| [`docs/plans/E3M1-prototype-backlog.md`](../plans/E3M1-prototype-backlog.md) | **Matches** — E3M1-01 acceptance checked; yield row schema name aligned (post-review). | | [`docs/decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md`](../decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md) | **Matches** — Slice 2 freeze table, designer note, contracts, E1.M3 boundary; content ids match JSON. | | [`docs/decomposition/modules/CT_M1_ContentValidationPipeline.md`](../decomposition/modules/CT_M1_ContentValidationPipeline.md) | **Matches** — NEO-57 PR gate paragraph for resource-node + yield validation. | | [`docs/decomposition/modules/documentation_and_implementation_alignment.md`](../decomposition/modules/documentation_and_implementation_alignment.md) | **Matches** — E3.M1 row notes NEO-57 content + CI; server load still planned. | @@ -33,9 +33,9 @@ None. ## Suggestions -1. **E3M1 backlog checkboxes** — In [`E3M1-prototype-backlog.md`](../plans/E3M1-prototype-backlog.md) § E3M1-01, flip acceptance criteria to `[x]` (or add a “NEO-57 landed” note) so the backlog matches [`NEO-57-implementation-plan.md`](../plans/NEO-57-implementation-plan.md). +1. ~~**E3M1 backlog checkboxes** — In [`E3M1-prototype-backlog.md`](../plans/E3M1-prototype-backlog.md) § E3M1-01, flip acceptance criteria to `[x]` (or add a “NEO-57 landed” note) so the backlog matches [`NEO-57-implementation-plan.md`](../plans/NEO-57-implementation-plan.md).~~ **Done.** -2. **Backlog schema name** — Update E3M1-01 bullet from `resource-yield-table.schema.json` to **`resource-yield-row.schema.json`** (kickoff chose row schema + `prototype_resource_yields.json`). +2. ~~**Backlog schema name** — Update E3M1-01 bullet from `resource-yield-table.schema.json` to **`resource-yield-row.schema.json`** (kickoff chose row schema + `prototype_resource_yields.json`).~~ **Done.** ## Nits