cistack 6.0.0 → 6.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.
Files changed (61) hide show
  1. package/.github/dependabot.yml +42 -0
  2. package/.github/workflows/ci.yml +2 -1
  3. package/.github/workflows/pipeline.yml +250 -0
  4. package/README.md +4 -0
  5. package/package.json +7 -2
  6. package/product-site/.github/dependabot.yml +27 -0
  7. package/product-site/.github/workflows/pipeline.yml +215 -0
  8. package/product-site/.lighthouserc.json +22 -0
  9. package/product-site/README.md +1 -0
  10. package/product-site/app/[lang]/layout.tsx +95 -0
  11. package/product-site/app/[lang]/page.tsx +19 -0
  12. package/product-site/app/favicon.ico +0 -0
  13. package/product-site/app/globals.css +228 -0
  14. package/product-site/app/manifest.ts +20 -0
  15. package/product-site/app/robots.ts +12 -0
  16. package/product-site/app/sitemap.ts +12 -0
  17. package/product-site/components/CanvasText.tsx +219 -0
  18. package/product-site/components/CopyButton.tsx +101 -0
  19. package/product-site/components/HomeClient.tsx +664 -0
  20. package/product-site/components/InstallToggle.tsx +123 -0
  21. package/product-site/components/MotionRevealClient.tsx +53 -0
  22. package/product-site/components/TerminalCard.tsx +65 -0
  23. package/product-site/components/TerminalCardMotion.tsx +324 -0
  24. package/product-site/components/site-motion.tsx +229 -0
  25. package/product-site/components/ui/accordion.tsx +74 -0
  26. package/product-site/components/ui/badge.tsx +52 -0
  27. package/product-site/components/ui/button.tsx +60 -0
  28. package/product-site/components/ui/card.tsx +103 -0
  29. package/product-site/components/ui/checkbox.tsx +29 -0
  30. package/product-site/components/ui/separator.tsx +25 -0
  31. package/product-site/components/ui/table.tsx +116 -0
  32. package/product-site/components/ui/tabs.tsx +82 -0
  33. package/product-site/components.json +25 -0
  34. package/product-site/dictionaries/br.json +276 -0
  35. package/product-site/dictionaries/cn.json +276 -0
  36. package/product-site/dictionaries/de.json +276 -0
  37. package/product-site/dictionaries/en.json +274 -0
  38. package/product-site/dictionaries/es.json +276 -0
  39. package/product-site/dictionaries/fr.json +276 -0
  40. package/product-site/dictionaries/pt.json +276 -0
  41. package/product-site/eslint.config.mjs +18 -0
  42. package/product-site/lib/dictionaries.ts +18 -0
  43. package/product-site/lib/dictionary-types.ts +3 -0
  44. package/product-site/lib/utils.ts +6 -0
  45. package/product-site/middleware.ts +39 -0
  46. package/product-site/next.config.mjs +14 -0
  47. package/product-site/package-lock.json +14201 -0
  48. package/product-site/package.json +42 -0
  49. package/product-site/postcss.config.mjs +7 -0
  50. package/product-site/public/file.svg +1 -0
  51. package/product-site/public/globe.svg +1 -0
  52. package/product-site/public/next.svg +1 -0
  53. package/product-site/public/og-image.png +0 -0
  54. package/product-site/public/vercel.svg +1 -0
  55. package/product-site/public/window.svg +1 -0
  56. package/product-site/scripts/sync-i18n.mjs +58 -0
  57. package/product-site/scripts/validate-i18n.mjs +45 -0
  58. package/product-site/tsconfig.json +34 -0
  59. package/product-site/types/negotiator.d.ts +14 -0
  60. package/product-site/vercel.json +5 -0
  61. package/src/index.js +12 -13
