
# ── Compiled test output ──
dist-test/

# ── Compiled output in src/ (should only contain .ts source) ──
src/**/*.js
src/**/*.js.map
src/**/*.d.ts
src/**/*.d.ts.map
!src/**/*.test.js
# Runtime extension resources are package source, not TypeScript output.
!src/resources/extensions/**/*.js
# Allow hand-written .d.ts for JS modules consumed by TypeScript
!src/resources/extensions/**/*.d.ts

# ── Repowise index (local machine-generated cache) ──
.repowise/

# ── SF project state (development-only, lives in worktree branches) ──
package-lock.json
.claude/
RELEASE-GUIDE.md
*.tgz
*.tsbuildinfo
.DS_Store
Thumbs.db
*.swp
*.swo
*~
.idea/
.vscode/
.vtcode/
*.code-workspace
.env
.env.*
!.env.example
node_modules/
.next/
/dist/
!/pkg/dist/modes/
!/pkg/dist/core/export-html/
build/
__pycache__/
*.pyc
.venv/
venv/
target/
vendor/
!packages/pi-coding-agent/src/core/export-html/vendor/
!pkg/dist/core/export-html/vendor/
*.log
coverage/
.cache/
tmp/

# ── Workspace packages ──
packages/*/dist/
packages/*/node_modules/

# ── Scratch/WIP files ──
preflight-script.ts

# ── SF baseline (auto-generated) ──
dist/
!/pkg/dist/modes/
!/pkg/dist/core/export-html/
.bg_shell
.sf*.tgz
.artifacts/
AGENTS.md
!.agents/AGENTS.md
.bg-shell/
TODOS.md
.planning/
.audits/
docs/coherence-audit/
.plans/

# ── SF project state ──
# Runtime/generated state stays out of git. Promote reviewed plans/specs/ADRs
# into docs/; keep only deliberate human-authored .sf guidance tracked.

# ── Native Rust build outputs ──
native/addon/*.node
native/npm/**/*.node
native/target/
rust-engine/addon/*.node
rust-engine/npm/
rust-engine/target/

# ── Stale lock files (npm is canonical) ──
pnpm-lock.yaml
bun.lock

# ── SF baseline (auto-generated) ──
.sf-id
.direnv/
.envrc
.serena/
repowise.db
.sf/mcp.json
.sf.migrating/
.sf/evals/
.sf/harness/
.sf/milestones/
.sf/scaffold-manifest.json
.sf/interactive.lock
.sf/interactive.lock.d/
# SQLite WAL/SHM are ephemeral checkpoint files — only the .db is durable.
.sf/metrics.db-wal
.sf/metrics.db-shm
.sf/sf.db-wal
.sf/sf.db-shm
# Per-dispatch trace files accumulate one-per-request and are runtime-only.
# Consumers (sf-db-gates, adaptive verification policy) read by mtime window
# (24h–30d) — on-disk retention is needed, but git tracking is not.
.sf/traces/pre-dispatch:*.jsonl
.sf/traces/finalize:*.jsonl
.sf/traces/guard:*.jsonl
# `latest` is a symlink retargeted on every dispatch — pure git noise.
.sf/traces/latest
test_output.log
