Brainstormed design for the D.2b retail-look UI backend: our own KSML-style markup + controls.ini stylesheet + retained-mode toolkit on Silk.NET (no embedded browser, zero external deps — Approach C, chosen over Ultralight/CEF and RmlUi for memory/dep-weight/faithfulness). Spec 1 scope: an 8-piece dat-sprite window frame + live Vitals bars bound to the existing VitalsVM, gated behind ACDREAM_RETAIL_UI=1, rendered via a reused TextRenderer batch. Render-only (input/hit-test, AcFont glyphs, anchor solver, LayoutDesc importer all deferred). Grounded by a read-only research workflow (7 readers + gap-critic). The critic corrected several stale memory/plan-doc facts now baked into the spec's do-not-trust list: VitalsVM is a sealed class (not the old record); chrome sprite IDs are unverified (Step-0 dat prove-out resolves them empirically); controls.ini exists and #FFDBD6A8 is editbox text not a bg; DatCollection reads are thread-safe; KSML is rich-text not the layout language (we mirror ElementDesc). Phase D.2b / Milestone M5 (parallelizable with M3/M4 — opened as a parallel track while M1.5 stays the active critical-path milestone). Retires divergence row TS-30 + adds one IA row when the chrome ships. Also gitignores the /.superpowers/ visual-companion scratch dir. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
91 lines
2 KiB
Text
91 lines
2 KiB
Text
# Build output
|
||
bin/
|
||
obj/
|
||
out/
|
||
|
||
# Rider / VS
|
||
.idea/
|
||
.vs/
|
||
*.user
|
||
*.suo
|
||
|
||
# NuGet
|
||
*.nupkg
|
||
packages/
|
||
|
||
# OS
|
||
.DS_Store
|
||
Thumbs.db
|
||
|
||
# Reference repos and retail client (large, not our code, separate licenses)
|
||
# WorldBuilder is exempt — it's a load-bearing dependency tracked as a git
|
||
# submodule pointing at our fork (Phase N, see docs/architecture/worldbuilder-inventory.md).
|
||
references/*
|
||
!references/WorldBuilder
|
||
!references/WorldBuilder/
|
||
|
||
# Claude Code session state
|
||
.claude/
|
||
# Superpowers brainstorm visual-companion scratch (mockups regenerate; not source)
|
||
/.superpowers/
|
||
launch.log
|
||
launch-*.log
|
||
launch.utf8.log
|
||
n4-verify*.log
|
||
|
||
# A6.P5 (2026-05-25) — door-stuck reproduction captures (multi-MB);
|
||
# the 3-record fixture extracted from these lives at
|
||
# tests/AcDream.Core.Tests/Fixtures/door-bug/over-penetration-capture.jsonl
|
||
door-stuck-capture.jsonl
|
||
door-stuck-*.launch.log
|
||
door-stuck-*.launch.utf8.log
|
||
door-fix-*.launch.log
|
||
door-fix-*.jsonl
|
||
door-walkthrough.*
|
||
|
||
# ImGui auto-saved window/docking state (per-user, not source)
|
||
imgui.ini
|
||
|
||
# User-only download cache (per-developer, not source)
|
||
refs/
|
||
|
||
# Python tooling (under tools/) — bytecode caches
|
||
__pycache__/
|
||
*.pyc
|
||
|
||
# Per-session scratch (Claude commit message drafts, ad-hoc temp files)
|
||
tmp/
|
||
|
||
# Git worktrees for isolated feature work
|
||
.worktrees/
|
||
|
||
# Per-session retail-debugger scratch — cdb scripts, logs, analysis helpers.
|
||
# The committed reference workflow lives in CLAUDE.md "Retail debugger toolchain";
|
||
# session-specific traces should not pollute the repo.
|
||
*.cdb
|
||
# tools/cdb/ holds committed reference scripts — exempt them from the blanket rule above.
|
||
!tools/cdb/*.cdb
|
||
launch_*.log
|
||
launch_*.err
|
||
launch_*.ps1
|
||
launch[0-9]*.log
|
||
analyze_*.ps1
|
||
peek_*.ps1
|
||
run_cdb_*.ps1
|
||
find_cdb.ps1
|
||
find_acclient.ps1
|
||
kill_cdb.ps1
|
||
append_memory.ps1
|
||
sky_*.log
|
||
smoke_test*
|
||
steep_roof_trace*
|
||
substep_trace*
|
||
sg_built.txt
|
||
# Stray bash-mangled path artifacts from PowerShell-via-bash escaping
|
||
C[-]*
|
||
|
||
# Obsidian vault config (personal, not project-wide)
|
||
.obsidian/
|
||
|
||
# Junction to Claude Code per-project memory (Obsidian vault visibility)
|
||
claude-memory
|