leadcode 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ export interface TechQuery {
2
+ libraryName: string;
3
+ queries: string[];
4
+ crossQueries?: Record<string, string>;
5
+ }
6
+ /**
7
+ * Maps detected tech identifiers to Context7 library names and relevant queries.
8
+ * This is NOT hardcoded rules — just "what to ask" for each technology.
9
+ */
10
+ export declare const TECH_QUERIES: Record<string, TechQuery>;
11
+ //# sourceMappingURL=tech-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-queries.d.ts","sourceRoot":"","sources":["../../src/data/tech-queries.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA8OlD,CAAC"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Maps detected tech identifiers to Context7 library names and relevant queries.
3
+ * This is NOT hardcoded rules — just "what to ask" for each technology.
4
+ */
5
+ export const TECH_QUERIES = {
6
+ // Frameworks
7
+ next: {
8
+ libraryName: "next.js",
9
+ queries: [
10
+ "App Router conventions, Server Components vs Client Components, when to use 'use client'",
11
+ "Server Actions best practices, data fetching patterns, caching strategies",
12
+ ],
13
+ crossQueries: {
14
+ prisma: "Using Prisma with Next.js App Router, server-only imports, singleton pattern, data access layer",
15
+ drizzle: "Using Drizzle ORM with Next.js, server-only database queries",
16
+ "next-auth": "NextAuth.js v5 setup with Next.js App Router, middleware auth, session in Server Components",
17
+ clerk: "Clerk authentication with Next.js App Router, middleware, server-side auth",
18
+ "supabase-auth": "Supabase Auth with Next.js App Router, server client, middleware session refresh",
19
+ zod: "Zod validation in Next.js Server Actions and Route Handlers",
20
+ stripe: "Stripe payments and webhooks in Next.js, server-only SDK, webhook route handler",
21
+ "react-query": "React Query with Next.js App Router, HydrationBoundary, prefetching in Server Components",
22
+ "next-intl": "next-intl setup with App Router, middleware locale detection, Server Components i18n",
23
+ tailwind: "Tailwind CSS with Next.js, configuration, dark mode",
24
+ shadcn: "shadcn/ui with Next.js, component installation, theming",
25
+ },
26
+ },
27
+ nuxt: {
28
+ libraryName: "nuxt",
29
+ queries: ["Nuxt 3 conventions, composables, server routes, auto-imports"],
30
+ },
31
+ remix: {
32
+ libraryName: "remix",
33
+ queries: ["Remix loaders and actions, data loading patterns, form handling"],
34
+ },
35
+ astro: {
36
+ libraryName: "astro",
37
+ queries: ["Astro components, islands architecture, content collections"],
38
+ },
39
+ sveltekit: {
40
+ libraryName: "sveltekit",
41
+ queries: ["SvelteKit load functions, form actions, server-side rendering"],
42
+ },
43
+ "solid-start": {
44
+ libraryName: "solid-start",
45
+ queries: ["SolidStart routing, server functions, data loading"],
46
+ },
47
+ "vite-react": {
48
+ libraryName: "vite",
49
+ queries: ["Vite React project configuration, plugins, build optimization"],
50
+ },
51
+ react: {
52
+ libraryName: "react",
53
+ queries: ["React hooks best practices, component patterns, performance optimization"],
54
+ },
55
+ express: {
56
+ libraryName: "express",
57
+ queries: ["Express.js middleware patterns, error handling, route organization"],
58
+ },
59
+ fastify: {
60
+ libraryName: "fastify",
61
+ queries: ["Fastify plugins, schema validation, hooks lifecycle"],
62
+ },
63
+ hono: {
64
+ libraryName: "hono",
65
+ queries: ["Hono middleware, routing, request handling patterns"],
66
+ },
67
+ // ORM / Database
68
+ prisma: {
69
+ libraryName: "prisma",
70
+ queries: ["Prisma client singleton, connection pooling, best practices, select vs include"],
71
+ },
72
+ drizzle: {
73
+ libraryName: "drizzle-orm",
74
+ queries: ["Drizzle ORM schema definition, queries, migrations, best practices"],
75
+ },
76
+ typeorm: {
77
+ libraryName: "typeorm",
78
+ queries: ["TypeORM entity patterns, repository pattern, migrations"],
79
+ },
80
+ kysely: {
81
+ libraryName: "kysely",
82
+ queries: ["Kysely query builder patterns, type-safe queries"],
83
+ },
84
+ mongoose: {
85
+ libraryName: "mongoose",
86
+ queries: ["Mongoose schema design, middleware, connection management"],
87
+ },
88
+ // Auth
89
+ "next-auth": {
90
+ libraryName: "next-auth",
91
+ queries: ["NextAuth.js v5 configuration, providers, session management, middleware"],
92
+ },
93
+ clerk: {
94
+ libraryName: "clerk",
95
+ queries: ["Clerk authentication setup, middleware, server-side auth, user management"],
96
+ },
97
+ "better-auth": {
98
+ libraryName: "better-auth",
99
+ queries: ["Better Auth setup, session management, providers"],
100
+ },
101
+ auth0: {
102
+ libraryName: "auth0",
103
+ queries: ["Auth0 SDK setup, authentication flow, token management"],
104
+ },
105
+ // Validation
106
+ zod: {
107
+ libraryName: "zod",
108
+ queries: ["Zod schema patterns, parse vs safeParse, type inference, error handling"],
109
+ crossQueries: {
110
+ "react-hook-form": "Zod resolver with react-hook-form, shared schemas for forms and API validation",
111
+ },
112
+ },
113
+ valibot: {
114
+ libraryName: "valibot",
115
+ queries: ["Valibot schema validation, tree-shaking, type inference"],
116
+ },
117
+ // CSS / UI
118
+ tailwind: {
119
+ libraryName: "tailwindcss",
120
+ queries: ["Tailwind CSS utility classes, configuration, responsive design, dark mode"],
121
+ },
122
+ shadcn: {
123
+ libraryName: "shadcn/ui",
124
+ queries: ["shadcn/ui component usage, theming, customization, cn utility"],
125
+ },
126
+ chakra: {
127
+ libraryName: "chakra-ui",
128
+ queries: ["Chakra UI component patterns, theming, responsive styles"],
129
+ },
130
+ mui: {
131
+ libraryName: "material-ui",
132
+ queries: ["Material UI component usage, theming, sx prop patterns"],
133
+ },
134
+ mantine: {
135
+ libraryName: "mantine",
136
+ queries: ["Mantine components, hooks, theming, form handling"],
137
+ },
138
+ // Testing
139
+ vitest: {
140
+ libraryName: "vitest",
141
+ queries: ["Vitest testing patterns, mocking, setup, configuration"],
142
+ },
143
+ jest: {
144
+ libraryName: "jest",
145
+ queries: ["Jest testing patterns, mocking, configuration, best practices"],
146
+ },
147
+ playwright: {
148
+ libraryName: "playwright",
149
+ queries: ["Playwright E2E testing, page objects, assertions, configuration"],
150
+ },
151
+ cypress: {
152
+ libraryName: "cypress",
153
+ queries: ["Cypress E2E testing, commands, fixtures, best practices"],
154
+ },
155
+ // State
156
+ zustand: {
157
+ libraryName: "zustand",
158
+ queries: ["Zustand store patterns, middleware, persist, selectors"],
159
+ },
160
+ redux: {
161
+ libraryName: "redux-toolkit",
162
+ queries: ["Redux Toolkit slices, createAsyncThunk, RTK Query"],
163
+ },
164
+ jotai: {
165
+ libraryName: "jotai",
166
+ queries: ["Jotai atom patterns, derived atoms, async atoms"],
167
+ },
168
+ // Data fetching
169
+ "react-query": {
170
+ libraryName: "tanstack-query",
171
+ queries: ["TanStack Query patterns, mutations, invalidation, caching strategies"],
172
+ },
173
+ swr: {
174
+ libraryName: "swr",
175
+ queries: ["SWR data fetching, revalidation, mutation, error handling"],
176
+ },
177
+ // Forms
178
+ "react-hook-form": {
179
+ libraryName: "react-hook-form",
180
+ queries: ["React Hook Form usage, register, Controller, validation integration"],
181
+ },
182
+ // API
183
+ trpc: {
184
+ libraryName: "trpc",
185
+ queries: ["tRPC router setup, procedures, middleware, input validation with Zod"],
186
+ crossQueries: {
187
+ zod: "tRPC with Zod input validation, end-to-end type safety",
188
+ },
189
+ },
190
+ // Payments
191
+ stripe: {
192
+ libraryName: "stripe",
193
+ queries: ["Stripe API integration, webhooks, checkout, payment intents"],
194
+ },
195
+ // Email
196
+ resend: {
197
+ libraryName: "resend",
198
+ queries: ["Resend email API, sending emails, React Email templates"],
199
+ },
200
+ // i18n
201
+ "next-intl": {
202
+ libraryName: "next-intl",
203
+ queries: ["next-intl middleware, Server Components, message organization"],
204
+ },
205
+ i18next: {
206
+ libraryName: "i18next",
207
+ queries: ["i18next configuration, namespaces, interpolation, react-i18next"],
208
+ },
209
+ // CMS
210
+ sanity: {
211
+ libraryName: "sanity",
212
+ queries: ["Sanity CMS setup, GROQ queries, studio configuration"],
213
+ },
214
+ contentful: {
215
+ libraryName: "contentful",
216
+ queries: ["Contentful API, content delivery, content management"],
217
+ },
218
+ // Realtime
219
+ "socket.io": {
220
+ libraryName: "socket.io",
221
+ queries: ["Socket.IO setup, events, rooms, namespaces, error handling"],
222
+ },
223
+ // Jobs
224
+ inngest: {
225
+ libraryName: "inngest",
226
+ queries: ["Inngest function patterns, event-driven workflows, retries"],
227
+ },
228
+ };
229
+ //# sourceMappingURL=tech-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-queries.js","sourceRoot":"","sources":["../../src/data/tech-queries.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,42 +2,177 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import * as z from "zod";
4
4
  import { registerAnalyzeRepo } from "./tools/analyze-repo.js";
