Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .claude/skills/meta-audit/history/doc-audit.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@
{"type":"run","date":"2026-07-14","commit_sha":"86dddc38340e55d1116f0c025eca822da07c0e2e","pr_url":"https://github.com/stphung/quest/pull/741","agent_count":6,"scope":["CLAUDE.md","README.md","docs/README.md","docs/decisions.md","docs/dossiers/act1-ascent.md","docs/dossiers/act2-pilgrimage.md","docs/dossiers/world-and-narrative.md","src/core/CLAUDE.md","src/combat/CLAUDE.md","src/character/CLAUDE.md","src/zones/CLAUDE.md","src/dungeon/CLAUDE.md","src/fishing/CLAUDE.md","src/items/CLAUDE.md","src/challenges/CLAUDE.md","src/haven/CLAUDE.md","src/enhancement/CLAUDE.md","src/ascension/CLAUDE.md","src/stormglass/CLAUDE.md","src/deep/CLAUDE.md","src/power_cores/CLAUDE.md","src/god_items/CLAUDE.md","src/loom/CLAUDE.md","src/vessel/CLAUDE.md","src/ui/CLAUDE.md","src/input/CLAUDE.md","src/utils/CLAUDE.md","src/main_helpers/CLAUDE.md","src/achievements/CLAUDE.md","src/history/CLAUDE.md"],"findings":[{"location":"src/history/CLAUDE.md:10","claim":"SaveEvent enum (21 variants), with a 21-item enumeration at line 16 omitting the Act 2 events","correct_value":"24 variants; PR #740 added VesselLaunched, VesselArrived, LastCrossing (src/history/types.rs:22-24)","severity":"HIGH","category":"stale-type","auto_fixed":true},{"location":"README.md:97","claim":"vessel/ # Act 2: Vessel launch gate + Voyage engine (dark behind ACT2_ENABLED)","correct_value":"Dark-shipped content must not be advertised in the player-facing README (vessel::ACT2_ENABLED=false, src/vessel/mod.rs:114); replaced with a neutral 'Feature-flagged module (disabled by default)' line","severity":"HIGH","category":"dark-ship-violation","auto_fixed":true},{"location":"src/vessel/CLAUDE.md:55-60","claim":"VoyageView enum snippet lists 10 variants ending at Record { scroll } ('arrived-only, spec 7'); renderer-dispatch list at line 130 also omits the same two views","correct_value":"12 variants: spec-9 added Reckoning and Dock { confirm_pending } (src/vessel/mod.rs:46-95; render dispatch src/ui/voyage_scene.rs:60-61)","severity":"MEDIUM","category":"stale-type","auto_fixed":true},{"location":"CLAUDE.md:207","claim":"Fracture zone unlock: Deep Layer 3 -> Z12-14, Layer 7 -> Z15-17, ... (Deep-layer gate only)","correct_value":"Dual gate: Deep layer AND per-band prestige P50/P75/P100/P150/P200/P300 (src/zones/access.rs:30-33, src/zones/data.rs prestige_requirement); was already logged in openspec/README.md's discrepancy log","severity":"MEDIUM","category":"stale-constant","auto_fixed":true},{"location":"docs/dossiers/act2-pilgrimage.md:3","claim":"Last refreshed: 2026-07-05 - marker predates the 2026-07-12 era retune (DARK_TAKES_PER_DAY 0.0006->0.0007, CAP_GROWTH 1.36->1.46) and PR #740's Act 2 release polish; body carries 'Resolved (2026-07-12)' notes the Refresh History never absorbed","correct_value":"Stale dossier - needs a manual write-dossier refresh pass (flag-for-review per the dossier caveat; single finding, not a per-line teardown)","severity":"MEDIUM","category":"stale-dossier","auto_fixed":false},{"location":"openspec/README.md:94-96","claim":"Known-discrepancy log entry: 'zones - Fracture unlock gates. Root CLAUDE.md lists only the Deep-layer cap...'","correct_value":"Entry resolved by fixing CLAUDE.md:207 in the same PR; removed so the log lists only live discrepancies","severity":"LOW","category":"other","auto_fixed":true},{"location":"CLAUDE.md (Architecture section)","claim":"Loose top-level file src/tick_events.rs (TickEvent->UI bridge, binary-only) unmentioned while siblings main.rs / lib.rs / fixtures.rs are each described","correct_value":"One-sentence mention added next to the entry-point line (role per file header and docs/decisions.md tick_events.rs extraction entry)","severity":"LOW","category":"missing-file-inventory","auto_fixed":true},{"location":"src/core/CLAUDE.md:19","claim":"tick_stages.rs # Tick processing stages 4-6 and helper functions","correct_value":"File holds stage functions spanning 0 through 12c (the doc's own stage table attributes compute_merged_bonuses stage 0, tick_loom 4b, tick_vessel_whispers 12c to it)","severity":"LOW","category":"stale-type","auto_fixed":true},{"location":"src/dungeon/CLAUDE.md:115","claim":"Adding a New Room Type step 3: 'Add spawn probability in generation.rs'","correct_value":"Room placement is deterministic (place_special_rooms(), src/dungeon/generation.rs:211-358): dead-end/distance selection plus shuffled treasure allotment; no per-room-type spawn probability exists","severity":"LOW","category":"other","auto_fixed":true},{"location":"docs/decisions.md:219","claim":"References docs/plans/2026-02-18-large-module-refactoring-design.md, but the docs/plans/ tree was removed (docs/README.md:38)","correct_value":"Annotated as '(since removed with the rest of the docs/plans/ tree - see git history / the OpenSpec archive)'","severity":"LOW","category":"listed-file-missing","auto_fixed":true},{"location":"src/main_helpers/CLAUDE.md:21","claim":"update.rs file-table cell does not name the achievement-browser handling PR #740 added to the startup splash (full-repaint on act/section switch, Tab toggles act)","correct_value":"Reviewed and left as-is: the cell's 'startup splash screen with character select ... full character select loop' already encompasses it; editorial, not objectively wrong","severity":"LOW","category":"stale-integration","auto_fixed":false},{"location":"README.md:80-106","claim":"Project-structure tree omits loose files lib.rs, fixtures.rs, tick_events.rs; Features prose names only some shipped systems","correct_value":"Reviewed and left as-is: README is deliberately wiki-first and non-exhaustive (curated tree, systems roster delegated to the wiki at line 54); no stated claim is wrong","severity":"LOW","category":"other","auto_fixed":false}]}
{"type":"eval_marker","date":"2026-07-14","pr_url":"https://github.com/stphung/quest/pull/744","runs_covered":5}
{"type":"run","date":"2026-07-14","commit_sha":"aa1b06a9459c00c78c3fa2b74d55612c57a83ce5","pr_url":"https://github.com/stphung/quest/pull/752","agent_count":6,"scope":["CLAUDE.md","docs/README.md","docs/decisions.md","docs/dossiers/act1-ascent.md","docs/dossiers/act2-pilgrimage.md","docs/dossiers/world-and-narrative.md","src/core/CLAUDE.md","src/combat/CLAUDE.md","src/character/CLAUDE.md","src/zones/CLAUDE.md","src/dungeon/CLAUDE.md","src/fishing/CLAUDE.md","src/items/CLAUDE.md","src/challenges/CLAUDE.md","src/haven/CLAUDE.md","src/enhancement/CLAUDE.md","src/ascension/CLAUDE.md","src/stormglass/CLAUDE.md","src/deep/CLAUDE.md","src/power_cores/CLAUDE.md","src/god_items/CLAUDE.md","src/loom/CLAUDE.md","src/vessel/CLAUDE.md","src/ui/CLAUDE.md","src/input/CLAUDE.md","src/utils/CLAUDE.md","src/main_helpers/CLAUDE.md","src/achievements/CLAUDE.md","src/history/CLAUDE.md","README.md"],"findings":[{"location":"CLAUDE.md:139","claim":"Utils | src/utils/ | CLAUDE.md | Build info, updater, debug menu","correct_value":"Build info, updater, debug menu, bug reports (src/utils/bug_report.rs, 554 lines, wired to the ! hotkey in input/mod.rs)","severity":"LOW","category":"stale-architecture-description","auto_fixed":true},{"location":"src/input/CLAUDE.md:22,91","claim":"fuzz_tests.rs described as covering discovery states and all 14 minigames only; scenario table ends at fuzz_active_minigames_never_panic","correct_value":"fuzz_tests.rs also contains fuzz_voyage_input_never_panics (src/input/fuzz_tests.rs:264-335), added alongside the Act 2 release polish (#740), which hammers handle_voyage_input directly across mid-leg/junction/arrived scenarios","severity":"MEDIUM","category":"missing-test-coverage-doc","auto_fixed":true},{"location":"docs/dossiers/act1-ascent.md:3","claim":"Last refreshed: 2026-07-05 @ 64803b2","correct_value":"Content was subsequently edited by 5a4a19a (2026-07-06) and ee708f3 (2026-07-08) without bumping the refresh header; needs a manual reconciliation of the refresh-history log, not a mechanical bump","severity":"MEDIUM","category":"stale-dossier","auto_fixed":false},{"location":"docs/dossiers/act2-pilgrimage.md:3","claim":"Last refreshed: 2026-07-05","correct_value":"The file's own Refresh History section documents later refreshes (2026-07-12 b6ba759, 2026-07-13 c507a1c) already reflected in the content; only the top header pointer was never bumped forward","severity":"MEDIUM","category":"stale-dossier","auto_fixed":false}]}
{"type":"run","date":"2026-07-15","commit_sha":"698f29af54646fb4f5297ded6d9de701298e98fd","pr_url":"https://github.com/stphung/quest/pull/760","agent_count":6,"scope":["CLAUDE.md","docs/*.md","docs/dossiers/*.md","src/core/CLAUDE.md","src/combat/CLAUDE.md","src/character/CLAUDE.md","src/zones/CLAUDE.md","src/dungeon/CLAUDE.md","src/fishing/CLAUDE.md","src/items/CLAUDE.md","src/challenges/CLAUDE.md","src/haven/CLAUDE.md","src/enhancement/CLAUDE.md","src/ascension/CLAUDE.md","src/stormglass/CLAUDE.md","src/deep/CLAUDE.md","src/power_cores/CLAUDE.md","src/god_items/CLAUDE.md","src/loom/CLAUDE.md","src/vessel/CLAUDE.md","src/ui/CLAUDE.md","src/input/CLAUDE.md","src/utils/CLAUDE.md","src/main_helpers/CLAUDE.md","src/achievements/CLAUDE.md","src/history/CLAUDE.md","README.md"],"findings":[{"location":"CLAUDE.md:17","claim":"openspec/specs/ is 20 capabilities, 215 requirements","correct_value":"216 requirements (216 x '### Requirement' headings across openspec/specs/*/spec.md)","severity":"MEDIUM","category":"stale-constant","auto_fixed":true},{"location":"openspec/README.md:22","claim":"Twenty capability specs (215 requirements, 517 scenarios)","correct_value":"216 requirements, 525 scenarios","severity":"MEDIUM","category":"stale-constant","auto_fixed":true},{"location":"openspec/README.md capability index table","claim":"vessel-act2 listed as 19 requirements; challenges capability missing from table entirely","correct_value":"vessel-act2 = 20 requirements; challenges = 9 requirements (added row)","severity":"MEDIUM","category":"missing-file","auto_fixed":true},{"location":"docs/dossiers/act2-pilgrimage.md:3","claim":"Last refreshed: 2026-07-05","correct_value":"2026-07-15 @ 304d015 (Act 1/Act 2 interrelations diagram correction, #757)","severity":"MEDIUM","category":"stale-dossier","auto_fixed":true},{"location":"docs/dossiers/act1-ascent.md:3","claim":"Last refreshed: 2026-07-05 @ 64803b2","correct_value":"2026-07-08 @ ee708f3 (doc-audit stale-constant fix, #706)","severity":"LOW","category":"stale-dossier","auto_fixed":true},{"location":"src/haven/CLAUDE.md:76-82","claim":"Storm Forge: Requires catching the Storm Leviathan first (tracked via achievements)","correct_value":"can_forge_stormbreaker() also requires Prestige Rank 25+ (STORMBREAKER_PRESTIGE_REQUIREMENT), not just the Leviathan achievement","severity":"LOW","category":"stale-type","auto_fixed":true},{"location":"README.md:4,116","claim":"MIT License badge and 'Open source under the MIT License' text","correct_value":"No LICENSE file exists in the repo","severity":"MEDIUM","category":"listed-file-doesnt-exist","auto_fixed":false},{"location":"src/challenges/CLAUDE.md","claim":"N/A - structural","correct_value":"Doc uses a tutorial-style structure instead of the standard Files/Key Types/How It Works/Integration Points template; content itself is accurate","severity":"LOW","category":"stale-architecture-description","auto_fixed":false}]}
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ make fmt # Auto-fix formatting

