Commit Graph
218 Commits
Author SHA1 Message Date
jpmschweitzer ffb73a6a77 Merge branch 'copy'
# Conflicts:
#	CHANGELOG.md
#	db/commonwealth.db
2026-02-12 16:21:37 +01:00
jpmschweitzerandClaude Opus 4.6 e73e87b3e9 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:40 +01:00
jpmschweitzerandClaude Opus 4.6 b08a038990 chore(db): create 39 tickets from v0.1 content scoping workshop
38 new tickets (#371-409) + 10 existing ticket updates + 42
dependency links. Sprint 3: copy 15, server 6, client 1. Sprint 4:
18 tickets. Sprint 5+: 3 tickets. #261 is critical path root.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:23 +01:00
jpmschweitzerandClaude Opus 4.6 5925a0c79b chore(meta): add large content push team pattern to CLAUDE.md
Document the librarian + parallel writers + reviewer pattern for
producing many files efficiently with agent teams.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:16 +01:00
jpmschweitzerandClaude Opus 4.6 8c95bda639 docs(workshops): add control & interaction brief, update workshop index
Add workshop brief for Control & Interaction Scheme (next workshop).
Update index with wiki-review (complete) and v0.1-content-scoping
(complete, 38 tickets).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:10 +01:00
jpmschweitzerandClaude Opus 4.6 3944b4e79f docs(workshops): archive v0.1 content scoping workshop (2 rounds + closing)
Scoped the vertical slice: 16 EntityKnowledge keys, v0.1 mechanical
NPC mapping, YAML content format, 7-verb interaction model, server-
authoritative pause, 38 tickets created across copy/server/client/ci.
20 decisions (D-042 through D-061). 8 agents, 2 rounds + closing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:19:05 +01:00
jpmschweitzerandClaude Opus 4.6 0100b33635 docs(workshops): archive wiki review workshop (4 rounds + lead interview)
Long-term content strategy workshop: 300-world generator model,
cultural ingredients menu, three-system NPC architecture (9 patterns
x 6 motivations), Sacred/Profane/Middle Kingdom framework. 9 agents
across 4 rounds plus lead interview establishing the production path
from hand-authored Sova to generated 300 worlds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:18:56 +01:00
jpmschweitzerandClaude Opus 4.6 3776443e8a docs(wiki): establish Sova Transit District game world glossary
45 files covering the v0.1 vertical slice content: 17 NPC profiles
across 3 tiers, 5 triangles, 3 social sites, 7 factions, 6 technology
entries, 3 contraband types, knowledge vocabulary (FactIds, entity
attributes, relationship states), and monologue authoring guide.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:18:49 +01:00
jpmschweitzer 679714a6ba Merge branch 'maintenance' 2026-02-12 16:18:43 +01:00
jpmschweitzerandClaude Opus 4.6 b9d62ee043 chore(db): update ticketing database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:18:40 +01:00
jpmschweitzerandClaude Opus 4.6 a9236e2424 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:10:52 +01:00
jpmschweitzerandClaude Opus 4.6 7e6fd09770 chore(skills): add worktree-update skill
Non-destructive branch sync utility. On main: shows worktree branches
ahead of main with PR flags, lets user pick which to merge. On other
branches: merges main in. Stops on conflicts, never force-pushes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:10:42 +01:00
jpmschweitzerandClaude Opus 4.6 17c77c0275 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:40:20 +01:00
jpmschweitzerandClaude Opus 4.6 de25e1b8e5 chore(db): update ticketing database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:40:08 +01:00
jpmschweitzer 178e3e34d7 Merge branch 'maintenance' 2026-02-12 15:39:35 +01:00
jpmschweitzerandClaude Opus 4.6 5af42708e9 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:37:51 +01:00
jpmschweitzerandClaude Opus 4.6 c20c1810b1 chore(config): use $REPO_ROOT env var in all instruction files
Each worktree now has REPO_ROOT pre-set in .claude/settings.local.json,
removing the need for git rev-parse --show-toplevel at runtime. Updated
CLAUDE.md, skills (start-sprint, plan-sprint, ticket, search-docs),
briefing template, and qatux agent to use the env var prefix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:37:38 +01:00
jpmschweitzerandClaude Opus 4.6 bb9bd6fabf chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:16:47 +01:00
jpmschweitzerandClaude Opus 4.6 6f5c62fbc1 chore(db): create Sprint 3 and assign tickets
Sprint 3: Know — 11 tickets across server, client, joint, copy.
Sprint 2 remains active until #368 completes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:14:54 +01:00
jpmschweitzerandClaude Opus 4.6 ed09439a31 docs(sprints): add Sprint 3 "Know" team briefings
NPC data model, pathfinding, observation events, and interaction
foundation. Briefings for server, client, joint, and copy teams.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:14:52 +01:00
jpmschweitzer 9d0774cae8 Merge remote-tracking branch 'origin/client' 2026-02-12 02:09:01 +01:00
jpmschweitzerandClaude Opus 4.6 1906242675 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:02:07 +01:00
jpmschweitzerandClaude Opus 4.6 68a554f1f0 fix(client): address PR #13 review — LOS tests, reset consistency, docs
- Use reset_test_state() consistently in test_snapshot_parsing.gd (Tyre critical)
- Fix misleading wall comment: (12,9) → (12,10) (Hoshe warning)
- Add coordinate space documentation to _test_snapshot() (Tyre warning)
- Add 4 Bresenham LOS unit tests: clear, blocked, diagonal, self (Hoshe warning)
- Check OS.is_process_running() in connection loop (Hoshe warning)
- Verify NPC position in corner reveal test (Hoshe suggestion)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:01:54 +01:00
jpmschweitzerandClaude Opus 4.6 ab406821d6 chore(skills): delegate plan-sprint to SI agent
Sprint planning is SI's job. Skill now spawns SI via Task tool
instead of running the workflow directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:00:42 +01:00
jpmschweitzerandClaude Opus 4.6 91167f489a chore(db): update ticket database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:56:49 +01:00
jpmschweitzer bf8e8f1baa Merge remote-tracking branch 'origin/main' into server 2026-02-12 01:49:28 +01:00
jpmschweitzerandClaude Opus 4.6 84b3035945 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:49:24 +01:00
jpmschweitzerandClaude Opus 4.6 fe4d01c5d4 chore(skills): add team-agent mapping to plan-sprint skill
Defines default agents per team so sprint briefings name the
right agents to spawn. Registers Inigo for the audio team.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:49:12 +01:00
jpmschweitzerandClaude Opus 4.6 e1510a48f8 chore(agents): add Inigo sound designer agent
Standby agent for audio implementation phase. Named after the
Dreamer from the Void Trilogy. Covers soundscape design, ambient
layers, diegetic cues, and D-018 audio propagation rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:49:10 +01:00
jpmschweitzerandClaude Opus 4.6 eaab224bb0 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:47:55 +01:00
jpmschweitzerandClaude Opus 4.6 22de6c714f fix(simulation): address PR #12 review — z-level filter, visible tile dedup, version bump
- Filter remembered entities by z-level (Hoshe + Tyre warning)
- Skip remembered ghosts on currently visible tiles (Hoshe warning)
- Bump ObserverSnapshot version to 3 (Tyre suggestion)
- Add edge case tests: visible tile collision, different z-level,
  knowledge without position (Hoshe suggestion)
- Regenerate msgpack fixtures for v3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:47:35 +01:00
jpmschweitzerandClaude Opus 4.6 0db120ed58 feat(client): Sprint 2 proof E2E tests + dynamic test snapshot (#357)
Three E2E proof tests verify all acceptance criteria through the real
server pipeline: player movement, v2 snapshot with visible_tiles,
wall hiding (NPC behind wall invisible), corner reveal (move around
wall to see NPC). Dynamic test snapshot tracks player position from
queued inputs with simple LOS and Manhattan-distance visibility for
standalone demo mode. 88 client + 112 server tests passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:45:54 +01:00
jpmschweitzerandClaude Opus 4.6 a7e2c8fbf4 feat(simulation): add proof room with wall and NPC (#357)
Wall at (16,14) and NPC at (16,13) for Sprint 2 fog-of-perception
proof. Player starts at (16,16) — NPC hidden behind wall until
player moves around it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:45:47 +01:00
jpmschweitzer c8fb2a48dd Merge remote-tracking branch 'origin/main' into copy 2026-02-12 01:37:03 +01:00
jpmschweitzerandClaude Opus 4.6 bc311c9893 fix(skills): recognize all team branches in sprint skills
start-sprint and plan-sprint only recognized server/client as valid team
branches. Updated to include all six teams (server, client, copy, audio,
visual, ci) matching the SI agent's ticket assignment rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:36:41 +01:00
jpmschweitzerandClaude Opus 4.6 715c7e16ab docs(sprints): add copy team briefing for Sprint 2
Sprint briefing for #368 (knowledge vocabulary for v0.1 content).
Defines FactId categories, known_attributes keys, and
RelationshipState transition patterns the copy team needs to deliver.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:31:00 +01:00
jpmschweitzerandClaude Opus 4.6 8c802a2412 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:29:05 +01:00
jpmschweitzerandClaude Opus 4.6 9c0190c7c2 feat(simulation): integrate knowledge graph into observer snapshot (#366)
VisibleEntity now carries relationship state (D-033 entity color) and
observation type (Visible vs Remembered). compute_observer_snapshot
queries the player's KnowledgeGraph to overlay relationship data on
visible entities and include remembered (not-in-LOS) entities as fog
ghosts at their last known position. Regenerated msgpack fixtures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:28:53 +01:00
jpmschweitzerandClaude Opus 4.6 5c7d546f48 chore(config): add new team branches to protected list
Add copy, audio, visual, ci to protected branches in CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:26:53 +01:00
jpmschweitzerandClaude Opus 4.6 fb9d684767 chore(agents): add ticket assignment rules to SI agent
Teams are server, client, copy, audio, visual, ci. Never use
"joint" — split cross-team work into per-team tickets with
explicit dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:22:33 +01:00
jpmschweitzerandClaude Opus 4.6 12dc0bc0bf chore(db): mark #130 and #360 done after PR merge
Sprint 2 progress: 19/22 tickets done.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:17:42 +01:00
jpmschweitzer 7d6503d8eb Merge remote-tracking branch 'origin/client'
# Conflicts:
#	CHANGELOG.md
2026-02-12 01:16:02 +01:00
jpmschweitzer c02b762ddc Merge remote-tracking branch 'origin/server' 2026-02-12 01:15:46 +01:00
jpmschweitzerandClaude Opus 4.6 995baf393d chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:07:19 +01:00
jpmschweitzerandClaude Opus 4.6 64897a40b3 fix(client): address PR #11 review — type safety, perf, tests
Add Dictionary validation in game_state visible_tiles loop to prevent
crash on malformed data (Hoshe critical). Skip redundant modulate.a
writes (Hoshe suggestion). Add 3 tests: malformed visible_tiles,
facing rotation accuracy, v1 backward compatibility. Clarify D-033
Phase 1/Phase 2 comments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:07:02 +01:00
jpmschweitzerandClaude Opus 4.6 3115c7a84c fix(simulation): address PR #10 review — plugin wiring, stale reset, warnings
- Register KnowledgePlugin in main.rs and game_loop test (Tyre critical)
- Add KnowledgeGraph component to player spawn (Tyre critical)
- Reset Stale -> Active on fresh direct observation (Hoshe warning)
- Make registry/queue non-optional in emit_observation_events (Tyre/Hoshe)
- Add tracing::warn for missing EntityRegistry entries (Hoshe warning)
- Replace HashSet with Vec for small entity ID lookups (Hoshe suggestion)
- Add const static assertion for KnowledgeConfidence ordering (Hoshe)
- Add is_empty() and known_facts_iter() to KnowledgeGraph (Tyre)
- Add decay_skips_non_minute_ticks and observe_resets_stale tests (Hoshe)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:06:33 +01:00
jpmschweitzerandClaude Opus 4.6 30b028e85a chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:53:46 +01:00
jpmschweitzerandClaude Opus 4.6 f3793bf16e feat(client): D-033 entity colors, peripheral dimming, facing indicator (#130)
Replace hardcoded entity colors with D-033 relationship palette:
Player=#e0e8ff, Npc=unknown teal #4a9ebb, Object=grey #8b8ba0.
Phase 1 defaults by entity kind; Phase 2 (#361) will derive color
from RelationshipState via knowledge graph.

Entities in peripheral vision dimmed to 50% alpha (D-015).
Player entity gets a Polygon2D triangle indicator showing facing
direction, rotated from GameState.player_facing.

82 tests total, 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:53:28 +01:00
jpmschweitzerandClaude Opus 4.6 57da75c509 feat(client): upgrade protocol decoder and GameState for v2 snapshot
Server shipped ObserverSnapshot v2 with game_time, player_facing,
visible_tiles (with visibility sectors), and per-entity visibility.
Protocol decoder was silently ignoring these fields. Now extracts
all v2 data with null defaults for backward compatibility.

GameState gains game_time, player_facing, visibility_sectors vars.
Derives visible_positions from visible_tiles when present (for real
server mode). Test snapshot updated with v2 fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:53:18 +01:00
jpmschweitzerandClaude Opus 4.6 a68a3ef429 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:49:08 +01:00