| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 9 | 1 | 0% |
| Commands | 0 | 5 | 0 | 0% |
| Section tags | 1 | 7 | 0 | 13% |
What each file covers
Sections
0 shared · 9 only in A · 1 only in B- − GitHub Copilot Instructions — Second Brain
- − Project
- − Tech Stack
- − Conventions
- − DO
- − DON'T
- − Monorepo Structure
- − Commands
- − Data Model
- + CLAUDE.md
Commands
0 shared · 5 only in A · 0 only in B- − pnpm install
- − pnpm build
- − pnpm test
- − pnpm check-types
- − pnpm dev
Section tags
1 shared · 7 only in A · 0 only in B- − setup
- − test
- − code-style
- − architecture
- − types
- − monorepo
- − do-not
- agent-behaviour
Line diff
thangaram611/second-brain · .github/copilot-instructions.md
@@ −1 @@
1# GitHub Copilot Instructions — Second Brain
2
3## Project
4
5Developer knowledge graph — pnpm monorepo with Turborepo. Node.js 22+, TypeScript 5.8+ strict mode, ESM only.
6
7For full architecture details, see [docs/architecture.md](../docs/architecture.md).
8For agent-level instructions, see [AGENTS.md](../AGENTS.md).
9
10## Tech Stack
11
12- **Runtime**: Node.js 22+, ESM modules only (`"type": "module"`)
13- **Language**: TypeScript 5.8+ (strict mode, explicit return types, no `any`)
14- **Database**: SQLite via better-sqlite3 + Drizzle ORM, WAL mode
15- **Search**: FTS5 (BM25) + sqlite-vec (cosine KNN), fused via Reciprocal Rank Fusion
16- **Validation**: Zod v4 for all external inputs
17- **Testing**: Vitest with in-memory SQLite (`:memory:`), globals enabled
18- **Build**: tsdown (ESM bundler), tsc (type-check only)
19- **Frontend**: React 19, Zustand, Cytoscape.js, Tailwind CSS, Radix UI
20- **Sync**: Yjs CRDTs via Hocuspocus relay
21- **IDs**: ULIDs (via ulidx). Never UUID
22- **Timestamps**: ISO 8601 strings. Never unix timestamps
23
24## Conventions
25
26### DO
27- Use named exports, re-export from package index.ts
28- Use workspace imports: `@second-brain/core`, `@second-brain/types`
29- Use Zod schemas for request validation in routes
30- Write tests with Vitest using in-memory SQLite
31- Use `batchUpsert` for bulk operations (merges observations/tags on conflict)
32- Keep observations as atomic, concise facts (string arrays)
33- Use try-catch with descriptive error messages
34
35### DON'T
36- Use path aliases (rely on workspace resolution)
37- Use `any` type
38- Import from package internals (use public API via index.ts)
39- Use UUIDs (use ULIDs from ulidx)
40- Use Date objects or unix timestamps in storage
41- Manually write to entities_fts table (auto-maintained via triggers)
42- Sync the 'personal' namespace
43- Mutate stored confidence values (decay is read-side only)
44
45## Monorepo Structure
46
47```
48packages/types — Shared TypeScript types
49packages/core — Knowledge graph engine (Brain class)
50packages/collectors — Data collectors + streaming providers
51packages/ingestion — LLM extraction + embedding pipeline
52packages/sync — Yjs CRDT sync bridge
53packages/mcp-server — MCP tools (32 tools, stdio + HTTP)
54apps/server — Express 5 REST API + WebSocket (port 7430)
55apps/ui — React 19 + Cytoscape.js web app (port 5173)
56apps/relay — Hocuspocus CRDT relay (port 7421)
57tools/cli — brain CLI (Commander.js)
58```
59
60## Commands
61
62```bash
63pnpm install # Install dependencies
64pnpm build # Build all packages
65pnpm test # Run all tests
66pnpm check-types # Type-check everything
67pnpm dev # Start dev servers
68```
69
70## Data Model
71
72- **Entity types** (15): concept, decision, pattern, person, file, symbol, event, tool, fact, conversation, reference, implementation, pull_request, merge_request, branch
73- **Relation types** (20): relates_to, depends_on, implements, supersedes, contradicts, derived_from, authored_by, decided_in, uses, tests, contains, co_changes_with, preceded_by, blocks, reviewed_by, merged_in_mr, merged_in_pr, touches_file, owns, parallel_with
74- Every entity/relation has a `namespace` field
75- Bitemporal: eventTime + ingestTime
76- Confidence with time-based decay (read-side only)
77
thangaram611/second-brain · CLAUDE.md
@@ +1 @@
1# CLAUDE.md
2
3Second Brain — a developer knowledge graph: shared engineering memory for teams ("git remembers the code; Second Brain remembers why"). pnpm monorepo, Turborepo, Node.js 24+, TypeScript 5.8+ strict, ESM only.
4
5All conventions, monorepo map, data model, architecture decisions, and common tasks are in [AGENTS.md](./AGENTS.md) (auto-loaded alongside this file).
6
7Deep-dive docs:
8- [docs/architecture.md](./docs/architecture.md) — Full technical architecture
9- [docs/getting-started.md](./docs/getting-started.md) — End-to-end usage guide
10- [docs/api-reference.md](./docs/api-reference.md) — REST API + MCP tools + CLI reference
11
@@ −1 +1 @@
1−# GitHub Copilot Instructions — Second Brain
1+# CLAUDE.md
22
3−## Project
3+Second Brain — a developer knowledge graph: shared engineering memory for teams ("git remembers the code; Second Brain remembers why"). pnpm monorepo, Turborepo, Node.js 24+, TypeScript 5.8+ strict, ESM only.
44
5−Developer knowledge graph — pnpm monorepo with Turborepo. Node.js 22+, TypeScript 5.8+ strict mode, ESM only.
5+All conventions, monorepo map, data model, architecture decisions, and common tasks are in [AGENTS.md](./AGENTS.md) (auto-loaded alongside this file).
66
7−For full architecture details, see [docs/architecture.md](../docs/architecture.md).
8−For agent-level instructions, see [AGENTS.md](../AGENTS.md).
9−
10−## Tech Stack
11−
12−- **Runtime**: Node.js 22+, ESM modules only (`"type": "module"`)
13−- **Language**: TypeScript 5.8+ (strict mode, explicit return types, no `any`)
14−- **Database**: SQLite via better-sqlite3 + Drizzle ORM, WAL mode
15−- **Search**: FTS5 (BM25) + sqlite-vec (cosine KNN), fused via Reciprocal Rank Fusion
16−- **Validation**: Zod v4 for all external inputs
17−- **Testing**: Vitest with in-memory SQLite (`:memory:`), globals enabled
18−- **Build**: tsdown (ESM bundler), tsc (type-check only)
19−- **Frontend**: React 19, Zustand, Cytoscape.js, Tailwind CSS, Radix UI
20−- **Sync**: Yjs CRDTs via Hocuspocus relay
21−- **IDs**: ULIDs (via ulidx). Never UUID
22−- **Timestamps**: ISO 8601 strings. Never unix timestamps
23−
24−## Conventions
25−
26−### DO
27−- Use named exports, re-export from package index.ts
28−- Use workspace imports: `@second-brain/core`, `@second-brain/types`
29−- Use Zod schemas for request validation in routes
30−- Write tests with Vitest using in-memory SQLite
31−- Use `batchUpsert` for bulk operations (merges observations/tags on conflict)
32−- Keep observations as atomic, concise facts (string arrays)
33−- Use try-catch with descriptive error messages
34−
35−### DON'T
36−- Use path aliases (rely on workspace resolution)
37−- Use `any` type
38−- Import from package internals (use public API via index.ts)
39−- Use UUIDs (use ULIDs from ulidx)
40−- Use Date objects or unix timestamps in storage
41−- Manually write to entities_fts table (auto-maintained via triggers)
42−- Sync the 'personal' namespace
43−- Mutate stored confidence values (decay is read-side only)
44−
45−## Monorepo Structure
46−
47−```
48−packages/types — Shared TypeScript types
49−packages/core — Knowledge graph engine (Brain class)
50−packages/collectors — Data collectors + streaming providers
51−packages/ingestion — LLM extraction + embedding pipeline
52−packages/sync — Yjs CRDT sync bridge
53−packages/mcp-server — MCP tools (32 tools, stdio + HTTP)
54−apps/server — Express 5 REST API + WebSocket (port 7430)
55−apps/ui — React 19 + Cytoscape.js web app (port 5173)
56−apps/relay — Hocuspocus CRDT relay (port 7421)
57−tools/cli — brain CLI (Commander.js)
58−```
59−
60−## Commands
61−
62−```bash
63−pnpm install # Install dependencies
64−pnpm build # Build all packages
65−pnpm test # Run all tests
66−pnpm check-types # Type-check everything
67−pnpm dev # Start dev servers
68−```
69−
70−## Data Model
71−
72−- **Entity types** (15): concept, decision, pattern, person, file, symbol, event, tool, fact, conversation, reference, implementation, pull_request, merge_request, branch
73−- **Relation types** (20): relates_to, depends_on, implements, supersedes, contradicts, derived_from, authored_by, decided_in, uses, tests, contains, co_changes_with, preceded_by, blocks, reviewed_by, merged_in_mr, merged_in_pr, touches_file, owns, parallel_with
74−- Every entity/relation has a `namespace` field
75−- Bitemporal: eventTime + ingestTime
76−- Confidence with time-based decay (read-side only)
7+Deep-dive docs:
8+- [docs/architecture.md](./docs/architecture.md) — Full technical architecture
9+- [docs/getting-started.md](./docs/getting-started.md) — End-to-end usage guide
10+- [docs/api-reference.md](./docs/api-reference.md) — REST API + MCP tools + CLI reference
7711
