docs: drop classless terminology; rename Epic 2 to skills and progression

- Rename epic_02_classless_progression.md → epic_02_skills_and_progression.md
- Epic 2 / vision plan: Skills and Progression Framework; clarify gigs vs non-combat skills
- Replace classless prose in README, game-design, E2 modules, reviews, quest_scope
- Plan diagrams: SkillsProgression, SkillXpAndMastery
pull/17/head
VinPropane 2026-04-03 21:33:53 -04:00
parent aceb6027bf
commit fe38ebeb4f
15 changed files with 39 additions and 39 deletions

View File

@ -1,6 +1,6 @@
# Neon Sprawl # Neon Sprawl
**Neon Sprawl** is the working title for a classless, crafting-focused sci-fi / cyberpunk MMORPG (solo-dev scope). Product intent and phase gates: [`neon_sprawl_vision.plan.md`](neon_sprawl_vision.plan.md). **Neon Sprawl** is the working title for a crafting-focused sci-fi / cyberpunk MMORPG with **gigs** (combat roles) and open non-combat **skills** (solo-dev scope). Product intent and phase gates: [`neon_sprawl_vision.plan.md`](neon_sprawl_vision.plan.md).
## Tech stack (locked) ## Tech stack (locked)

View File

@ -25,7 +25,7 @@ This workspace contains detailed planning artifacts derived from the finalized m
| Epic | Document | | Epic | Document |
|------|----------| |------|----------|
| 1 - Core Player Runtime | [epics/epic_01_core_player_runtime.md](epics/epic_01_core_player_runtime.md) | | 1 - Core Player Runtime | [epics/epic_01_core_player_runtime.md](epics/epic_01_core_player_runtime.md) |
| 2 - Classless Progression Framework | [epics/epic_02_classless_progression.md](epics/epic_02_classless_progression.md) | | 2 - Skills and Progression Framework | [epics/epic_02_skills_and_progression.md](epics/epic_02_skills_and_progression.md) |
| 3 - Crafting Economy | [epics/epic_03_crafting_economy.md](epics/epic_03_crafting_economy.md) | | 3 - Crafting Economy | [epics/epic_03_crafting_economy.md](epics/epic_03_crafting_economy.md) |
| 4 - World Topology | [epics/epic_04_world_topology.md](epics/epic_04_world_topology.md) | | 4 - World Topology | [epics/epic_04_world_topology.md](epics/epic_04_world_topology.md) |
| 5 - PvE Combat | [epics/epic_05_pve_combat.md](epics/epic_05_pve_combat.md) | | 5 - PvE Combat | [epics/epic_05_pve_combat.md](epics/epic_05_pve_combat.md) |

View File

@ -1,4 +1,4 @@
# Epic 2 - Classless Progression Framework # Epic 2 - Skills and Progression Framework
## Source Anchors ## Source Anchors
@ -8,11 +8,11 @@
## Ownership and success (Level 1) ## Ownership and success (Level 1)
- **Ownership focus:** Systems Design + Gameplay Engineering - **Ownership focus:** Systems Design + Gameplay Engineering
- **Success criteria:** Any character can train all skills, and progression remains long-term without dead-end grinds. - **Success criteria:** Any character can train all **non-combat** **skills** tracked as `SkillDef`, and **skill** progression stays long-term without dead-end grinds (**gig** combat roles are separate—see [`gigs.md`](../../game-design/gigs.md)).
## Objective ## Objective
Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry, **skill** XP awards, level curves, and eventually mastery/perk and pacing controls. **Gathering** and **crafting** feed **skill** progression via [E2.M2](../modules/E2_M2_XpAwardAndLevelEngine.md); **combat encounters** feed **gig** progression (not `SkillDef` XP)—see [`docs/game-design/progression.md`](../../game-design/progression.md). **Mission rewards** may still grant **skill** XP when scripted. Provide a data-driven **non-combat skill** layer: `SkillDef` registry, **skill** XP awards, level curves, and eventually mastery/perk and pacing controls. **Gathering** and **crafting** feed **skill** progression via [E2.M2](../modules/E2_M2_XpAwardAndLevelEngine.md); **combat encounters** feed **gig** progression (not `SkillDef` XP)—see [`docs/game-design/progression.md`](../../game-design/progression.md). **Mission rewards** may still grant **skill** XP when scripted.
## Module Breakdown ## Module Breakdown
@ -33,7 +33,7 @@ Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry,
### E2.M3 - MasteryAndPerkUnlocks ### E2.M3 - MasteryAndPerkUnlocks
- Responsibility: Mastery tracks and perk unlock state for non-class build expression. - Responsibility: Mastery tracks and perk unlock state for **skill** build expression beyond raw levels.
- Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState` - Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState`
- Dependencies: E2.M2 - Dependencies: E2.M2
- Stage target: Pre-production - Stage target: Pre-production
@ -87,7 +87,7 @@ Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry,
- Risk: XP faucets create runaway leveling in one skill. - Risk: XP faucets create runaway leveling in one skill.
- Mitigation: Diminishing returns per slice; monitor skill distribution via E9.M2. - Mitigation: Diminishing returns per slice; monitor skill distribution via E9.M2.
- Risk: Classless identity feels flat without mastery expression. - Risk: **Skill** progression feels flat without mastery expression.
- Mitigation: Ship E2.M3 early in pre-production with one flagship mastery line. - Mitigation: Ship E2.M3 early in pre-production with one flagship mastery line.
## Definition of Done ## Definition of Done

