Add game concept documentation and prototype updates - #116
Open
felixfu007 wants to merge 5 commits into
Open
Conversation
- design/gdd/game-concept.md: concept doc for 《弈緣》, revised through five rounds of adversarial /design-review (game-designer, systems-designer, qa-lead, narrative-director, ux-designer, level-designer, godot-specialist, creative-director synthesis) - prototypes/affinity-position-concept-v4/: Track A (combat/positioning HTML prototype with prediction markers, fixed-cadence cards, non-spatial trade-off, occluded-terrain level) and Track B (narrative trajectory paper prototype) for the newbie-validation batch required before /design-system - Also includes prior uncommitted /setup-engine output (Godot 4.7.1 config in CLAUDE.md, technical-preferences.md, engine-reference docs) and concept prototypes v1-v3 (PIVOT -> PIVOT -> PROCEED history) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… prototype batch Round 6 (creative-director): rejects in-battle/out-of-battle affinity split proposal, keeps single-pool/dual-read architecture; adds write-source closure rule, recency-weighted reads, narrative reachability constraint, and Track B branch-design hard deliverables (parallel-cost writing, same-tier naming, no ordinal tiers, exclusive content, absence as a positive shape feature). Round 7 (project lead proposal, creative-director ruling): adopts source-weighted narrative read (alpha discount on combat-card writes) instead of a dual-log structure; adds the pure-combat-floor reachability ceiling and locked calibration order (lambda -> alpha -> unlock thresholds). 2026-07-30 roster decision: protagonist cast fixed at 5 characters, no recruitment expansion — supersedes the earlier 10-12 character plan. Propagates through content-volume estimates, art-pipeline complexity, and the now-moot MVP-to-full-vision scaling risk. Includes the v4 prototype batch (two tracks + pivot note + reports) and the v5 prototype (roster-count pivot validation) plus the campaign-scale simulation that validated the recency-decay reachability constraint. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ate, systems-index /map-systems decomposes the concept into 14 systems (12 MVP, 2 vertical slice) and produces systems-index.md with dependency map, design order, and a cross-system obligations registry to track hand-offs to not-yet-designed downstream systems. 好感度數值池 (affinity-data-pool.md): Delta Log architecture — append-only event record with three independent read functions (combat strength, narrative depth, shape features) over the same underlying data. Approved after 7 rounds of /design-review (game-designer, systems-designer, qa-lead, narrative-director, godot-specialist, performance-analyst + creative-director synthesis). Registers its formulas in design/registry/entities.yaml. 單一游標/高亮狀態系統 (cursor-highlight-state.md): single source of truth for hover/cursor authority across mouse and gamepad input, through 10 rounds of /design-review; includes a Godot spike (cursor-reclaim-godot-spike-2026-08-05) validating the mouse-reclaim progressive-feedback mechanic. Status: Designed, pending round 11 adversarial re-review of the round-10 lock-in fix. Also includes accumulated ux-designer/performance-analyst agent memory from these review cycles (cross-mode wording checks, punted-obligation verification, mechanism-removal sweeps, perf query-complexity notes). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…olved 存檔系統(含跨規則集遷移): manifest + versioned-block persistence with step-by-step migration chains, atomic temp-file replace, and a reject- never-silently-degrade failure policy anchored to a three-tier severity ranking in Player Fantasy. Round 1 (MAJOR REVISION NEEDED, 24 blockers): added semantic validation, manifest integrity marks, a deserialization type whitelist, string-name persistence for the Pair index key (replacing enum ordinals to close the highest-risk silent-drift vector), migration determinism + postcondition checks, migration-success auto-heal, and resolved a thread-model contradiction between the Core Rules and several ACs. Downgraded the synchronous-write decision to provisional. Round 2 (NEEDS REVISION, 9 blockers): full adversarial re-review found the round-1 semantic defenses were fail-open at their edges — flipped to fail-closed throughout. Highlights: retired index-key names can no longer be reassigned (closes a rename-collision variant of the same drift risk); a buggy migration that passes structural post-conditions no longer silently and irreversibly overwrites the original save (adds pre-migration byte retention + a read-only recovery path); the atomic- replace example itself violated its own crash-safety contract and is replaced with a verified-safe rename sequence; manifest integrity marks must be a hash, not a byte count; a fourth structured rejection reason distinguishes same-version semantic failures from real migration failures. User-decided: severity-ranking correction (tradeoff-statement wording governs) and pre-migration byte retention (accepted, ~2x storage cost on migrated slots). Also lands a small cross-doc sync into affinity-data-pool.md (already committed): documents Pair's string-name persistence contract and adds AC-56, closing the review log's S1 ledger item without touching the unrelated AC-47/async-lifecycle question. Status: Designed, pending round 3 re-review in a fresh session. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Full-mode adversarial review (6 specialists + creative-director synthesis) found that round 2's fail-open fixes were structurally sound individually but left the seams between them undocumented — timing between Core Rules Donchitos#13 (backup creation) and Donchitos#14 (atomic swap), single-generation backup retention breaking under repeated migrations, and retired-name governance being the only round-2 fix left unenforced automatically. Key changes (user decisions D-1 through D-5): - Core Rules Donchitos#13: genesis retention (not "most recent") for pre_migration.bak; explicit two-phase write ordering ahead of Core Rules Donchitos#14; auto-heal path (2) demoted from "guarantee" to "data precondition" with a migration-completion marker + append-only replay scope limit - Core Rules Donchitos#14: pre-write cleanup step, general-corruption rolling backup (slot_N.prev.bak) via step 4, exact-filename matching, durability scope statement (flush() != power-loss durability) - Core Rules Donchitos#5 (new): migration execution moves to stepwise (single-threaded, no locks) to resolve the busy-indicator vs. sync-blocking contradiction found by performance-analyst - Core Rules Donchitos#8: manifest-level integrity marker covering the block list itself, not just per-block hashes - Core Rules Donchitos#10: scope expanded from "index keys" to "any persisted enum field" (closes a source_i gap parallel to the Pair ordinal-drift risk); retired-name governance upgraded from convention to a hard rule requiring an automated check - Core Rules Donchitos#16 (new): rule-interaction matrix, per creative-director's structural recommendation to make cross-rule seams visible - Player Fantasy: honest re-pricing of the "migration failed" wait/ abandon cost instead of claiming it was already eliminated Synced design/gdd/affinity-data-pool.md: expanded index-key persistence scope to source_i (new AC-57), removed a stale Open Question 5 sentence that contradicted Core Rules Donchitos#10 / Section M (found during this round's cross-document consistency check). Verdict: NEEDS REVISION → all 11 blockers resolved same session. Round 4 recommended to verify the fixes hold, not open new ground. Story: save-system-gdd Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brief description of what this PR does.
Type of Change
Changes
Checklist
.claude/skills/<name>/SKILL.md)grep -E(POSIX) and fail gracefully without jq/python