# GSD workflow state
.planning/

# Local-only architecture diagram tooling (generates the standalone html
# from architecture-model.ts; the committed docs use ArchitectureDiagram.astro).
/architecture.html
apps/docs/scripts/gen-architecture-html.ts
apps/docs/scripts/architecture-runtime.js

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

package-lock.json
deno.lock

node_modules
dist
dist-ssr
*.local

**/.vite

# Environment files
.env

# Operator-local backfill mapping (org/team ids) for scripts/backfill-org-sites.ts
mapping.json
**/.env
# Local env variants (.env.claude-code, .env.bak, ...) — secrets, never committed.
.env.*
!.env.example
!**/.env.example

# Editor directories and files
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

.wrangler
dist
.dev.vars

kv
kv-shm
kv-wal
.specstory/**
.tsbuildinfo

# SQLite database files (legacy)
*.db
*.db-shm
*.db-wal

# Embedded PostgreSQL database directories
*.pglite

.playwright-mcp/

# Local test files
deploy/docs
deploy/test*

# Data Test files
apps/benchmark/data
# Local DevObjectStorage scratch dir (org-fs / skill-catalog integration tests)
data/

# AI planning files (root-level only, not docs/plans/)
/plans
.cursor/plans

# Local demo/prototype directories
studio-demo/

# Git worktrees
.worktrees
.claude/worktrees

# Claude runtime state (loop schedule lock, etc.)
.claude/*.lock

# Playwright
apps/web/test-results/
apps/web/playwright-report/
# Playwright component-testing's vite build cache (test:ct)
apps/web/ct/playwright/.cache/
apps/web/screenshots/
packages/e2e/test-results/
packages/e2e/playwright-report/

# Generated docs (root-level only, not apps/docs/). Use /docs/* not /docs
# so we can un-ignore specific subdirs below — git won't traverse into an
# ignored directory.
/docs/*
# Committed engineering plans (desktop migration etc.)
!/docs/plans/
# Superpowers workspace artifacts (brainstorming + writing-plans output)
# are kept local to the working tree, not committed.

# Local dev data directory
.deco

# `helm package deploy/helm/sandbox-operator` (and …/sandbox-env) produces a
# .tgz that is published to ghcr.io as an OCI artifact by
# .github/workflows/release-sandbox-charts.yaml. The unpacked trees under
# deploy/helm/sandbox-{operator,env}/ are the source of truth; the packaged
# .tgz is redundant in-repo and would just drift.
deploy/helm/sandbox-operator-*.tgz
deploy/helm/sandbox-operator/charts/
deploy/helm/sandbox-env-*.tgz
deploy/helm/sandbox-env/charts/
# `helm dependency update` for the studio chart caches remote subcharts
# (nats, opentelemetry-collector) as .tgz under charts/. They stay tracked
# because the chart pins specific versions and offline installs depend on
# them being present.

# Storybook static build
storybook-static