@@ -0,0 +1,276 @@
1
+ {
2
+ "copy_button": {
3
+ "idle": "Copiar",
4
+ "success": "Copiado"
5
+ },
6
+ "navigation": {
7
+ "repository": "GitHub",
8
+ "registry": "npm",
9
+ "reference": "Referencia",
10
+ "version": "Versión",
11
+ "status": "Estable"
12
+ },
13
+ "hero": {
14
+ "product_name": "cistack",
15
+ "tagline": "Genera pipelines CI/CD de GitHub Actions analizando el código que ya tienes.",
16
+ "intro": "cistack analiza tu proyecto, detecta el stack y escribe workflows de GitHub Actions listos para producción: CI, despliegue, Docker y releases. Está pensado para repositorios reales, no demos: lee lockfiles, señales de framework, configuración de release, workspaces monorepo, hosting y metadatos de ramas Git antes de generar el YAML.",
17
+ "npx_command": "npx cistack",
18
+ "weekly_downloads": "Descargas semanales",
19
+ "per_week": "última semana en npm",
20
+ "live_registry": "En vivo desde el registro"
21
+ },
22
+ "preview": {
23
+ "title": "Vista previa",
24
+ "caption": "Salida CLI animada tras analizar un proyecto típico."
25
+ },
26
+ "why": {
27
+ "title": "Por qué cistack",
28
+ "items": [
29
+ "Detecta automáticamente lenguajes, frameworks, herramientas de prueba, proveedores de hosting y herramientas de release",
30
+ "Usa la rama Git por defecto del repositorio cuando está disponible, en lugar de asumir main",
31
+ "Admite monorepos, workflows por paquete y comandos según el gestor de paquetes",
32
+ "Genera configuración Dependabot alineada con el ecosistema, incluido Bun si existe bun.lock",
33
+ "Fusiona de forma inteligente los workflows generados con los archivos existentes sin sobrescribir a ciegas",
34
+ "Genera pipelines de despliegue para Vercel, Netlify, Firebase, GitHub Pages, AWS, Azure, Heroku, Render y Railway",
35
+ "Incluye comandos integrados de auditoría y actualización de workflows",
36
+ "Admite cistack.config.js tipado mediante index.d.ts",
37
+ "Apoyado en una suite de regresión automatizada (ramas, release, fusión inteligente, scripts monorepo, pruebas smoke del CLI)"
38
+ ]
39
+ },
40
+ "install": {
41
+ "title": "Instalación",
42
+ "quick_command": "Instalación rápida",
43
+ "node_note": "cistack admite Node.js 16+; el proyecto se verifica de forma continua en Node.js 18, 20 y 22 en GitHub Actions."
44
+ },
45
+ "cli": {
46
+ "section_title": "Uso del CLI",
47
+ "items": [
48
+ {
49
+ "title": "Generar workflows",
50
+ "paragraphs": [
51
+ "generate es el comando por defecto: funcionan tanto npx cistack como npx cistack generate.",
52
+ "Opciones habituales:"
53
+ ],
54
+ "snippets": [
55
+ "npx cistack",
56
+ "npx cistack generate",
57
+ "npx cistack generate --path /path/to/project",
58
+ "npx cistack generate --dry-run",
59
+ "npx cistack generate --explain",
60
+ "npx cistack generate --output .github/workflows",
61
+ "npx cistack generate --no-prompt"
62
+ ]
63
+ },
64
+ {
65
+ "title": "Auditar workflows existentes",
66
+ "paragraphs": [
67
+ "Comprueba el directorio de workflows generados (concurrencia ausente, acciones obsoletas, versiones antiguas de Node, caché de dependencias, etc.). Si defines outputDir en cistack.config.js, audit y upgrade usan también ese directorio."
68
+ ],
69
+ "snippets": ["npx cistack audit"]
70
+ },
71
+ {
72
+ "title": "Actualizar acciones del workflow",
73
+ "paragraphs": [
74
+ "Actualiza las GitHub Actions conocidas a sus últimas versiones estables admitidas."
75
+ ],
76
+ "snippets": ["npx cistack upgrade", "npx cistack upgrade --dry-run"]
77
+ },
78
+ {
79
+ "title": "Crear configuración inicial",
80
+ "paragraphs": [
81
+ "Escribe cistack.config.js con las claves de anulación admitidas."
82
+ ],
83
+ "snippets": ["npx cistack init"]
84
+ }
85
+ ]
86
+ },
87
+ "generated": {
88
+ "section_title": "Qué se genera",
89
+ "items": [
90
+ {
91
+ "title": "pipeline.yml",
92
+ "paragraphs": [
93
+ "Por defecto, cistack genera un único workflow de GitHub Actions que agrupa trabajos de CI, despliegue, Docker y release para seguir todo el pipeline en un solo archivo.",
94
+ "Incluye lint, test, build, E2E, despliegue, Docker y release cuando el stack lo permite, usa la rama por defecto detectada o la configurada, mantiene despliegues preview y releases en el mismo archivo y documenta los secretos necesarios en la cabecera."
95
+ ],
96
+ "snippets": []
97
+ },
98
+ {
99
+ "title": "dependabot.yml",
100
+ "paragraphs": [
101
+ "Dependabot sigue siendo un archivo separado en .github/dependabot.yml, porque no es un workflow de GitHub Actions.",
102
+ "Para despliegues preview en PR de Dependabot, añade también las credenciales como secretos de Dependabot, no solo de Actions. En Vercel: VERCEL_TOKEN, VERCEL_ORG_ID y VERCEL_PROJECT_ID."
103
+ ],
104
+ "snippets": []
105
+ },
106
+ {
107
+ "title": "Modo dividido (split)",
108
+ "paragraphs": [
109
+ "Si prefieres el diseño antiguo de varios archivos, define workflowLayout como split en cistack.config.js. En modo split, cistack vuelve a escribir ci.yml, deploy.yml, docker.yml y release.yml por separado."
110
+ ],
111
+ "snippets": [
112
+ "module.exports = {\n workflowLayout: 'split',\n};"
113
+ ]
114
+ }
115
+ ]
116
+ },
117
+ "detection": {
118
+ "section_title": "Detección admitida",
119
+ "hosting_title": "Hosting",
120
+ "hosting_tags": [
121
+ "Firebase",
122
+ "Vercel",
123
+ "Netlify",
124
+ "GitHub Pages",
125
+ "AWS",
126
+ "GCP App Engine",
127
+ "Azure",
128
+ "Heroku",
129
+ "Render",
130
+ "Railway",
131
+ "Docker"
132
+ ],
133
+ "frameworks_title": "Frameworks",
134
+ "frameworks_tags": [
135
+ "Next.js",
136
+ "Nuxt",
137
+ "SvelteKit",
138
+ "Remix",
139
+ "Astro",
140
+ "Vite",
141
+ "React",
142
+ "Vue",
143
+ "Angular",
144
+ "Svelte",
145
+ "Gatsby",
146
+ "Express",
147
+ "Fastify",
148
+ "NestJS",
149
+ "Hono",
150
+ "Koa",
151
+ "Django",
152
+ "Flask",
153
+ "FastAPI",
154
+ "Rails",
155
+ "Spring Boot",
156
+ "Laravel",
157
+ "Go",
158
+ "Rust"
159
+ ],
160
+ "testing_title": "Herramientas de prueba",
161
+ "testing_tags": [
162
+ "Jest",
163
+ "Vitest",
164
+ "Mocha",
165
+ "Cypress",
166
+ "Playwright",
167
+ "Pytest",
168
+ "RSpec",
169
+ "Go test",
170
+ "Cargo test",
171
+ "PHPUnit",
172
+ "Maven / JUnit",
173
+ "Storybook"
174
+ ]
175
+ },
176
+ "configuration": {
177
+ "section_title": "Configuración",
178
+ "intro": "Crea cistack.config.js cuando quieras anular la detección.",
179
+ "example_caption": "Ejemplo",
180
+ "keys_title": "Claves de configuración de nivel superior",
181
+ "keys": [
182
+ "nodeVersion",
183
+ "packageManager",
184
+ "hosting",
185
+ "frameworks",
186
+ "testing",
187
+ "branches",
188
+ "workflowLayout",
189
+ "cache",
190
+ "monorepo",
191
+ "release",
192
+ "secrets",
193
+ "outputDir"
194
+ ],
195
+ "branches_title": "Comportamiento de ramas",
196
+ "branches": [
197
+ "Si branches está definido en la config, cistack lo usa tal cual",
198
+ "Si no, lee la rama por defecto del repositorio desde los metadatos de Git cuando sea posible",
199
+ "Si no hay metadatos de Git, usa valores seguros como main, master y develop según el tipo de workflow"
200
+ ],
201
+ "config_snippet": "/** @type {import('cistack').Config} */\nmodule.exports = {\n nodeVersion: '20',\n packageManager: 'pnpm',\n branches: ['main', 'staging'],\n workflowLayout: 'single',\n hosting: ['Vercel'],\n outputDir: '.github/workflows',\n cache: {\n npm: true,\n cargo: true,\n pip: true,\n },\n monorepo: {\n perPackage: true,\n },\n release: {\n tool: 'semantic-release',\n },\n};"
202
+ },
203
+ "secrets": {
204
+ "section_title": "Secretos",
205
+ "body": "Los workflows de despliegue y release generados documentan los secretos necesarios al inicio de cada archivo. Añádelos en GitHub: Settings → Secrets and variables → Actions."
206
+ },
207
+ "quality": {
208
+ "section_title": "Desarrollo y calidad",
209
+ "intro": "El proyecto incluye una suite de regresión en las zonas que históricamente eran más frágiles:",
210
+ "items": [
211
+ "manejo de anulaciones de configuración",
212
+ "detección de la rama por defecto",
213
+ "selección de la rama de despliegue",
214
+ "rama de producción en Netlify",
215
+ "comportamiento de fusión inteligente",
216
+ "búsqueda de scripts de build por paquete en monorepo",
217
+ "detección de configuración de release",
218
+ "generación del workflow de release",
219
+ "pruebas smoke del CLI en dry-run"
220
+ ],
221
+ "commands_title": "Ejecutar comprobaciones en local",
222
+ "commands": [
223
+ "npm test",
224
+ "npm run test:smoke",
225
+ "node bin/ciflow.js audit --path .",
226
+ "node bin/ciflow.js upgrade --path . --dry-run"
227
+ ],
228
+ "repo_note": "Si usas el paquete publicado, el ejecutable es cistack. En el repositorio de cistack, el punto de entrada local es bin/ciflow.js."
229
+ },
230
+ "footer": {
231
+ "license": "Licencia MIT",
232
+ "tagline": "Generación de workflows CI/CD a partir del repositorio que ya tienes.",
233
+ "architect_credit": "Creado por",
234
+ "architect_name": "Edwin Vakayil",
235
+ "copyright_suffix": "cistack. Todos los derechos reservados cuando corresponda."
236
+ },
237
+ "install_toggle": {
238
+ "recommended": "recomendado",
239
+ "npm_global": "npm install -g",
240
+ "recommended_badge": "Recomendado",
241
+ "global_badge": "Global",
242
+ "npx_desc": "Siempre obtiene la última versión. Sin instalación global.",
243
+ "npm_desc": "Ideal si usas cistack en muchos repositorios."
244
+ },
245
+ "terminal": {
246
+ "label": "TERMINAL",
247
+ "mission": "MISIÓN_NÚCLEO // L_02",
248
+ "project_scanned": "✔ Proyecto analizado",
249
+ "stack_detected": "✔ Stack detectado",
250
+ "detected_stack": "Stack detectado",
251
+ "languages": "Lenguajes:",
252
+ "frameworks": "Frameworks:",
253
+ "hosting": "Hosting:",
254
+ "testing": "Pruebas:",
255
+ "release_tool": "Herramienta de release:",
256
+ "look_correct": "¿Te parece correcto? ¿Generar el pipeline con estos ajustes? Sí",
257
+ "generated_workflows": "✔ Generados 3 workflow(s) de CI",
258
+ "smart_merged": "↻ Fusión inteligente: ci.yml",
259
+ "updated_on": "actualizado \"on\" de nivel superior",
260
+ "updated_concurrency": "actualizado \"concurrency\" de nivel superior",
261
+ "added_lint": "añadido job \"lint\"",
262
+ "updated_build": "job \"build\" → actualizado \"name\"",
263
+ "updated_needs": "job \"build\" → actualizado \"needs\"",
264
+ "added_checkout": "job \"build\" → añadido paso \"Checkout code\"",
265
+ "added_node": "job \"build\" → añadido paso \"Set up Node.js\"",
266
+ "updated_step_build": "job \"build\" → actualizado paso \"Build\"",
267
+ "added_upload": "job \"build\" → añadido paso \"Upload build artifact\"",
268
+ "written_deploy": "Escrito: deploy.yml",
269
+ "written_security": "Escrito: security.yml",
270
+ "written_dependabot": "Escrito: .github/dependabot.yml",
271
+ "done_msg": "Listo. Tu pipeline de GitHub Actions está preparado.",
272
+ "workflows_path": "Workflows → cistack/.github/workflows",
273
+ "dependabot_path": "Dependabot → cistack/.github/dependabot.yml",
274
+ "processing": "Procesando salida…"
275
+ }
276
+ }
@@ -0,0 +1,276 @@
1
+ {
2
+ "copy_button": {
3
+ "idle": "Copier",
4
+ "success": "Copié"
5
+ },
6
+ "navigation": {
7
+ "repository": "GitHub",
8
+ "registry": "npm",
9
+ "reference": "Référence",
10
+ "version": "Version",
11
+ "status": "Stabilisé"
12
+ },
13
+ "hero": {
14
+ "product_name": "cistack",
15
+ "tagline": "Générez des pipelines CI/CD GitHub Actions en analysant le code que vous avez déjà.",
16
+ "intro": "cistack analyse votre projet, détecte la stack et écrit des workflows GitHub Actions prêts pour la production pour l’intégration continue, le déploiement, Docker et les releases. Conçu pour de vrais dépôts, pas des démos : il lit les fichiers de verrouillage, les signaux de framework, la config de release, les workspaces monorepo, l’hébergement et les métadonnées de branches Git avant de générer le YAML.",
17
+ "npx_command": "npx cistack",
18
+ "weekly_downloads": "Téléchargements hebdomadaires",
19
+ "per_week": "semaine dernière sur npm",
20
+ "live_registry": "En direct depuis le registre"
21
+ },
22
+ "preview": {
23
+ "title": "Aperçu d’exécution",
24
+ "caption": "Sortie CLI animée après analyse d’un projet type."
25
+ },
26
+ "why": {
27
+ "title": "Pourquoi cistack",
28
+ "items": [
29
+ "Détecte automatiquement les langages, frameworks, outils de test, hébergeurs et outils de release",
30
+ "Utilise la branche Git par défaut du dépôt quand elle est disponible au lieu de supposer main",
31
+ "Prend en charge les monorepos, les workflows par package et des commandes adaptées au gestionnaire de paquets",
32
+ "Génère une config Dependabot alignée sur l’écosystème, y compris Bun lorsque bun.lock est présent",
33
+ "Fusionne intelligemment les workflows générés avec les fichiers existants au lieu d’écraser aveuglément",
34
+ "Génère des pipelines de déploiement pour Vercel, Netlify, Firebase, GitHub Pages, AWS, Azure, Heroku, Render et Railway",
35
+ "Inclut des commandes intégrées d’audit et de mise à niveau des workflows",
36
+ "Prend en charge cistack.config.js typé via index.d.ts",
37
+ "S’appuie sur une suite de régression automatisée (branches, release, fusion intelligente, scripts monorepo, tests smoke CLI)"
38
+ ]
39
+ },
40
+ "install": {
41
+ "title": "Installation",
42
+ "quick_command": "Installation rapide",
43
+ "node_note": "cistack prend en charge Node.js 16+ ; le projet est vérifié en continu sur Node.js 18, 20 et 22 dans GitHub Actions."
44
+ },
45
+ "cli": {
46
+ "section_title": "Utilisation CLI",
47
+ "items": [
48
+ {
49
+ "title": "Générer des workflows",
50
+ "paragraphs": [
51
+ "generate est la commande par défaut : npx cistack et npx cistack generate fonctionnent tous deux.",
52
+ "Options courantes :"
53
+ ],
54
+ "snippets": [
55
+ "npx cistack",
56
+ "npx cistack generate",
57
+ "npx cistack generate --path /path/to/project",
58
+ "npx cistack generate --dry-run",
59
+ "npx cistack generate --explain",
60
+ "npx cistack generate --output .github/workflows",
61
+ "npx cistack generate --no-prompt"
62
+ ]
63
+ },
64
+ {
65
+ "title": "Auditer les workflows existants",
66
+ "paragraphs": [
67
+ "Vérifie le répertoire des workflows générés (blocs de concurrence manquants, actions obsolètes, anciennes versions de Node, cache des dépendances, etc.). Si outputDir est défini dans cistack.config.js, audit et upgrade utilisent aussi ce répertoire."
68
+ ],
69
+ "snippets": ["npx cistack audit"]
70
+ },
71
+ {
72
+ "title": "Mettre à niveau les actions",
73
+ "paragraphs": [
74
+ "Met à jour les GitHub Actions connues vers leurs dernières versions stables prises en charge."
75
+ ],
76
+ "snippets": ["npx cistack upgrade", "npx cistack upgrade --dry-run"]
77
+ },
78
+ {
79
+ "title": "Créer une config de départ",
80
+ "paragraphs": [
81
+ "Écrit cistack.config.js avec les clés de surcharge prises en charge."
82
+ ],
83
+ "snippets": ["npx cistack init"]
84
+ }
85
+ ]
86
+ },
87
+ "generated": {
88
+ "section_title": "Fichiers générés",
89
+ "items": [
90
+ {
91
+ "title": "pipeline.yml",
92
+ "paragraphs": [
93
+ "Par défaut, cistack génère un seul workflow GitHub Actions qui regroupe les jobs CI, déploiement, Docker et release afin que toute l’équipe suive le pipeline dans un seul fichier.",
94
+ "Il inclut lint, test, build, E2E, déploiement, Docker et release lorsque la stack le permet, utilise la branche par défaut détectée ou branches configurées, conserve les déploiements preview et les jobs release dans le même fichier, et documente les secrets requis dans l’en-tête."
95
+ ],
96
+ "snippets": []
97
+ },
98
+ {
99
+ "title": "dependabot.yml",
100
+ "paragraphs": [
101
+ "Dependabot reste un fichier séparé dans .github/dependabot.yml, car ce n’est pas un workflow GitHub Actions.",
102
+ "Pour des déploiements preview sur les PR Dependabot, ajoutez aussi les identifiants de déploiement comme secrets Dependabot, pas seulement comme secrets Actions. Pour Vercel : VERCEL_TOKEN, VERCEL_ORG_ID et VERCEL_PROJECT_ID."
103
+ ],
104
+ "snippets": []
105
+ },
106
+ {
107
+ "title": "Mode scindé (split)",
108
+ "paragraphs": [
109
+ "Pour l’ancienne disposition multi-fichiers, définissez workflowLayout sur split dans cistack.config.js. En mode split, cistack écrit à nouveau des fichiers séparés ci.yml, deploy.yml, docker.yml et release.yml."
110
+ ],
111
+ "snippets": [
112
+ "module.exports = {\n workflowLayout: 'split',\n};"
113
+ ]
114
+ }
115
+ ]
116
+ },
117
+ "detection": {
118
+ "section_title": "Détection prise en charge",
119
+ "hosting_title": "Hébergement",
120
+ "hosting_tags": [
121
+ "Firebase",
122
+ "Vercel",
123
+ "Netlify",
124
+ "GitHub Pages",
125
+ "AWS",
126
+ "GCP App Engine",
127
+ "Azure",
128
+ "Heroku",
129
+ "Render",
130
+ "Railway",
131
+ "Docker"
132
+ ],
133
+ "frameworks_title": "Frameworks",
134
+ "frameworks_tags": [
135
+ "Next.js",
136
+ "Nuxt",
137
+ "SvelteKit",
138
+ "Remix",
139
+ "Astro",
140
+ "Vite",
141
+ "React",
142
+ "Vue",
143
+ "Angular",
144
+ "Svelte",
145
+ "Gatsby",
146
+ "Express",
147
+ "Fastify",
148
+ "NestJS",
149
+ "Hono",
150
+ "Koa",
151
+ "Django",
152
+ "Flask",
153
+ "FastAPI",
154
+ "Rails",
155
+ "Spring Boot",
156
+ "Laravel",
157
+ "Go",
158
+ "Rust"
159
+ ],
160
+ "testing_title": "Outils de test",
161
+ "testing_tags": [
162
+ "Jest",
163
+ "Vitest",
164
+ "Mocha",
165
+ "Cypress",
166
+ "Playwright",
167
+ "Pytest",
168
+ "RSpec",
169
+ "Go test",
170
+ "Cargo test",
171
+ "PHPUnit",
172
+ "Maven / JUnit",
173
+ "Storybook"
174
+ ]
175
+ },
176
+ "configuration": {
177
+ "section_title": "Configuration",
178
+ "intro": "Créez cistack.config.js pour surcharger la détection.",
179
+ "example_caption": "Exemple",
180
+ "keys_title": "Clés de configuration de premier niveau",
181
+ "keys": [
182
+ "nodeVersion",
183
+ "packageManager",
184
+ "hosting",
185
+ "frameworks",
186
+ "testing",
187
+ "branches",
188
+ "workflowLayout",
189
+ "cache",
190
+ "monorepo",
191
+ "release",
192
+ "secrets",
193
+ "outputDir"
194
+ ],
195
+ "branches_title": "Comportement des branches",
196
+ "branches": [
197
+ "Si branches est défini dans la config, cistack l’utilise telle quelle",
198
+ "Sinon il lit la branche par défaut du dépôt depuis les métadonnées Git quand c’est possible",
199
+ "Si les métadonnées Git ne sont pas disponibles, il retombe sur des valeurs sûres comme main, master et develop selon le type de workflow"
200
+ ],
201
+ "config_snippet": "/** @type {import('cistack').Config} */\nmodule.exports = {\n nodeVersion: '20',\n packageManager: 'pnpm',\n branches: ['main', 'staging'],\n workflowLayout: 'single',\n hosting: ['Vercel'],\n outputDir: '.github/workflows',\n cache: {\n npm: true,\n cargo: true,\n pip: true,\n },\n monorepo: {\n perPackage: true,\n },\n release: {\n tool: 'semantic-release',\n },\n};"
202
+ },
203
+ "secrets": {
204
+ "section_title": "Secrets",
205
+ "body": "Les workflows de déploiement et de release générés indiquent les secrets nécessaires en tête de fichier. Ajoutez-les dans GitHub : Paramètres → Secrets and variables → Actions."
206
+ },
207
+ "quality": {
208
+ "section_title": "Développement et qualité",
209
+ "intro": "Le projet inclut une suite de régression sur les zones historiquement les plus fragiles :",
210
+ "items": [
211
+ "gestion des surcharges de configuration",
212
+ "détection de la branche par défaut",
213
+ "sélection de la branche de déploiement",
214
+ "branche de production Netlify",
215
+ "comportement de fusion intelligente",
216
+ "résolution des scripts de build par package en monorepo",
217
+ "détection de la config de release",
218
+ "génération du workflow de release",
219
+ "tests smoke CLI en dry-run"
220
+ ],
221
+ "commands_title": "Lancer les vérifications en local",
222
+ "commands": [
223
+ "npm test",
224
+ "npm run test:smoke",
225
+ "node bin/ciflow.js audit --path .",
226
+ "node bin/ciflow.js upgrade --path . --dry-run"
227
+ ],
228
+ "repo_note": "Avec le paquet publié, l’exécutable est cistack. Dans le dépôt cistack, le point d’entrée local est bin/ciflow.js."
229
+ },
230
+ "footer": {
231
+ "license": "Licence MIT",
232
+ "tagline": "Génération de workflows CI/CD à partir du dépôt que vous avez déjà.",
233
+ "architect_credit": "Créé par",
234
+ "architect_name": "Edwin Vakayil",
235
+ "copyright_suffix": "cistack. Tous droits réservés le cas échéant."
236
+ },
237
+ "install_toggle": {
238
+ "recommended": "recommandé",
239
+ "npm_global": "npm install -g",
240
+ "recommended_badge": "Recommandé",
241
+ "global_badge": "Global",
242
+ "npx_desc": "Toujours la dernière version. Pas d’installation globale.",
243
+ "npm_desc": "Idéal si vous utilisez cistack sur plusieurs dépôts."
244
+ },
245
+ "terminal": {
246
+ "label": "TERMINAL",
247
+ "mission": "MISSION_NOYAU // L_02",
248
+ "project_scanned": "✔ Projet analysé",
249
+ "stack_detected": "✔ Stack détectée",
250
+ "detected_stack": "Stack détectée",
251
+ "languages": "Langages :",
252
+ "frameworks": "Frameworks :",
253
+ "hosting": "Hébergement :",
254
+ "testing": "Tests :",
255
+ "release_tool": "Outil de release :",
256
+ "look_correct": "? Cela vous convient ? Générer le pipeline avec ces paramètres ? Oui",
257
+ "generated_workflows": "✔ 3 workflow(s) CI générés",
258
+ "smart_merged": "↻ Fusion intelligente : ci.yml",
259
+ "updated_on": "mise à jour du « on » racine",
260
+ "updated_concurrency": "mise à jour du « concurrency » racine",
261
+ "added_lint": "ajout du job « lint »",
262
+ "updated_build": "job « build » → nom mis à jour",
263
+ "updated_needs": "job « build » → needs mis à jour",
264
+ "added_checkout": "job « build » → étape « Checkout code » ajoutée",
265
+ "added_node": "job « build » → étape « Set up Node.js » ajoutée",
266
+ "updated_step_build": "job « build » → étape « Build » mise à jour",
267
+ "added_upload": "job « build » → étape « Upload build artifact » ajoutée",
268
+ "written_deploy": "Écrit : deploy.yml",
269
+ "written_security": "Écrit : security.yml",
270
+ "written_dependabot": "Écrit : .github/dependabot.yml",
271
+ "done_msg": "Terminé ! Votre pipeline GitHub Actions est prêt.",
272
+ "workflows_path": "Workflows → cistack/.github/workflows",
273
+ "dependabot_path": "Dependabot → cistack/.github/dependabot.yml",
274
+ "processing": "Traitement de la sortie…"
275
+ }
276
+ }