Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AICodeSight

AI code duplication stops here.

Built for Claude Code

npm versionlicensenode version


The Problem

AI coding assistants are powerful — but they're blind to your codebase. They can't see your existing utilities, your naming conventions, or the function you wrote last week that does exactly what they're about to create from scratch.

The result? Duplicate code. Everywhere.

  • A new formatDate() when one already exists in src/utils/
  • A second UserService because the AI didn't know about the first
  • Inconsistent naming, broken conventions, growing entropy

This isn't an AI problem. It's a visibility problem.

The Solution

AICodeSight generates an architectural metadata layer that makes your codebase visible to AI assistants. It scans your project, catalogs every export, maps dependencies, and produces machine-readable artifacts that AI assistants consult before writing a single line of code.

Your Code → aicodesight init → AI can see everything → No more duplicates

It also installs runtime guards — hooks that intercept AI actions in real-time and block duplication before it happens.

Features

  • Inventory & Registry — Catalogs every file, export, and type signature in your project
  • Capability Index — Enriched descriptions of what each function does and why it exists
  • Duplicate Detection — Finds existing duplicates and resolves canonical locations
  • Dependency Mapping — Tracks who imports what, identifies critical files
  • Guard Pipeline — Runtime hooks that detect and prevent duplication as AI writes code
  • Convention Enforcement — Validates naming patterns, file sizes, and structural rules
  • Session Memory — Persists context across AI session compactions
  • Pattern Modules — Stack-specific best practices (Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, TanStack Query)
  • CLAUDE.md Generation — Produces structured directives tailored to your project

Quick Start

Step 1: Initialize

npx aicodesight init

AICodeSight detects your project type, analyzes the codebase, and generates the architectural layer. After init, your CLAUDE.md has structure, conventions, and guards — but module descriptions are empty.

Step 2: Enrich

Run an enrichment session: the AI reads your source code, understands each function's purpose, and writes a description for every entry in the capability index. These descriptions are then included in CLAUDE.md, giving Claude full visibility into what your codebase does — not just where things are, but why they exist — reducing the chance of creating duplicate functionality.

claude -m sonnet "Follow the instructions in .claude/enrich-capability-index.md"

Sonnet is recommended for this task — it's cost-effective and the instructions are self-contained.

Step 3 (optional): Semantic Duplication Guard

Install semantic duplication detection — catches similar functions even with different names, using AI embeddings:

npm install @xenova/transformers

Requires enriched descriptions (Step 2) — entries without descriptions are skipped.

Step 4: Update

Regenerate CLAUDE.md so it includes the enriched module descriptions:

npx aicodesight update # without semantic guard
npx aicodesight update --embeddings # with semantic guard (requires step 3)

Ongoing

As your code evolves, run aicodesight update periodically to keep artifacts in sync. New entries will appear without descriptions — run another enrichment session to describe them, then update again to include them in CLAUDE.md.

CLI Commands

aicodesight init

Diagnose the project and generate the full architectural layer.

aicodesight init [directory]
OptionDescriptionDefault
--type <type>Project type: auto, new, legacyauto
--hooks <mode>Guard mode: yes (block), warn (advise), nowarn
--dry-runPreview without writing filesfalse
--no-blueprintSkip architectural blueprint
--no-interactiveSkip prompts, use auto-detection
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

aicodesight audit

Deep analysis of duplication, size, conventions, and progress.

aicodesight audit [directory]
OptionDescriptionDefault
--focus <focus>What to analyze: duplication, size, naming, allall
--format <format>Output: console, md, jsonconsole
--output <file>Save result to file

aicodesight update

Regenerate artifacts from the current code state.

aicodesight update [directory]
OptionDescriptionDefault
--only <target>What to update: claude-md, inventory, duplicates, hooks, registry, memory, allall
--dry-runPreview without writing filesfalse
--embeddingsEnable semantic duplication guard (requires @xenova/transformers and enriched descriptions)false

What Gets Generated

After running aicodesight init, you'll find a .claude/ directory with:

.claude/
├── inventory.json # Every file, its exports, line counts
├── inventory.md # Human-readable inventory
├── registry.json # Module-organized export catalog with type signatures
├── capability-index.json # Enriched function descriptions with intent metadata
├── capability-index.md # Human-readable capability index
├── duplicates.json # Known duplicates with canonical resolution
├── duplicates.md # Human-readable duplicate report
├── dependency-map.json # Import/export dependency graph
├── dependency-map.md # Human-readable dependency map
├── hooks/ # Guard pipeline
│ ├── runner.js # Guard orchestrator
│ ├── guard-config.json # Guard configuration
│ ├── duplication.js # Blocks duplicate exports
│ ├── convention.js # Enforces naming conventions
│ ├── structural.js # Detects structural duplication
│ ├── dependency.js # Detects circular imports
│ ├── coherence.js # Validates file coherence
│ ├── intent-*.js # Intent declaration & similarity guards
│ ├── size.js # File size alerts
│ └── ...
├── settings.json # Hook configuration
├── working-memory.json # Session persistence
├── aicodesight-meta.json # Init metadata
├── enrich-capability-index.md # Enrichment session instructions
└── embeddings-cache.json # BGE-small embeddings (if --embeddings enabled)
CLAUDE.md # AI directives (project root)
.claudeignore # Patterns to exclude from AI context

How It Works

┌─────────────────────────────────────────────────────┐
│ aicodesight init │
├─────────────────────────────────────────────────────┤
│ │
│ 1. DETECT Scan project structure │
│ ↓ Identify language, framework │
│ │
│ 2. ANALYZE Build inventory of all exports │
│ ↓ Map dependencies between files │
│ Detect existing duplicates │
│ │
│ 3. GENERATE Create registry & capability │
│ ↓ index (descriptions empty until │
│ enrichment session) │
│ │
│ 4. GUARD Install runtime hooks that │
│ ↓ intercept AI actions in real-time │
│ │
│ 5. TEMPLATE Generate CLAUDE.md with project- │
│ specific directives & conventions │
│ │
├─────────────────────────────────────────────────────┤
│ Result: AI sees structure, exports, and guards. │
│ Run enrichment session to add descriptions. │
└─────────────────────────────────────────────────────┘

Supported Stacks

  • Languages: TypeScript, JavaScript, C#
  • Frameworks: React, Expo/React Native, Next.js, Vue, Angular, .NET (ASP.NET Core)
  • Backend/BaaS: Supabase, Firebase, Express, Fastify, NestJS
  • Libraries: TanStack Query, Zustand, shadcn/ui, Tailwind CSS, React Hook Form, Zod, Prisma, EF Core

Pattern modules provide stack-specific guidance for: Expo/React Native, Supabase BaaS, shadcn/Tailwind, .NET Minimal API, and TanStack Query.

Requirements

  • Node.js >= 18
  • Built for Claude Code — generates CLAUDE.md, hooks, and guards designed for the Claude Code ecosystem

Contributing

Contributions are welcome! This project is in early development — if you find a bug or have an idea, please open an issue.

License

Apache License 2.0 — Use it freely. Keep the attribution. Indicate changes. Don't use the name to sell your fork.

Copyright 2025-2026 AICodeSight Contributors.


Built by mldix
detect · prevent · deduplicate

About

AI code duplication stops here — real-time guards for Claude Code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages