21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
# Content data
|
|
|
|
Data-driven definitions (skills, items, recipes, quests) validated in CI with **JSON Schema**.
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| [`schemas/`](schemas/) | JSON Schema files (`*.schema.json`) |
|
|
| [`skills/`](skills/) | Skill catalogs; each row matches [`schemas/skill-def.schema.json`](schemas/skill-def.schema.json) — **stable `id`**, **`allowedXpSourceKinds`** for [E2.M1](../docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md) / [E2.M2](../docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md) |
|
|
|
|
**Prototype Slice 1 (NEO-33):** CI expects **exactly three** skill rows with ids **`salvage`**, **`refine`**, **`intrusion`** (gather + process + tech). Each row must declare **`allowedXpSourceKinds`** (non-empty); see [E2.M1 — Designer note: `allowedXpSourceKinds`](../docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md#designer-note-allowedxpsourcekinds-and-grant-call-sites) for what each kind means for grant wiring.
|
|
|
|
Server load path and hot-reload policy are TBD; keep files versioned here as the source of truth.
|
|
|
|
**Validate locally** (same as PR gate):
|
|
|
|
```bash
|
|
pip install -r scripts/requirements-content.txt
|
|
python scripts/validate_content.py
|
|
python scripts/check_decomposition_language.py
|
|
```
|