Red5Sorcery / Data Sculptor
WASM-002 adversarial QA review — Pass 3 gate verification
Pass 3 — focused verification of the six Pass 2 gate items, Tuesday 29 September 2026. Findings only; no requirement text has been changed.
Review identity
| Audited decisions | Pass 2 reconciliation log, SHA-256 F564FFC263F9A236F6996BD06D9CFC691CC8F9482D21B8A41E2347F26EE45603 |
|---|---|
| Scope | P2-01, P2-02, F-02, F-03, F-06 and F-09, plus how these six decisions interact with each other, with Revision BL and with the Pass 1 decisions they rely on |
| Baseline contract | Revision BL review cut, SHA-256 828C6A81B2C0A8B97546F728628059C53CC61256FAB23B142E452A8E566E025F, unchanged |
| Prior passes | Pass 1 7BCD850A…F58A67C; Pass 2 D87E352F…EEB39197 |
| Reviewer | Claude, independent adversarial QA (no implementation seen) |
| Record discipline | Append-only. Passes 1 and 2 are not edited. |
Method and conventions
Each of the six decisions was read in full and attacked on its own terms. The attack asked whether an implementer with no permission to fill gaps could build and test from the text. Each decision was then checked against the other five, against the Revision BL requirements it relies on or supersedes, and against the Pass 1 decisions it inherits. "RESOLVED — DECISION FROZEN" labels were not taken as evidence. Requirement IDs were checked mechanically against the 384 IDs in the cut.
Section numbers (§) refer to the Pass 2 reconciliation log unless marked "Pass 1 log". Dispositions and severity follow the Pass 2 instructions and scale. In section C, E marks evidence and I marks interpretation.
Wording boundary. Nothing in this report describes WASM-002, Revision BL or any successor PRD as approved, frozen, implemented, built, accepted or ready for implementation. Revision BL is not reported as corrected. A favourable gate would mean only that the reconciliation decisions are coherent enough to integrate into a successor PRD revision.
Summary
| Gate items CLOSED - INTEGRATION OBLIGATION | 2 |
|---|---|
| Gate items PARTIALLY CLOSED | 4 |
| Gate items REOPEN | 0 |
| New Pass 3 findings | 10 |
This is good work. Every question Pass 2 asked has a real answer, and the reasoning is sound: one lineage per Store MAP, splitting MAP validity from Store health, the narrow registry-repair bootstrap, and the exact CSV location oracle. Nothing needs reopening, and every blocking residual from Pass 2 is closed on its own terms.
Checked against each other, two of the decisions collide. P2-02 re-freezes the materialization grammar without the MAP clause that P2-01 now relies on (P3-01). F-06 freezes refusal facts that the F-09 Receipt table has no place for (P3-02). Each is a small decision — a line or a few keys — but until it is made, two frozen texts contradict each other. Of the 10 new findings, 2 are blocking, 7 are material and 1 is clarity.
The gate conclusion (section F) is NOT READY FOR CANONICAL PRD INTEGRATION, on P3-01 and P3-02 only.
A. Package integrity
All inputs were hashed. The sidecar matches, the source chain from Revision BL through Pass 1, the Pass 1 log and Pass 2 to this record is intact, and the audit proceeded.
| Pass 2 reconciliation log (audited) | WASM002_Pass2_Reconciliation_20260929.htmlF564FFC263F9A236F6996BD06D9CFC691CC8F9482D21B8A41E2347F26EE45603Matches the supplied sidecar (73,497 bytes). The sidecar names the file Red5Sorcery_Data_Sculptor_WASM002_Claude_QA_Reconciliation_Log_Pass2_20260929.html; the upload name differs, and content is identified by hash. |
|---|---|
| Pass 2 reconciliation sidecar | WASM002_Pass2_Reconciliation_20260929.sha256.txtStates source QA Pass 2 SHA-256 D87E352F…EEB39197, which is my Pass 2 report. States Revision BL unchanged and PRD integration not performed. |
| My Pass 2 audit (source) | Red5Sorcery_Data_Sculptor_WASM002_Adversarial_QA_Review_RevBL_Pass2_2026-09-29.htmlD87E352F0FCC9101FD3B01BAC72BD8BE25A7D821CD1FC9FF70F28556EEB39197Matches my Pass 2 sidecar. The log accurately restates its counts (19 / 15 / 0 / 7) and gate. |
| Pass 1 reconciliation log | Red5Sorcery_Data_Sculptor_WASM002_Claude_QA_Reconciliation_Log_Pass1.html9A73DB717BE09D3ED92B3F0F775EEB09A214000049341FE435B7EC6DFA9255B7Unchanged since Pass 2. Used to check what earlier decisions froze. |
| Revision BL review cut | WASM-002_ADVERSARIAL_QA_PRD.html828C6A81B2C0A8B97546F728628059C53CC61256FAB23B142E452A8E566E025FUnchanged. 384 requirements. All cited IDs in this report were checked against it. |
B. The six gate items
| Item | Pass 2 severity | Pass 3 disposition | Residual |
|---|---|---|---|
| P2-01 | BLOCKING | CLOSED - INTEGRATION OBLIGATION | None of its own. Its reachability depends on P3-01. |
| P2-02 | BLOCKING | CLOSED - INTEGRATION OBLIGATION | None of its own. Fix P3-01 in the same §4.4 text. |
| F-02 | BLOCKING | PARTIALLY CLOSED | MATERIAL: P3-03. The blocking residual is closed. |
| F-03 | BLOCKING | PARTIALLY CLOSED | MATERIAL: P3-05, P3-06, P3-07; P2-04 remains open. The blocking questions are closed. |
| F-06 | BLOCKING | PARTIALLY CLOSED | BLOCKING through P3-02. MATERIAL: P3-09. |
| F-09 | BLOCKING | PARTIALLY CLOSED | BLOCKING through P3-02. MATERIAL: P3-04. |
P2-01Pass 2: BLOCKINGCLOSED - INTEGRATION OBLIGATION
- Issue carried into Pass 3
- The multi-Store MAP clause added under F-05 let an alias update from an older MAP drop another Store from current state, so the next routine run would fork it.
- What the Council decided
- One Store MAP file holds exactly one Store lineage (one rid_filename, one source_filename). Current state is chosen per lineage. Historical-base operations affect only their own lineage. Exact-source routing: none → new Store; one → that lineage; more than one → refuse and require an explicit MAP (§3).
- What holds under attack
- The disappearance path is gone. Store B's state now lives only in Store B's own MAP history, so nothing published for Store A can remove it (§3.4–3.5). The Pass 2 scenario fails at its first step.
- The single-source predicate, the F-04 cardinality gate and the no-positional-join rule carry over unchanged (§3.3). The Join MAP boundary is clean (§3.7).
- This matches Revision BL's own schema. W002-STOR-019.6 and 019.9 already require every row to repeat one rid_filename, so the withdrawn clause was the anomaly.
- What does not yet hold
- The ambiguity exit in §3.6 and historical-base materialization in §3.5 need a MAP clause in the materialization Work Order. §4.4 does not provide one. See P3-01.
- The routing word "eligible" in §3.6 must cover DEGRADED and INVALID lineages, and a lineage whose every MAP is damaged is not covered. See P3-07.
- Revision BL requirements affected
- W002-STOR-010.1, W002-STOR-019.1, W002-STOR-019.2, W002-STOR-019.9, W002-WKO-012.3, W002-UI-ACC-016
- Integration consequence
- As listed in §3.10. Also remove store_source_filename, which is still in W002-STOR-019.2 (routing), 019.6, 019.8, 019.9, 019.12, W002-MAT-ACC-002.1, W002-WKO-012.6, W002-STEPS-008 and W002-UI-ACC-017.
- Residual
- None of its own. Its reachability depends on P3-01.
P2-02Pass 2: BLOCKINGCLOSED - INTEGRATION OBLIGATION
- Issue carried into Pass 3
- The F-08 grammar made WORK ORDER AS mandatory and dropped trailing comments, contradicting Revision BL and F-02 without saying so.
- What the Council decided
- WORK ORDER AS is mandatory, appears exactly once, is non-empty, and applies to every operation. Revision BL's trailing-comment rule is retained. The superseded text is listed (§4).
- What holds under attack
- Both questions now have explicit decisions with named supersessions (§4.6), which is what Pass 2 asked for.
- The comment rules match W002-STEPS-001.2 exactly: first # outside quotes, # inside quotes is content, and comment bytes are part of WKO identity (§4.3). The canonical W002-STEPS-001 example is valid again.
- A mandatory alias fits the three-column WKO MAP and removes the empty-alias special case from registry repair.
- What does not yet hold
- §4.4 re-freezes the materialization structure without the optional MAP clause that Revision BL W002-WKO-012.3 provides and P2-01 depends on. The defect is in this text, but it is not the P2-02 question, so it is reported as P3-01.
- Revision BL requirements affected
- W002-STEPS-001, W002-STEPS-001.1, W002-STEPS-001.2, W002-STOR-018.2, W002-MAT-ACC-002.3, W002-MAT-ACC-002.4
- Integration consequence
- §4.8 lists the core rewrites. The optional-alias wording also survives in W002-STOR-018 ("optional immutable Work Order content"), 018.2 ("the empty string when no alias is declared"), 018.3 ("its optional Work Order alias"), W002-STEPS-001 ("the optional immutable human-facing WKO alias"), W002-UI-023 ("optional WORK ORDER AS") and the canonical INVENTORY form in W002-INV-001, which has no alias.
- Residual
- None of its own. Fix P3-01 in the same §4.4 text.
F-02Pass 2: BLOCKINGPARTIALLY CLOSED
- Issue carried into Pass 3
- Pass 2 residual: registry repair could not be reached when the registry was stale. Material residuals: DEPRECATED Run eligibility, WKO validity predicate, WKO MAP row order, and the missing operation token.
- What the Council decided
- Bounded bootstrap: while the registry is repair-required, a saved repair-only WKO may Run by exact filename without being registered. The decision also defines the discovery rules, a structural-validity predicate, the three-column WKO MAP serialization, DEPRECATED Run by exact filename only, and the REPAIR_WORK_ORDER_REGISTRY token (§5).
- What holds under attack
- The bootstrap is narrow and honest. It needs a visible, saved, immutable repair-only WKO; it runs by exact filename; no other operation gains eligibility; and Save does not pretend the registry is healthy (§5.2–5.3). The Pass 2 deadlock is broken.
- All four material residuals are answered: DEPRECATED runs by exact filename only (§5.7); structural validity is separate from runtime success (§5.5); rows sort by wko_filename (§5.6); and the token exists (§5.8). F-14's missing WKO predicate is answered by §5.5 as well.
- Discovery keeps the no-winner-by-time principle (§5.4).
- What does not yet hold
- Nothing defines when the registry counts as repair-required. Revision BL's rule for choosing the current WKO MAP would make a stale MAP non-current and silently revert alias authority. See P3-03.
- §5.5 requires a WKO to parse under "exactly one defined operation grammar", but the INVENTORY, UPDATE ALIASES and CONVERT structures are still unfrozen (F-08 material). Until they are, registry repair cannot classify copied-in WKOs of those kinds.
- Revision BL requirements affected
- W002-STOR-018.2, W002-STOR-018.3, W002-STOR-018.4, W002-UI-023
- Integration consequence
- As listed in §5.10, plus the W002-STOR-018.4 current-selection rewrite from P3-03.
- Residual
- MATERIAL: P3-03. The blocking residual is closed.
F-03Pass 2: BLOCKINGPARTIALLY CLOSED
- Issue carried into Pass 3
- Pass 2 residuals: REPAIR MAP had no target, repairing a Store whose every COL was broken would erase it, and "untrustworthy MAP means INVALID" conflicted with the malformed-newer-MAP fallback.
- What the Council decided
- MAP structural validity is separate from Store health. Only structurally valid MAPs compete for current state, and malformed newer MAPs fall back. VALID, DEGRADED and INVALID are evaluated, not persisted. REPAIR MAP names the exact current MAP, and it refuses when the Store is not DEGRADED or when repair would leave zero COLs. Damaged lineages route to refusal, never to re-creation (§6).
- What holds under attack
- The validity/health split (§6.1) removes the INVALID-versus-fallback conflict. §6.9's three cases form a usable oracle, and "don't fall back to hide present damage" is the right principle.
- REPAIR MAP now has an exact target. The target must be current and DEGRADED; historical and wrong-profile targets refuse; and Data Sculptor, not the analyst, decides which bindings are broken (§6.6–6.7).
- The all-COLs-broken case refuses without inventing an anchor row (§6.8). Status is evaluated rather than stored (§6.4). Routing treats damage as refusal, not absence (§6.10).
- What does not yet hold
- An INVALID Store, or a DEGRADED Store with every COL broken, blocks its source filename indefinitely, and Help is not given the exit. See P3-05.
- "Exact original restored byte-for-byte" cannot be checked from what the MAP records. Validation depth (P2-04) now determines REPAIR MAP output. See P3-06.
- A lineage whose only MAP is damaged becomes invisible to routing and forks. See P3-07.
- Revision BL requirements affected
- W002-STOR-019.10, W002-STOR-019.11, W002-RID-009, W002-RID-010, W002-STEPS-010, W002-RCP-011
- Integration consequence
- As listed in §6.12.
- Residual
- MATERIAL: P3-05, P3-06, P3-07; P2-04 remains open. The blocking questions are closed.
F-06Pass 2: BLOCKINGPARTIALLY CLOSED
- Issue carried into Pass 3
- Pass 2 residual: CSV refusal-location facts and condition tokens were undefined, and the bare-CR rule was not scoped to unquoted context.
- What the Council decided
- Five governed facts and seven condition tokens, each with a location rule, a field-ordinal rule, first-condition precedence and window invariance. Bare CR refuses only outside quotes. EOF inside quotes refuses explicitly. Semicolon and tab files are not refused merely for their delimiter (§7).
- What holds under attack
- The location oracle is exact. Offsets are absolute and include the BOM, physical lines count LFs, logical records include the header, and field ordinals are fixed for each condition (§7.1–7.4). I worked the edge cases: blank CRLF record, short last record with no terminator, doubled quotes, a CR straight after a closing quote, and a quote after leading whitespace. Each has one answer.
- Precedence follows source-byte order, with the right tie rules (§7.7). Byte coordinates line up with F-07 (§7.10).
- What does not yet hold
- Revision BL requirements affected
- W002-MAT-003.2, W002-MAT-ACC-003, W002-MAT-001.7
- Integration consequence
- As listed in §7.12, plus the P3-09 token.
- Residual
- BLOCKING through P3-02. MATERIAL: P3-09.
F-09Pass 2: BLOCKINGPARTIALLY CLOSED
- Issue carried into Pass 3
- Pass 2 residual: the six-key envelope dropped Revision BL's core Receipt facts, MATERIALIZE, INVENTORY and REPAIR_MAP had no key tables, Inventory lacked per-file fields, and three-digit indices overflowed.
- What the Council decided
- The Revision BL core is restored and RECEIPT_UTC is defined. There are key tables for all six operations, a three-key Inventory entry, indices with a three-digit minimum and no maximum, a concrete fallback disclosure, and mandatory byte-exact fixtures (§8).
- What holds under attack
- The envelope now matches Revision BL W002-RCP-006 plus RECEIPT_UTC, which is defined exactly (§8.2). The Pass 2 conflict is gone.
- Every executable operation has a table. Inventory carries all three W002-INV-003 fields plus the generating WKO and the Suitcase declaration (§8.10). Fallback disclosure is concrete (§8.8). Golden fixtures are required for all six operations and for INV (§8.15).
- I checked the arithmetic behind the no-maximum index rule: a 16,384-column Store-establishing run creates RID + 16,384 COLs + MAP = 16,386 artifacts, as §8.4 and §8.16 state.
- What does not yet hold
- The MATERIALIZE key order is frozen as exact and has no slot for the F-06 and F-07 refusal facts. See P3-02.
- Refusal serialization still turns on "the applicable absence token". RESULT is an open set, UNKNOWN_OPERATION has no form, NOT_APPLICABLE is missing from §8.3, and some key names are given only by ellipsis. See P3-04.
- Revision BL requirements affected
- W002-RCP-005, W002-RCP-006, W002-RCP-007, W002-RCP-008, W002-RCP-011, W002-INV-003, W002-INV-006
- Integration consequence
- As listed in §8.17. W002-RCP-008 also still names RECOVER RID.
- Residual
- BLOCKING through P3-02. MATERIAL: P3-04.
C. New Pass 3 findings
| ID | Severity | Finding |
|---|---|---|
| P3-01 | BLOCKING | The frozen materialization structure has no MAP clause, so the explicit-MAP path P2-01 depends on cannot be written |
| P3-02 | BLOCKING | The UTF-8 and CSV refusal facts have no place in the MATERIALIZE Receipt, whose key order is frozen as exact |
| P3-03 | MATERIAL NON-BLOCKING | The rule for choosing the current WKO MAP does not separate structural validity from missing referenced files, so the repair-required state has no defined trigger |
| P3-04 | MATERIAL NON-BLOCKING | Refusal Receipts still depend on judgment: "the applicable absence token", an open RESULT set, and no form for UNKNOWN_OPERATION |
| P3-05 | MATERIAL NON-BLOCKING | An INVALID Store, or a DEGRADED Store with every COL broken, blocks its source filename indefinitely, and Help is not given the exit |
| P3-06 | MATERIAL NON-BLOCKING | "Exact original restored byte-for-byte" cannot be checked, and P2-04 validation depth now determines REPAIR MAP output |
| P3-07 | MATERIAL NON-BLOCKING | If every Store MAP in a lineage is structurally damaged, routing no longer sees the Store and forks it, and "eligible" means two things |
| P3-08 | MATERIAL NON-BLOCKING | A Windows-1252 source cannot continue its Store across a refresh, because every conversion produces a new CVT filename |
| P3-09 | MATERIAL NON-BLOCKING | The "exactly seven" CSV condition tokens do not cover a source with no header record |
| P3-10 | CLARITY | Small wording and consistency items |
P3-01BLOCKING
The frozen materialization structure has no MAP clause, so the explicit-MAP path P2-01 depends on cannot be written
Pass 2 log sections: §3.5, §3.6, §3.9, §3.10, §4.4, §4.6 (and Pass 1 log §11.5, §11.6)
Revision BL: W002-WKO-012.3 W002-STOR-019.1 W002-STOR-019.2
Evidence
- E P2-02 §4.4 fixes the materialization form "in enforced order": SUITCASE, WORK ORDER AS, SOURCE, KEEP, selectors, MATERIALIZE. There is no MAP clause. Under Pass 1 log §11.6, any line not valid in the selected operation grammar refuses.
- E P2-01 §3.6: when more than one lineage matches the SOURCE filename, routing refuses and "the analyst must explicitly identify the intended valid Store MAP". §3.9 has a "Compatible explicit MAP" acceptance case. §3.5 lets historical Store A state be the input to "a later governed operation".
- E Revision BL W002-WKO-012.3: "For materialization, SOURCE "..." remains mandatory and an optional MAP "..." supplies the exact historical/current Store-state base." W002-STOR-019.1 and 019.2 rely on the same clause ("The analyst must explicitly select one valid MAP").
- E P2-02 §4.6 lists the Revision BL rules it supersedes. The W002-WKO-012.3 materialization clause is not among them, and P2-01 §3.10 asks to "reconcile" W002-WKO-012.3, not retire it.
- E The omission began in Pass 1 log §11.5, which lists the same six clauses. I missed it in Pass 2. P2-01 has now made it load-bearing.
Why it matters
- I Two frozen decisions in the same record disagree. Under §4.4, a materialization Work Order containing
MAP "..."refuses as unknown syntax. Under P2-01, that clause is the only way out of an ambiguous route and the only way to materialize from historical Store state. - I Integrated as written, an analyst whose Suitcase holds two lineages for crime.csv, for example after copying files in from another Suitcase, can never materialize crime.csv again. Routing refuses, and no valid Work Order can name the MAP.
- I The §3.9 "Compatible explicit MAP" and "Different source" acceptance cases cannot be written.
Impact if integrated as written. A routine routing refusal becomes a dead end, and an independent grammar test of §4.4 fails Revision BL's own canonical selector.
Question / direction for T. Add the clause to §4.4 with a frozen position and cardinality. For example: at most one MAP "<filename>" clause, immediately after SOURCE and before KEEP, binding the run to that Store lineage under P2-01 §3.3. If explicit MAP in materialization is instead being withdrawn, retire it from W002-WKO-012.3, W002-STOR-019.1 and 019.2 and give §3.6 a different exit. I recommend the first option. It is one line.
P3-02BLOCKING
The UTF-8 and CSV refusal facts have no place in the MATERIALIZE Receipt, whose key order is frozen as exact
Pass 2 log sections: §7.1, §7.11, §8.7, §8.14, §8.15 (and Pass 1 log §10.4, §19.1)
Revision BL: W002-RCP-007
Evidence
- E F-09 §8.7: a MATERIALIZE Receipt serializes "these operation-specific facts in exactly this order". The list has STAGE1_UTF8_OUTCOME and the Stage 2 counts, but no location or reason fact.
- E F-06 §7.1: "Every structural CSV refusal records these governed facts": REFUSAL_CONDITION, SOURCE_BYTE_OFFSET, PHYSICAL_LINE, LOGICAL_RECORD, FIELD_ORDINAL. It does not say which artifact records them.
- E Pass 1 log §10.4: FIRST_INVALID_BYTE_OFFSET and STOP_REASON must be exposed "to the governed diagnostic/Receipt/Help path".
- E DGN is reserved-not-emitted (Pass 1 F-33), and HLP is written on a Help event. Revision BL W002-RCP-007: a refusal Receipt "records only facts that actually became known before refusal".
- E F-09 §8.15 requires byte-exact golden Receipts for the refusal forms of every operation.
Why it matters
- I The two most common MATERIALIZE refusals, invalid UTF-8 and malformed CSV, are exactly where F-06 and F-07 froze location oracles. As written, those oracles have no durable serialized home: the Receipt table excludes them, and no other emitted artifact is named.
- I An implementer must either break "exactly this order" or keep the facts only in on-screen Help. Either is an invention, and the golden refusal fixtures that §8.15 demands cannot be authored until someone decides.
- I The same gap exists on a smaller scale in CONVERT. A refusal for an undefined Windows-1252 byte (Pass 1 log §19.1) records no offset in the §8.14 table.
Impact if integrated as written. F-06's blocking residual, usable location facts, is closed on paper but not in any artifact a tester can compare bytes against.
Question / direction for T. Decide where the facts live. I recommend adding them to the MATERIALIZE table: the two F-07 facts after STAGE1_ELAPSED_MS, and the five F-06 facts after STAGE2_ELAPSED_MS, each carrying NOT_APPLICABLE when that refusal did not occur. Prefixed names such as CSV_SOURCE_BYTE_OFFSET keep them unambiguous. If they are meant to live only in Help or HLP, say so and name the artifact and field names. Settle the CONVERT undefined-byte offset at the same time.
P3-03MATERIAL NON-BLOCKING
The rule for choosing the current WKO MAP does not separate structural validity from missing referenced files, so the repair-required state has no defined trigger
Pass 2 log sections: §5.2, §5.10, §6.1, §6.2 (and Pass 1 log §8.7)
Revision BL: W002-STOR-018.3 W002-STOR-018.4 W002-UI-023
Evidence
- E F-02 §5.2: the bootstrap applies "When the current WKO MAP contains a stale registry reference or is otherwise in the specifically defined registry-repair-required state". The "otherwise" state is not defined in this record, the Pass 1 log or Revision BL.
- E Revision BL W002-STOR-018.4: "Among valid WKO MAP artifacts, the one with the greatest canonical UTC millisecond timestamp is the current WKO alias registry." W002-STOR-018.3 validates a WKO MAP "against the exact WKO-MAP schema and referenced visible WKO files".
- E Pass 1 log §8.7: "Data Sculptor must not silently fall back to an older WKO MAP".
- E F-03 §6.1–6.2 makes exactly this split for Store MAPs. The F-02 integration consequences for W002-STOR-018.4 (§5.10) do not mention it.
Why it matters
- I Read literally, Revision BL makes a WKO MAP with a missing referenced WKO invalid, so the older WKO MAP becomes current. The stale state is then never current, the bootstrap never triggers, and alias authority silently reverts. If MAP2 moved "Crime" from W1 to W2, deleting any unrelated registered WKO makes MAP1 current, and "Crime" resolves to W1 again. Pass 1 forbids this outcome but gives no mechanism.
- I A structurally malformed newest WKO MAP is not addressed. Nothing says whether it falls back, as a Store MAP would, or makes the registry repair-required, or whether registry repair can run against it.
- I The intent can be read from Pass 1 §8.7 and F-03, which is why this is material rather than blocking. It must still be written into the integrated text.
Impact if integrated as written. A literal integration silently rolls back Work Order alias authority, which is the failure the registry exists to prevent.
Question / direction for T. Mirror F-03 for WKO MAPs. Choose the current WKO MAP by structural validity only. A structurally valid current WKO MAP with a missing referenced WKO stays current and is repair-required. A structurally malformed newer WKO MAP never becomes current and is reported. Replace "or is otherwise in the specifically defined…" with that definition, or delete it.
P3-04MATERIAL NON-BLOCKING
Refusal Receipts still depend on judgment: "the applicable absence token", an open RESULT set, and no form for UNKNOWN_OPERATION
Pass 2 log sections: §8.3, §8.6, §8.7, §8.9, §8.11, §8.12, §8.13 (and Pass 1 log §21.4)
Revision BL: W002-RCP-006 W002-RCP-007
Evidence
- E §8.7: RID_ACTION uses "CREATED, REUSED, or the applicable absence/not-run token on refusal". SUCCESSOR_MAP_FILENAME uses "the applicable absence token". §8.9 and §8.11 say the same. Only §8.12 fixes a token (NONE) for a named refusal.
- E §8.3 lists NONE, NOT_RUN and NOT_AVAILABLE. Pass 1 F-18 (§21.4) added NOT_APPLICABLE to the same shared vocabulary, and §8.3 omits it.
- E §8.3: "RESULT uses at minimum SUCCESS or REFUSED". That is an open set, inherited from W002-RCP-006.
- E §8.3 keeps OPERATION: UNKNOWN_OPERATION, but tables exist only for the six tokens in §8.6. Nothing says what follows the envelope in that case.
- E Some key names are given only by ellipsis. §8.7 has "PUBLISHED_COL_... lines", while §8.12 and §8.13 have BROKEN_COL_..._FILENAME and REMOVED_STALE_WKO_..._FILENAME. It is not stated whether published COLs are PUBLISHED_COL_001 or PUBLISHED_COL_001_FILENAME.
Why it matters
- I For a MATERIALIZE refused at the F-04 cardinality gate, is RID_ACTION NONE, NOT_RUN or NOT_AVAILABLE? Two careful implementers can differ, and each would pass a golden fixture written to match their own choice.
- I The §8.15 fixtures close this only if the integrated PRD itself carries a fixture for every refusal stage of every operation, not one refusal per operation.
Impact if integrated as written. The byte-exact oracle is incomplete exactly where refusals happen.
Question / direction for T. For each operation, add a small matrix of refusal stage (parse, validation, Stage 1, Stage 2, gate, publication) by key, giving the token. Close RESULT to an exact set. State the UNKNOWN_OPERATION form, presumably the envelope followed by CREATED_ARTIFACT_COUNT: 0. Spell every indexed key in full.
P3-05MATERIAL NON-BLOCKING
An INVALID Store, or a DEGRADED Store with every COL broken, blocks its source filename indefinitely, and Help is not given the exit
Pass 2 log sections: §6.4, §6.8, §6.10
Revision BL: — (no Revision BL text; the defect is in the reconciliation decisions)
Evidence
- E F-03 §6.8: repair refuses when every COL is broken, and the Store "remains DEGRADED". §6.4: while a Store is INVALID, no governed recovery exists.
- E §6.10: when routing identifies a DEGRADED or INVALID lineage, materialization refuses, and the source is never treated as unseen.
- E The §6.8 Help duty covers only external restoration of an exact original COL.
Why it matters
- I The honesty rule is right. The consequence is that crime.csv can never be materialized again in that Suitcase while that lineage's MAPs remain. A likely case is a one-column Store whose single COL was deleted to save space.
- I The only exits are the analyst's own file actions. They can rename the source, which begins a new Store under a new filename, or move the damaged lineage's MAP files out of the Suitcase so routing no longer finds it. Neither exit is stated, so Help will either say nothing useful or an implementer will invent advice.
Impact if integrated as written. A recoverable situation looks like a permanent lock to a non-programmer analyst.
Question / direction for T. Freeze the Help content for both states. It should name the blocked lineage and state the analyst-owned exits and what each one does: restore the exact artifacts; rename the source to begin a new Store; or retire the lineage by moving its MAPs out. No new operation is needed.
P3-06MATERIAL NON-BLOCKING
"Exact original restored byte-for-byte" cannot be checked, and P2-04 validation depth now determines REPAIR MAP output
Pass 2 log sections: §3.11, §6.4, §6.7, §6.8, §6.13
Revision BL: W002-STOR-019.6
Evidence
- E §6.4: if the exact original RID "is externally restored byte-for-byte under its original physical identity and validates again", the Store may evaluate VALID or DEGRADED. §6.8 says the same for COLs.
- E The Store MAP schema (W002-STOR-019.6) records filenames only: no byte length, row count or digest. P2-01 §3.11 and F-05 leave the final column set open.
- E §6.7: REPAIR MAP removes exactly the COLs that are "currently missing or invalid". §6.13 leaves the validation depth (P2-04) open.
Why it matters
- I Data Sculptor can check only that a file with the right name is present and passes validation. Any valid RID placed under the original name makes the Store evaluate VALID again, even one with a different N. The text promises more than the system can verify.
- I REPAIR MAP's successor bytes depend on which COLs count as invalid. Until P2-04 fixes validation depth, two implementations can publish different successor MAPs from the same Suitcase, and the REPAIR_MAP golden fixture has no single right answer.
Impact if integrated as written. Status can report a substituted Store as VALID, and one gate operation's output is not yet determined.
Question / direction for T. Either record per-artifact evidence in the Store MAP so status can prove identity (for example RID N, plus byte length or SHA-256 for the RID and each COL), or reword §6.4 and §6.8 to "a file under the original name that passes the governed checks" and accept the boundary. Close P2-04 no later than integration, with REPAIR MAP fixtures for each validation tier.
P3-07MATERIAL NON-BLOCKING
If every Store MAP in a lineage is structurally damaged, routing no longer sees the Store and forks it, and "eligible" means two things
Pass 2 log sections: §3.6, §6.2, §6.10, §6.11
Revision BL: W002-STOR-019.10
Evidence
- E F-03 §6.2: only structurally valid Store MAPs take part in current-state selection. The lineage of a malformed MAP cannot necessarily be read.
- E P2-01 §3.6: "If no eligible Store lineage matches … materialization may establish a new Store and new RID."
- E F-03 §6.11: "No silent fork: neither DEGRADED nor INVALID allows ordinary materialization to create a replacement Store for the same routed lineage."
- E P2-01 §3.6 routes over "eligible" lineages, while F-03 §6.10 requires routing to find DEGRADED and INVALID lineages. Revision BL W002-STOR-019.10 still ties eligibility to referenced RID and COL validity.
Why it matters
- I Every new Store starts with one MAP. If that MAP is truncated or corrupted, no structurally valid MAP is left. Routing finds nothing, and the next run establishes a second Store with a new RID while the original RID and COLs sit orphaned. That is the Pass 1 F-03 failure, now limited to a narrower cause.
- I If "eligible" in §3.6 is integrated with its Revision BL meaning, a DEGRADED or INVALID lineage is ineligible, so §3.6 would establish a new Store. That is exactly the fork §6.10 forbids. The two sections need one agreed term.
Impact if integrated as written. The unconditional no-silent-fork promise does not hold for the one-MAP case.
Question / direction for T. (1) Route over every lineage that has at least one structurally valid Store MAP, regardless of health, and use that term in §3.6. (2) Decide the all-MAPs-damaged boundary. Either refuse to establish a new Store while any structurally malformed MAP-class artifact is present, with Help naming it, or accept the boundary explicitly and require Help to report malformed MAP artifacts whenever a new Store is established. The first is safer; the second is cheaper.
P3-08MATERIAL NON-BLOCKING
A Windows-1252 source cannot continue its Store across a refresh, because every conversion produces a new CVT filename
Pass 2 log sections: §3.3, §3.6 (and Pass 1 log §13)
Revision BL: — (no Revision BL text; the defect is in the reconciliation decisions)
Evidence
- E P2-01 §3.3 and §3.6: a Store's source identity is its exact source_filename, and a Work Order's SOURCE must equal it.
- E Pass 1 F-10 (§13): conversion publishes a new governed CVT named
__DS__CVT__<UTC>__<uuid>.csv. F-26 allows SOURCE to be a CVT.
Why it matters
- I A legacy export converted each month gets a new CVT name each month. Each month's materialization therefore establishes a new Store and a new RID, with no refusal or warning. For a same-named UTF-8 CSV, F-04 governs refresh continuity; for a Windows-1252 source it never applies.
- I This may be intended, since a CVT is a different source artifact. It isn't stated, though, and to an analyst it will look like the fork the design prevents everywhere else.
Impact if integrated as written. Legacy-encoded sources get weaker lineage continuity than UTF-8 sources, without anyone saying so.
Question / direction for T. Either state that CVT sources always begin a new Store, and have Help say so at conversion and at materialization, or let a CVT carry its original source filename as the Store's source identity. The second is a larger change. I would take the first for WASM-002.
P3-09MATERIAL NON-BLOCKING
The "exactly seven" CSV condition tokens do not cover a source with no header record
Pass 2 log sections: §7.2, §7.3
Revision BL: W002-MAT-001.7
Evidence
- E F-06 §7.2: the canonical structural malformed-CSV condition tokens "are exactly" seven.
- E Revision BL W002-MAT-001.7: "a source with no valid header record refuses."
- E A zero-byte file, or a file containing only a UTF-8 BOM (EF BB BF), passes Stage 1 and contains no logical record, so none of the seven conditions is ever established. A file whose first record is blank is already covered by BLANK_LOGICAL_RECORD.
Why it matters
- I An implementer must invent an eighth token or misuse one of the seven, and the location rules in §7.3 have no row for this case.
Impact if integrated as written. A predictable fixture, the empty file, has no oracle.
Question / direction for T. Add one token (for example NO_HEADER_RECORD). Its location is offset = source byte length (0 or 3), PHYSICAL_LINE 1, LOGICAL_RECORD 1, FIELD_ORDINAL 1. Add a fixture for each of the two byte forms.
P3-10CLARITY
Small wording and consistency items
Pass 2 log sections: §4.1, §5.4, §6.6, §7.9, §8.10
Revision BL: W002-INV-006
Evidence
- E F-03 §6.6 opens "A WASM-002 registry-repair Work Order is not target-free", but it means REPAIR MAP. "Registry repair" is F-02's term for the Work Order registry.
- E F-06 §7.9: a semicolon export with quoted fields (
"a";"b") refuses as INVALID_BYTE_AFTER_CLOSING_QUOTE, not at header resolution. The delimiter hint in Help therefore never appears for the most common European-locale export. Allow the hint for that condition when the offending byte is;or TAB. - E P2-02 §4.1 says the alias must be "non-empty". It does not say whether a whitespace-only alias is valid.
- E F-09 §8.10: INVENTORY_UTC is not tied to the INV filename's UTC, as RECEIPT_UTC is to the RCP filename. The INV header has no counterpart to RECEIPT_FILENAME. "When usable" for last-modified has no test.
- E F-02 §5.4: "The repair WKO itself participates in discovery … after the repair run succeeds." It is discovered during the run, and its registration appears in the successor MAP.
Why it matters
- I Each is cheap to fix during integration. None changes a decision.
Impact if integrated as written. Minor misreadings during integration.
Question / direction for T. Correct them in the integrated text.
D. Effect on other open items
This pass did not re-audit the other findings. The six decisions do change some of them:
| Item | Effect |
|---|---|
| F-05 | Its blocking dependency on P2-01 is lifted. Still open (material): the Store MAP column set. Removing store_source_filename touches nine requirements; see P2-01. |
| F-07 | Still open (material): the STOP_REASON and STAGE1_UTF8_OUTCOME token sets. Where the facts are serialized is now P3-02. |
| F-08 | The blocking dependency moves from P2-02 to P3-01. REPAIR MAP (§6.6) and REPAIR WORK ORDER REGISTRY (§5.1) now have forms. INVENTORY, UPDATE ALIASES and CONVERT structures, the RUN trigger and token separation remain material. F-02 §5.5 now depends on them. |
| F-10 | The conversion Receipt table is carried over unchanged (§8.14). The undefined-byte refusal offset is noted under P3-02. |
| F-14 | The WKO validity predicate is now supplied by F-02 §5.5. SCR naming, attribution and the CER path remain open. |
| F-18 / P2-05 | Still open. §8.3 now omits NOT_APPLICABLE (P3-04). |
| P2-03 | Per-lineage history (§3.4) makes "predecessor" definable as the lineage's current MAP, but the text doesn't say so. A future-dated MAP still locks its lineage (or the WKO registry) with no governed exit. |
| P2-04 | Still open, and now load-bearing for REPAIR MAP output (P3-06). |
| P2-06 | Still open. P2-01 rewrites W002-STOR-010.1, but the Pass 1 log §14 citations still need an erratum. |
| P2-07 | Partly addressed. This record came with a SHA-256 sidecar. The Pass 1 log erratum is still pending. |
| All other Pass 1 findings | Unchanged from Pass 2. |
E. Integration checklist additions
These add to the Pass 2 checklist; they do not replace it.
Resolve before integration (blocking)
- P3-01: add an optional
MAP "<filename>"clause to the P2-02 §4.4 materialization structure, with frozen position and cardinality. Otherwise retire explicit MAP from W002-WKO-012.3, W002-STOR-019.1 and 019.2 and give P2-01 §3.6 another exit. - P3-02: name where the F-06 and F-07 refusal facts are serialized. If it is the MATERIALIZE Receipt, add the keys to the §8.7 order with absence tokens. Settle the CONVERT undefined-byte offset at the same time.
Decide no later than integration (material)
- P3-03: choose the current WKO MAP by structural validity; define repair-required; define behavior for a malformed newest WKO MAP.
- P3-04: per-operation refusal-stage × key token matrix; closed RESULT set; UNKNOWN_OPERATION form; NOT_APPLICABLE in §8.3; indexed key names spelled in full.
- P3-05: Help content and analyst-owned exits for INVALID and all-COLs-broken DEGRADED Stores.
- P3-06: record artifact evidence in the Store MAP, or reword the restoration rules; close P2-04 with tiered REPAIR MAP fixtures.
- P3-07: one routing term covering all lineages with a structurally valid MAP; decide the all-MAPs-damaged boundary.
- P3-08: state CVT lineage behavior and its Help.
- P3-09: add the no-header-record condition token, its location, and fixtures.
- Carried from Pass 2: F-05 Store MAP column set; F-07 token sets; F-08 remaining operation structures, RUN trigger and token separation; P2-03, P2-04, P2-05, P2-06; all other material residuals in the Pass 2 checklist.
Revision BL sweep for mandatory aliases (P2-02)
- W002-STOR-018, W002-STOR-018.2, W002-STOR-018.3, W002-STEPS-001, W002-STEPS-001.1, W002-UI-023, W002-MAT-ACC-002.3, and the canonical INVENTORY form in W002-INV-001.
Revision BL sweep for store_source_filename (P2-01 / F-05)
- W002-STOR-019.2 (routing by store_source_filename becomes the lineage's common source_filename), W002-STOR-019.6, 019.8, 019.9, 019.12, W002-MAT-ACC-002.1, W002-WKO-012.6, W002-STEPS-008, W002-UI-ACC-017.
Other Revision BL rewrites introduced by the six decisions
- W002-STOR-018.4 and W002-UI-023 ("newest valid WKO MAP") to structural validity (P3-03).
- W002-STOR-019.10 to structural validity only (F-03 §6.12). W002-RCP-008 drops RECOVER RID. W002-RCP-006 closes RESULT.
- W002-INV-006 to the §8.10 byte form; W002-MAT-003.2 and W002-MAT-ACC-003 to the five-fact window invariance.
F. Gate conclusion
NOT READY FOR CANONICAL PRD INTEGRATION
Two contradictions between the frozen decisions must be resolved first:
- P3-01 — add the MAP clause to the materialization structure (or retire explicit MAP and give P2-01 another exit).
- P3-02 — say where the UTF-8 and CSV refusal facts are serialized, and put them in the MATERIALIZE key order if that is the Receipt.
Nothing else stands in the way. P3-03 to P3-10 and the carried material items can be settled no later than integration. A full Pass 4 is not needed for P3-01 and P3-02: an erratum to the Pass 2 reconciliation log covering the two items can be checked in one short sitting. If it resolves both without introducing a new contradiction, the gate can move to READY FOR CANONICAL PRD INTEGRATION.