McRogueFace/.gitignore
John McCardle cf9512e128 feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture)
Generate a byte-stable preview PNG for every docs snippet, as the visual-
regression oracle foundation of #381. A changed image means the snippet's
behaviour changed and wants review.

Pipeline (no C++ change; existing headless build suffices):
- _seed.py: chained as the FIRST --exec so random.seed(42) governs the
  snippet's RNG before it draws (snippets draw at import; seeding after is
  too late). Shared-interpreter seeding covers all 25 random-module snippets.
- _screenshot.py: chained as the LAST --exec; steps setup frames then
  automation.screenshot(). Kept separate from _harness.py so the pass/fail
  suite stays fast and untouched.
- tools/generate_snippet_shots.py: orchestrator; runs seed->snippet->shot,
  writes gitignored snippet-shots/ (images belong in the doc-site repo,
  which pulls them from here). Per-snippet capture params live in a sidecar
  OVERRIDES table, not the mcrf: header (which would fight stamp_snippets
  and can't hold Phase-3 interaction scripts).
- make snippet-shots target; snippet-shots/ gitignored.

The 4 BSP snippets that needed deterministic pixels (060, 102, 224, 243)
now pass seed=42 — libtcod's global RNG is time(0)-seeded and unreachable
from Python, and seed= also documents reproducible generation for readers.

Validated: 272 captured, 10 skipped (noshot opt-outs), 0 failed; all 272
byte-identical across two full runs (~49s).

Addresses #381.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTh2ZW7bd3XSd9qK86Z2CE
2026-07-15 20:57:04 -04:00

89 lines
1.9 KiB
Text

*.swp
*.swo
bin
.msvc-intermediate/
*.bak*
PCbuild
.vs
obj
build
/lib
__pycache__
# unimportant files that won't pass clean dir check
build*
docs
.claude
my_games
# images are produced by many tests
*.png
# generated snippet preview screenshots (#381); consumed/committed by the doc-site repo
snippet-shots/
# WASM stdlib for Emscripten build
!wasm_stdlib/
.cache/
7DRL2025 Release/
CMakeFiles/
Makefile
*.zip
__lib/
__lib_debug/
__lib_windows/
build-windows/
build_windows/
_oldscripts/
# Audit tooling virtualenv (tools/audit_pymethoddef.py)
.venv-audit/
assets/
cellular_automata_fire/
deps/
fetch_issues_txt.py
forest_fire_CA.py
mcrogueface.github.io
scripts/
tcod_reference
.archive
.mcp.json
dist/
# Keep important documentation and tests
!CLAUDE.md
!README.md
!tests/
# Fuzzing build artifacts and runtime data (build-fuzz matched by build* above)
tests/fuzz/corpora/
tests/fuzz/crashes/
# >>> generated-docs (untrack via tools/untrack_generated_docs.sh) >>>
# Rendered/generated documentation is regenerated by the pre-commit hook and
# shipped inside release artifacts -- it no longer lives in git. The compact
# api/manifest.json is the exception: it STAYS committed (refreshed by the hook).
# Personal-notes docs (plans, triage, research) are also untracked here.
# tools/untrack_generated_docs.sh reads exactly this block to migrate the
# currently-tracked copies out of the index.
docs/API_REFERENCE_DYNAMIC.md
docs/api_reference_dynamic.html
docs/mcrfpy.3
stubs/mcrfpy.pyi
docs/generated/
docs/API_REFERENCE_COMPLETE.md
docs/api_reference_complete.html
docs/VISION.md
docs/GAMES.md
docs/plan-*.md
docs/api-audit-*.md
docs/ISSUE_TRIAGE_*.md
docs/GRID_ENTITY_OVERHAUL_ROADMAP.md
docs/sprint-*.md
docs/EMSCRIPTEN_RESEARCH.md
docs/WASM_TROUBLESHOOTING.md
docs/MCROGUFACE_LITE_PICOCALC_RESEARCH.md
docs/3D_SYSTEM_GUIDE.md
docs/PROCEDURAL_GENERATION_SPEC.md
# <<< generated-docs <<<