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.
- package/dist/data/tech-queries.d.ts +11 -0
- package/dist/data/tech-queries.d.ts.map +1 -0
- package/dist/data/tech-queries.js +229 -0
- package/dist/data/tech-queries.js.map +1 -0
- package/dist/index.js +155 -20
- package/dist/index.js.map +1 -1
- package/dist/resources/tech-queries.d.ts +3 -0
- package/dist/resources/tech-queries.d.ts.map +1 -0
- package/dist/resources/tech-queries.js +16 -0
- package/dist/resources/tech-queries.js.map +1 -0
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/tools/analyze-repo.js +1 -1
- package/dist/tools/analyze-repo.js.map +1 -1
- package/dist/tools/fetch-docs.js +1 -1
- package/dist/tools/fetch-docs.js.map +1 -1
- package/dist/tools/generate-claude-md.d.ts.map +1 -1
- package/dist/tools/generate-claude-md.js +17 -5
- package/dist/tools/generate-claude-md.js.map +1 -1
- package/dist/tools/update-claude-md.js +1 -1
- package/dist/tools/update-claude-md.js.map +1 -1
- package/dist/tools/validate-claude-md.js +1 -1
- package/dist/tools/validate-claude-md.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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 {
|
|
7
|
+
import { registerTechQueriesResource } from "./resources/tech-queries.js";
|
|
9
8
|
const server = new McpServer({
|
|
10
9
|
name: "leadcode",
|
|
11
|
-
version: "1.
|
|
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
|
-
|
|
16
|
+
// Register resources
|
|
17
|
+
registerTechQueriesResource(server);
|
|
19
18
|
// Register prompts
|
|
20
|
-
server.prompt("setup-project", "
|
|
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
|
-
`
|
|
26
|
+
`Tu configures LeadCode pour le projet à ${projectPath}. Suis ces étapes dans l'ordre :`,
|
|
28
27
|
"",
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
`
|
|
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
|
-
|
|
39
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 "../
|
|
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,
|
|
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: "
|
|
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,
|
|
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"}
|
package/dist/tools/fetch-docs.js
CHANGED
|
@@ -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: "
|
|
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,
|
|
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;
|
|
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: "
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"generate-claude-md.js","sourceRoot":"","sources":["../../src/tools/generate-claude-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7D,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;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D;;;GAGG;AACH,SAAS,kBAAkB,CAAC,eAAuB;IACjD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAC1C,8CAA8C,CAC/C,CAAC;IACF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,
|
|
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: "
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,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;AAQzE,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,
|
|
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IAErB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IAErB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IAErB,eAAe,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAEzC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|