# See http://help.github.com/ignore-files/ for more about ignoring files.

/apps/**/*.html
/apps/**/*.mjs
/apps/**/neo-config.json

!/apps/ai/neural-link/index.html
!/apps/ai/neural-link/**/*.mjs
!/apps/ai/neural-link/neo-config.json
!/apps/colors/index.html
!/apps/colors/**/*.mjs
!/apps/colors/neo-config.json
!/apps/colors/childapps/widget/index.html
!/apps/colors/childapps/widget/neo-config.json
!/apps/covid/index.html
!/apps/covid/**/*.mjs
!/apps/covid/neo-config.json
!/apps/email/index.html
!/apps/email/**/*.mjs
!/apps/email/neo-config.json
!/apps/finance/index.html
!/apps/finance/**/*.mjs
!/apps/finance/neo-config.json
!/apps/form/index.html
!/apps/form/**/*.mjs
!/apps/form/neo-config.json
!/apps/legit/index.html
!/apps/legit/**/*.mjs
!/apps/legit/neo-config.json
!/apps/legit/childapps/preview/index.html
!/apps/legit/childapps/preview/neo-config.json
!/apps/portal/index.html
!/apps/portal/**/*.mjs
!/apps/portal/neo-config.json
!/apps/portal/childapps/preview/index.html
!/apps/portal/childapps/preview/neo-config.json
!/apps/realworld/index.html
!/apps/realworld/**/*.mjs
!/apps/realworld/neo-config.json
!/apps/realworld2/index.html
!/apps/realworld2/**/*.mjs
!/apps/realworld2/neo-config.json
!/apps/route/index.html
!/apps/route/**/*.mjs
!/apps/route/neo-config.json
!/apps/sharedcovid/index.html
!/apps/sharedcovid/**/*.mjs
!/apps/sharedcovid/neo-config.json
!/apps/sharedcovid/childapps/sharedcovidchart/index.html
!/apps/sharedcovid/childapps/sharedcovidchart/neo-config.json
!/apps/sharedcovid/childapps/sharedcovidhelix/index.html
!/apps/sharedcovid/childapps/sharedcovidhelix/neo-config.json
!/apps/sharedcovid/childapps/sharedcovidgallery/index.html
!/apps/sharedcovid/childapps/sharedcovidgallery/neo-config.json
!/apps/sharedcovid/childapps/sharedcovidmap/index.html
!/apps/sharedcovid/childapps/sharedcovidmap/neo-config.json
!/apps/shareddialog/index.html
!/apps/shareddialog/**/*.mjs
!/apps/shareddialog/neo-config.json
!/apps/shareddialog/childapps/shareddialog2/index.html
!/apps/shareddialog/childapps/shareddialog2/neo-config.json
!/apps/workstation/index.html
!/apps/workstation/**/*.mjs
!/apps/workstation/neo-config.json

/buildScripts/webpack/json/myApps.json

/dist
# Contents, NOT the directory: git does not descend into an ignored directory, so the
# negation below would be unreachable under a bare `/docs/output`. #16600
/docs/output/*
# The one exception, and it is deliberate. `class-hierarchy.json` is a build output that is
# ALSO an identity input: `extends` is hashed into every Knowledge Base chunk id, so a plane
# that cannot read this file re-identifies the whole corpus. Tracking it makes it present in
# every checkout — container, CI, peer clone — with no build step to keep correct. It is 53 KB
# against 28 MB in this directory, and only ~6 entries per 7 weeks change a superclass.
!/docs/output/class-hierarchy.json
/tmp

# dependencies
/node_modules

# generated by the theme-build
/resources/theme-map.json

# IDEs and editors
/.idea
.project
.classpath
*.launch
.settings
.vscode/

#System Files
.DS_Store
Thumbs.db
resources/data/deck/EditorConfig.json
# Generated census reports — derived data, regenerable from the generator + REPORT_WINDOW
resources/data/reports/

# Agent OS Local Data
.env
# Contents, NOT the directory — the same rule the /docs/output/* block below records. A bare
# `.neo-ai-data` makes the negation unreachable, and the two tracked concept files would go on
# looking fine because git grandfathers already-tracked paths: only the NEXT one added would
# vanish, reported by nothing. #17697
.neo-ai-data/*
!.neo-ai-data/concepts/
.neo-ai-secrets
# Parity-plane runtime root (docker-compose.dev.yml relocated plane) — runtime data, never tracked
.neo-ai-data-parity
ai/mcp/server/*/config.mjs
ai/config.mjs
# Runtime artifact — `MailboxService.mjs:259` persistence-error fallback writes
# `sent-to-cull.jsonl` next to the graph storage path during SENT_TO edge cull
# events (#10347 Phase 1 diagnostic). Lands at repo root if `aiConfig.storagePaths.graph`
# resolves there in test runs. Pure runtime telemetry; never tracked.
sent-to-cull.jsonl

# Claude Code worktrees (agent-spawned checkouts)
.claude/worktrees/

# Per-user Claude Code permissions allowlist (not shared)
.claude/settings.json

# Per-user Codex MCP server configs
.codex/config.toml

# Per-seat OpenCode harness config (seat-personal; the #15392 seat-config generator emits it — never track it)
/opencode.jsonc

# Per-seat Kimi Code harness config (seat-personal; hook adapters under .kimi-code/hooks/ stay tracked, Claude/Codex parity)
/.kimi-code/mcp.json
/.kimi-code/config.toml

# Playwright test results
test/playwright/test-results/
# Single-file Playwright runs via npx
test-results/

# The retired content mirror: the corpus publishes from neomjs/github-content-sync
resources/content/

# Agent Harness Scratch Artifacts (Issue #11563)
.gemini/*
!.gemini/concepts/
/pr_*.md
/scratch*.mjs
/patch_*.js
/patch_*.py
/patch_*.mjs
/ticket-*.md

*.orig
*.patch

# Skill substrate arrives as the neo-agent-skills npm dependency and is materialized by its
# linker, from this repo's `prepare` lifecycle, as symlinks into node_modules. Both paths are
# projection, never committed bytes (neomjs/neo#17798).
.agents/skills
.claude/skills/

# Agent OS seat hooks are generated-not-tracked projections under ADR 0040 §2.7.
# Keep the Engine-owned contributor guards and Kimi hook-root README visible.
.claude/hooks/*
!.claude/hooks/bodyFileGuardHook.mjs
!.claude/hooks/rgReplaceGuardHook.mjs
.codex/hooks/
.kimi-code/hooks/*
!.kimi-code/hooks/README.md
