Class system — 5 factional classes + starting-cluster differentiation
D-019: Class system — 5 factional classes + starting-cluster differentiation
Picks 4 + 7 from the 2026-05-21 vision verification session. D-006 Pillar 4 referenced 6 regions but never locked faction count; D-007/D-013/D-014 reference “factions” generically; the data layer already has 5 faction files (free-merchantry, practical-academy, unfinished-guild, wild-path, quiet-lights). D-019 ratifies faction count = 5 as canon, formalises a 5-class roster (one per faction), and names starting tree cluster as the canonical class-differentiation mechanism — the shared passive tree promised by CLAUDE.md Pillar 2 is preserved by convergence at mid-game.
1. Faction count = 5 (locked)
| Faction ID | PL canonical | EN transcreation |
|---|---|---|
faction.unfinished-guild | Cech Niedokończonych Wypraw | Unfinished Guild |
faction.practical-academy | Akademia Praktyczna | Practical Academy |
faction.quiet-lights | Bractwo Cichych Świateł | Quiet Lights |
faction.free-merchantry | Wolnokupiectwo | Free Merchantry |
faction.wild-path | Dziki Trakt | Wild Path |
Adding a sixth faction requires a new D-decision. Editorial amendments to the existing 5 (renames, scope tweaks) remain W/B-level under narrative-designer.
2. Five base classes, one per faction
| Class ID | PL canonical | EN transcreation | Faction | Status |
|---|---|---|---|---|
class.cartographer | Kartograf | Cartographer | faction.unfinished-guild | Authored (Phase 13-3, preserved) |
class.pieczetarz | Pieczętarz | Sealer | faction.practical-academy | To author (W-level) |
class.pielgrzym | Pielgrzym | Pilgrim | faction.quiet-lights | To author (W-level) |
class.komiwojazer | Komiwojażer | Travelling Tradesman | faction.free-merchantry | To author (W-level) |
class.tropiciel | Tropiciel | Tracker | faction.wild-path | To author (W-level) |
Each class = the canonical practitioner of its faction’s craft. For four of five, the class name deliberately matches an existing faction rank (Pieczętarz, Pielgrzym): the class IS the practitioner, the rank within the faction is the standing. For Cech, the asymmetry (Kartograf class vs Pisarz Cechu rank) is intentional — Cech is the Walker’s meta-faction (every Walker is implicitly Cech-affiliated through the Pierwsze Biuro intake per cartographer.ts:11); its rank is bureaucratic, its class is field craft.
Glossary disambiguation requirement (D-017 carve-out for D-019): glossary entries for class.pieczetarz and class.pielgrzym MUST explicitly disambiguate class-vs-rank in transcreationNote. D-017 schema permits PL string collision across distinct ENG handles; D-019 requires the disambiguation be captured in writing at glossary pick time, not retroactively.
3. Differentiation = starting tree cluster only
Per pick 4: each class begins in a different sub-cluster of the single shared passive tree (CLAUDE.md Pillar 2 preserved). Divergence is strongest at level 1-15 (~10-20% of total tree allocation per D-016 math); by ~50 pts spent (mid-game per D-013/D-016) classes converge mechanically. Late-game (~100+ pts) classes are mechanically indistinguishable beyond ascendancy choice.
| Class | Starting cluster |
|---|---|
| Kartograf | cluster.first-steps (Plenny-anchored) — authored Phase 13-3 |
Pieczętarz | TBA — Akademia-anchored (W, mechanics-designer) |
| Pielgrzym | TBA — Quiet Lights-anchored (W, mechanics-designer) |
Komiwojażer | TBA — Free Merchantry-anchored (W, mechanics-designer) |
| Tropiciel | TBA — Wild Path-anchored (W, mechanics-designer) |
4. Faction reputation overwrites class faction binding late-game
Per pick 7’s closing clause: a Pieczętarz Walker who grinds Cech reputation to maximum tier can functionally become Cech-aligned. The class is fixed at character creation; faction allegiance is reputation-driven. D-019 §4 names the rebind semantic for the first time at canon — D-014 ratifies reputation as a tracked layer, but the rebind mechanic itself originates here. This preserves PoE-style respec-via-play without a hard class-change feature.
5. CLAUDE.md Pillar 2 amendment (editorial, non-superseding)
CLAUDE.md Pillar 2 amended:
Before: “PoE-style passive tree. ~150-200 nodes, region-gated, single shared tree across classes, quest-unlocked keystones.”
After: “PoE-style passive tree. ~150-200 nodes, region-gated, single shared tree across classes (class-differentiated entry cluster, convergent by mid-game per D-019), quest-unlocked keystones.”
Editorial only — Pillar 2’s intent (one shared tree, not five trees) is preserved; the differentiation mechanism that was implicit becomes explicit. Same pattern as D-016’s D-006 §Pillar 3 amendment (70% → 75%).
6. Each class = a stance toward D-013 walking rule
Per pick 7, each of the 5 classes embodies one of the five faction stances toward the Krok przepisujący walking rule canonised in D-013. The cartographer block (cartographer.ts:98-103) already names this for Cech (“Pisarz Tras — a candidate per D-013 grammar”). The four new classes inherit the same anchor: their starting cluster, signature mechanic, and ascendancy candidates all express their faction’s stance toward the walking rule.
What D-019 does NOT decide (delegated)
- Class authorship (combat stats, descriptions, secondaryResource) for the 4 new classes — W-level (mechanics-designer + narrative-designer joint dispatch).
- Starting cluster shape (nodes, keystones, gates) for the 4 new classes — W-level (mechanics-designer).
- Ascendancy candidates — B-level, deferred per D-016 follow-up #4 and the
cartographer.ts:39pattern. - Class-specific
secondaryResource— W/B-level (mechanics-designer); D-019 affirmssecondaryResource: nullfor all 5 classes in Phase 13. - Schema field
Class.startingClusterId— tech-architect W-level call. Currently start cluster is convention-by-JSDoc (cartographer); formalising as a schema field is pure plumbing, no canon impact either way. - EN transcreation slugs for 4 new class IDs (
class.pieczetarzetc.) — placeholders pending narrative-designer four-phase pick per D-017. The PL canonical names (Pieczętarz, Pielgrzym,Komiwojażer, Tropiciel) ARE locked by D-019; only the handle slug and EN string are open. Glossary entries land in the same MR as the 4 new class files (D-017 wave 3+ pattern: glossary first, then entity). Class files with handles not yet in glossary do not ship. - Operational ordering for the 4 new class files: they SHOULD NOT ship before tech-architect’s W-level call on
Class.startingClusterId. Either ship after the schema-field decision (with the field set), or ship with explicit JSDoc-only convention matchingcartographer.ts:13. No mixed pattern across the 4 — pick one shape, apply uniformly.
Rejected alternatives
- Migrate Kartograf → Pisarz (rename existing class to match pick 7 literal). Rejected — breaks shipped Phase 13-3 code, forces faction-rank
Pisarz Cechuto disambiguate, gains nothing the asymmetric naming doesn’t already give. - Ascendancy-as-class (5 base = Walker, 5 ascendancies = Pisarz Tras /
Pieczętarz/ …). Rejected — collapses the class system to a single base class, removes the early-game differentiation pick 4 mandates, contradicts pick 7’s “each class = metaphysical stance” framing. - 6th class slot (meta-faction or Spis-aligned cohort). Rejected — locks faction count = 5 cleanly; opening a 6th class without a 6th faction re-introduces ambiguity D-019 exists to remove. Spis-aligned content is endgame (per D-013 §Endgame v2.0), not a class.
Reasoning
Faction count was load-bearing-but-implicit. Every prior D-decision referencing factions used either “5” colloquially or the generic “factions” without committing. The data layer has 5 faction files; D-019 ratifies the count and prevents future Q&A from speculating a 6th. The 5 factions and 6 regions are the orthogonal design axes — not every cell of the 5×6 surface is populated by canon (existing prose concentrates factions in specific regions: Cech / Plenny, Akademia / Plenny + Beber, Bractwo / Mglica pilgrimage routes, Wolnokupiectwo / Targosie, Dziki Trakt / Beber). The lattice is the design space, not a coverage requirement.
Class system as “5, one per faction, each = faction’s signature practitioner” gives every faction a player-embodiment slot, mirrors D-013’s five stances on the walking rule, and gives each region (which has faction allegiance) a natural starting cohort. Starting-cluster-only differentiation preserves the PoE design ideal (one tree, many builds) while giving each class a distinct early-game feel — critical for the closed-beta cohort that won’t reach mid-tree convergence.
The Kartograf-not-Pisarz call for Cech is the only naming asymmetry; it reflects Cech’s meta-status. Pisarz/Pieczętarz/Pielgrzym/Komiwojażer/Tropiciel naming for the other four is class-as-rank coherent — same Polish word IS the same role, the class is the practitioner.
Source: picks 4 + 7 from ops/memory/vision-qa-2026-05-21.md. Triage by game-director (2026-05-21 session). Pre-ratification reconnaissance surfaced existing cartographer.ts collision with pick 7’s “Pisarz” naming; resolved via Cech-asymmetry framing (CEO call, 2026-05-21).