# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv

# Added by Spec Kitty CLI (auto-managed)
.claude/
.codex/
.vibe/
.pi/
.letta/
.opencode/
.windsurf/
.gemini/
.cursor/
.qwen/
.kilocode/
.augment/
.amazonq/
.kiro/
.agent/
.github/copilot/
.agents/skills/
.kittify/.dashboard
.kittify/charter/context-state.json
.kittify/charter/directives.yaml
.kittify/charter/governance.yaml
.kittify/charter/metadata.yaml
.kittify/charter/references.yaml
.kittify/derived/
.kittify/dossiers/
.kittify/encoding-provenance/
.kittify/events/
.kittify/logs/
.kittify/merge-state.json
.kittify/migrations/
.kittify/missions/__pycache__/
.kittify/runtime/
.kittify/skills-manifest.json
.kittify/sync-state.json
.kittify/workspaces/
kitty-ops/ops-index.jsonl

# Local MCP client config. `claude mcp add --scope project` writes .mcp.json here,
# and it would contain a deployment-specific hub URL (e.g. a homelab hostname) —
# which must never land in this public repo (see the charter). Configure your hub
# with `--scope user` instead; this is a belt-and-braces guard.
.mcp.json
.mcp.local.json
mcp.json

# Written into the project root by the client, not by a human: `join` writes the
# config (hub url — a homelab hostname — and this engine's claimed name), and
# `wake-check` writes the announce-once watermark. Both are deployment-local
# state, and the charter keeps deployment specifics out of the tracked repo.
agent-mailbox.toml
.agent-mailbox-seen.json

# JetBrains IDE
.idea/

# Internal working prompts (not for the public repo). Narrowed from a blanket
# `doc/` when the public documentation moved from docs/ to doc/ — a blanket rule
# would silently swallow every new ADR and mission brief.
doc/prompt/

# spec-kitty execution worktrees
.worktrees/