View File

@ -5,7 +5,7 @@
| Field | Value | | Field | Value |
|--------|--------| |--------|--------|
| **Module ID** | E2.M1 | | **Module ID** | E2.M1 |
| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | | **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) |
| **Stage target** | Prototype | | **Stage target** | Prototype |
| **Status** | Planned (see [dependency register](module_dependency_register.md)) | | **Status** | Planned (see [dependency register](module_dependency_register.md)) |

View File

@ -5,13 +5,13 @@
| Field | Value | | Field | Value |
|--------|--------| |--------|--------|
| **Module ID** | E2.M2 | | **Module ID** | E2.M2 |
| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | | **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) |
| **Stage target** | Prototype | | **Stage target** | Prototype |
| **Status** | Planned (see [dependency register](module_dependency_register.md)) | | **Status** | Planned (see [dependency register](module_dependency_register.md)) |
## Purpose ## Purpose
Central server-authoritative engine for **classless skill** progression: applying XP grants, resolving levels against data-driven curves, and emitting level-up events. **Gathering** and **crafting** integrate as callers for **skill** XP. **Combat encounters** advance **gigs** (gig XP), not `SkillDef` lines. **Mission rewards** may call this API for **skill** XP when the payout lists a skill grant. Callers are not hard dependencies for implementing the engine core (see Epic 2 Slice 2 vs Slice 3). Central server-authoritative engine for **non-combat skill** progression: applying XP grants, resolving levels against data-driven curves, and emitting level-up events. **Gathering** and **crafting** integrate as callers for **skill** XP. **Combat encounters** advance **gigs** (gig XP), not `SkillDef` lines. **Mission rewards** may call this API for **skill** XP when the payout lists a skill grant. Callers are not hard dependencies for implementing the engine core (see Epic 2 Slice 2 vs Slice 3).
## Responsibilities ## Responsibilities

View File

@ -5,13 +5,13 @@
| Field | Value | | Field | Value |
|--------|--------| |--------|--------|
| **Module ID** | E2.M3 | | **Module ID** | E2.M3 |
| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | | **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) |
| **Stage target** | Pre-production | | **Stage target** | Pre-production |
| **Status** | Planned (see [dependency register](module_dependency_register.md)) | | **Status** | Planned (see [dependency register](module_dependency_register.md)) |
## Purpose ## Purpose
Mastery tracks and perk unlock state so classless builds have expressive identity beyond raw level curves. Mastery tracks and perk unlock state so **skill** builds have expressive identity beyond raw level curves.
## Responsibilities ## Responsibilities

View File

@ -5,7 +5,7 @@
| Field | Value | | Field | Value |
|--------|--------| |--------|--------|
| **Module ID** | E2.M4 | | **Module ID** | E2.M4 |
| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | | **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) |
| **Stage target** | Pre-production | | **Stage target** | Pre-production |
| **Status** | Planned (see [dependency register](module_dependency_register.md)) | | **Status** | Planned (see [dependency register](module_dependency_register.md)) |

