# Secrets
.env
.env.*
!.env.example
**/.env
**/.env.*
!**/.env.example

# Python
__pycache__/
*.py[cod]
.python-version
.venv/
**/.venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/

# Node
node_modules/

# Local agent / superpowers workflow artifacts
.Codex/plans/
.codex/plans/
.claude/plans/
.claude/projects/
.claude/worktrees/
# Runtime-synced skill symlinks (absolute paths, machine-specific; see
# ArtifactStore.sync_skills_to_claude)
autocontext/.claude/skills/
.pi/
.pi-lens/
/superpowers/
docs/superpowers/

# OS/editor
.DS_Store

# Worktrees
.worktrees/

# Runtime outputs
runs/*
!runs/.gitkeep
knowledge/*
!knowledge/.gitkeep
skills/*
!skills/.gitkeep
# AC-712: committed Hermes skill snapshot; CI sync invariant pins it.
!skills/autocontext/
# AC-925: the host-agnostic snapshots, pinned by the same kind of drift test.
# skills/ is otherwise a runtime output directory, so each committed snapshot
# has to be un-ignored by name.
!skills/autocontext-creator/
!skills/autocontext-consumer/

# The patterns above are anchored to the repo root, so the same runtime
# outputs produced inside the TS package were not ignored (AC-909 review
# caught 24 such artifacts getting committed).
ts/runs/
ts/knowledge/
ts/skills/
!skills/autocontext/**
autocontext/runs/
autocontext/knowledge/

# Hatchling custom build-hook staging output (autocontext/hatch_build.py
# stages docs/cli-contract.json under build/ before force-including it)
autocontext/build/

# Database artifacts
*.sqlite3
*.db
