Skip to content

Add game concept documentation and prototype updates - #116

Open
felixfu007 wants to merge 5 commits into
Donchitos:mainfrom
felixfu007:docs/save-system-review-round3
Open

Add game concept documentation and prototype updates#116
felixfu007 wants to merge 5 commits into
Donchitos:mainfrom
felixfu007:docs/save-system-review-round3

Conversation

@felixfu007

Copy link
Copy Markdown

Summary

Brief description of what this PR does.

Type of Change

  • New agent
  • New skill
  • New hook or rule
  • Bug fix
  • Documentation improvement
  • Other:

Changes

Checklist

  • I've tested this in a Claude Code session
  • New agents include the Collaboration Protocol section
  • New skills use the subdirectory format (.claude/skills/<name>/SKILL.md)
  • Reference docs are updated (agent-roster, skills-reference, hooks-reference, rules-reference)
  • Hooks use grep -E (POSIX) and fail gracefully without jq/python
  • No hardcoded paths or platform-specific assumptions

felixfu007 and others added 5 commits July 29, 2026 15:12
- 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>
@felixfu007
felixfu007 requested a review from Donchitos as a code owner August 5, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant