Sandbox Report — Maya M1 Pattern Validation
Sandbox Report — Maya M1 Pattern Validation
Date: 2026-05-26 Operator: Riley (R&D), with Pablo Goal: validate the Karpathy LLM Wiki pattern (RD-0017) on real factory TFDs before locking the M1 schema.
Setup
sandbox/raw/— TFD-0019, TFD-0021, TFD-0022 (3 factory decisions).sandbox/wiki/— built from scratch per the schema insandbox/CLAUDE.md.sandbox/CLAUDE.md— adapted Karpathy schema (purpose, folder structure, ingest workflow, formatting, QA, lint).
What the wiki contains after ingest
- 4 concept pages: foundry-independence, document-before-shipping, customer-data-isolation, single-owner-principle.
- 5 entity pages: Francois, Diego, Pablo, Cloudflare D1+Pages, toolkit-catalog-bundle, framework-library (6).
- 1 cross-cutting answer page synthesizing the 3 TFDs.
- 1 index + 1 changelog.
Cross-cutting question — answered from wiki, not raw
"How do toolkit-catalog distribution, EA catalog storage, and rendering layer ownership interact for a digital talent delivery?"
Answer page (wiki/answers/talent-delivery-composition.md) connects all 3 TFDs through 2 cross-cutting principles (foundry independence, single-owner) and walks through a real STM EA handover composition end-to-end. Cites every claim back to the source TFD section.
/lint-wiki report
| Check | Result | Notes |
|---|---|---|
| Contradictions | ✅ None | No ⚠ Contradicts: callouts found |
| Orphan pages | ⚠ 1 | entities/framework-library.md has no inbound links yet (created last). Fix: add link from francois-framework-specialist.md (1 edit) |
| Dead refs | ⚠ 1 | entities/francois-framework-specialist.md links TFD-0010 but uses the TFD-0021 source path as workaround (TFD-0010 not in raw/ — out of sandbox scope). Mark as deliberate (sandbox limitation). |
| Outdated claims | ✅ None | All 3 TFDs are current |
| Missing concept pages | ⚠ 1 candidate | "Spike-first gate" mentioned in TFD-0019 (CSV→D1 lifecycle) and TFD-0021 (toolkit-catalog rollout). Worth its own page in v2 |
Findings
What worked
- Update-on-ingest is real. When TFD-0021 landed, it updated
foundry-independence.md(added the distribution mechanism) andsingle-owner-principle.md(added the Diego/Pablo split) rather than creating duplicate pages. The Karpathy promise holds on factory content. - Cross-document synthesis is the killer feature. The answer page (
talent-delivery-composition.md) is something neither grep nor Confluence search would have produced — it requires reading and linking, not just retrieving. - Citation-by-section works with the
[TFD-NNN §X](../raw/...)convention. Widget click-through is straightforward. - Bilingual handling is fine. TFD-0022 is FR, TFDs 019/021 are EN. Synthesis kept source quotes in their language, used FR for sections referencing TFD-0022, EN elsewhere. No friction.
What needs decision before M1 build
- Wiki page ID stability. When a concept gets renamed, do we move the file (and break links) or keep the file and update the H1? Proposal: filename = stable slug; H1 = current display name. Lint detects orphans on rename.
- Update vs append. When TFD-0021 added the Diego/Pablo split to
single-owner-principle.md, should the AI append a section or merge in-place? Append is safer + auditable; merge is denser. Proposal: append-with-edit-log section per page. - Cross-language synthesis policy. Should the wiki have separate FR/EN versions of each page, or one bilingual page? Proposal: one page, source language preserved in quotes, synthesis prose in source-language-dominant FR/EN.
- Answer pages — generated vs handcrafted. This sandbox handcrafted the answer. In production, should answers be generated on-the-fly per query (no persistence) or persisted in
wiki/answers/after the first asking? Proposal: persist if Maya answers from wiki, regenerate if from raw, and let/lint-wikiflag stale answer pages.
Pattern friction (RD-0017 gaps surfaced)
- No mechanism for typed objects. TFD-0019 has 4 alternatives, 6 consequences, 2 open items — flat-markdown synthesis works but a structured schema (Capability / Decision / Risk / Open Item) would make queries like "what's open?" trivial. Recommendation: don't force schema in M1 — measure pain at 30 sources before adding.
- No "supersedes" handling beyond text. TFD-0022 "Refines: TFD-0010" is captured in prose but not exploited. Recommendation: add a frontmatter convention in M2 (
supersedes:,refines:) and have lint use it.
Recommendation
The pattern works. Locking the M1 schema as drafted in sandbox/CLAUDE.md. The 4 open questions above belong in process/stage-1-decisions.md for Pablo to close this week.
Time elapsed: ~25 min (matches RD-0017 estimate).
Stage 1 acceptance gate item ✅: sandbox proof complete and produced a non-trivial wiki + lint report.