Repository navigation
Expand file tree
/
Copy path.gitignore
More file actions
250 lines (216 loc) · 7.54 KB
/
Copy path.gitignore
File metadata and controls
250 lines (216 loc) · 7.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
# Dependencies
# No trailing slash: also match worktree per-package node_modules symlinks (SMI-5124)
node_modules
.pnpm-store/
# Ruflo AgentDB runtime persistence (hive-mind state)
agentdb.rvf
agentdb.rvf.lock
# SMI-4417: doc-retrieval-mcp — local-only .rvf corpus index + metadata.
# Never committed, never built in CI. .rvf is untracked, so smudge/clean
# filters never run on it — no .git-crypt-ignore entry is needed.
.ruvector/
*.rvf
# SMI-4680: stale CycloneDX SBOM at repo root (deleted; zero consumers
# verified via grep). On-demand SBOM generation lives in
# packages/mcp-server/src/tools/compliance-tools.ts (MCP tool output).
# If a static SBOM is needed again, regenerate via:
# docker exec skillsmith-dev-1 npx @cyclonedx/cyclonedx-npm \
# --output-format json --output-file sbom.json
sbom.json
*.cdx.json
# Build outputs
dist/
*.tsbuildinfo
.turbo/
.astro/
# TypeScript build artifacts in source dirs
packages/**/*.js
packages/**/*.js.map
packages/**/*.d.ts
packages/**/*.d.ts.map
# Allow config files (not build artifacts)
!packages/**/vitest.config.ts
# Allow hand-written type declarations (not generated)
!packages/**/src/types/*.d.ts
# SMI-2742: Ambient module declaration for fts5-sql-bundle
!packages/core/src/db/drivers/fts5-sql-bundle.d.ts
!packages/**/eslint.config.js
!packages/**/astro.config.mjs
# SMI-4904: custom ESLint rules (hand-written, not build artifacts)
!packages/**/eslint-rules/**/*.js
vitest.config.js
vitest.config.js.map
vitest.config.d.ts
vitest.config.d.ts.map
# Coverage
coverage/
# IDE
.idea/
.vscode/
!packages/vscode-extension/.vscode/
packages/vscode-extension/.vscode/*
!packages/vscode-extension/.vscode/launch.json
*.swp
*.swo
.DS_Store
# Environment
.env
.env.local
.env.*.local
# Explicitly allow environment templates (should be committed)
!.env.example
!.env.schema
# Logs
logs/
*.log
!packages/doc-retrieval-mcp/eval/.signatures.log
npm-debug.log*
# Testing
.nyc_output/
# OS
Thumbs.db
# Misc
*.bak
*.tmp
# Coordination artifacts
.claude-flow/
.swarm/
.agentic-qe/
# Confidential business documents
docs/IP/
docs/licensing/
docs/valuation/
# Sensitive configuration documentation (contains IDs, secrets)
docs/config/
*-secrets.md
*-credentials.md
stripe-config*.md
.stripe-*
# Internal planning and strategy (not public)
docs/backlog/
docs/strategy/
# Development artifacts (anchored to root level)
# SMI-4396: /data/* instead of /data/ so the SMI-4396 allowlist negation below
# can re-include its one version-controlled file — gitignore forbids negating
# a child when the parent directory itself is excluded.
/data/*
!/data/skills-security-allowlist.json
# SMI-4408: indexer blocklist for non-skill repos (imported-skill ingest filter).
!/data/indexer-blocklist.json
# SMI-6441: vendored SecLists snapshot + hand-curated keeplist for the weak-
# password lexicon generator (scripts/gen-weak-password-lexicon.mjs). The
# directory itself must be un-ignored (not just its files) — see the SMI-4396
# comment above on why gitignore can't negate a child of an excluded parent.
!/data/wordlists/
/output/
test-results/
playwright-report/
blob-report/
# SMI-5668: NEEDLE-based Codex dispatch (maintainer-machine-only tooling).
# results/*.log is already covered by the blanket *.log rule above; these two
# are a defensive backstop against an accidental commit of NEEDLE's own
# bead-store SQLite/JSONL state or its per-bead traces from inside a worktree.
scripts/needle/results/
.beads/
# Ignore test databases and output in packages (generated during tests)
packages/*/data/
packages/*/output/
# SMI-4577: HNSW bench fixtures (regenerated via `npm run bench:hnsw:seed`)
packages/core/tests/embeddings/fixtures/
# Phase 4 working documents (not finalized)
docs/phase4/
docs/phase4-research/
docs/architecture/phase-4.5-large-scale-testing.md
docs/architecture/phase4-trigger-system.md
docs/retros/phase-4-product-strategy.md
# Development scripts (not production)
scripts/full-import.ts
scripts/security-scan.ts
scripts/security-scan.test.ts
scripts/utils/
# Untracked scaffolding/development directories
packages/web/
/src/
docs/site/
.env.registry
.migration-checkpoint.json
.batch-transform-checkpoint.json
.batch-transform-checkpoint.json.bak
.hive-mind/
.vercel
# DNS and Email Provider Exports
*.zone
*-dns-export.txt
skillsmith.app.txt
cloudflare-*.json
resend-*.json
# Cloudflare configuration
.cloudflare/
wrangler.toml.local
# Resend webhook secrets (beyond .env)
.resend-*
# Claude Code runtime files
.claude/memory.db
.claude/hive-mind/
.claude/scheduled_tasks.lock
# Ruflo (claude-flow) runtime DB created by mcp__ruflo__swarm_init + memory_store
ruvector.db
agentdb.rvf
agentdb.rvf.lock
docs/irap/
.worktrees/
# SMI-4649: scripts/create-worktree.sh auto-generates this with worktree-specific
# container_name + ports per worktree. Never to be committed — `git add -A` from
# any worktree could accidentally check it in and break sibling contributors.
docker-compose.override.yml
# MCP Registry tokens
.mcpregistry_*
# Blog image generation working directory
docs/articles/tmp/
# Understand Anything knowledge graphs (generated by /understand)
**/.understand-anything/
# SMI-5207 governance review L-3: scripts/indexer/smi5207-blast-radius-{weekly,
# transitions}.ts default their report output here instead of the repo root
# (CLAUDE.md "Never save working files, text/mds and tests to the root folder").
.smi5207-reports/
# SMI-6441 Wave 2: scripts/indexer/smi6441-blast-radius.ts follows the same
# convention for the same reason.
.smi6441-reports/
# SMI-5879 / SMI-6444 / SMI-6481 census, simulation, gate-check and acceptance
# evidence. These tools default-write to the repo root, and the files are
# campaign evidence referenced from Linear rather than committed artifacts.
# Left untracked they fail `format:check`, which scans the whole tree — that
# blocked a docs-only push on 2026-09-09 for reasons unrelated to the change.
#
# TWO patterns per prefix, not one wildcard. Each prefix needs the tool's own
# output (`.json`) plus the operator's pre-rerun backup of it (`.json.bak…`,
# e.g. `.json.bak-pre-smi6481` on a 169MB file that sat unmatched here).
#
# Scope limit, deliberate: ONLY the `.bak` backup convention is covered. A
# backup saved under any other suffix — `.json.gz`, `.json.old`, `.json.copy`
# — stays VISIBLE, where the old `.json*` had swallowed it. That narrowing is
# intended, not an oversight: #2795's cross-family pre-merge review raised the
# compressed case, and a grep for gzip/zlib/zstd/zip/archiver across the three
# tools found no compression path in any of them, so re-widening for a shape
# nothing produces would repeat exactly the guess this block was rewritten to
# undo. If a tool ever starts compressing, add that explicit suffix per prefix
# — never restore `.json*`.
#
# An earlier revision collapsed both into a single `.json*` and claimed
# "`.json` still anchors the match". That was WRONG, and #2789's cross-family
# pre-merge review caught it: `.json*` means "STARTS WITH `.json`", so it also
# swallowed root-level `.jsonl`, `.json5`, `.jsonnet`, `.json.ts` and
# `.json.example` — real formats someone could legitimately want to commit.
# Silently hiding a source or data file is exactly the risk this block must
# not create. Confirmed with `git check-ignore -v --no-index` in both
# directions before and after.
#
# Every pattern is root-anchored (`/`) deliberately: without the leading slash
# git matches the basename at ANY depth, which would hide a same-named fixture
# or committed evidence file under a subdirectory.
/smi5879-*.json
/smi5879-*.json.bak*
/smi6444-*.json
/smi6444-*.json.bak*
/smi6481-*.json
/smi6481-*.json.bak*