View File

@ -17,7 +17,7 @@ Fleshed-out scope, contracts, and integration notes live in **per-module documen
| E1.M3 | InteractionAndTargetingLayer | E1.M1 | TargetState, InteractableDescriptor, SelectionEvent | Prototype | Planned | | E1.M3 | InteractionAndTargetingLayer | E1.M1 | TargetState, InteractableDescriptor, SelectionEvent | Prototype | Planned |
| E1.M4 | AbilityInputScaffold | E1.M3, E5.M1 | AbilityCastRequest, HotbarLoadout, CooldownSnapshot | Prototype | Planned | | E1.M4 | AbilityInputScaffold | E1.M3, E5.M1 | AbilityCastRequest, HotbarLoadout, CooldownSnapshot | Prototype | Planned |
### Epic 2 — Classless Progression Framework ### Epic 2 — Skills and Progression Framework
| Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | | Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status |
|---|---|---|---|---|---| |---|---|---|---|---|---|

View File

@ -9,7 +9,7 @@ This doc fixes **solo vs party** quest behavior: where `QuestStepState` lives, w
- **Authoritative state** for a quest is stored **per character** (`QuestStepState` keyed by character / player id, plus quest id and any run id if replays exist). - **Authoritative state** for a quest is stored **per character** (`QuestStepState` keyed by character / player id, plus quest id and any run id if replays exist).
- There is **no** single shared “party quest row” in the prototype model; party play is expressed by **synchronizing advances** across multiple per-character states when content opts in (see below). - There is **no** single shared “party quest row” in the prototype model; party play is expressed by **synchronizing advances** across multiple per-character states when content opts in (see below).
**Rationale:** Avoids orphan state when members leave the party, keeps abandon/reset rules simple, and matches “classless solo-friendly” progression with optional co-op credit. **Rationale:** Avoids orphan state when members leave the party, keeps abandon/reset rules simple, and matches “solo-friendly” progression with optional co-op credit.
--- ---

View File

@ -2,7 +2,7 @@
Vision-level design for **combat identity**: what you bring to a fight, how you progress, and how you swap roles. **Shared progression framing** and **vocabulary**: [progression.md](progression.md). **Gigs ↔ skills seams** (gear, crafting, consumables, rep): [skills.md](skills.md). This file is the **gig** artifact proper. Vision-level design for **combat identity**: what you bring to a fight, how you progress, and how you swap roles. **Shared progression framing** and **vocabulary**: [progression.md](progression.md). **Gigs ↔ skills seams** (gear, crafting, consumables, rep): [skills.md](skills.md). This file is the **gig** artifact proper.
**Implementation anchors:** [Epic 5 — PvE combat](../decomposition/epics/epic_05_pve_combat.md); gig XP/progression will need alignment with [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) when data models split. **Implementation anchors:** [Epic 5 — PvE combat](../decomposition/epics/epic_05_pve_combat.md); gig XP/progression will need alignment with [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_progression.md) when data models split.
## What a gig is ## What a gig is

View File

