# HARD RULE (XWVM legal model): the game install and anything derived from it
# must NEVER be committed. Code and documentation only.
/CrimsonSkiesGame/
/extracted/
# HD texture packs dropped in for HdTextures: redraws of the game's art.
/HD/
# HD model packs dropped in for HdModels (models.hd's default folder): third-party or game-derived meshes.
/HDModels/
# Sound packs dropped in for HdSounds (sounds.hd's default folder): third-party or game-derived recordings.
/HDSounds/
/tools/
# Archives: every zip in this tree so far has been game data or an extraction of it
# (CSVM-Complete.zip, the unzbd outputs). Ignored as a class rather than by name, so the
# next one is covered too — no .zip has ever been tracked here. Un-ignore a specific
# file with `git add -f` if a genuinely code-only archive ever needs committing.
*.zip

# Godot / .NET build artifacts
/CSVM/.godot/
/CSVM/bin/
/CSVM/obj/
/CSVM.Tests/bin/
/CSVM.Tests/obj/
/server/*/bin/
/server/*/obj/
*.screenshot.png
# F12 in-game screenshots (rendered game frames = game-derived, must not be committed)
/Screenshots/
# F10 / --export-gltf plane exports (game-derived geometry + textures, must not be committed)
/Exports/

# OS / editor cruft
Thumbs.db
Desktop.ini
.DS_Store
*.swp
CopyToOneDrive.ps1

# Reference captures of the original game — screenshots and videos alike.
# Kept locally and referenced by docs/backlog by filename; never committed.
# (The Videos/ subfolder was already ignored; 2026-07-22 this widened to the
# whole folder, and the previously-tracked screenshots were untracked.)
/OriginalScreenshots/

# Claude Code scratch/probe artifacts
.scratch/
# Scratch material kept across cleanups (CleanScratch.ps1 does not sweep it): prototype .blend files
.scratchKeep/
# Claude Code agent worktrees/workspaces — transient checkouts created by
# `isolation: worktree` subagents. They are real git worktrees of THIS repo;
# committing them would embed repos inside the repo. Added 2026-07-22 after
# `git add -A` swept five of them in. `workspaces/` is the same thing under a
# different name in newer Claude Code builds — ignored pre-emptively.
# NOTE: /.claude/skills/ is deliberately NOT ignored; project skills are committed.
/.claude/worktrees/
/.claude/workspaces/
# .agents/skills/ is a local junction to /.claude/skills/ (the tracked source), created per
# checkout — see AGENTS.md. Not tracked itself.
/.agents/skills/
# Dev-facing tuning-override file (src/Utils/Config.cs). A personal, sparse scratchpad: the in-code
# consts are the canonical values, config.json only overrides while fine-tuning. Kept out of
# version control so scripted --screenshot runs see no file → pure defaults → byte-identical.
# Values worth keeping get baked back into the const (with its rationale) and cleared from here.
/CSVM/config.json
# Local perf history (RunTests.ps1 -Perf): one JSON line per scenario per run, appended.
# Machine- and day-specific timings -- a committed one would be a threshold, and this project's
# only trusted regression instrument is a paired A/B measured back to back on one machine. It
# lives at the repo root rather than in .scratch/ so CleanScratch.ps1 does not sweep it away.
/perf-history.jsonl
# The goldens ledger (GoldenLedgerCore.ps1): one JSON line per re-rendered Enhanced shot, appended by
# every worktree's goldens stage to the main checkout's copy, which neither CleanScratch.ps1 nor a
# worktree removal reaches. Machine-specific history, never committed.
/goldens-ledger.jsonl

# Personal backlog, ideas and other things
NOTES.md
# Python bytecode from analysis/ scripts
__pycache__/
*.pyc

.env

#tmp
HANDOFF*.md
playtest-notes.md

# Per-clip decode sidecars, one CSV per video, mirroring the clip's repo-relative path.
# Bulk mechanical extractions of the original game's footage, so the HARD RULE at the top
# of this file applies: never committed.
# ⚠ INERT. The gauge-decode pipeline that wrote and read these was deleted when
# footage-derived flight analysis was retired, so nothing consumes them. Do not read them,
# and above all do not let PowerShell touch them -- see the encoding note in CLAUDE.md.
/videodata/

# Playtest evidence: captures staged for an at-the-controls A/B against the original,
# one subfolder per playtest.md item (playtest/PT-23/...). These are renders of the
# player's own game files, so they never go into version control -- see the asset rule
# in CLAUDE.md. Unlike .scratch/ this is NOT swept by CleanScratch.ps1, so a capture
# survives until the playtest item that owns it is closed.
/playtest/

# alpha_census.py regenerates this from extracted/; FINDINGS.md carries the conclusions.
/analysis/alpha-classification/alpha_census.json

# Capture-rig run logs - one per recording, they belong with the footage
analysis/capture-rigs/*-log.txt

.mcp.json
.pi/mcp.json
.claude/settings.local.json
# The webrtc-native GDExtension, fetched by InstallWebRtc.ps1 (binaries are never committed)
/CSVM/addons/webrtc_native/

# Per-app Caddy site blocks of other services on the VPS (see server/Caddyfile)
/server/sites/

# The user's loose working files (reference images and the like), never committed
/tmp/