## Spec-Driven Development (OpenSpec)

Development is **spec-driven** via [OpenSpec](https://github.com/Fission-AI/OpenSpec). The `openspec/specs/` directory is a reverse-engineered, code-grounded baseline (20 capabilities, 215 requirements) that documents *what the game currently does* — see [openspec/README.md](openspec/README.md) for the capability index and the known code-vs-docs discrepancy log.
Development is **spec-driven** via [OpenSpec](https://github.com/Fission-AI/OpenSpec). The `openspec/specs/` directory is a reverse-engineered, code-grounded baseline (20 capabilities, 216 requirements) that documents *what the game currently does* — see [openspec/README.md](openspec/README.md) for the capability index and the known code-vs-docs discrepancy log.

**Start non-trivial work from a spec, not from code:**
1. `/opsx:propose "<idea>"` — scaffold a change (proposal + design + tasks + delta specs) under `openspec/changes/`, grounded in the affected capability spec(s).
Expand Down
4 changes: 2 additions & 2 deletions docs/dossiers/act1-ascent.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Act 1: The Ascent — Design Dossier

> Last refreshed: 2026-07-05 @ 64803b2 (prose de-cluttered: no inline code
> references, bulleted structure; no source changed) | Sources: `src/core/` (incl.
> Last refreshed: 2026-07-08 @ ee708f3 (doc-audit: fixed stale constants;
> no source changed) | Sources: `src/core/` (incl.
> `power_rating.rs`), `src/combat/`, `src/character/`, `src/zones/`,
> `src/items/`, `src/enhancement/`, `src/ascension/`, `src/deep/`,
> `src/loom/`, `src/power_cores/`, `src/god_items/`, `src/haven/`,
Expand Down
6 changes: 3 additions & 3 deletions docs/dossiers/act2-pilgrimage.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Act 2: The Pilgrimage of Souls — Design Dossier

> Last refreshed: 2026-07-05 (the "Ignition" animated launch transition
> shipped and Dock/Wormhole's balance evidence corrected against its own
> shipped validation, see Refresh History) | Sources: `src/vessel/`, `src/main.rs` (vessel wiring), `src/vessel/CLAUDE.md`, `openspec/changes/archive/the-vessel-act2/design.md` (the 15 backported vessel specs, now consolidated into one file), `openspec/changes/archive/2026-07-05-act2-dock-wormhole-crossing/` (Dock/Wormhole, including its `tasks.md` balance validation), `openspec/specs/vessel-act2/spec.md`, `src/ui/vessel_transition_fx.rs` (the Ignition transition renderer), `docs/explorations/2026-07-05-act2-systems-braiding.md` (Dock/Wormhole's originating exploration and the deferred Session 5 braid), `tests/ferryman_tests.rs`, `src/vessel/colony.rs` unit tests, `src/vessel/transition.rs`, voyage_simulator + ferryman `strategy_sweep`/`dock_time_across_charge_policies` runs, `overlay_snapshot_tests.rs`, played via `QUEST_ACT2=1` fixtures
> Last refreshed: 2026-07-15 @ 304d015 (corrected the "Act 1 idles beneath
> Act 2" premise — Act 1 stops, it does not idle, per `main.rs:555`'s
> `continue`; see Refresh History for the full session log) | Sources: `src/vessel/`, `src/main.rs` (vessel wiring), `src/vessel/CLAUDE.md`, `openspec/changes/archive/the-vessel-act2/design.md` (the 15 backported vessel specs, now consolidated into one file), `openspec/changes/archive/2026-07-05-act2-dock-wormhole-crossing/` (Dock/Wormhole, including its `tasks.md` balance validation), `openspec/specs/vessel-act2/spec.md`, `src/ui/vessel_transition_fx.rs` (the Ignition transition renderer), `docs/explorations/2026-07-05-act2-systems-braiding.md` (Dock/Wormhole's originating exploration and the deferred Session 5 braid), `tests/ferryman_tests.rs`, `src/vessel/colony.rs` unit tests, `src/vessel/transition.rs`, voyage_simulator + ferryman `strategy_sweep`/`dock_time_across_charge_policies` runs, `overlay_snapshot_tests.rs`, played via `QUEST_ACT2=1` fixtures

> **Status: living, deep-refreshed across several sessions.** This dossier
> holds Act 2's cross-system, player-eye synthesis — how the launch gate,
Expand Down
5 changes: 3 additions & 2 deletions openspec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ folded back into those specs.

The specs in `specs/` were **reverse-engineered from the existing
implementation** — they document the game as it is actually coded today, not a
wishlist. Twenty capability specs (215 requirements, 517 scenarios) were each
wishlist. Twenty capability specs (216 requirements, 525 scenarios) were each
produced by reading the relevant `src/<module>/` code, its module `CLAUDE.md`,
the root `CLAUDE.md` "Key Constants", and the design notes under `docs/`, then
grounding every number against the source. All twenty pass
Expand Down Expand Up @@ -51,7 +51,8 @@ than silently editing the spec to match a regression.
| [`god-items`](specs/god-items/spec.md) | 7 | Asprika / Sleipnir / Megingjord — fixed God-rarity artifacts, passives, auto-equip protection |
| [`time-vault`](specs/time-vault/spec.md) | 9 | git-backed save snapshots on milestones, browse/restore/fork/delete, no auto-prune |
| [`persistence`](specs/persistence/spec.md) | 10 | JSON save files, `QUEST_DIR`, run vs account state, backward-compat contract, silent-wipe hazard |
| [`vessel-act2`](specs/vessel-act2/spec.md) | 19 | Act 2 kill-switch, Zone-50 launch gate (250k PR burn), the Voyage loop, the ferry era's balance envelope, the Last Crossing |
| [`vessel-act2`](specs/vessel-act2/spec.md) | 20 | Act 2 kill-switch, Zone-50 launch gate (250k PR burn), the Voyage loop, the ferry era's balance envelope, the Last Crossing |
| [`challenges`](specs/challenges/spec.md) | 9 | 14 challenge minigames, discovery weights, difficulty tiers, reward tables |

## Setup

Expand Down
4 changes: 3 additions & 1 deletion src/haven/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ Special: Fishing Dock T4 costs 10 PR. Storm Forge (single tier) costs 25 PR.
The ultimate Haven room, requiring both capstones (War Room + Vault) to unlock:
- Single tier, costs 25 prestige ranks
- Enables forging of Stormbreaker weapon
- Requires catching the Storm Leviathan first (tracked via achievements)
- Forging (`can_forge_stormbreaker()`) requires both catching the Storm
Leviathan (tracked via achievements) and Prestige Rank 25+
(`STORMBREAKER_PRESTIGE_REQUIREMENT`)
- Stormbreaker is required to defeat Zone 10's final boss

## Integration Points
Expand Down
Loading