@ -2,7 +2,7 @@
Shared vision for **how characters grow** in Neon Sprawl: **combat** vs **everything else** use different systems that still live on **one avatar**. Detail docs: **[gigs.md](gigs.md)** (combat roles), **[skills.md](skills.md)** (non-combat skills and **gigs ↔ skills seams**). Shared vision for **how characters grow** in Neon Sprawl: **combat** vs **everything else** use different systems that still live on **one avatar**. Detail docs: **[gigs.md](gigs.md)** (combat roles), **[skills.md](skills.md)** (non-combat skills and **gigs ↔ skills seams**).
**Implementation note:** [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) (E2.M1M4): **Slice 3** wires **gather/craft** to **skill** XP (E2.M2), **combat encounters** to **gig XP only**, and allows **mission reward** hooks to grant **skill** XP when scripted—**not** via the combat encounter pipe. **Gig** levels stay **per gig**; exact gig XP module ownership may sit beside E2.M2 or under Epic 5 until the gig data model is finalized. **Implementation note:** [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_progression.md) (E2.M1M4): **Slice 3** wires **gather/craft** to **skill** XP (E2.M2), **combat encounters** to **gig XP only**, and allows **mission reward** hooks to grant **skill** XP when scripted—**not** via the combat encounter pipe. **Gig** levels stay **per gig**; exact gig XP module ownership may sit beside E2.M2 or under Epic 5 until the gig data model is finalized.
## Vocabulary ## Vocabulary
@ -17,7 +17,7 @@ Use these terms in **design specs and tools** (fiction may say *job*, *contract*
## Why hybrid ## Why hybrid
- **Gigs** answer “what are you on **this fight**?”—readable roles, **hub swap**, cyberpunk **contract** fantasy, without alts for combat variety. - **Gigs** answer “what are you on **this fight**?”—readable roles, **hub swap**, cyberpunk **contract** fantasy, without alts for combat variety.
- **Skills** keep **economy and crafting** **classless**: anyone can raise gather/craft over time; “street doc” can mean high **Medtech fab** **skill** + rep, not only tonights gig. - **Skills** keep **economy and crafting** **open to every character** (independent of **gig**): anyone can raise gather/craft over time; “street doc” can mean high **Medtech fab** **skill** + rep, not only tonights gig.
- **Specialist fantasy:** a player can **under-invest in gigs** and still **mainline the game** through **skills**—top gatherer, crafter, or tech, with **lots of options** to explore. The **skill roster** is meant to **grow** over time; see [skills.md](skills.md) **Pillars** and **Skill roster**. - **Specialist fantasy:** a player can **under-invest in gigs** and still **mainline the game** through **skills**—top gatherer, crafter, or tech, with **lots of options** to explore. The **skill roster** is meant to **grow** over time; see [skills.md](skills.md) **Pillars** and **Skill roster**.
- **Mission rewards vs combat XP:** **Missions** (contracts, arcs, hand-ins) may **pay skill XP** as an explicit **reward**—separate from the **combat encounter** pipe. Default flow stays **fight → gig XP**; skill XP from an op is **“this jobs payout,”** not **“kills trained my fab skill.”** - **Mission rewards vs combat XP:** **Missions** (contracts, arcs, hand-ins) may **pay skill XP** as an explicit **reward**—separate from the **combat encounter** pipe. Default flow stays **fight → gig XP**; skill XP from an op is **“this jobs payout,”** not **“kills trained my fab skill.”**

View File

@ -4,7 +4,7 @@ Design for **non-combat skills** only. **Shared vocabulary**, **why we use gigs
**This file also owns the [Seams (gigs ↔ skills)](#seams-gigs-skills)** section—rules where **gigs** and **skills** meet (gear, crafting, consumables, rep, alts). **Brainstorm-only** ideas: [`brainstorm/`](brainstorm/README.md). **This file also owns the [Seams (gigs ↔ skills)](#seams-gigs-skills)** section—rules where **gigs** and **skills** meet (gear, crafting, consumables, rep, alts). **Brainstorm-only** ideas: [`brainstorm/`](brainstorm/README.md).
## Classless skills ## Skills outside combat roles
Everything **outside combat role resolution** trains on **skills**. That includes gathering, refining, crafting, non-combat tech work, and other **world interactions** we choose to track as progression. Everything **outside combat role resolution** trains on **skills**. That includes gathering, refining, crafting, non-combat tech work, and other **world interactions** we choose to track as progression.
@ -165,7 +165,7 @@ Explicit **bonuses** when skill A + B cross a threshold vs **pure fiction** (“
| Area | Tie-in | | Area | Tie-in |
|------|--------| |------|--------|
| [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) | Registry, XP engine, mastery, pacing | | [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_progression.md) | Registry, XP engine, mastery, pacing |
| [Epic 3](../decomposition/epics/epic_03_crafting_economy.md) | Gather and craft **award** skill XP; items and recipes | | [Epic 3](../decomposition/epics/epic_03_crafting_economy.md) | Gather and craft **award** skill XP; items and recipes |
| [Epic 7](../decomposition/epics/epic_07_quest_faction.md) | Quest rewards, rep gates, optional skill payouts | | [Epic 7](../decomposition/epics/epic_07_quest_faction.md) | Quest rewards, rep gates, optional skill payouts |
| [gigs.md](gigs.md) | **Craft** combat gear with **skills**; **equip** with **gigs**—[Seams](#seams-gigs-skills) | | [gigs.md](gigs.md) | **Craft** combat gear with **skills**; **equip** with **gigs**—[Seams](#seams-gigs-skills) |

View File

@ -23,7 +23,7 @@ Remaining gaps are **expected** for vision docs: stable skill IDs, per-recipe da
| `docs/game-design/overview.md` | **Matches** — index, rating vision, artifact table | | `docs/game-design/overview.md` | **Matches** — index, rating vision, artifact table |
| `docs/game-design/gigs.md` | **Matches** — sub-gig **Combat gear** bullet now links to `skills.md` **Seams** | | `docs/game-design/gigs.md` | **Matches** — sub-gig **Combat gear** bullet now links to `skills.md` **Seams** |
| `docs/game-design/README.md` | **Matches** | | `docs/game-design/README.md` | **Matches** |
| `docs/decomposition/epics/epic_02_classless_progression.md` | **Matches****Slice 3**: gather/craft → E2.M2 **skill** XP; **encounters****gig** XP; **mission rewards** may grant **skill** XP (no combat `SkillDef` from encounters) | | `docs/decomposition/epics/epic_02_skills_and_progression.md` | **Matches****Slice 3**: gather/craft → E2.M2 **skill** XP; **encounters****gig** XP; **mission rewards** may grant **skill** XP (no combat `SkillDef` from encounters) |
| `docs/decomposition/epics/epic_03_crafting_economy.md` | **Not re-read in full**`skills.md` “Where skills meet” cites E3; no contradiction spotted from skills side | | `docs/decomposition/epics/epic_03_crafting_economy.md` | **Not re-read in full**`skills.md` “Where skills meet” cites E3; no contradiction spotted from skills side |
| `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | **Matches** — schema + `allowedXpSourceKinds`, categories `gather`/`process`/`make`/`tech`, Slice 1 acceptance criteria | | `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | **Matches** — schema + `allowedXpSourceKinds`, categories `gather`/`process`/`make`/`tech`, Slice 1 acceptance criteria |
@ -51,7 +51,7 @@ None for **using the docs as design guidance**. (No incorrect security or author
## Follow-up (applied in this review pass) ## Follow-up (applied in this review pass)
- `progression.md`: **medic fab****Medtech fab** (consistent with roster). - `progression.md`: **medic fab****Medtech fab** (consistent with roster).
- `epic_02_classless_progression.md` **Slice 1** scope: **non-combat** trio aligned with `skills.md` / gigs hybrid (see commit). - `epic_02_skills_and_progression.md` **Slice 1** scope: **non-combat** trio aligned with `skills.md` / gigs hybrid (see commit).
- `skills.md`: **Tech** category row aligned with full Tech roster (exploit dev, crypto & identity). - `skills.md`: **Tech** category row aligned with full Tech roster (exploit dev, crypto & identity).
- `gigs.md`: sub-gig **Combat gear** → link to `skills.md` **Seams**. - `gigs.md`: sub-gig **Combat gear** → link to `skills.md` **Seams**.
- `AGENTS.md`: **Docs review** agent row → `.cursor/rules/docs-review-agent.md`. - `AGENTS.md`: **Docs review** agent row → `.cursor/rules/docs-review-agent.md`.

View File

@ -10,7 +10,7 @@
## Summary ## Summary
Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overview`, `progression`, `skills`, `gigs`, `README`, `brainstorm/`), extends **Epic 2** and **E2.M1/E2.M2** to match that vision, introduces **`content/schemas/skill-def.schema.json`** with **`allowedXpSourceKinds`**, replaces prototype skills with three **non-combat** rows, and adds the **docs review** agent plus an earlier coherence review file. Cross-links between game-design and decomposition are generally consistent. One **stale sentence** in **Epic 2 Objective** implied combat fed the same “classless skill” model as gather/craft; that line is **updated** during this review to match **`progression.md`** / **Slice 3**. Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overview`, `progression`, `skills`, `gigs`, `README`, `brainstorm/`), extends **Epic 2** and **E2.M1/E2.M2** to match that vision, introduces **`content/schemas/skill-def.schema.json`** with **`allowedXpSourceKinds`**, replaces prototype skills with three **non-combat** rows, and adds the **docs review** agent plus an earlier coherence review file. Cross-links between game-design and decomposition are generally consistent. One **stale sentence** in **Epic 2 Objective** implied combat fed the same **skill-XP** pipeline as gather/craft; that line is **updated** during this review to match **`progression.md`** / **Slice 3**.
## Documentation checked ## Documentation checked
@ -22,7 +22,7 @@ Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overvi
| `docs/game-design/gigs.md` | New | **Matches** gig XP rules, link to **Seams**, combat vs skill boundary | | `docs/game-design/gigs.md` | New | **Matches** gig XP rules, link to **Seams**, combat vs skill boundary |
| `docs/game-design/README.md` | New | **Matches** entry to `overview` / `progression` / brainstorm | | `docs/game-design/README.md` | New | **Matches** entry to `overview` / `progression` / brainstorm |
| `docs/game-design/brainstorm/*` | New | **Matches** “ideas only”; links to `skills.md` resolve | | `docs/game-design/brainstorm/*` | New | **Matches** “ideas only”; links to `skills.md` resolve |
| `docs/decomposition/epics/epic_02_classless_progression.md` | Updated | **Matches** after **Objective** paragraph fix (hybrid model explicit); Slice 1/3/DoD align | | `docs/decomposition/epics/epic_02_skills_and_progression.md` | Updated | **Matches** after **Objective** paragraph fix (hybrid model explicit); Slice 1/3/DoD align |
| `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | Updated | **Matches** schema paths, categories, acceptance criteria | | `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | Updated | **Matches** schema paths, categories, acceptance criteria |
| `docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md` | Updated | **Matches** `sourceKind` validation, gig vs skill callers | | `docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md` | Updated | **Matches** `sourceKind` validation, gig vs skill callers |
| `content/schemas/skill-def.schema.json` | Updated | **Matches** game-design categories (`gather`/`process`/`make`/`tech`); no combat `SkillDef` | | `content/schemas/skill-def.schema.json` | Updated | **Matches** game-design categories (`gather`/`process`/`make`/`tech`); no combat `SkillDef` |
@ -33,7 +33,7 @@ Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overvi
| `docs/reviews/2026-03-31-game-design-skills-coherence.md` | New | Prior focused review; still consistent with branch after later edits | | `docs/reviews/2026-03-31-game-design-skills-coherence.md` | New | Prior focused review; still consistent with branch after later edits |
| `docs/decomposition/epics/epic_03_crafting_economy.md` | Unchanged | **Spot-check:** gather/craft → skill XP via E2.M2 — **no contradiction** | | `docs/decomposition/epics/epic_03_crafting_economy.md` | Unchanged | **Spot-check:** gather/craft → skill XP via E2.M2 — **no contradiction** |
| `docs/decomposition/modules/client_server_authority.md` | Unchanged | **Nit:** combat path still says “`SkillDef`” in one line — likely **ability/stats** semantics, not non-combat skill catalog; clarify when combat data model is written | | `docs/decomposition/modules/client_server_authority.md` | Unchanged | **Nit:** combat path still says “`SkillDef`” in one line — likely **ability/stats** semantics, not non-combat skill catalog; clarify when combat data model is written |
| `neon_sprawl_vision.plan.md` | Unchanged | **Spot-check:** Epic 2 bullets generic — **no direct conflict** with hybrid detail in epics | | `neon_sprawl_vision.plan.md` | Updated later | Epic 2 / pillars align with **gigs + skills** hybrid (see current plan text) |
| `.vscode/launch.json`, `.vscode/tasks.json` | New | **N/A** (editor config, not design docs) | | `.vscode/launch.json`, `.vscode/tasks.json` | New | **N/A** (editor config, not design docs) |
## Blocking issues ## Blocking issues
@ -49,7 +49,7 @@ None for **using the branch as design + schema guidance**.
## Nits ## Nits
- ~~**Epic title vs filename:**~~ **Addressed** — epic H1 and vision plan use **Classless Progression Framework** (matches `epic_02_classless_progression.md`); cross-links use the same name. - ~~**Epic title vs filename:**~~ **Addressed** — epic file is **`epic_02_skills_and_progression.md`** with H1 **Skills and Progression Framework**; cross-links match.
- **`module_dependency_register.md`:** E2.M1 row could list **`allowedXpSourceKinds`** in the contract column when you next touch the register (cosmetic). - **`module_dependency_register.md`:** E2.M1 row could list **`allowedXpSourceKinds`** in the contract column when you next touch the register (cosmetic).
- **Two review files:** `2026-03-31-…` vs this `2026-04-03-…` — keep both; this one is **branch-wide vs main**, the other is **skills-focused**. - **Two review files:** `2026-03-31-…` vs this `2026-04-03-…` — keep both; this one is **branch-wide vs main**, the other is **skills-focused**.
@ -61,8 +61,8 @@ None for **using the branch as design + schema guidance**.
## Follow-up (applied during this review pass) ## Follow-up (applied during this review pass)
- `epic_02_classless_progression.md` **Objective**: hybrid **skill** vs **gig** wording + links to `progression.md` and E2.M2. - `epic_02_skills_and_progression.md` **Objective**: hybrid **skill** vs **gig** wording + links to `progression.md` and E2.M2.
- `epic_02_classless_progression.md` **E2.M1** module stub: non-combat **`SkillDef`**, categories, **`allowedXpSourceKinds`**, links to E2.M1 module + JSON Schema. - `epic_02_skills_and_progression.md` **E2.M1** module stub: non-combat **`SkillDef`**, categories, **`allowedXpSourceKinds`**, links to E2.M1 module + JSON Schema.
- **Content CI:** `.github/workflows/pr-gate.yml` + `scripts/validate_content.py` + `scripts/requirements-content.txt`; CT.M1 / E2.M1 / `content/README` / internal-content-authoring updates. - **Content CI:** `.github/workflows/pr-gate.yml` + `scripts/validate_content.py` + `scripts/requirements-content.txt`; CT.M1 / E2.M1 / `content/README` / internal-content-authoring updates.
- **Decomposition language CI:** `scripts/check_decomposition_language.py` + PR gate + CT.M1 / docs-review-agent notes. - **Decomposition language CI:** `scripts/check_decomposition_language.py` + PR gate + CT.M1 / docs-review-agent notes.
- **Epic 2 naming:** H1 + `neon_sprawl_vision.plan.md` + module/game-design link text → **Classless Progression Framework**. - **Epic 2 naming:** Renamed epic doc + **Skills and Progression Framework** (dropped misleading “classless” now that **gigs** are combat roles).

View File

@ -1,6 +1,6 @@
--- ---
name: Neon Sprawl Vision name: Neon Sprawl Vision
overview: Create a 50,000-foot planning document for Neon Sprawl, a sci-fi/cyberpunk MMORPG inspired by RuneScape, focused on classless progression and deep crafting, with optional PvP and questing. overview: Create a 50,000-foot planning document for Neon Sprawl, a sci-fi/cyberpunk MMORPG inspired by RuneScape, focused on hybrid progression (combat **gigs** and open non-combat **skills**) and deep crafting, with optional PvP and questing.
isProject: false isProject: false
--- ---
@ -17,7 +17,7 @@ isProject: false
### Experience Pillars ### Experience Pillars
- **Classless mastery:** Every character can learn and level every skill over time; identity comes from choices, gear, economy role, and mastery paths. - **Open skill training:** Every character can learn and level every **non-combat** **skill** over time; **combat** identity uses **gigs** (swappable roles). Identity also comes from choices, gear, economy role, and mastery paths.
- **Crafting-first economy:** Crafting and gathering are central progression loops, not side systems; player-made goods should matter at every stage. - **Crafting-first economy:** Crafting and gathering are central progression loops, not side systems; player-made goods should matter at every stage.
- **Persistent social world:** Shared hubs, guilds/corps, trading, and cooperative activities should be core to retention. - **Persistent social world:** Shared hubs, guilds/corps, trading, and cooperative activities should be core to retention.
- **Meaningful progression:** Long-term goals, visible advancement, and layered progression loops (short, mid, long horizons). - **Meaningful progression:** Long-term goals, visible advancement, and layered progression loops (short, mid, long horizons).
@ -298,11 +298,11 @@ Transform the validated prototype into a scalable production-ready development m
- **Scope:** Isometric camera runtime, character movement, interaction framework, input/ability scaffolding, moment-to-moment game feel. - **Scope:** Isometric camera runtime, character movement, interaction framework, input/ability scaffolding, moment-to-moment game feel.
- **Success criteria:** Stable 3D isometric control loop feels responsive and readable across supported hardware tiers. - **Success criteria:** Stable 3D isometric control loop feels responsive and readable across supported hardware tiers.
### Epic 2 - Classless Progression Framework ### Epic 2 - Skills and Progression Framework
- **Ownership focus:** Systems Design + Gameplay Engineering - **Ownership focus:** Systems Design + Gameplay Engineering
- **Scope:** Skill definitions, XP curves, unlock logic, mastery/perk unlocks, progression pacing controls. - **Scope:** **Non-combat** `SkillDef` catalog, **skill** XP and level curves, unlock logic, mastery/perk unlocks, progression pacing controls. **Combat role** progression (**gigs**) is separate—see Epic 5 and game-design `gigs.md`.
- **Success criteria:** Any character can train all skills, and progression remains long-term without dead-end grinds. - **Success criteria:** Any character can train all **non-combat** **skills** tracked as `SkillDef`, with long-term **skill** progression and no dead-end grinds; **gig** combat roles remain swappable combat identity.
### Epic 3 - Crafting, Gathering, and Itemization Economy ### Epic 3 - Crafting, Gathering, and Itemization Economy
@ -385,10 +385,10 @@ Module template:
- Dependencies: E1.M3, E5.M1. - Dependencies: E1.M3, E5.M1.
- Stage target: Prototype. - Stage target: Prototype.
### Epic 2 Modules - Classless Progression Framework ### Epic 2 Modules - Skills and Progression Framework
- **E2.M1 SkillDefinitionRegistry** - **E2.M1 SkillDefinitionRegistry**
- Responsibility: Central catalog for skill metadata, category tags, unlock prerequisites. - Responsibility: Central catalog for **non-combat** `SkillDef` metadata, category tags, unlock prerequisites (and **`allowedXpSourceKinds`** in prototype schema).
- Key contracts: `SkillDef`, `SkillCategory`, `UnlockRequirement`. - Key contracts: `SkillDef`, `SkillCategory`, `UnlockRequirement`.
- Dependencies: None. - Dependencies: None.
- Stage target: Prototype. - Stage target: Prototype.
@ -398,7 +398,7 @@ Module template:
- Dependencies: E2.M1. - Dependencies: E2.M1.
- Stage target: Prototype. - Stage target: Prototype.
- **E2.M3 MasteryAndPerkUnlocks** - **E2.M3 MasteryAndPerkUnlocks**
- Responsibility: Mastery tracks and perk unlock state for non-class build expression. - Responsibility: Mastery tracks and perk unlock state for **skill** build expression beyond raw levels.
- Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState`. - Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState`.
- Dependencies: E2.M2. - Dependencies: E2.M2.
- Stage target: Pre-production. - Stage target: Pre-production.
@ -644,7 +644,7 @@ flowchart TD
```mermaid ```mermaid
flowchart TD flowchart TD
E1[CorePlayerRuntime] --> E2[ClasslessProgression] E1[CorePlayerRuntime] --> E2[SkillsProgression]
E1 --> E5[PvECombatEncounters] E1 --> E5[PvECombatEncounters]
E4[WorldTopologyZones] --> E5 E4[WorldTopologyZones] --> E5
E4 --> E6[PvPSecurityZones] E4 --> E6[PvPSecurityZones]
@ -767,7 +767,7 @@ flowchart TD
flowchart TD flowchart TD
Vision[ProductVision] --> Pillars[ExperiencePillars] Vision[ProductVision] --> Pillars[ExperiencePillars]
Pillars --> Systems[CoreSystems] Pillars --> Systems[CoreSystems]
Systems --> Progression[ClasslessSkillProgression] Systems --> Progression[SkillXpAndMastery]
Systems --> Crafting[CraftingAndEconomy] Systems --> Crafting[CraftingAndEconomy]
Systems --> Questing[QuestAndFactionContent] Systems --> Questing[QuestAndFactionContent]
Systems --> Combat[CombatAndEncounters] Systems --> Combat[CombatAndEncounters]