5
- import { registerFetchDocs } from "./tools/fetch-docs.js";
6
5
  import { registerGenerateClaudeMd } from "./tools/generate-claude-md.js";
7
6
  import { registerValidateClaudeMd } from "./tools/validate-claude-md.js";
8
- import { registerUpdateClaudeMd } from "./tools/update-claude-md.js";
7
+ import { registerTechQueriesResource } from "./resources/tech-queries.js";
9
8
  const server = new McpServer({
10
9
  name: "leadcode",
11
- version: "1.0.0",
10
+ version: "1.1.0",
12
11
  });
13
12
  // Register tools
14
13
  registerAnalyzeRepo(server);
15
- registerFetchDocs(server);
16
14
  registerGenerateClaudeMd(server);
17
15
  registerValidateClaudeMd(server);
18
- registerUpdateClaudeMd(server);
16
+ // Register resources
17
+ registerTechQueriesResource(server);
19
18
  // Register prompts
20
- server.prompt("setup-project", "Full LeadCode workflow: analyze repo generate CLAUDE.md with up-to-date conventions from Context7.", {
21
- projectPath: z.string().describe("Absolute path to the project root"),
19
+ server.prompt("setup-project", "Generate a CLAUDE.md for a project. Use when the user wants to setup, init, configure, or generate rules/CLAUDE.md for any project.", {
20
+ projectPath: z.string().describe("Absolute path to the project root. Use the current working directory if not specified."),
22
21
  language: z.string().optional().describe("Output language: 'fr' for French, 'en' for English (default: en)"),
23
22
  }, ({ projectPath, language }) => {
24
23
  const isFr = language === "fr";
25
24
  const steps = isFr
26
25
  ? [
27
- `Configure LeadCode pour le projet à ${projectPath}. Suis ces étapes :`,
26
+ `Tu configures LeadCode pour le projet à ${projectPath}. Suis ces étapes dans l'ordre :`,
28
27
  "",
29
- `1. Lance analyze-repo avec projectPath="${projectPath}" pour scanner le projet et détecter le stack.`,
30
- "2. Présente un résumé clair du stack détecté.",
31
- "3. Lance generate-claude-md avec l'analyse — il récupérera automatiquement la documentation à jour via Context7 et générera le CLAUDE.md.",
28
+ "## Étape 1 : Analyser le projet",
32
29
  "",
33
- "Explique chaque étape simplement. Réponds en français.",
30
+ `Appelle l'outil analyze-repo avec projectPath="${projectPath}".`,
31
+ "Présente un résumé clair du stack détecté (framework, ORM, auth, CSS, testing, etc.).",
32
+ "",
33
+ "## Étape 2 : Lire le mapping tech-queries",
34
+ "",
35
+ 'Lis la ressource LeadCode "leadcode://tech-queries".',
36
+ "Elle contient pour chaque technologie détectée :",
37
+ "- libraryName : le nom de la librairie sur Context7",
38
+ "- queries : les questions à poser",
39
+ "- crossQueries : les questions pour les combinaisons de techs",
40
+ "",
41
+ "## Étape 3 : Récupérer et synthétiser la documentation",
42
+ "",
43
+ "Pour chaque technologie détectée qui a un mapping dans tech-queries :",
44
+ "",
45
+ "a) Appelle l'outil Context7 resolve-library-id avec le libraryName et la query",
46
+ "b) Appelle l'outil Context7 query-docs avec l'ID résolu et les queries",
47
+ "c) SYNTHÉTISE les docs brutes en 3-5 règles concises et actionnables :",
48
+ " - Conventions (organisation des fichiers, nommage, quand utiliser quoi)",
49
+ " - Patterns importants (singleton, data access layer, etc.)",
50
+ " - Pièges à éviter (restrictions d'import, limites runtime)",
51
+ " - PAS de blocs de code complets — juste des exemples inline courts si nécessaire",
52
+ "",
53
+ "Pour les combinaisons cross-tech (ex: Next.js + Prisma) :",
54
+ "d) Si les deux techs sont détectées et qu'il y a une crossQuery, appelle Context7",
55
+ "e) Synthétise en 3-5 règles spécifiques à cette combinaison",
56
+ "",
57
+ "## Étape 4 : Construire le JSON docs",
58
+ "",
59
+ "Construis un objet JSON avec cette structure :",
60
+ '{ "techDocs": { "next": "- règle 1\\n- règle 2...", ... }, "crossDocs": { "next+prisma": "- règle 1...", ... } }',
61
+ "",
62
+ "## Étape 5 : Générer le CLAUDE.md",
63
+ "",
64
+ "Appelle generate-claude-md avec :",
65
+ "- analysis : le JSON de l'analyse (étape 1)",
66
+ "- docs : le JSON des docs synthétisées (étape 4)",
67
+ "",
68
+ "## Si Context7 n'est pas disponible",
69
+ "",
70
+ "Si les outils Context7 (resolve-library-id) ne sont pas disponibles,",
71
+ "passe directement à l'étape 5 sans docs. Informe l'utilisateur que la documentation",
72
+ "n'a pas pu être récupérée et que le CLAUDE.md ne contiendra que l'analyse du projet.",
73
+ "",
74
+ "Réponds en français.",
34
75
  ]
35
76
  : [
36
- `Please set up LeadCode for the project at ${projectPath}. Follow these steps:`,
77
+ `You are setting up LeadCode for the project at ${projectPath}. Follow these steps in order:`,
78
+ "",
79
+ "## Step 1: Analyze the project",
80
+ "",
81
+ `Call the analyze-repo tool with projectPath="${projectPath}".`,
82
+ "Present a clear summary of the detected stack (framework, ORM, auth, CSS, testing, etc.).",
83
+ "",
84
+ "## Step 2: Read the tech-queries mapping",
85
+ "",
86
+ 'Read the LeadCode resource "leadcode://tech-queries".',
87
+ "It contains for each detected technology:",
88
+ "- libraryName: the Context7 library identifier",
89
+ "- queries: questions to ask Context7",
90
+ "- crossQueries: questions for technology combinations",
91
+ "",
92
+ "## Step 3: Fetch and synthesize documentation",
93
+ "",
94
+ "For each detected technology that has a mapping in tech-queries:",
95
+ "",
96
+ "a) Call Context7 resolve-library-id with the libraryName and the query",
97
+ "b) Call Context7 query-docs with the resolved libraryId and the queries",
98
+ "c) SYNTHESIZE the raw docs into 3-5 concise, actionable rules:",
99
+ " - Conventions (file organization, naming, when to use what)",
100
+ " - Important patterns (singleton, data access layer, etc.)",
101
+ " - Gotchas to avoid (import restrictions, runtime boundaries)",
102
+ " - NO full code blocks — only short inline examples if needed",
103
+ "",
104
+ "For cross-technology combinations (e.g. Next.js + Prisma):",
105
+ "d) If both techs are detected and there is a crossQuery, call Context7",
106
+ "e) Synthesize into 3-5 rules specific to that combination",
107
+ "",
108
+ "## Step 4: Build the docs JSON",
109
+ "",
110
+ "Build a JSON object with this structure:",
111
+ '{ "techDocs": { "next": "- rule 1\\n- rule 2...", ... }, "crossDocs": { "next+prisma": "- rule 1...", ... } }',
112
+ "",
113
+ "## Step 5: Generate CLAUDE.md",
114
+ "",
115
+ "Call generate-claude-md with:",
116
+ "- analysis: the JSON from step 1",
117
+ "- docs: the JSON of synthesized docs from step 4",
118
+ "",
119
+ "## If Context7 is not available",
120
+ "",
121
+ "If Context7 tools (resolve-library-id) are not available,",
122
+ "skip to step 5 without docs. Inform the user that documentation",
123
+ "could not be fetched and the CLAUDE.md will only contain project analysis.",
124
+ "",
125
+ "Be thorough and explain the results clearly.",
126
+ ];
127
+ return {
128
+ messages: [
129
+ {
130
+ role: "user",
131
+ content: {
132
+ type: "text",
133
+ text: steps.join("\n"),
134
+ },
135
+ },
136
+ ],
137
+ };
138
+ });
139
+ server.prompt("update-project", "Update or refresh an existing CLAUDE.md. Re-analyzes the project, fetches fresh documentation, and regenerates while preserving user decisions.", {
140
+ projectPath: z.string().describe("Absolute path to the project root. Use the current working directory if not specified."),
141
+ language: z.string().optional().describe("Output language: 'fr' for French, 'en' for English (default: en)"),
142
+ }, ({ projectPath, language }) => {
143
+ const isFr = language === "fr";
144
+ const steps = isFr
145
+ ? [
146
+ `Tu mets à jour le CLAUDE.md du projet à ${projectPath}.`,
147
+ "",
148
+ "## Étape préalable : Extraire les décisions existantes",
149
+ "",
150
+ `Lis le fichier ${projectPath}/CLAUDE.md s'il existe.`,
151
+ 'Cherche la section "## Project Decisions".',
152
+ 'Extrais toutes les entrées au format "- **Sujet**: Choix".',
153
+ "Garde-les pour l'étape finale.",
154
+ "",
155
+ "## Ensuite : même flow que setup-project",
156
+ "",
157
+ "Suis les mêmes étapes que setup-project (analyze → tech-queries → Context7 → synthèse → generate),",
158
+ "mais passe les décisions extraites en paramètre choices à generate-claude-md.",
159
+ "",
160
+ "Réponds en français.",
161
+ ]
162
+ : [
163
+ `You are updating the CLAUDE.md for the project at ${projectPath}.`,
164
+ "",
165
+ "## Preliminary step: Extract existing decisions",
166
+ "",
167
+ `Read the file ${projectPath}/CLAUDE.md if it exists.`,
168
+ 'Look for the "## Project Decisions" section.',
169
+ 'Extract all entries in the format "- **Topic**: Choice".',
170
+ "Keep them for the final step.",
171
+ "",
172
+ "## Then: same flow as setup-project",
37
173
  "",
38
- `1. Call analyze-repo with projectPath="${projectPath}" to scan the project and detect the stack.`,
39
- "2. Present a summary of the detected stack.",
40
- "3. Call generate-claude-md with the analysis — it will automatically fetch up-to-date documentation via Context7 and generate the CLAUDE.md file.",
174
+ "Follow the same steps as setup-project (analyze tech-queries Context7 synthesize generate),",
175
+ "but pass the extracted decisions as the choices parameter to generate-claude-md.",
41
176
  "",
42
177
  "Be thorough and explain the results clearly.",
43
178
  ];
@@ -53,8 +188,8 @@ server.prompt("setup-project", "Full LeadCode workflow: analyze repo → generat
53
188
  ],
54
189
  };
55
190
  });
56
- server.prompt("validate-project", "Check if an existing CLAUDE.md is still in sync with the project", {
57
- projectPath: z.string().describe("Absolute path to the project root"),
191
+ server.prompt("validate-project", "Check if a CLAUDE.md is still up to date. Use when the user wants to validate, check, verify, or audit their CLAUDE.md.", {
192
+ projectPath: z.string().describe("Absolute path to the project root. Use the current working directory if not specified."),
58
193
  language: z.string().optional().describe("Output language: 'fr' for French, 'en' for English (default: en)"),
59
194
  }, ({ projectPath, language }) => {
60
195
  const isFr = language === "fr";
@@ -64,7 +199,7 @@ server.prompt("validate-project", "Check if an existing CLAUDE.md is still in sy
64
199
  "",
65
200
  `1. Lance validate-claude-md avec projectPath="${projectPath}".`,
66
201
  "2. Présente les décalages trouvés avec des explications claires.",
67
- "3. Si des décalages existent, suggère s'il faut régénérer ou corriger manuellement.",
202
+ "3. Si des décalages existent, suggère de lancer update-project pour régénérer.",
68
203
  "",
69
204
  "Réponds en français.",
70
205
  ]
@@ -73,7 +208,7 @@ server.prompt("validate-project", "Check if an existing CLAUDE.md is still in sy
73
208
  "",
74
209
  `1. Call validate-claude-md with projectPath="${projectPath}".`,
75
210
  "2. Present any drifts found with clear explanations.",
76
- "3. If drifts are found, suggest whether to regenerate or manually fix the CLAUDE.md.",
211
+ "3. If drifts are found, suggest running the update-project prompt to regenerate.",
77
212
  ];
78
213
  return {
79
214
  messages: [
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerTechQueriesResource(server: McpServer): void;
3
+ //# sourceMappingURL=tech-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-queries.d.ts","sourceRoot":"","sources":["../../src/resources/tech-queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmBnE"}
@@ -0,0 +1,16 @@
1
+ import { TECH_QUERIES } from "../data/tech-queries.js";
2
+ export function registerTechQueriesResource(server) {
3
+ server.resource("tech-queries", "leadcode://tech-queries", {
4
+ description: "Maps detected technology identifiers to Context7 library names and recommended queries. Read this after analyze-repo to know what to ask Context7 for each detected tech.",
5
+ mimeType: "application/json",
6
+ }, async () => ({
7
+ contents: [
8
+ {
9
+ uri: "leadcode://tech-queries",
10
+ mimeType: "application/json",
11
+ text: JSON.stringify(TECH_QUERIES, null, 2),
12
+ },
13
+ ],
14
+ }));
15
+ }
16
+ //# sourceMappingURL=tech-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tech-queries.js","sourceRoot":"","sources":["../../src/resources/tech-queries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,QAAQ,CACb,cAAc,EACd,yBAAyB,EACzB;QACE,WAAW,EACT,2KAA2K;QAC7K,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,yBAAyB;gBAC9B,QAAQ,EAAE,kBAAkB;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5C;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { RepoAnalysis } from "../types.js";
2
2
  import type { CodePatterns } from "../analyzers/patterns.js";
3
- import type { FetchedDocs } from "../context7/fetch-all.js";
3
+ import type { FetchedDocs } from "../types.js";
4
4
  import type { Locale } from "../i18n/types.js";
5
5
  export declare function generateClaudeMd(analysis: RepoAnalysis, docs: FetchedDocs, choices: Record<string, string>, patterns?: CodePatterns, locale?: Locale): string;
6
6
  //# sourceMappingURL=claude-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAmI/C,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,YAAY,EACvB,MAAM,GAAE,MAAa,GACpB,MAAM,CAoLR"}
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAmI/C,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,YAAY,EACvB,MAAM,GAAE,MAAa,GACpB,MAAM,CAoLR"}
@@ -7,7 +7,7 @@ import { detectFramework, detectStack } from "../analyzers/detection.js";
7
7
  export function registerAnalyzeRepo(server) {
8
8
  server.registerTool("analyze-repo", {
9
9
  title: "Analyze Repository",
10
- description: "Scans a project directory and returns structured technical facts: framework, dependencies, directory structure, detected stack (ORM, auth, validation, CSS, testing, etc.). No opinions, only facts.",
10
+ description: "Scan and analyze a project to detect its full tech stack: framework, ORM, auth, CSS, testing, state management, API style, and more. Use this when the user wants to know what technologies a project uses, or as the first step before generating a CLAUDE.md.",
11
11
  inputSchema: {
12
12
  projectPath: z
13
13
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-repo.js","sourceRoot":"","sources":["../../src/tools/analyze-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,sMAAsM;QACxM,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,6CAA6C,CAAC;SAC3D;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;iBAClF,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,WAAW,wCAAwC,EAAE,CAAC;iBAC5H,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,eAAe,CAC/B,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,eAAe,EACnB,SAAS,CACV,CAAC;YACF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;YACpE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;YAE7C,MAAM,QAAQ,GAAiB;gBAC7B,WAAW;gBACX,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,SAAS;gBACT,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS;gBACT,QAAQ;aACT,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACnE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,OAAO,EAAE,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analyze-repo.js","sourceRoot":"","sources":["../../src/tools/analyze-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,iQAAiQ;QACnQ,WAAW,EAAE;YACX,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,6CAA6C,CAAC;SAC3D;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,WAAW,EAAE,EAAE,CAAC;iBAClF,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,WAAW,wCAAwC,EAAE,CAAC;iBAC5H,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,eAAe,CAC/B,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,eAAe,EACnB,SAAS,CACV,CAAC;YACF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;YACpE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;YAE7C,MAAM,QAAQ,GAAiB;gBAC7B,WAAW;gBACX,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,SAAS;gBACT,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS;gBACT,QAAQ;aACT,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACnE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,OAAO,EAAE,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@ import { fetchAllDocs } from "../context7/index.js";
3
3
  export function registerFetchDocs(server) {
4
4
  server.registerTool("fetch-docs", {
5
5
  title: "Fetch Documentation",
6
- description: "Fetches up-to-date documentation from Context7 for each technology detected in the project. Returns doc snippets organized by technology and cross-technology combinations.",
6
+ description: "Fetch up-to-date documentation from Context7 for each technology in a project. Returns documentation organized by technology and cross-technology combinations. Useful for inspecting what docs Context7 provides before generating a CLAUDE.md.",
7
7
  inputSchema: {
8
8
  analysis: z
9
9
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-docs.js","sourceRoot":"","sources":["../../src/tools/fetch-docs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,6KAA6K;QAC/K,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,sDAAsD,CAAC;SACpE;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;YAE1C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBACpC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sBAAsB,OAAO,EAAE;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fetch-docs.js","sourceRoot":"","sources":["../../src/tools/fetch-docs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,kPAAkP;QACpP,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,sDAAsD,CAAC;SACpE;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;YAE1C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;qBACpC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,sBAAsB,OAAO,EAAE;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-claude-md.d.ts","sourceRoot":"","sources":["../../src/tools/generate-claude-md.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgFhE"}
1
+ {"version":3,"file":"generate-claude-md.d.ts","sourceRoot":"","sources":["../../src/tools/generate-claude-md.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiGhE"}
@@ -3,26 +3,40 @@ import { join } from "node:path";
3
3
  import * as z from "zod";
4
4
  import { generateClaudeMd } from "../templates/claude-md.js";
5
5
  import { analyzePatterns } from "../analyzers/patterns.js";
6
- import { fetchAllDocs } from "../context7/index.js";
7
6
  export function registerGenerateClaudeMd(server) {
8
7
  server.registerTool("generate-claude-md", {
9
8
  title: "Generate CLAUDE.md",
10
- description: "Fetches up-to-date documentation from Context7 for each detected technology, then generates a structured CLAUDE.md file. Writes it directly to the project root.",
9
+ description: "Generate a CLAUDE.md file for a project. Takes the analysis from analyze-repo and synthesized documentation rules (from Context7 via Claude). Use this when the user wants to create, setup, init, or generate project rules, a CLAUDE.md, or configure Claude Code for a project.",
11
10
  inputSchema: {
12
11
  analysis: z
13
12
  .string()
14
13
  .describe("JSON string of RepoAnalysis (output of analyze-repo)"),
14
+ docs: z
15
+ .string()
16
+ .optional()
17
+ .describe('JSON string of synthesized documentation: { "techDocs": Record<string, string>, "crossDocs": Record<string, string> }. Each value should be concise, actionable rules (not raw code snippets). If omitted, CLAUDE.md is generated without technology documentation.'),
15
18
  choices: z
16
19
  .string()
17
20
  .optional()
18
21
  .describe("JSON string of user choices: Record<string, string> mapping topic to chosen option. Optional."),
19
22
  },
20
- }, async ({ analysis: analysisStr, choices: choicesStr }) => {
23
+ }, async ({ analysis: analysisStr, docs: docsStr, choices: choicesStr }) => {
21
24
  try {
22
25
  const analysis = JSON.parse(analysisStr);
23
26
  const choices = choicesStr
24
27
  ? JSON.parse(choicesStr)
25
28
  : {};
29
+ const docs = docsStr
30
+ ? JSON.parse(docsStr)
31
+ : { techDocs: {}, crossDocs: {}, metadata: { techCount: 0, snippetCount: 0, failedTechs: [] } };
32
+ // Ensure metadata exists
33
+ if (!docs.metadata) {
34
+ docs.metadata = {
35
+ techCount: Object.keys(docs.techDocs ?? {}).length,
36
+ snippetCount: Object.keys(docs.techDocs ?? {}).length + Object.keys(docs.crossDocs ?? {}).length,
37
+ failedTechs: [],
38
+ };
39
+ }
26
40
  // Verify project path still exists
27
41
  try {
28
42
  await stat(analysis.projectPath);
@@ -33,8 +47,6 @@ export function registerGenerateClaudeMd(server) {
33
47
  content: [{ type: "text", text: `Project directory not found: ${analysis.projectPath}` }],
34
48
  };
35
49
  }
36
- // Fetch docs from Context7 internally
37
- const docs = await fetchAllDocs(analysis);
38
50
  const patterns = await analyzePatterns(analysis.projectPath);
39
51
  const content = generateClaudeMd(analysis, docs, choices, patterns);
40
52
  const outputPath = join(analysis.projectPath, "CLAUDE.md");
@@ -1 +1 @@
1
- {"version":3,"file":"generate-claude-md.js","sourceRoot":"","sources":["../../src/tools/generate-claude-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-claude-md.js","sourceRoot":"","sources":["../../src/tools/generate-claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,oRAAoR;QACtR,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,sDAAsD,CAAC;YACnE,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,qQAAqQ,CACtQ;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+FAA+F,CAChG;SACJ;KACF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACvD,MAAM,OAAO,GAA2B,UAAU;gBAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBACxB,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,IAAI,GAAgB,OAAO;gBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACrB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC;YAElG,yBAAyB;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG;oBACd,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM;oBAClD,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM;oBAChG,WAAW,EAAE,EAAE;iBAChB,CAAC;YACJ,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;iBACnG,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG,gBAAgB,CAC9B,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,CACT,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,kCAAkC;4BAC3C,KAAK,EAAE;gCACL,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;gCAC3C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;gCAC7C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;gCACpC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;6BACvC;yBACF,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA8B,OAAO,EAAE,EAAE,CAAC;aACpF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -28,7 +28,7 @@ function extractUserChoices(existingContent) {
28
28
  export function registerUpdateClaudeMd(server) {
29
29
  server.registerTool("update-claude-md", {
30
30
  title: "Update CLAUDE.md",
31
- description: "Re-analyzes the project, fetches fresh documentation from Context7, and regenerates CLAUDE.md while preserving user choices from the Project Decisions section.",
31
+ description: "Update or refresh an existing CLAUDE.md. Re-analyzes the project, fetches fresh documentation from Context7, and regenerates the file while preserving user choices. Use this when the user wants to update, refresh, regenerate, or re-sync their CLAUDE.md after changing dependencies.",
32
32
  inputSchema: {
33
33
  projectPath: z
34
34
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"update-claude-md.js","sourceRoot":"","sources":["../../src/tools/update-claude-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-claude-md.js","sourceRoot":"","sources":["../../src/tools/update-claude-md.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { detectFramework, detectStack } from "../analyzers/detection.js";
7
7
  export function registerValidateClaudeMd(server) {
8
8
  server.registerTool("validate-claude-md", {
9
9
  title: "Validate CLAUDE.md",
10
- description: "Checks if an existing CLAUDE.md is still in sync with the actual project. Detects drifts: missing technologies, outdated versions.",
10
+ description: "Check if an existing CLAUDE.md is still up to date with the project. Detects drifts like missing technologies or outdated versions. Use this when the user asks to validate, check, verify, or audit their CLAUDE.md.",
11
11
  inputSchema: {
12
12
  projectPath: z
13
13
  .string()
@@ -1 +1 @@
1
- {"version":3,"file":"validate-claude-md.js","sourceRoot":"","sources":["../../src/tools/validate-claude-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-claude-md.js","sourceRoot":"","sources":["../../src/tools/validate-claude-md.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -62,6 +62,16 @@ export interface DetectedStack {
62
62
  jobs: string | null;
63
63
  uiComponents: string | null;
64
64
  }
65
+ export interface FetchedDocs {
66
+ techDocs: Record<string, string>;
67
+ crossDocs: Record<string, string>;
68
+ metadata: {
69
+ techCount: number;
70
+ snippetCount: number;
71
+ failedTechs: string[];
72
+ warning?: string;
73
+ };
74
+ }
65
75
  export interface RepoAnalysis {
66
76
  projectPath: string;
67
77
  projectName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leadcode",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Virtual Lead Tech MCP server for Claude Code – analyzes repos, detects gaps, and generates structured CLAUDE.md files",
5
5
  "type": "module",
6
6
  "bin": {