@autocode-cli/autocode 0.1.13 → 0.1.15
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/server/api.d.ts.map +1 -1
- package/dist/server/api.js +95 -1
- package/dist/server/api.js.map +1 -1
- package/dist/server/dashboard/pages/autocreate.d.ts +9 -0
- package/dist/server/dashboard/pages/autocreate.d.ts.map +1 -0
- package/dist/server/dashboard/pages/autocreate.js +847 -0
- package/dist/server/dashboard/pages/autocreate.js.map +1 -0
- package/dist/server/dashboard/pages/index.d.ts +1 -0
- package/dist/server/dashboard/pages/index.d.ts.map +1 -1
- package/dist/server/dashboard/pages/index.js +1 -0
- package/dist/server/dashboard/pages/index.js.map +1 -1
- package/dist/server/dashboard/pages/pipeline-configurator.d.ts.map +1 -1
- package/dist/server/dashboard/pages/pipeline-configurator.js +22 -0
- package/dist/server/dashboard/pages/pipeline-configurator.js.map +1 -1
- package/dist/server/dashboard.d.ts +1 -1
- package/dist/server/dashboard.d.ts.map +1 -1
- package/dist/server/dashboard.js +1 -1
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +9 -1
- package/dist/server/index.js.map +1 -1
- package/dist/services/autocreate.d.ts +34 -0
- package/dist/services/autocreate.d.ts.map +1 -0
- package/dist/services/autocreate.js +503 -0
- package/dist/services/autocreate.js.map +1 -0
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/catalog.yaml +102 -0
- package/templates/prompts/accessibility-check.en.md +25 -0
- package/templates/prompts/accessibility-check.fr.md +25 -0
- package/templates/prompts/api-endpoints-test.en.md +26 -0
- package/templates/prompts/api-endpoints-test.fr.md +26 -0
- package/templates/prompts/build-dist.en.md +20 -0
- package/templates/prompts/build-dist.fr.md +20 -0
- package/templates/prompts/ci-gitlab-validate.en.md +22 -0
- package/templates/prompts/ci-gitlab-validate.fr.md +22 -0
- package/templates/prompts/claude-integration-test.en.md +22 -0
- package/templates/prompts/claude-integration-test.fr.md +22 -0
- package/templates/prompts/cli-smoke-test.en.md +30 -0
- package/templates/prompts/cli-smoke-test.fr.md +30 -0
- package/templates/prompts/dashboard-responsive.en.md +27 -0
- package/templates/prompts/dashboard-responsive.fr.md +27 -0
- package/templates/prompts/dead-code-check.en.md +25 -0
- package/templates/prompts/dead-code-check.fr.md +25 -0
- package/templates/prompts/deps-licenses.en.md +23 -0
- package/templates/prompts/deps-licenses.fr.md +23 -0
- package/templates/prompts/deps-outdated.en.md +23 -0
- package/templates/prompts/deps-outdated.fr.md +23 -0
- package/templates/prompts/docs-readme-validate.en.md +22 -0
- package/templates/prompts/docs-readme-validate.fr.md +22 -0
- package/templates/prompts/error-handling-review.en.md +24 -0
- package/templates/prompts/error-handling-review.fr.md +24 -0
- package/templates/prompts/esm-compatibility.en.md +24 -0
- package/templates/prompts/esm-compatibility.fr.md +24 -0
- package/templates/prompts/file-watcher-test.en.md +20 -0
- package/templates/prompts/file-watcher-test.fr.md +20 -0
- package/templates/prompts/format-prettier-setup.en.md +21 -0
- package/templates/prompts/format-prettier-setup.fr.md +21 -0
- package/templates/prompts/git-conventional-commits.en.md +21 -0
- package/templates/prompts/git-conventional-commits.fr.md +21 -0
- package/templates/prompts/git-hooks-setup.en.md +27 -0
- package/templates/prompts/git-hooks-setup.fr.md +27 -0
- package/templates/prompts/graceful-shutdown.en.md +25 -0
- package/templates/prompts/graceful-shutdown.fr.md +25 -0
- package/templates/prompts/i18n-completeness.en.md +21 -0
- package/templates/prompts/i18n-completeness.fr.md +21 -0
- package/templates/prompts/landing-html-validate.en.md +23 -0
- package/templates/prompts/landing-html-validate.fr.md +23 -0
- package/templates/prompts/lint-eslint-setup.en.md +20 -0
- package/templates/prompts/lint-eslint-setup.fr.md +20 -0
- package/templates/prompts/node-version-check.en.md +21 -0
- package/templates/prompts/node-version-check.fr.md +21 -0
- package/templates/prompts/npm-publish-dry-run.en.md +25 -0
- package/templates/prompts/npm-publish-dry-run.fr.md +25 -0
- package/templates/prompts/pkg-exports-validate.en.md +23 -0
- package/templates/prompts/pkg-exports-validate.fr.md +23 -0
- package/templates/prompts/port-conflict-handling.en.md +22 -0
- package/templates/prompts/port-conflict-handling.fr.md +22 -0
- package/templates/prompts/security-audit.en.md +20 -0
- package/templates/prompts/security-audit.fr.md +20 -0
- package/templates/prompts/security-secrets.en.md +26 -0
- package/templates/prompts/security-secrets.fr.md +26 -0
- package/templates/prompts/template-validation.en.md +23 -0
- package/templates/prompts/template-validation.fr.md +23 -0
- package/templates/prompts/testing-coverage.en.md +20 -0
- package/templates/prompts/testing-coverage.fr.md +20 -0
- package/templates/prompts/testing-vitest.en.md +17 -0
- package/templates/prompts/testing-vitest.fr.md +17 -0
- package/templates/prompts/typecheck.en.md +17 -0
- package/templates/prompts/typecheck.fr.md +17 -0
- package/templates/prompts/version-semver.en.md +20 -0
- package/templates/prompts/version-semver.fr.md +20 -0
- package/templates/prompts/websocket-test.en.md +19 -0
- package/templates/prompts/websocket-test.fr.md +19 -0
- package/templates/prompts/yaml-validate.en.md +24 -0
- package/templates/prompts/yaml-validate.fr.md +24 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autocreate service
|
|
3
|
+
* Analyzes project context and generates column proposals using Claude
|
|
4
|
+
*/
|
|
5
|
+
import { spawnSync } from 'node:child_process';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { existsSync, statSync } from 'node:fs';
|
|
8
|
+
import { readFileSafe } from '../utils/fs.js';
|
|
9
|
+
import { getConfig } from '../utils/config.js';
|
|
10
|
+
import { getAllCatalogColumns } from '../core/catalog.js';
|
|
11
|
+
/**
|
|
12
|
+
* Gather project context for analysis
|
|
13
|
+
*/
|
|
14
|
+
export function gatherProjectContext() {
|
|
15
|
+
const config = getConfig();
|
|
16
|
+
const root = config.root;
|
|
17
|
+
// Read package.json
|
|
18
|
+
const pkgPath = join(root, 'package.json');
|
|
19
|
+
const pkgContent = readFileSafe(pkgPath);
|
|
20
|
+
let pkg = {};
|
|
21
|
+
if (pkgContent) {
|
|
22
|
+
try {
|
|
23
|
+
pkg = JSON.parse(pkgContent);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Invalid JSON, ignore
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const dependencies = Object.keys(pkg.dependencies || {});
|
|
30
|
+
const devDependencies = Object.keys(pkg.devDependencies || {});
|
|
31
|
+
const scripts = pkg.scripts || {};
|
|
32
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
33
|
+
// Detect tooling from dependencies
|
|
34
|
+
const detectedTooling = [];
|
|
35
|
+
// Frameworks
|
|
36
|
+
if (allDeps['vue'] || allDeps['nuxt'])
|
|
37
|
+
detectedTooling.push('Vue');
|
|
38
|
+
if (allDeps['react'] || allDeps['next'])
|
|
39
|
+
detectedTooling.push('React');
|
|
40
|
+
if (allDeps['angular'] || allDeps['@angular/core'])
|
|
41
|
+
detectedTooling.push('Angular');
|
|
42
|
+
if (allDeps['svelte'] || allDeps['@sveltejs/kit'])
|
|
43
|
+
detectedTooling.push('Svelte');
|
|
44
|
+
if (allDeps['express'])
|
|
45
|
+
detectedTooling.push('Express');
|
|
46
|
+
if (allDeps['fastify'])
|
|
47
|
+
detectedTooling.push('Fastify');
|
|
48
|
+
if (allDeps['nestjs'] || allDeps['@nestjs/core'])
|
|
49
|
+
detectedTooling.push('NestJS');
|
|
50
|
+
// Build tools
|
|
51
|
+
if (allDeps['vite'])
|
|
52
|
+
detectedTooling.push('Vite');
|
|
53
|
+
if (allDeps['webpack'])
|
|
54
|
+
detectedTooling.push('Webpack');
|
|
55
|
+
if (allDeps['esbuild'])
|
|
56
|
+
detectedTooling.push('esbuild');
|
|
57
|
+
if (allDeps['rollup'])
|
|
58
|
+
detectedTooling.push('Rollup');
|
|
59
|
+
// Testing
|
|
60
|
+
if (allDeps['vitest'])
|
|
61
|
+
detectedTooling.push('Vitest');
|
|
62
|
+
if (allDeps['jest'])
|
|
63
|
+
detectedTooling.push('Jest');
|
|
64
|
+
if (allDeps['mocha'])
|
|
65
|
+
detectedTooling.push('Mocha');
|
|
66
|
+
if (allDeps['playwright'] || allDeps['@playwright/test'])
|
|
67
|
+
detectedTooling.push('Playwright');
|
|
68
|
+
if (allDeps['cypress'])
|
|
69
|
+
detectedTooling.push('Cypress');
|
|
70
|
+
if (allDeps['puppeteer'])
|
|
71
|
+
detectedTooling.push('Puppeteer');
|
|
72
|
+
// Quality
|
|
73
|
+
if (allDeps['eslint'])
|
|
74
|
+
detectedTooling.push('ESLint');
|
|
75
|
+
if (allDeps['prettier'])
|
|
76
|
+
detectedTooling.push('Prettier');
|
|
77
|
+
if (allDeps['typescript'])
|
|
78
|
+
detectedTooling.push('TypeScript');
|
|
79
|
+
if (allDeps['biome'] || allDeps['@biomejs/biome'])
|
|
80
|
+
detectedTooling.push('Biome');
|
|
81
|
+
// Database
|
|
82
|
+
if (allDeps['prisma'] || allDeps['@prisma/client'])
|
|
83
|
+
detectedTooling.push('Prisma');
|
|
84
|
+
if (allDeps['typeorm'])
|
|
85
|
+
detectedTooling.push('TypeORM');
|
|
86
|
+
if (allDeps['mongoose'])
|
|
87
|
+
detectedTooling.push('Mongoose');
|
|
88
|
+
if (allDeps['drizzle-orm'])
|
|
89
|
+
detectedTooling.push('Drizzle');
|
|
90
|
+
// Detect directory structure
|
|
91
|
+
const directoryStructure = [];
|
|
92
|
+
const dirsToCheck = [
|
|
93
|
+
'src', 'lib', 'app', 'pages', 'components', 'services',
|
|
94
|
+
'tests', 'test', '__tests__', 'e2e', 'cypress', 'playwright',
|
|
95
|
+
'docs', 'documentation', 'api', 'server', 'client',
|
|
96
|
+
];
|
|
97
|
+
for (const dir of dirsToCheck) {
|
|
98
|
+
const dirPath = join(root, dir);
|
|
99
|
+
if (existsSync(dirPath) && statSync(dirPath).isDirectory()) {
|
|
100
|
+
directoryStructure.push(dir);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Detect config files
|
|
104
|
+
const configFiles = [];
|
|
105
|
+
const configsToCheck = [
|
|
106
|
+
'tsconfig.json', 'vite.config.ts', 'vite.config.js',
|
|
107
|
+
'vitest.config.ts', 'vitest.config.js',
|
|
108
|
+
'jest.config.js', 'jest.config.ts', 'jest.config.json',
|
|
109
|
+
'playwright.config.ts', 'playwright.config.js',
|
|
110
|
+
'cypress.config.ts', 'cypress.config.js',
|
|
111
|
+
'.eslintrc', '.eslintrc.js', '.eslintrc.json', 'eslint.config.js',
|
|
112
|
+
'.prettierrc', 'prettier.config.js',
|
|
113
|
+
'docker-compose.yml', 'Dockerfile',
|
|
114
|
+
'.github/workflows', '.gitlab-ci.yml',
|
|
115
|
+
];
|
|
116
|
+
for (const config of configsToCheck) {
|
|
117
|
+
if (existsSync(join(root, config))) {
|
|
118
|
+
configFiles.push(config);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Read README for project description
|
|
122
|
+
let projectDescription = pkg.description || '';
|
|
123
|
+
const readmePath = join(root, 'README.md');
|
|
124
|
+
const readmeContent = readFileSafe(readmePath);
|
|
125
|
+
if (readmeContent) {
|
|
126
|
+
// Extract first 500 chars of README
|
|
127
|
+
projectDescription = readmeContent.substring(0, 500);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
dependencies,
|
|
131
|
+
devDependencies,
|
|
132
|
+
scripts,
|
|
133
|
+
detectedTooling,
|
|
134
|
+
directoryStructure,
|
|
135
|
+
configFiles,
|
|
136
|
+
projectDescription,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get all existing column slugs from the catalog
|
|
141
|
+
*/
|
|
142
|
+
export function getExistingSlugs() {
|
|
143
|
+
const segments = getAllCatalogColumns();
|
|
144
|
+
const slugs = [];
|
|
145
|
+
for (const { columns } of segments) {
|
|
146
|
+
for (const col of columns) {
|
|
147
|
+
slugs.push(col.slug);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return slugs;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Build the autocreate prompt for Claude
|
|
154
|
+
*/
|
|
155
|
+
export function buildAutocreatePrompt(context, existingSlugs) {
|
|
156
|
+
const contextSection = `## Project Context
|
|
157
|
+
|
|
158
|
+
### Dependencies (${context.dependencies.length} total)
|
|
159
|
+
${context.dependencies.slice(0, 50).join(', ') || 'None detected'}
|
|
160
|
+
|
|
161
|
+
### Dev Dependencies (${context.devDependencies.length} total)
|
|
162
|
+
${context.devDependencies.slice(0, 50).join(', ') || 'None detected'}
|
|
163
|
+
|
|
164
|
+
### Scripts
|
|
165
|
+
${Object.entries(context.scripts).map(([k, v]) => `- ${k}: ${v}`).join('\n') || 'None'}
|
|
166
|
+
|
|
167
|
+
### Detected Tooling
|
|
168
|
+
${context.detectedTooling.join(', ') || 'None detected'}
|
|
169
|
+
|
|
170
|
+
### Directory Structure
|
|
171
|
+
${context.directoryStructure.join(', ') || 'Standard'}
|
|
172
|
+
|
|
173
|
+
### Config Files
|
|
174
|
+
${context.configFiles.join(', ') || 'None detected'}
|
|
175
|
+
|
|
176
|
+
### Project Description
|
|
177
|
+
${context.projectDescription || 'No description available'}`;
|
|
178
|
+
const existingSection = `## Existing Catalog Columns (DO NOT DUPLICATE)
|
|
179
|
+
${existingSlugs.join(', ')}`;
|
|
180
|
+
const checkpointsGuide = `## CHECKPOINTS POSSIBLES (LISTE INDICATIVE, PAS EXHAUSTIVE)
|
|
181
|
+
|
|
182
|
+
IMPORTANT: Cette liste est INDICATIVE. Tu dois:
|
|
183
|
+
1. Analyser en profondeur le projet et proposer un MAXIMUM de colonnes pertinentes
|
|
184
|
+
2. Aller AU-DELÀ de cette liste si tu détectes des besoins spécifiques
|
|
185
|
+
3. Proposer des colonnes adaptées aux technologies/frameworks détectés
|
|
186
|
+
4. Ne proposer QUE ce qui n'existe PAS DÉJÀ dans le catalogue
|
|
187
|
+
|
|
188
|
+
RÈGLE ABSOLUE: 1 check = 1 colonne (ne JAMAIS grouper plusieurs vérifications)
|
|
189
|
+
|
|
190
|
+
### TESTS
|
|
191
|
+
- testing-unit: Si framework de test détecté (Jest, Vitest, Mocha, AVA, Tap)
|
|
192
|
+
- testing-integration: Si tests d'intégration possibles
|
|
193
|
+
- testing-e2e: Si Playwright/Cypress/Puppeteer/TestCafe détecté
|
|
194
|
+
- testing-component: Si Testing Library ou composants UI (React, Vue, Svelte)
|
|
195
|
+
- testing-api: Si API backend à tester (Supertest, Pactum)
|
|
196
|
+
- testing-load: Si besoin de tests de charge (k6, Artillery, Gatling)
|
|
197
|
+
- testing-performance: Si frontend (Lighthouse, WebPageTest)
|
|
198
|
+
- testing-security: Si API/backend exposé (OWASP ZAP, nuclei)
|
|
199
|
+
- testing-accessibility: Si frontend avec UI (axe, pa11y, WAVE)
|
|
200
|
+
- testing-visual: Si UI critique (Percy, Chromatic, BackstopJS)
|
|
201
|
+
- testing-mutation: Si tests critiques (Stryker)
|
|
202
|
+
- testing-contract: Si microservices (Pact)
|
|
203
|
+
- testing-smoke: Tests smoke/sanity rapides
|
|
204
|
+
- testing-coverage: Vérification couverture de code (Istanbul, c8)
|
|
205
|
+
|
|
206
|
+
### QUALITÉ DE CODE
|
|
207
|
+
- lint-eslint: Si ESLint détecté ou .eslintrc présent
|
|
208
|
+
- lint-biome: Si Biome/@biomejs détecté
|
|
209
|
+
- lint-stylelint: Si CSS/SCSS/LESS présent (Stylelint)
|
|
210
|
+
- lint-markdownlint: Si fichiers .md présents
|
|
211
|
+
- lint-shellcheck: Si scripts .sh présents
|
|
212
|
+
- lint-yaml: Si fichiers .yml/.yaml (yamllint)
|
|
213
|
+
- lint-json: Si fichiers JSON config importants
|
|
214
|
+
- format-prettier: Si Prettier détecté ou .prettierrc
|
|
215
|
+
- format-editorconfig: Si .editorconfig présent
|
|
216
|
+
- typecheck: Si TypeScript (tsc --noEmit)
|
|
217
|
+
- complexity: Analyse complexité cyclomatique (escomplex, plato)
|
|
218
|
+
- duplication: Détection code dupliqué (jscpd, SonarQube)
|
|
219
|
+
- dead-code: Détection code mort (knip, ts-prune, unimported)
|
|
220
|
+
- import-sort: Ordre des imports (eslint-plugin-import)
|
|
221
|
+
- spell-check: Vérification orthographe code (cspell)
|
|
222
|
+
- todo-check: Vérification TODO/FIXME/HACK restants
|
|
223
|
+
|
|
224
|
+
### SÉCURITÉ
|
|
225
|
+
- security-audit: Audit dépendances (npm audit, yarn audit, pnpm audit)
|
|
226
|
+
- security-snyk: Scan Snyk si configuré
|
|
227
|
+
- security-dependabot: Vérifier config Dependabot/.github
|
|
228
|
+
- security-secrets: Détection secrets (gitleaks, truffleHog, detect-secrets)
|
|
229
|
+
- security-sast: Analyse statique sécurité (Semgrep, CodeQL, SonarQube)
|
|
230
|
+
- security-headers: Vérification headers HTTP sécurité (helmet)
|
|
231
|
+
- security-csp: Vérification Content Security Policy
|
|
232
|
+
- security-supply-chain: Sécurité supply chain (Socket, lockfile-lint)
|
|
233
|
+
|
|
234
|
+
### DÉPENDANCES
|
|
235
|
+
- deps-outdated: Vérification dépendances obsolètes (npm-check-updates, ncu)
|
|
236
|
+
- deps-unused: Détection dépendances non utilisées (depcheck, knip)
|
|
237
|
+
- deps-licenses: Vérification licences (license-checker, FOSSA, licensee)
|
|
238
|
+
- deps-size: Analyse taille bundle (bundlesize, size-limit, bundlephobia)
|
|
239
|
+
- deps-lockfile: Validation lockfile (lockfile-lint)
|
|
240
|
+
- deps-duplicates: Détection doublons dépendances (npm dedupe)
|
|
241
|
+
- deps-peer: Vérification peer dependencies
|
|
242
|
+
|
|
243
|
+
### DOCUMENTATION
|
|
244
|
+
- docs-readme: Vérification README complet et à jour
|
|
245
|
+
- docs-changelog: Mise à jour CHANGELOG
|
|
246
|
+
- docs-api: Documentation API (OpenAPI, Swagger, Redoc)
|
|
247
|
+
- docs-jsdoc: Documentation code (JSDoc, TSDoc, typedoc)
|
|
248
|
+
- docs-storybook: Documentation composants Storybook
|
|
249
|
+
- docs-contributing: Guide de contribution CONTRIBUTING.md
|
|
250
|
+
- docs-license: Fichier LICENSE présent et valide
|
|
251
|
+
- docs-architecture: Documentation architecture (ADR, C4)
|
|
252
|
+
- docs-code-of-conduct: Code de conduite
|
|
253
|
+
|
|
254
|
+
### CI/CD
|
|
255
|
+
- ci-github-actions: Si .github/workflows détecté - validation workflows
|
|
256
|
+
- ci-gitlab-ci: Si .gitlab-ci.yml détecté - validation pipeline
|
|
257
|
+
- ci-build: Vérifier que le build passe
|
|
258
|
+
- ci-artifacts: Génération et vérification artifacts
|
|
259
|
+
|
|
260
|
+
### DOCKER & CONTAINERS
|
|
261
|
+
- docker-lint: Linting Dockerfile (hadolint)
|
|
262
|
+
- docker-compose-validate: Validation docker-compose.yml
|
|
263
|
+
- docker-security: Scan sécurité images (Trivy, Grype, Clair)
|
|
264
|
+
- docker-size: Optimisation taille image
|
|
265
|
+
- docker-healthcheck: Vérification healthcheck configuré
|
|
266
|
+
|
|
267
|
+
### INFRASTRUCTURE & DEPLOY
|
|
268
|
+
- deploy-staging: Déploiement environnement staging
|
|
269
|
+
- deploy-production: Déploiement production
|
|
270
|
+
- deploy-preview: Déploiements preview/PR (Vercel, Netlify)
|
|
271
|
+
- infra-terraform: Si Terraform - validation (tflint, terraform validate)
|
|
272
|
+
- infra-k8s: Si Kubernetes - validation manifests (kubeval, kube-linter)
|
|
273
|
+
- infra-helm: Si Helm - validation charts
|
|
274
|
+
|
|
275
|
+
### MONITORING & OBSERVABILITÉ
|
|
276
|
+
- monitoring-healthcheck: Endpoints healthcheck /health
|
|
277
|
+
- monitoring-metrics: Exposition métriques (Prometheus, prom-client)
|
|
278
|
+
- monitoring-logging: Configuration logs structurés (pino, winston)
|
|
279
|
+
- monitoring-tracing: Configuration tracing (OpenTelemetry)
|
|
280
|
+
- monitoring-error-tracking: Error tracking (Sentry, Rollbar)
|
|
281
|
+
|
|
282
|
+
### RÉSILIENCE & PERFORMANCE
|
|
283
|
+
- perf-bundle-analyze: Analyse bundle (webpack-bundle-analyzer)
|
|
284
|
+
- perf-lighthouse: Audit Lighthouse CI
|
|
285
|
+
- perf-caching: Stratégies de cache
|
|
286
|
+
- perf-lazy-loading: Lazy loading assets/routes
|
|
287
|
+
- perf-tree-shaking: Vérification tree shaking
|
|
288
|
+
- perf-compression: Compression assets (gzip, brotli)
|
|
289
|
+
|
|
290
|
+
### GIT & VERSIONING
|
|
291
|
+
- git-conventional-commits: Validation format commits (commitlint)
|
|
292
|
+
- git-branch-naming: Convention nommage branches
|
|
293
|
+
- git-hooks: Configuration hooks (husky, lefthook, simple-git-hooks)
|
|
294
|
+
- git-signed-commits: Commits signés GPG
|
|
295
|
+
- version-semver: Gestion versioning sémantique
|
|
296
|
+
- version-release: Process release (semantic-release, changesets, release-it)
|
|
297
|
+
|
|
298
|
+
### ENVIRONNEMENT & CONFIG
|
|
299
|
+
- env-validation: Validation variables d'environnement (envalid, zod)
|
|
300
|
+
- env-dotenv: Gestion fichiers .env
|
|
301
|
+
- env-example: Fichier .env.example à jour
|
|
302
|
+
- config-schema: Validation schéma config (JSON Schema, Zod)
|
|
303
|
+
|
|
304
|
+
### PACKAGE.JSON & MANIFESTS
|
|
305
|
+
- pkg-engines: Vérification champ engines (Node version)
|
|
306
|
+
- pkg-scripts: Vérification scripts essentiels présents
|
|
307
|
+
- pkg-exports: Vérification exports/main/types
|
|
308
|
+
- pkg-files: Vérification champ files pour publish
|
|
309
|
+
- pkg-peerDeps: Vérification peerDependencies`;
|
|
310
|
+
const schemaExample = `{
|
|
311
|
+
"proposed_columns": [
|
|
312
|
+
{
|
|
313
|
+
"id": "unique-uuid-string",
|
|
314
|
+
"key": "kebab-case-slug",
|
|
315
|
+
"display_name": { "fr": "Nom en français", "en": "Name in English" },
|
|
316
|
+
"short_description": { "fr": "Description courte", "en": "Short description" },
|
|
317
|
+
"segment_hint": "definition|action|finish",
|
|
318
|
+
"files_to_create": [
|
|
319
|
+
{
|
|
320
|
+
"path": "prompts/slug.md",
|
|
321
|
+
"content": {
|
|
322
|
+
"fr": "# Titre\\n\\n## Rôle\\n...\\n\\n## Actions\\n1. ...\\n\\n## Critères de validation\\n- [ ] ...",
|
|
323
|
+
"en": "# Title\\n\\n## Role\\n...\\n\\n## Actions\\n1. ...\\n\\n## Validation Criteria\\n- [ ] ..."
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
],
|
|
327
|
+
"rationale": { "fr": "Justification spécifique au projet", "en": "Project-specific rationale" },
|
|
328
|
+
"token_cost_estimate": "low|medium|high",
|
|
329
|
+
"overlap_warnings": []
|
|
330
|
+
}
|
|
331
|
+
],
|
|
332
|
+
"global_summary": { "fr": "Résumé global", "en": "Global summary" },
|
|
333
|
+
"assumptions": ["assumption1", "assumption2"],
|
|
334
|
+
"risks": ["risk1", "risk2"]
|
|
335
|
+
}`;
|
|
336
|
+
return `Tu es un expert en pipelines de développement logiciel, CI/CD, et bonnes pratiques DevOps.
|
|
337
|
+
Analyse ce projet et propose des colonnes de pipeline exhaustives et spécifiques.
|
|
338
|
+
|
|
339
|
+
${contextSection}
|
|
340
|
+
|
|
341
|
+
${existingSection}
|
|
342
|
+
|
|
343
|
+
${checkpointsGuide}
|
|
344
|
+
|
|
345
|
+
## RÈGLES ABSOLUES
|
|
346
|
+
|
|
347
|
+
1. **EXHAUSTIVITÉ MAXIMALE** : Propose un MAXIMUM de colonnes pertinentes - la liste ci-dessus est indicative, va AU-DELÀ si tu détectes d'autres besoins
|
|
348
|
+
2. **1 CHECK = 1 COLONNE** : Ne JAMAIS grouper plusieurs vérifications dans une colonne
|
|
349
|
+
3. **SPÉCIFICITÉ** : Chaque colonne doit être adaptée à CE projet (technologies détectées, structure, dépendances)
|
|
350
|
+
4. **CRÉATIVITÉ** : Propose des colonnes spécifiques au framework/stack même si non listées (ex: next-build-analyze pour Next.js, vue-i18n-check pour Vue i18n...)
|
|
351
|
+
5. **JUSTIFICATION** : Explique dans "rationale" POURQUOI ce check est pertinent pour CE projet précis
|
|
352
|
+
6. **PAS DE DOUBLONS** : Ne pas proposer de colonnes similaires à celles existantes dans le catalogue
|
|
353
|
+
|
|
354
|
+
## Segments disponibles
|
|
355
|
+
- definition: Qualification et préparation
|
|
356
|
+
- action: Implémentation et validation (la plupart des checks vont ici)
|
|
357
|
+
- finish: Finalisation et déploiement
|
|
358
|
+
|
|
359
|
+
## Format de sortie
|
|
360
|
+
|
|
361
|
+
Retourne UNIQUEMENT du JSON valide, sans commentaires, sans texte avant ou après, sans trailing commas:
|
|
362
|
+
|
|
363
|
+
${schemaExample}
|
|
364
|
+
|
|
365
|
+
## Contenu des prompts
|
|
366
|
+
|
|
367
|
+
Chaque prompt (dans files_to_create.content) doit être COMPLET et ACTIONNABLE:
|
|
368
|
+
- # Titre
|
|
369
|
+
- ## Rôle (description précise de ce que fait cette étape)
|
|
370
|
+
- ## Actions (liste numérotée détaillée des actions)
|
|
371
|
+
- ## Critères de validation (checkboxes précises)
|
|
372
|
+
|
|
373
|
+
Génère des prompts complets avec les commandes spécifiques à exécuter.`;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Parse Claude's response and extract the JSON result
|
|
377
|
+
*/
|
|
378
|
+
export function parseAutocreateResponse(output) {
|
|
379
|
+
// Try to find JSON in the output
|
|
380
|
+
const jsonMatch = output.match(/\{[\s\S]*\}/);
|
|
381
|
+
if (!jsonMatch) {
|
|
382
|
+
throw new Error('No JSON found in Claude response');
|
|
383
|
+
}
|
|
384
|
+
try {
|
|
385
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
386
|
+
// Validate structure
|
|
387
|
+
if (!parsed.proposed_columns || !Array.isArray(parsed.proposed_columns)) {
|
|
388
|
+
throw new Error('Invalid response: missing proposed_columns array');
|
|
389
|
+
}
|
|
390
|
+
if (!parsed.global_summary || !parsed.global_summary.fr || !parsed.global_summary.en) {
|
|
391
|
+
parsed.global_summary = {
|
|
392
|
+
fr: 'Analyse terminée',
|
|
393
|
+
en: 'Analysis complete',
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
if (!parsed.assumptions)
|
|
397
|
+
parsed.assumptions = [];
|
|
398
|
+
if (!parsed.risks)
|
|
399
|
+
parsed.risks = [];
|
|
400
|
+
// Validate each column
|
|
401
|
+
for (const col of parsed.proposed_columns) {
|
|
402
|
+
if (!col.id)
|
|
403
|
+
col.id = crypto.randomUUID();
|
|
404
|
+
if (!col.key)
|
|
405
|
+
throw new Error('Column missing key');
|
|
406
|
+
if (!col.display_name?.fr || !col.display_name?.en) {
|
|
407
|
+
throw new Error(`Column ${col.key} missing display_name`);
|
|
408
|
+
}
|
|
409
|
+
if (!col.short_description?.fr || !col.short_description?.en) {
|
|
410
|
+
throw new Error(`Column ${col.key} missing short_description`);
|
|
411
|
+
}
|
|
412
|
+
if (!col.segment_hint)
|
|
413
|
+
col.segment_hint = 'action';
|
|
414
|
+
if (!col.files_to_create)
|
|
415
|
+
col.files_to_create = [];
|
|
416
|
+
if (!col.rationale)
|
|
417
|
+
col.rationale = { fr: '', en: '' };
|
|
418
|
+
if (!col.token_cost_estimate)
|
|
419
|
+
col.token_cost_estimate = 'medium';
|
|
420
|
+
if (!col.overlap_warnings)
|
|
421
|
+
col.overlap_warnings = [];
|
|
422
|
+
}
|
|
423
|
+
return parsed;
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
if (error instanceof SyntaxError) {
|
|
427
|
+
throw new Error(`Invalid JSON in Claude response: ${error.message}`);
|
|
428
|
+
}
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Compute overlap warnings for proposed columns against existing catalog
|
|
434
|
+
*/
|
|
435
|
+
export function computeOverlaps(proposed, existingSlugs) {
|
|
436
|
+
const existingSet = new Set(existingSlugs.map(s => s.toLowerCase()));
|
|
437
|
+
for (const col of proposed) {
|
|
438
|
+
const colKey = col.key.toLowerCase();
|
|
439
|
+
// Check for exact match
|
|
440
|
+
if (existingSet.has(colKey)) {
|
|
441
|
+
if (!col.overlap_warnings.includes(col.key)) {
|
|
442
|
+
col.overlap_warnings.push(col.key);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
// Check for similar slugs (contains key or key contains slug)
|
|
446
|
+
for (const existing of existingSlugs) {
|
|
447
|
+
const existingLower = existing.toLowerCase();
|
|
448
|
+
if ((colKey.includes(existingLower) || existingLower.includes(colKey)) &&
|
|
449
|
+
colKey !== existingLower &&
|
|
450
|
+
!col.overlap_warnings.includes(existing)) {
|
|
451
|
+
col.overlap_warnings.push(existing);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Execute the autocreate analysis using Claude CLI
|
|
458
|
+
*/
|
|
459
|
+
export function executeAutocreate() {
|
|
460
|
+
// Gather project context
|
|
461
|
+
const context = gatherProjectContext();
|
|
462
|
+
// Get existing slugs for deduplication
|
|
463
|
+
const existingSlugs = getExistingSlugs();
|
|
464
|
+
// Build prompt
|
|
465
|
+
const prompt = buildAutocreatePrompt(context, existingSlugs);
|
|
466
|
+
// Execute Claude CLI with extended timeout for exhaustive analysis
|
|
467
|
+
const proc = spawnSync('claude', ['-p', prompt], {
|
|
468
|
+
encoding: 'utf-8',
|
|
469
|
+
timeout: 600000, // 10 minutes - analysis with many columns takes time
|
|
470
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB - response can be large with many columns
|
|
471
|
+
});
|
|
472
|
+
if (proc.error) {
|
|
473
|
+
throw new Error(`Claude CLI error: ${proc.error.message}`);
|
|
474
|
+
}
|
|
475
|
+
if (proc.status !== 0) {
|
|
476
|
+
throw new Error(`Claude CLI exited with code ${proc.status}: ${proc.stderr}`);
|
|
477
|
+
}
|
|
478
|
+
const output = proc.stdout;
|
|
479
|
+
if (!output || output.trim().length === 0) {
|
|
480
|
+
throw new Error('Claude returned empty response');
|
|
481
|
+
}
|
|
482
|
+
// Parse response
|
|
483
|
+
const result = parseAutocreateResponse(output);
|
|
484
|
+
// Compute overlaps
|
|
485
|
+
computeOverlaps(result.proposed_columns, existingSlugs);
|
|
486
|
+
return result;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Check if Claude CLI is available
|
|
490
|
+
*/
|
|
491
|
+
export function isClaudeAvailable() {
|
|
492
|
+
try {
|
|
493
|
+
const result = spawnSync('claude', ['--version'], {
|
|
494
|
+
encoding: 'utf-8',
|
|
495
|
+
timeout: 5000,
|
|
496
|
+
});
|
|
497
|
+
return result.status === 0;
|
|
498
|
+
}
|
|
499
|
+
catch {
|
|
500
|
+
return false;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
//# sourceMappingURL=autocreate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocreate.js","sourceRoot":"","sources":["../../src/services/autocreate.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -145,4 +145,53 @@ export interface SyncResult {
|
|
|
145
145
|
transitioned: string[];
|
|
146
146
|
errors: string[];
|
|
147
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Bilingual content structure
|
|
150
|
+
*/
|
|
151
|
+
export interface BilingualContent {
|
|
152
|
+
fr: string;
|
|
153
|
+
en: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* File to create for an autocreate column
|
|
157
|
+
*/
|
|
158
|
+
export interface AutocreateFile {
|
|
159
|
+
path: string;
|
|
160
|
+
content: BilingualContent;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Proposed column from autocreate analysis
|
|
164
|
+
*/
|
|
165
|
+
export interface AutocreateProposedColumn {
|
|
166
|
+
id: string;
|
|
167
|
+
key: string;
|
|
168
|
+
display_name: BilingualContent;
|
|
169
|
+
short_description: BilingualContent;
|
|
170
|
+
segment_hint: PipelineSegment | null;
|
|
171
|
+
files_to_create: AutocreateFile[];
|
|
172
|
+
rationale: BilingualContent;
|
|
173
|
+
token_cost_estimate: 'low' | 'medium' | 'high';
|
|
174
|
+
overlap_warnings: string[];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Autocreate analysis result from Claude
|
|
178
|
+
*/
|
|
179
|
+
export interface AutocreateResult {
|
|
180
|
+
proposed_columns: AutocreateProposedColumn[];
|
|
181
|
+
global_summary: BilingualContent;
|
|
182
|
+
assumptions: string[];
|
|
183
|
+
risks: string[];
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Project context for autocreate analysis
|
|
187
|
+
*/
|
|
188
|
+
export interface ProjectContext {
|
|
189
|
+
dependencies: string[];
|
|
190
|
+
devDependencies: string[];
|
|
191
|
+
scripts: Record<string, string>;
|
|
192
|
+
detectedTooling: string[];
|
|
193
|
+
directoryStructure: string[];
|
|
194
|
+
configFiles: string[];
|
|
195
|
+
projectDescription: string;
|
|
196
|
+
}
|
|
148
197
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|