feat(01-04): Vite-native content pipeline + Zod schemas + demo fragment + /content/ README
- FragmentSchema with stable-string-ID regex /^season\d+\.[a-z0-9._-]+$/ - SeasonContentSchema wraps fragments[] - loader.ts uses import.meta.glob with literal patterns (Pitfall 1) - Throws on schema violation at module-eval time, failing npm run build (PIPE-01) - Test-only loadFragmentsFromGlob helper for unit-test injection - Demo fragment season0.demo.first-light proves end-to-end round-trip - content/README.md documents the convention for Phase 2 writers (STRY-09) - Removes now-redundant src/content/.gitkeep firewall marker
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
# /content/seasons/00-demo/fragments.yaml
|
||||
#
|
||||
# Phase 1 demo fragment — proves the loader round-trips end-to-end.
|
||||
# Removed in Phase 2 when real Season 1 content lands under /content/seasons/01-soil/.
|
||||
#
|
||||
# Fragment ID convention is `season<N>.<id>` per CLAUDE.md "Code Style"
|
||||
# and content/README.md. Never numeric. Renames forbidden once shipped.
|
||||
fragments:
|
||||
- id: season0.demo.first-light
|
||||
season: 0
|
||||
body: |
|
||||
The garden remembers the first time it was tended,
|
||||
though it cannot say in whose voice.
|
||||
Reference in New Issue
Block a user