Commit Graph
18 Commits
Author SHA1 Message Date
jpmschweitzerandClaude Opus 4.6 16cccda411 fix(schema): add missing dialogue mood and situation values
Adds 'focused' to mood enum and 'greeting' to situation enum in
dialogue-pool.schema.json. Both values are used by Sprint 7-8
dialogue content but were not added to the schema at the time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 22:43:55 +01:00
jpmschweitzerandClaude Opus 4.6 ea0a3f0b35 docs(architecture): add line pool format specification (#308)
Formal spec at docs/architecture/line-pool-format.md defining YAML
structure for dialogue and monologue content files. Covers tag enums,
4-layer filtering pipeline, prerequisite-to-KG mapping, ID format,
validation rules, and Rust loader interface.

Fixes monologue schema: adds required constraint on relationship
prerequisite target/state fields.

Ref: D-028, D-032, D-035, D-041

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:41:18 +01:00
jpmschweitzerandClaude Opus 4.6 47f65c3302 feat(content): smuggler inventory item specs (#441)
Three physical items for the smuggler archetype per D-065: manifest copy,
corridor access token, personal comm log. Each with KG links, confrontation
mechanics, and risk/reward gameplay notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:35:02 +01:00
jpmschweitzerandClaude Opus 4.6 fe3232377d refactor(content): move ui-strings.yaml to client/data/
UI microcopy strings belong in the client data directory where
the Godot client can load them directly, not in campaign content.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:54:55 +01:00
jpmschweitzerandClaude Opus 4.6 124573e1c5 fix(content): normalize fact_ids, entity refs, tags across FRIEND content
Fixes from Gestalt mechanical review:
- 73 fact_id normalizations to dotted category.topic format (critical:
  fixes broken detective evidence chain from Sera to Kael observations)
- Entity refs normalized to npc:hyphenated format (~15 occurrences)
- Phase tags standardized (friend-arc-phaseN → phase-N)
- Phase-2 tags added to 8 Kael ring ops lines
- bar_evening situation added to 15 Kael Last Shift lines
- Mood tags added to 10 Kael lines missing them
- 7 new detective monologue lines about Kael (gap: 7 → 15 lines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:52:05 +01:00
jpmschweitzerandClaude Opus 4.6 99550ed0f5 feat(content): add FRIEND packs and PC-as-NPC content (#297, #298, #401)
Kael Davan FRIEND pack (86 lines): 3 dialogue files across terminal,
bar, and corridors. 5-phase relationship arc with contradiction scene.

Sera Venn FRIEND pack (75 lines): full dialogue at The Last Shift with
trust-gated gossip, avoidance contradiction, and contaminated trust arc.

PC-as-NPC content (70 items): smuggler and detective as NPCs with
public-tier dialogue, tell-observation monologue, and bar variants.
Enables D-039 wow moment #4 (divergence reveal).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:51:54 +01:00
jpmschweitzerandClaude Opus 4.6 adaaebbe71 feat(content): add UI microcopy strings (#409)
72 YAML strings for client integration: interaction verbs,
relationship states, HUD labels, perception modes, notifications,
knowledge panel, tutorial prompts, menus, character select.
Diegetic voice matching Sova setting (D-036).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:51:43 +01:00
jpmschweitzerandClaude Opus 4.6 d51d9d9e46 feat(content): add NPC authoring style guide (#379)
Comprehensive authoring handbook: tier budgets, 9 NPC patterns,
dialogue/monologue rules, tag taxonomy, dual-lens coordination,
Krenn/Sova regional culture, FRIEND phase mapping for Kael and
Sera, mechanical validation checklist, and worked example.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:51:35 +01:00
jpmschweitzerandClaude Opus 4.6 4c008d6191 data(content): use WantKind enum keywords in NPC profiles
Change want.primary from narrative strings to WantKind enum keywords
(Safety, Wealth, Knowledge, etc.) across all 20 NPC profiles. Move
narrative text to want.description. Add Happiness to WantKind enum.
Add enum constraint to npc-profile.schema.json so make validate-content
catches invalid values at authoring time.

Fixes silent Want component drop where parse_want_kind() returned None
for all real NPCs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:19:21 +01:00
jpmschweitzerandClaude Opus 4.6 90e6dcb8e9 fix(content): update dialogue-pool schema arrays per D-035
situation, topic, and mood fields changed from single string to
array type to match D-035 specification (list<enum>). access and
trust were already correct as arrays.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:19:15 +01:00
jpmschweitzerandClaude Opus 4.6 3d1bf54fcc data(content): add pools, templates, and triangles for v0.1 (#389, #390, #391)
5 seed-time pools (single-candidate for deterministic v0.1 testing),
3 social site templates (logistics-hub, bar, smuggling-ring) with
role slot definitions per D-025, and 5 triangles (3 active fork,
2 passive) per D-024 workshop synthesis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:19:10 +01:00
jpmschweitzerandClaude Opus 4.6 b0fec9af09 data(content): populate global enums and entity attributes (#387, #388)
Populate 9 enum YAML files (situations, topics, moods, triggers,
access-tiers, trust-tiers, activities, patterns, motivations) from
D-035 taxonomy and 16 canonical entity attribute keys from D-024
with A7 workshop updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:19:02 +01:00
jpmschweitzerandClaude Opus 4.6 e7f6444567 feat(content): add monologue pool and news ticker headlines (#399, #395)
200 monologue lines (100 per character) across 8 location files:
arrival flavor, NPC commentary, knowledge-gated contradiction lines.
20 dual-lens news ticker headlines for The Last Shift bar. First real
content load for the monologue system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:58:57 +01:00
jpmschweitzerandClaude Opus 4.6 086988a42f feat(content): populate NPC YAML profiles and PC-as-NPC briefs (#398, #383, #373)
Convert 17 wiki NPC profiles to engine-readable YAML. Add PC-as-NPC
behavior profiles for detective and smuggler. Add smuggler-perspective
FactId progression text (27 FactIds with asymmetric knowledge paths).
Add off-stage NPC nils-davan. All files validate against npc-profile
schema (32 files, 0 errors).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:58:52 +01:00
jpmschweitzerandClaude Opus 4.6 9d53869ca7 refactor(data): restructure content directory for galaxy scale
Replace flat content/districts/ with hierarchical campaign/system/
station/district structure. Path mirrors canonical IDs, enables
glob-based discovery, and is multi-campaign/DLC ready.

- git mv 46 files preserving history
- New metadata: campaign.yaml, system.yaml, station.yaml
- Rewrite content.yaml with glob-based district discovery
- Add campaign, system, station JSON schemas
- Update district schema: hierarchy fields derived from path
- Update npc-profile schema: accept district-scoped IDs
- Add TODO to 17 dialogue/monologue pool files for generator revision
- Update _meta/README.md with new hierarchy documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 21:22:23 +01:00
jpmschweitzerandClaude Opus 4.6 ece4dfe1c4 fix(data): restore hierarchical fields in district metadata
Re-added system/station/district fields to district.yaml that were
incorrectly removed during Tyre10 cleanup. These carry hierarchical
context (planet, station), not redundant identity. Made canonical_id
optional in schema since it's derived from directory path at load time.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:14:41 +01:00
jpmschweitzerandClaude Opus 4.6 ad55dfaa72 feat(data): add content schema definitions
JSON Schema (draft 2020-12) for content validation: district,
location, npc-profile, dialogue-pool, monologue-pool, triangle,
routine, and fact-catalog. NPC schema uses if/then conditional
for FRIEND pattern validation. Implements ticket #386.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:48:21 +01:00
jpmschweitzerandClaude Opus 4.6 10f5be29b1 feat(data): create content/ directory skeleton
Scaffolds the full content directory structure per D-057 spec:
district-as-atomic-pack layout with Sova Transit as the first
district. Includes 17 NPC stubs, 3 locations, 5 triangles,
9 dialogue pools, 8 monologue pools, routines, 7 factions,
7 knowledge catalogs, 8 enum definitions, and global region.
Implements ticket #385.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:48:13 +01:00