# Repository metadata and local agent workspaces
/.git/
/.claude/
/.compare/
/.zcode/
/.mimosa/
/.workbuddy/

# Project planning, internal docs, and local-only development files
/.aksrt-chrome-profile/
/.specs/
/docs/

# tools/: 只版本化两个共享入口，其余为本地脚本。
/tools/*
!/tools/build-public-assets.mjs
!/tools/wp-cli-visual-fixtures.php

# tests/: 放行整个套件，按名字排除本地专有产物。
#
# 这里刻意从「逐文件白名单」改为「先放行目录、再逐个排除」的反向写法：
# 白名单要求每新增一个 *.test.cjs 都同步改本文件，一旦漏改，该测试文件会静默
# 不被跟踪，在 CI 上表现为「测试数量莫名变少」，且极难排查。反向写法下新增测试
# 自动纳入版本控制，只有确需本地专有的文件才需要追加排除。
#
# 下列 10 个路径是切换前就已处于「忽略且未跟踪」状态的本地专有文件，逐一保留原状。
!/tests/
/tests/visual-results/
/tests/fixtures/widget-golden-v1.json
/tests/widget-system/a11y-contract.test.cjs
/tests/widget-system/admin-core.test.cjs
/tests/widget-system/captcha-cloud-contract.test.cjs
/tests/widget-system/comment-hard-cut-contract.test.cjs
/tests/widget-system/download-config-contract.test.cjs
/tests/widget-system/run.php
/tests/widget-system/scratch-term-aggregation-harness.php

/CLAUDE.md
/AGENTS.md
ask-*.md
!assets/css/routes/docs/
assets/css/routes/docs/*
!assets/css/routes/docs/toolbar-search-enhancements.css

# Frontend build output and installed dependencies.
# assets/admin/build is deploy-only: build it on the target with
#   cd assets/admin && npm ci && npm run build
/assets/admin/node_modules/
/assets/admin/build/*
!/assets/admin/build/.gitkeep
assets/admin/.vite-temp/

# PHP installed dependencies
/vendor/*
!/vendor/.gitkeep

# Temporary / recovery helpers
restore-helper-monoliths.php
/.phpunit.cache/

# OS / editor noise
.DS_Store
Thumbs.db
*.log
