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 in sandbox/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

  1. Update-on-ingest is real. When TFD-0021 landed, it updated foundry-independence.md (added the distribution mechanism) and single-owner-principle.md (added the Diego/Pablo split) rather than creating duplicate pages. The Karpathy promise holds on factory content.
  2. 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.
  3. Citation-by-section works with the [TFD-NNN §X](../raw/...) convention. Widget click-through is straightforward.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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-wiki flag 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.