@atlashub/smartstack-cli 2.6.3 → 2.7.1
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/.documentation/agents.html +1 -1
- package/.documentation/apex.html +1 -1
- package/.documentation/business-analyse.html +749 -1419
- package/.documentation/cli-commands.html +1 -1
- package/.documentation/commands.html +1 -1
- package/.documentation/css/styles.css +160 -0
- package/.documentation/efcore.html +1 -1
- package/.documentation/gitflow.html +3 -453
- package/.documentation/hooks.html +1 -1
- package/.documentation/index.html +177 -68
- package/.documentation/init.html +747 -290
- package/.documentation/installation.html +63 -8
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +1 -1
- package/dist/index.js +552 -304
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +12 -10
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +2 -2
- package/templates/agents/ba-reader.md +23 -0
- package/templates/agents/ba-writer.md +63 -4
- package/templates/skills/business-analyse/questionnaire/00-application.md +1 -1
- package/templates/skills/business-analyse/questionnaire/03-scope.md +2 -2
- package/templates/skills/business-analyse/questionnaire.md +1 -1
- package/templates/skills/business-analyse/react/application-viewer.md +1 -1
- package/templates/skills/business-analyse/react/schema.md +88 -1
- package/templates/skills/business-analyse/schemas/application-schema.json +16 -1
- package/templates/skills/business-analyse/schemas/feature-schema.json +19 -986
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +157 -0
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -0
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -0
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +69 -0
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +445 -0
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -0
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +133 -0
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +22 -3
- package/templates/skills/business-analyse/steps/step-03-specify.md +129 -0
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +38 -5
- package/templates/skills/business-analyse/steps/step-05-handoff.md +94 -218
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<header class="global-header">
|
|
13
13
|
<div class="logo">SS</div>
|
|
14
14
|
<span class="site-title">SmartStack CLI</span>
|
|
15
|
-
<span class="version-badge">
|
|
15
|
+
<span class="version-badge">v5.0.0</span>
|
|
16
16
|
<div class="header-divider"></div>
|
|
17
17
|
<span class="page-title">Business Analyse</span>
|
|
18
18
|
<nav class="breadcrumb">
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<span data-lang="fr">Workflows</span>
|
|
25
25
|
<span data-lang="en">Workflows</span>
|
|
26
26
|
<span class="breadcrumb-separator">›</span>
|
|
27
|
-
<span class="breadcrumb-current">Business Analyse</span>
|
|
27
|
+
<span class="breadcrumb-current">Business Analyse v5.0</span>
|
|
28
28
|
</nav>
|
|
29
29
|
<!-- Language Select -->
|
|
30
30
|
<select class="lang-select" id="lang-select" onchange="setLanguage(this.value); localStorage.setItem('doc-language', this.value);">
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
</a>
|
|
68
68
|
<a href="init.html" class="nav-item">
|
|
69
69
|
<span class="icon">🚀</span>
|
|
70
|
-
<span class="nav-text">
|
|
70
|
+
<span class="nav-text">Projet Client</span>
|
|
71
71
|
</a>
|
|
72
72
|
</div>
|
|
73
73
|
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
<nav class="sidebar-toc">
|
|
99
99
|
<a href="#introduction" class="sidebar-toc-link">Introduction</a>
|
|
100
100
|
<a href="#architecture" class="sidebar-toc-link">
|
|
101
|
-
<span data-lang="fr">Architecture
|
|
102
|
-
<span data-lang="en">
|
|
101
|
+
<span data-lang="fr">Architecture (5-Niveaux)</span>
|
|
102
|
+
<span data-lang="en">Architecture (5-Level Hierarchy)</span>
|
|
103
103
|
</a>
|
|
104
104
|
<a href="#quick-start" class="sidebar-toc-link">Quick Start</a>
|
|
105
105
|
<a href="#use-cases" class="sidebar-toc-link">
|
|
@@ -112,21 +112,22 @@
|
|
|
112
112
|
</a>
|
|
113
113
|
<a href="#workflow" class="sidebar-toc-link">Workflow</a>
|
|
114
114
|
<a href="#step-00" class="sidebar-toc-link">00. Init</a>
|
|
115
|
-
<a href="#step-01" class="sidebar-toc-link">01.
|
|
116
|
-
<a href="#step-02" class="sidebar-toc-link">02.
|
|
117
|
-
<a href="#step-03" class="sidebar-toc-link">03.
|
|
118
|
-
<a href="#step-04" class="sidebar-toc-link">04.
|
|
119
|
-
<a href="#
|
|
120
|
-
<a href="#
|
|
115
|
+
<a href="#step-01" class="sidebar-toc-link">01. Cadrage</a>
|
|
116
|
+
<a href="#step-02" class="sidebar-toc-link">02. Decomposition</a>
|
|
117
|
+
<a href="#step-03" class="sidebar-toc-link">03. Specify (Per-Module)</a>
|
|
118
|
+
<a href="#step-04" class="sidebar-toc-link">04. Consolidation</a>
|
|
119
|
+
<a href="#step-05" class="sidebar-toc-link">05. Handoff</a>
|
|
120
|
+
<a href="#schemas" class="sidebar-toc-link">Schemas</a>
|
|
121
121
|
<a href="#agents" class="sidebar-toc-link">Agents</a>
|
|
122
|
+
<a href="#ids-refs" class="sidebar-toc-link">
|
|
123
|
+
<span data-lang="fr">IDs & Refs</span>
|
|
124
|
+
<span data-lang="en">IDs & Cross-References</span>
|
|
125
|
+
</a>
|
|
122
126
|
<a href="#output" class="sidebar-toc-link">
|
|
123
127
|
<span data-lang="fr">Sorties</span>
|
|
124
128
|
<span data-lang="en">Output</span>
|
|
125
129
|
</a>
|
|
126
|
-
<a href="#
|
|
127
|
-
<span data-lang="fr">Exemple</span>
|
|
128
|
-
<span data-lang="en">Example</span>
|
|
129
|
-
</a>
|
|
130
|
+
<a href="#versioning" class="sidebar-toc-link">Versioning</a>
|
|
130
131
|
</nav>
|
|
131
132
|
</div>
|
|
132
133
|
</div>
|
|
@@ -172,187 +173,207 @@
|
|
|
172
173
|
<section id="introduction">
|
|
173
174
|
<h2>Introduction</h2>
|
|
174
175
|
<p data-lang="fr">
|
|
175
|
-
Le skill <strong>Business Analyse
|
|
176
|
+
Le skill <strong>Business Analyse v5.0</strong> est un workflow en <strong>6 etapes</strong> qui transforme un besoin utilisateur en specification fonctionnelle complete avec support iteratif multi-module. Chaque application est composee de modules interdependants, analyzes et specifies dans un ordre logique.
|
|
176
177
|
</p>
|
|
177
178
|
<p data-lang="en">
|
|
178
|
-
The <strong>Business Analyse
|
|
179
|
+
The <strong>Business Analyse v5.0</strong> skill is a <strong>6-step</strong> workflow that transforms a user need into a complete functional specification with iterative multi-module support. Each application consists of interdependent modules, analyzed and specified in logical order.
|
|
179
180
|
</p>
|
|
180
181
|
|
|
182
|
+
<h4 data-lang="fr">6 Etapes du workflow</h4>
|
|
183
|
+
<h4 data-lang="en">6 Workflow Steps</h4>
|
|
184
|
+
<ol class="steps-list">
|
|
185
|
+
<li>
|
|
186
|
+
<strong>Init</strong> - Detecte le mode (application vs module), cree feature.json initial
|
|
187
|
+
</li>
|
|
188
|
+
<li>
|
|
189
|
+
<strong>Cadrage</strong> - Analyse applicative : probleme, stakeholders, scope, roles (applicationRoles)
|
|
190
|
+
</li>
|
|
191
|
+
<li>
|
|
192
|
+
<strong>Decomposition</strong> - Decompose l'application en modules, dependances, graphe topologique
|
|
193
|
+
</li>
|
|
194
|
+
<li>
|
|
195
|
+
<strong>Specify (Per-Module)</strong> - Specification iterative de chaque module en ordre de dependance
|
|
196
|
+
</li>
|
|
197
|
+
<li>
|
|
198
|
+
<strong>Consolidation</strong> - Validation cross-module, coherence des permissions et entites partagees
|
|
199
|
+
</li>
|
|
200
|
+
<li>
|
|
201
|
+
<strong>Handoff</strong> - Mapping des fichiers par module, extraction programmatique prd.json via <code>ss derive-prd</code>
|
|
202
|
+
</li>
|
|
203
|
+
</ol>
|
|
204
|
+
|
|
205
|
+
<h4 data-lang="fr">Navigation hierarchique (5 niveaux)</h4>
|
|
206
|
+
<h4 data-lang="en">Hierarchical Navigation (5 Levels)</h4>
|
|
207
|
+
<div class="code-block">
|
|
208
|
+
<button class="copy-btn">Copy</button>
|
|
209
|
+
<pre><code>Context → Application → Module → Section → Resource
|
|
210
|
+
|
|
211
|
+
Exemple:
|
|
212
|
+
- Context: "ecommerce"
|
|
213
|
+
- Application: "OrderManagement"
|
|
214
|
+
- Module: "Checkout"
|
|
215
|
+
- Section: "ShoppingCart" (page React)
|
|
216
|
+
- Resource: "CartItem" (composant React)</code></pre>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
181
219
|
<div class="alert alert-warning">
|
|
182
220
|
<span class="alert-icon">⚠</span>
|
|
183
221
|
<div class="alert-content">
|
|
184
|
-
<h5 data-lang="fr">
|
|
185
|
-
<h5 data-lang="en">
|
|
222
|
+
<h5 data-lang="fr">Architecture multi-niveaux</h5>
|
|
223
|
+
<h5 data-lang="en">Multi-level Architecture</h5>
|
|
186
224
|
<p data-lang="fr">
|
|
187
|
-
|
|
225
|
+
Deux fichiers de schema : <strong>application-schema.json</strong> (master, cadrage et modules) et <strong>feature-schema.json</strong> (par module, specification).
|
|
188
226
|
</p>
|
|
189
227
|
<p data-lang="en">
|
|
190
|
-
<strong>
|
|
228
|
+
Two schema files: <strong>application-schema.json</strong> (master, framing and modules) and <strong>feature-schema.json</strong> (per-module, specification).
|
|
191
229
|
</p>
|
|
192
230
|
</div>
|
|
193
231
|
</div>
|
|
194
232
|
|
|
195
|
-
<div class="alert alert-
|
|
196
|
-
<span class="alert-icon">&#
|
|
233
|
+
<div class="alert alert-info">
|
|
234
|
+
<span class="alert-icon">📊</span>
|
|
197
235
|
<div class="alert-content">
|
|
198
|
-
<h5>
|
|
236
|
+
<h5 data-lang="fr">2 Agents specialises</h5>
|
|
237
|
+
<h5 data-lang="en">2 Specialized Agents</h5>
|
|
199
238
|
<p data-lang="fr">
|
|
200
|
-
|
|
239
|
+
<strong>ba-reader</strong> : lecture, recherche de features, validation des references croisees.
|
|
240
|
+
<strong>ba-writer</strong> : creation, enrichissement, validation du schema, verification post-ecriture.
|
|
201
241
|
</p>
|
|
202
242
|
<p data-lang="en">
|
|
203
|
-
|
|
243
|
+
<strong>ba-reader</strong>: read, search features, validate cross-references.
|
|
244
|
+
<strong>ba-writer</strong>: create, enrich, schema validation, post-write verification.
|
|
204
245
|
</p>
|
|
205
246
|
</div>
|
|
206
247
|
</div>
|
|
207
248
|
|
|
208
|
-
<div class="alert alert-
|
|
249
|
+
<div class="alert alert-success">
|
|
209
250
|
<span class="alert-icon">📊</span>
|
|
210
251
|
<div class="alert-content">
|
|
211
|
-
<h5 data-lang="fr">
|
|
212
|
-
<h5 data-lang="en">
|
|
252
|
+
<h5 data-lang="fr">prd.json programmatique</h5>
|
|
253
|
+
<h5 data-lang="en">Programmatic prd.json</h5>
|
|
213
254
|
<p data-lang="fr">
|
|
214
|
-
Le
|
|
255
|
+
Le fichier <code>prd.json</code> n'est JAMAIS genere par l'LLM. Il est extrait programmatiquement par <code>ss derive-prd</code> a partir du feature.json final, garantissant coherence et tracabilite.
|
|
215
256
|
</p>
|
|
216
257
|
<p data-lang="en">
|
|
217
|
-
The
|
|
258
|
+
The <code>prd.json</code> file is NEVER generated by the LLM. It is extracted programmatically by <code>ss derive-prd</code> from the final feature.json, ensuring consistency and traceability.
|
|
218
259
|
</p>
|
|
219
260
|
</div>
|
|
220
261
|
</div>
|
|
221
262
|
</section>
|
|
222
263
|
|
|
223
264
|
<!-- ============================================ -->
|
|
224
|
-
<!-- ARCHITECTURE
|
|
265
|
+
<!-- ARCHITECTURE (5-LEVEL HIERARCHY) -->
|
|
225
266
|
<!-- ============================================ -->
|
|
226
267
|
<section id="architecture">
|
|
227
268
|
<h2>
|
|
228
|
-
<span data-lang="fr">Architecture
|
|
229
|
-
<span data-lang="en">
|
|
269
|
+
<span data-lang="fr">Architecture (Hierarchie 5-Niveaux)</span>
|
|
270
|
+
<span data-lang="en">Architecture (5-Level Hierarchy)</span>
|
|
230
271
|
</h2>
|
|
231
272
|
|
|
232
273
|
<p data-lang="fr">
|
|
233
|
-
|
|
274
|
+
La v5.0 utilise une hierarchie 5 niveaux pour naviguer les applications multi-modules. Deux fichiers JSON (master application + per-module) garantissent la tracabilite et la coherence cross-module.
|
|
234
275
|
</p>
|
|
235
276
|
<p data-lang="en">
|
|
236
|
-
|
|
277
|
+
v5.0 uses a 5-level hierarchy to navigate multi-module applications. Two JSON files (master application + per-module) ensure traceability and cross-module coherence.
|
|
237
278
|
</p>
|
|
238
279
|
|
|
280
|
+
<h4 data-lang="fr">Structure de repertoires</h4>
|
|
281
|
+
<h4 data-lang="en">Directory Structure</h4>
|
|
282
|
+
|
|
239
283
|
<div class="code-block">
|
|
240
284
|
<button class="copy-btn">Copy</button>
|
|
241
|
-
<pre><code>docs/business/{app}/
|
|
285
|
+
<pre><code>docs/business/{app}/business-analyse/
|
|
242
286
|
├── v1.0/
|
|
243
|
-
│
|
|
244
|
-
|
|
245
|
-
│ └──
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
.
|
|
250
|
-
|
|
251
|
-
└──
|
|
287
|
+
│ ├── feature.json ← MASTER (application-level)
|
|
288
|
+
│ │ includes: cadrage, moduleRegistry, dependencyGraph
|
|
289
|
+
│ └── README.md ← Overview
|
|
290
|
+
│
|
|
291
|
+
├── {module-name}/
|
|
292
|
+
│ └── v1.0/
|
|
293
|
+
│ ├── feature.json ← PER-MODULE (feature-schema.json)
|
|
294
|
+
│ │ includes: specification, validation, handoff
|
|
295
|
+
│ └── README.md
|
|
296
|
+
|
|
297
|
+
└── .ralph/
|
|
298
|
+
├── prd.json ← Extracted programmatically
|
|
299
|
+
├── progress.txt ← Tracker
|
|
300
|
+
└── per-module/
|
|
301
|
+
├── checkout-handoff.json
|
|
302
|
+
├── payment-handoff.json
|
|
303
|
+
└── ...</code></pre>
|
|
252
304
|
</div>
|
|
253
305
|
|
|
254
|
-
<h4 data-lang="fr">
|
|
255
|
-
<h4 data-lang="en">
|
|
306
|
+
<h4 data-lang="fr">Deux schemas JSON</h4>
|
|
307
|
+
<h4 data-lang="en">Two JSON Schemas</h4>
|
|
256
308
|
|
|
257
309
|
<div class="table-container">
|
|
258
310
|
<table class="reference-table">
|
|
259
311
|
<thead>
|
|
260
312
|
<tr>
|
|
313
|
+
<th>Fichier</th>
|
|
261
314
|
<th>
|
|
262
|
-
<span data-lang="fr">
|
|
263
|
-
<span data-lang="en">
|
|
315
|
+
<span data-lang="fr">Niveau</span>
|
|
316
|
+
<span data-lang="en">Level</span>
|
|
264
317
|
</th>
|
|
265
318
|
<th>
|
|
266
|
-
<span data-lang="fr">
|
|
267
|
-
<span data-lang="en">
|
|
319
|
+
<span data-lang="fr">Contenu principal</span>
|
|
320
|
+
<span data-lang="en">Main Content</span>
|
|
268
321
|
</th>
|
|
269
|
-
<th>Status</th>
|
|
270
322
|
<th>
|
|
271
|
-
<span data-lang="fr">
|
|
272
|
-
<span data-lang="en">
|
|
323
|
+
<span data-lang="fr">Ecriture par</span>
|
|
324
|
+
<span data-lang="en">Written by</span>
|
|
273
325
|
</th>
|
|
274
326
|
</tr>
|
|
275
327
|
</thead>
|
|
276
328
|
<tbody>
|
|
277
329
|
<tr>
|
|
278
|
-
<td><
|
|
279
|
-
<td
|
|
280
|
-
<td
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
<td
|
|
285
|
-
<td><code>discovery</code>, <code>analysis</code>, <code>suggestions</code></td>
|
|
286
|
-
<td><span class="badge badge-purple">analysed</span></td>
|
|
287
|
-
<td>Opus</td>
|
|
288
|
-
</tr>
|
|
289
|
-
<tr>
|
|
290
|
-
<td><strong>02 - Specify</strong></td>
|
|
291
|
-
<td><code>specification</code></td>
|
|
292
|
-
<td><span class="badge badge-teal">specified</span></td>
|
|
293
|
-
<td>Sonnet</td>
|
|
294
|
-
</tr>
|
|
295
|
-
<tr>
|
|
296
|
-
<td><strong>03 - Validate</strong></td>
|
|
297
|
-
<td><code>validation</code></td>
|
|
298
|
-
<td><span class="badge badge-green">approved</span></td>
|
|
299
|
-
<td>Haiku</td>
|
|
330
|
+
<td><code>application-schema.json</code></td>
|
|
331
|
+
<td>Master</td>
|
|
332
|
+
<td>
|
|
333
|
+
<span data-lang="fr">cadrage, applicationRoles, moduleRegistry[], dependencyGraph</span>
|
|
334
|
+
<span data-lang="en">framing, applicationRoles, moduleRegistry[], dependencyGraph</span>
|
|
335
|
+
</td>
|
|
336
|
+
<td>Step 01-02</td>
|
|
300
337
|
</tr>
|
|
301
338
|
<tr>
|
|
302
|
-
<td><
|
|
303
|
-
<td
|
|
304
|
-
<td
|
|
305
|
-
|
|
339
|
+
<td><code>feature-schema.json</code></td>
|
|
340
|
+
<td>Per-Module</td>
|
|
341
|
+
<td>
|
|
342
|
+
<span data-lang="fr">specification, validation, handoff (entites, UC, BR, FR, wireframes)</span>
|
|
343
|
+
<span data-lang="en">specification, validation, handoff (entities, UC, BR, FR, wireframes)</span>
|
|
344
|
+
</td>
|
|
345
|
+
<td>Step 03-05</td>
|
|
306
346
|
</tr>
|
|
307
347
|
</tbody>
|
|
308
348
|
</table>
|
|
309
349
|
</div>
|
|
310
350
|
|
|
311
|
-
<h4 data-lang="fr">
|
|
312
|
-
<h4 data-lang="en">
|
|
351
|
+
<h4 data-lang="fr">Coverage Matrix (tracabilite)</h4>
|
|
352
|
+
<h4 data-lang="en">Coverage Matrix (Traceability)</h4>
|
|
353
|
+
|
|
354
|
+
<p data-lang="fr">
|
|
355
|
+
Chaque requirement original du cadrage doit etre trace a au moins 1 use case (UC), business rule (BR), ou functional requirement (FR).
|
|
356
|
+
</p>
|
|
357
|
+
<p data-lang="en">
|
|
358
|
+
Each original requirement from framing must be traced to at least 1 use case (UC), business rule (BR), or functional requirement (FR).
|
|
359
|
+
</p>
|
|
313
360
|
|
|
314
361
|
<div class="code-block">
|
|
315
362
|
<button class="copy-btn">Copy</button>
|
|
316
|
-
<pre><code>{
|
|
317
|
-
"
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
"language": "fr",
|
|
325
|
-
"featureType": "data-centric | integration | ui-centric | workflow | reporting | full-module | micro",
|
|
326
|
-
"steps": {
|
|
327
|
-
"init": { "status": "completed", "startedAt": "...", "completedAt": "..." },
|
|
328
|
-
"analyse": { "status": "in-progress" },
|
|
329
|
-
"specify": { "status": "pending" },
|
|
330
|
-
"validate": { "status": "pending" },
|
|
331
|
-
"handoff": { "status": "pending" }
|
|
363
|
+
<pre><code>"coverageMatrix": {
|
|
364
|
+
"mustHave": [
|
|
365
|
+
{
|
|
366
|
+
"id": "REQ-001",
|
|
367
|
+
"description": "Users can view their order history",
|
|
368
|
+
"category": "core_feature",
|
|
369
|
+
"tracedTo": ["UC-HIST-001", "FR-HIST-001"],
|
|
370
|
+
"covered": true
|
|
332
371
|
}
|
|
333
|
-
|
|
334
|
-
"
|
|
335
|
-
"
|
|
336
|
-
"specification": { "actors": [], "useCases": [], "requirements": [], "permissions": {} },
|
|
337
|
-
"validation": { "completeness": {}, "consistency": {}, "decision": "APPROVED" },
|
|
338
|
-
"handoff": { "fileMapping": {}, "apiEndpoints": [], "testPlan": {} },
|
|
339
|
-
"suggestions": [],
|
|
340
|
-
"changelog": []
|
|
372
|
+
],
|
|
373
|
+
"shouldHave": [...],
|
|
374
|
+
"couldHave": [...]
|
|
341
375
|
}</code></pre>
|
|
342
376
|
</div>
|
|
343
|
-
|
|
344
|
-
<div class="alert alert-info">
|
|
345
|
-
<span class="alert-icon">📚</span>
|
|
346
|
-
<div class="alert-content">
|
|
347
|
-
<h5>Schema JSON</h5>
|
|
348
|
-
<p data-lang="fr">
|
|
349
|
-
Le schema complet est defini dans <code>schemas/feature-schema.json</code> (JSON Schema 2020-12). Toutes les ecritures sont validees par le <code>ba-writer</code> agent.
|
|
350
|
-
</p>
|
|
351
|
-
<p data-lang="en">
|
|
352
|
-
The complete schema is defined in <code>schemas/feature-schema.json</code> (JSON Schema 2020-12). All writes are validated by the <code>ba-writer</code> agent.
|
|
353
|
-
</p>
|
|
354
|
-
</div>
|
|
355
|
-
</div>
|
|
356
377
|
</section>
|
|
357
378
|
|
|
358
379
|
<!-- ============================================ -->
|
|
@@ -368,10 +389,10 @@
|
|
|
368
389
|
</div>
|
|
369
390
|
<div class="command-body">
|
|
370
391
|
<p data-lang="fr">
|
|
371
|
-
Lancez l'analyse metier complete
|
|
392
|
+
Lancez l'analyse metier complete avec le nouveau workflow 6 etapes.
|
|
372
393
|
</p>
|
|
373
394
|
<p data-lang="en">
|
|
374
|
-
Launch the complete business analysis
|
|
395
|
+
Launch the complete business analysis with the new 6-step workflow.
|
|
375
396
|
</p>
|
|
376
397
|
|
|
377
398
|
<div class="code-block">
|
|
@@ -380,18 +401,18 @@
|
|
|
380
401
|
</div>
|
|
381
402
|
|
|
382
403
|
<h4 data-lang="fr">Exemples rapides</h4>
|
|
383
|
-
<h4 data-lang="en">Quick
|
|
404
|
+
<h4 data-lang="en">Quick Examples</h4>
|
|
384
405
|
|
|
385
406
|
<div class="code-block">
|
|
386
407
|
<button class="copy-btn">Copy</button>
|
|
387
|
-
<pre><code># Nouvelle
|
|
388
|
-
/business-analyse Order management
|
|
408
|
+
<pre><code># Nouvelle application (workflow complet 6 etapes)
|
|
409
|
+
/business-analyse Order management system
|
|
389
410
|
|
|
390
|
-
# Question sur une
|
|
391
|
-
/business-analyse -q FEAT-001 "What
|
|
411
|
+
# Question sur une application ou module
|
|
412
|
+
/business-analyse -q FEAT-001 "What are the permission hierarchy?"
|
|
392
413
|
|
|
393
|
-
# Refactoring (delta sur
|
|
394
|
-
/business-analyse -r FEAT-001 "Add
|
|
414
|
+
# Refactoring (delta sur application existante)
|
|
415
|
+
/business-analyse -r FEAT-001 "Add return management module"
|
|
395
416
|
|
|
396
417
|
# Micro-feature (analyse minimale)
|
|
397
418
|
/business-analyse -m Add a status field to orders</code></pre>
|
|
@@ -419,65 +440,43 @@
|
|
|
419
440
|
</th>
|
|
420
441
|
<th>Flag</th>
|
|
421
442
|
<th>
|
|
422
|
-
<span data-lang="fr">
|
|
423
|
-
<span data-lang="en">
|
|
443
|
+
<span data-lang="fr">Mode</span>
|
|
444
|
+
<span data-lang="en">Mode</span>
|
|
424
445
|
</th>
|
|
425
446
|
<th>
|
|
426
447
|
<span data-lang="fr">Parcours</span>
|
|
427
448
|
<span data-lang="en">Flow</span>
|
|
428
449
|
</th>
|
|
429
|
-
<th>
|
|
430
|
-
<span data-lang="fr">Sortie</span>
|
|
431
|
-
<span data-lang="en">Output</span>
|
|
432
|
-
</th>
|
|
433
450
|
</tr>
|
|
434
451
|
</thead>
|
|
435
452
|
<tbody>
|
|
436
453
|
<tr>
|
|
437
|
-
<td><strong data-lang="fr">Nouvelle
|
|
454
|
+
<td><strong data-lang="fr">Nouvelle application</strong><strong data-lang="en">New application</strong></td>
|
|
438
455
|
<td><span data-lang="fr">(aucun)</span><span data-lang="en">(none)</span></td>
|
|
439
|
-
<td><
|
|
440
|
-
<td>00
|
|
441
|
-
<td><code>feature.json</code> v1.0 + <code>prd.json</code></td>
|
|
456
|
+
<td><span data-lang="fr">application</span><span data-lang="en">application</span></td>
|
|
457
|
+
<td>00 → 01 → 02 → 03[*N modules] → 04 → 05</td>
|
|
442
458
|
</tr>
|
|
443
459
|
<tr>
|
|
444
460
|
<td><strong>Question</strong></td>
|
|
445
461
|
<td><code>-q</code></td>
|
|
446
|
-
<td><
|
|
447
|
-
<td>
|
|
448
|
-
<td>
|
|
449
|
-
<span data-lang="fr">Reponse textuelle</span>
|
|
450
|
-
<span data-lang="en">Text answer</span>
|
|
451
|
-
</td>
|
|
462
|
+
<td><span data-lang="fr">lecture seule</span><span data-lang="en">read-only</span></td>
|
|
463
|
+
<td>ba-reader.findFeature() → ba-reader.readSection() → EXIT</td>
|
|
452
464
|
</tr>
|
|
453
465
|
<tr>
|
|
454
466
|
<td><strong>Refactoring</strong></td>
|
|
455
467
|
<td><code>-r</code></td>
|
|
456
|
-
<td><
|
|
457
|
-
<td>00 (delta)
|
|
458
|
-
<td><code>feature.json</code> v1.1 + <code>prd.json</code></td>
|
|
468
|
+
<td><span data-lang="fr">delta application</span><span data-lang="en">delta application</span></td>
|
|
469
|
+
<td>00 (delta) → 01 → 02 → 03[*N modules] → 04 → 05</td>
|
|
459
470
|
</tr>
|
|
460
471
|
<tr>
|
|
461
472
|
<td><strong>Micro-feature</strong></td>
|
|
462
473
|
<td><code>-m</code></td>
|
|
463
|
-
<td><
|
|
464
|
-
<td>00
|
|
465
|
-
<td><code>feature.json</code> v1.0 (micro)</td>
|
|
474
|
+
<td><span data-lang="fr">module simple</span><span data-lang="en">simple module</span></td>
|
|
475
|
+
<td>00 (micro) → 01 (lite) → 02 (skip) → 03 (minimal) → 04 (auto) → 05</td>
|
|
466
476
|
</tr>
|
|
467
477
|
</tbody>
|
|
468
478
|
</table>
|
|
469
479
|
</div>
|
|
470
|
-
|
|
471
|
-
<h4 data-lang="fr">Routage des cas d'usage</h4>
|
|
472
|
-
<h4 data-lang="en">Use case routing</h4>
|
|
473
|
-
|
|
474
|
-
<div class="code-block">
|
|
475
|
-
<button class="copy-btn">Copy</button>
|
|
476
|
-
<pre><code>question (-q) → ba-reader.answerQuestion() → EXIT
|
|
477
|
-
refactor (-r) → ba-writer.createVersion() → step-01 (delta) → ... → step-04
|
|
478
|
-
micro (-m) → step-00 (minimal) → step-01 (micro) → ... → step-04
|
|
479
|
-
default → step-00 → step-01 (full) → ... → step-04</code></pre>
|
|
480
|
-
</div>
|
|
481
480
|
</section>
|
|
482
481
|
|
|
483
482
|
<!-- ============================================ -->
|
|
@@ -491,61 +490,56 @@ default → step-00 → step-01 (full) →
|
|
|
491
490
|
<thead>
|
|
492
491
|
<tr>
|
|
493
492
|
<th>Flag</th>
|
|
494
|
-
<th>Long</th>
|
|
495
493
|
<th>
|
|
496
494
|
<span data-lang="fr">Effet</span>
|
|
497
495
|
<span data-lang="en">Effect</span>
|
|
498
496
|
</th>
|
|
497
|
+
<th>
|
|
498
|
+
<span data-lang="fr">Par defaut</span>
|
|
499
|
+
<span data-lang="en">Default</span>
|
|
500
|
+
</th>
|
|
499
501
|
</tr>
|
|
500
502
|
</thead>
|
|
501
503
|
<tbody>
|
|
502
504
|
<tr>
|
|
503
|
-
<td><code>-
|
|
504
|
-
<td><code>--auto</code></td>
|
|
505
|
+
<td><code>-q, --question</code></td>
|
|
505
506
|
<td>
|
|
506
|
-
<span data-lang="fr">Mode
|
|
507
|
-
<span data-lang="en">
|
|
507
|
+
<span data-lang="fr">Mode lecture seule (ba-reader)</span>
|
|
508
|
+
<span data-lang="en">Read-only mode (ba-reader)</span>
|
|
508
509
|
</td>
|
|
510
|
+
<td>false</td>
|
|
509
511
|
</tr>
|
|
510
512
|
<tr>
|
|
511
|
-
<td><code>-
|
|
512
|
-
<td><code>--economy</code></td>
|
|
513
|
+
<td><code>-r, --refactor</code></td>
|
|
513
514
|
<td>
|
|
514
|
-
<span data-lang="fr">
|
|
515
|
-
<span data-lang="en">
|
|
515
|
+
<span data-lang="fr">Creer version delta (v1.1)</span>
|
|
516
|
+
<span data-lang="en">Create delta version (v1.1)</span>
|
|
516
517
|
</td>
|
|
518
|
+
<td>false</td>
|
|
517
519
|
</tr>
|
|
518
520
|
<tr>
|
|
519
|
-
<td><code>-
|
|
520
|
-
<td><code>--question</code></td>
|
|
521
|
+
<td><code>-m, --micro</code></td>
|
|
521
522
|
<td>
|
|
522
|
-
<span data-lang="fr">
|
|
523
|
-
<span data-lang="en">
|
|
523
|
+
<span data-lang="fr">Analyse minimale pour micro-feature</span>
|
|
524
|
+
<span data-lang="en">Minimal analysis for micro-feature</span>
|
|
524
525
|
</td>
|
|
526
|
+
<td>false</td>
|
|
525
527
|
</tr>
|
|
526
528
|
<tr>
|
|
527
|
-
<td><code
|
|
528
|
-
<td><code>--refactor</code></td>
|
|
529
|
+
<td><code>--economy-mode</code></td>
|
|
529
530
|
<td>
|
|
530
|
-
<span data-lang="fr">
|
|
531
|
-
<span data-lang="en">
|
|
531
|
+
<span data-lang="fr">Haiku partout, moins de context</span>
|
|
532
|
+
<span data-lang="en">Haiku everywhere, less context</span>
|
|
532
533
|
</td>
|
|
534
|
+
<td>false</td>
|
|
533
535
|
</tr>
|
|
534
536
|
<tr>
|
|
535
|
-
<td><code
|
|
536
|
-
<td><code>--micro</code></td>
|
|
537
|
+
<td><code>--mcp-available</code></td>
|
|
537
538
|
<td>
|
|
538
|
-
<span data-lang="fr">
|
|
539
|
-
<span data-lang="en">
|
|
540
|
-
</td>
|
|
541
|
-
</tr>
|
|
542
|
-
<tr>
|
|
543
|
-
<td><code>-i</code></td>
|
|
544
|
-
<td><code>--interactive</code></td>
|
|
545
|
-
<td>
|
|
546
|
-
<span data-lang="fr">Mode interactif : configuration guidee des flags</span>
|
|
547
|
-
<span data-lang="en">Interactive mode: guided flag configuration</span>
|
|
539
|
+
<span data-lang="fr">Valider avec SmartStack.mcp</span>
|
|
540
|
+
<span data-lang="en">Validate with SmartStack.mcp</span>
|
|
548
541
|
</td>
|
|
542
|
+
<td>false</td>
|
|
549
543
|
</tr>
|
|
550
544
|
</tbody>
|
|
551
545
|
</table>
|
|
@@ -553,1403 +547,739 @@ default → step-00 → step-01 (full) →
|
|
|
553
547
|
</section>
|
|
554
548
|
|
|
555
549
|
<!-- ============================================ -->
|
|
556
|
-
<!-- WORKFLOW
|
|
550
|
+
<!-- WORKFLOW (6 STEPS) -->
|
|
557
551
|
<!-- ============================================ -->
|
|
558
552
|
<section id="workflow">
|
|
559
|
-
<h2>Workflow</h2>
|
|
560
|
-
|
|
561
|
-
<
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
</linearGradient>
|
|
568
|
-
<linearGradient id="analyseGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
569
|
-
<stop offset="0%" style="stop-color:#3b82f6"/>
|
|
570
|
-
<stop offset="100%" style="stop-color:#1d4ed8"/>
|
|
571
|
-
</linearGradient>
|
|
572
|
-
<linearGradient id="specifyGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
573
|
-
<stop offset="0%" style="stop-color:#8b5cf6"/>
|
|
574
|
-
<stop offset="100%" style="stop-color:#6d28d9"/>
|
|
575
|
-
</linearGradient>
|
|
576
|
-
<linearGradient id="validateGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
577
|
-
<stop offset="0%" style="stop-color:#22c55e"/>
|
|
578
|
-
<stop offset="100%" style="stop-color:#15803d"/>
|
|
579
|
-
</linearGradient>
|
|
580
|
-
<linearGradient id="handoffGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
581
|
-
<stop offset="0%" style="stop-color:#f97316"/>
|
|
582
|
-
<stop offset="100%" style="stop-color:#c2410c"/>
|
|
583
|
-
</linearGradient>
|
|
584
|
-
<linearGradient id="jsonGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
585
|
-
<stop offset="0%" style="stop-color:#0d9488"/>
|
|
586
|
-
<stop offset="100%" style="stop-color:#0f766e"/>
|
|
587
|
-
</linearGradient>
|
|
588
|
-
<filter id="glow3" x="-20%" y="-20%" width="140%" height="140%">
|
|
589
|
-
<feGaussianBlur stdDeviation="2" result="coloredBlur"/>
|
|
590
|
-
<feMerge>
|
|
591
|
-
<feMergeNode in="coloredBlur"/>
|
|
592
|
-
<feMergeNode in="SourceGraphic"/>
|
|
593
|
-
</feMerge>
|
|
594
|
-
</filter>
|
|
595
|
-
</defs>
|
|
596
|
-
|
|
597
|
-
<!-- Background label: DISCOVERY -->
|
|
598
|
-
<rect x="30" y="15" width="290" height="25" rx="4" fill="rgba(59,130,246,0.15)" stroke="rgba(59,130,246,0.3)" stroke-width="1"/>
|
|
599
|
-
<text x="175" y="32" text-anchor="middle" fill="#60a5fa" font-size="11" font-weight="600">DISCOVERY</text>
|
|
600
|
-
|
|
601
|
-
<!-- Background label: SPECIFICATION -->
|
|
602
|
-
<rect x="345" y="15" width="430" height="25" rx="4" fill="rgba(139,92,246,0.15)" stroke="rgba(139,92,246,0.3)" stroke-width="1"/>
|
|
603
|
-
<text x="560" y="32" text-anchor="middle" fill="#a78bfa" font-size="11" font-weight="600">SPECIFICATION & HANDOFF</text>
|
|
604
|
-
|
|
605
|
-
<!-- Step 00: Init -->
|
|
606
|
-
<g transform="translate(30, 60)" filter="url(#glow3)">
|
|
607
|
-
<rect x="0" y="0" width="130" height="80" rx="10" fill="url(#initGrad)"/>
|
|
608
|
-
<text x="65" y="25" text-anchor="middle" fill="white" font-size="10" font-weight="700">STEP 00</text>
|
|
609
|
-
<text x="65" y="42" text-anchor="middle" fill="white" font-size="13" font-weight="600">Init</text>
|
|
610
|
-
<text x="65" y="60" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Parse flags</text>
|
|
611
|
-
<text x="65" y="72" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Create feature.json</text>
|
|
612
|
-
</g>
|
|
613
|
-
|
|
614
|
-
<!-- Arrow 00 → 01 -->
|
|
615
|
-
<line x1="165" y1="100" x2="190" y2="100" stroke="#94a3b8" stroke-width="2"/>
|
|
616
|
-
<polygon points="190,95 200,100 190,105" fill="#94a3b8"/>
|
|
617
|
-
|
|
618
|
-
<!-- Step 01: Analyse -->
|
|
619
|
-
<g transform="translate(200, 60)" filter="url(#glow3)">
|
|
620
|
-
<rect x="0" y="0" width="130" height="80" rx="10" fill="url(#analyseGrad)"/>
|
|
621
|
-
<text x="65" y="25" text-anchor="middle" fill="white" font-size="10" font-weight="700">STEP 01</text>
|
|
622
|
-
<text x="65" y="42" text-anchor="middle" fill="white" font-size="13" font-weight="600">Analyse</text>
|
|
623
|
-
<text x="65" y="60" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Questionnaire</text>
|
|
624
|
-
<text x="65" y="72" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Business rules</text>
|
|
625
|
-
</g>
|
|
626
|
-
|
|
627
|
-
<!-- Arrow 01 → 02 -->
|
|
628
|
-
<line x1="335" y1="100" x2="360" y2="100" stroke="#94a3b8" stroke-width="2"/>
|
|
629
|
-
<polygon points="360,95 370,100 360,105" fill="#94a3b8"/>
|
|
630
|
-
|
|
631
|
-
<!-- Step 02: Specify -->
|
|
632
|
-
<g transform="translate(370, 60)" filter="url(#glow3)">
|
|
633
|
-
<rect x="0" y="0" width="130" height="80" rx="10" fill="url(#specifyGrad)"/>
|
|
634
|
-
<text x="65" y="25" text-anchor="middle" fill="white" font-size="10" font-weight="700">STEP 02</text>
|
|
635
|
-
<text x="65" y="42" text-anchor="middle" fill="white" font-size="13" font-weight="600">Specify</text>
|
|
636
|
-
<text x="65" y="60" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Use cases, Specs</text>
|
|
637
|
-
<text x="65" y="72" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Permissions, Gherkin</text>
|
|
638
|
-
</g>
|
|
639
|
-
|
|
640
|
-
<!-- Arrow 02 → 03 -->
|
|
641
|
-
<line x1="505" y1="100" x2="530" y2="100" stroke="#94a3b8" stroke-width="2"/>
|
|
642
|
-
<polygon points="530,95 540,100 530,105" fill="#94a3b8"/>
|
|
643
|
-
|
|
644
|
-
<!-- Step 03: Validate -->
|
|
645
|
-
<g transform="translate(540, 60)" filter="url(#glow3)">
|
|
646
|
-
<rect x="0" y="0" width="130" height="80" rx="10" fill="url(#validateGrad)"/>
|
|
647
|
-
<text x="65" y="25" text-anchor="middle" fill="white" font-size="10" font-weight="700">STEP 03</text>
|
|
648
|
-
<text x="65" y="42" text-anchor="middle" fill="white" font-size="13" font-weight="600">Validate</text>
|
|
649
|
-
<text x="65" y="60" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Quality gate</text>
|
|
650
|
-
<text x="65" y="72" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">APPROVED / REJECTED</text>
|
|
651
|
-
</g>
|
|
652
|
-
|
|
653
|
-
<!-- Arrow 03 → 04 -->
|
|
654
|
-
<line x1="675" y1="100" x2="700" y2="100" stroke="#94a3b8" stroke-width="2"/>
|
|
655
|
-
<polygon points="700,95 710,100 700,105" fill="#94a3b8"/>
|
|
656
|
-
|
|
657
|
-
<!-- Step 04: Handoff -->
|
|
658
|
-
<g transform="translate(640, 60)" filter="url(#glow3)">
|
|
659
|
-
<rect x="65" y="0" width="130" height="80" rx="10" fill="url(#handoffGrad)"/>
|
|
660
|
-
<text x="130" y="25" text-anchor="middle" fill="white" font-size="10" font-weight="700">STEP 04</text>
|
|
661
|
-
<text x="130" y="42" text-anchor="middle" fill="white" font-size="13" font-weight="600">Handoff</text>
|
|
662
|
-
<text x="130" y="60" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">Dev brief</text>
|
|
663
|
-
<text x="130" y="72" text-anchor="middle" fill="rgba(255,255,255,0.6)" font-size="9">prd.json + progress</text>
|
|
664
|
-
</g>
|
|
665
|
-
|
|
666
|
-
<!-- Central: feature.json -->
|
|
667
|
-
<g transform="translate(260, 190)">
|
|
668
|
-
<rect x="0" y="0" width="280" height="60" rx="10" fill="url(#jsonGrad)" stroke="#2dd4bf" stroke-width="2"/>
|
|
669
|
-
<text x="140" y="25" text-anchor="middle" fill="white" font-size="14" font-weight="700">feature.json</text>
|
|
670
|
-
<text x="140" y="42" text-anchor="middle" fill="rgba(255,255,255,0.7)" font-size="10">Single source of truth - progressively enriched</text>
|
|
671
|
-
</g>
|
|
672
|
-
|
|
673
|
-
<!-- Arrows from steps to feature.json -->
|
|
674
|
-
<line x1="95" y1="145" x2="300" y2="190" stroke="#2dd4bf" stroke-width="1.5" stroke-dasharray="4,3" opacity="0.6"/>
|
|
675
|
-
<line x1="265" y1="145" x2="370" y2="190" stroke="#2dd4bf" stroke-width="1.5" stroke-dasharray="4,3" opacity="0.6"/>
|
|
676
|
-
<line x1="435" y1="145" x2="430" y2="190" stroke="#2dd4bf" stroke-width="1.5" stroke-dasharray="4,3" opacity="0.6"/>
|
|
677
|
-
<line x1="605" y1="145" x2="490" y2="190" stroke="#2dd4bf" stroke-width="1.5" stroke-dasharray="4,3" opacity="0.6"/>
|
|
678
|
-
<line x1="770" y1="145" x2="530" y2="190" stroke="#2dd4bf" stroke-width="1.5" stroke-dasharray="4,3" opacity="0.6"/>
|
|
679
|
-
|
|
680
|
-
<!-- Rejection loop from Validate back to Specify -->
|
|
681
|
-
<path d="M 570 145 Q 570 170 500 170 Q 435 170 435 145" fill="none" stroke="#ef4444" stroke-width="1.5" stroke-dasharray="5,3"/>
|
|
682
|
-
<polygon points="432,150 435,140 438,150" fill="#ef4444"/>
|
|
683
|
-
<text x="505" y="166" text-anchor="middle" fill="#ef4444" font-size="9" font-weight="500">REJECTED</text>
|
|
684
|
-
|
|
685
|
-
<!-- Legend -->
|
|
686
|
-
<g transform="translate(30, 280)">
|
|
687
|
-
<rect x="0" y="0" width="760" height="55" rx="8" fill="rgba(30,41,59,0.8)" stroke="#334155" stroke-width="1"/>
|
|
688
|
-
<text x="20" y="18" fill="#94a3b8" font-size="10" font-weight="600">LEGEND:</text>
|
|
689
|
-
|
|
690
|
-
<rect x="20" y="28" width="12" height="12" rx="3" fill="url(#initGrad)"/>
|
|
691
|
-
<text x="38" y="39" fill="#94a3b8" font-size="9">Haiku (fast)</text>
|
|
692
|
-
|
|
693
|
-
<rect x="130" y="28" width="12" height="12" rx="3" fill="url(#analyseGrad)"/>
|
|
694
|
-
<text x="148" y="39" fill="#94a3b8" font-size="9">Opus (ULTRATHINK)</text>
|
|
695
|
-
|
|
696
|
-
<rect x="280" y="28" width="12" height="12" rx="3" fill="url(#specifyGrad)"/>
|
|
697
|
-
<text x="298" y="39" fill="#94a3b8" font-size="9">Sonnet (detail)</text>
|
|
698
|
-
|
|
699
|
-
<rect x="410" y="28" width="12" height="12" rx="3" fill="url(#validateGrad)"/>
|
|
700
|
-
<text x="428" y="39" fill="#94a3b8" font-size="9">Haiku (binary gate)</text>
|
|
701
|
-
|
|
702
|
-
<rect x="560" y="28" width="12" height="12" rx="3" fill="url(#handoffGrad)"/>
|
|
703
|
-
<text x="578" y="39" fill="#94a3b8" font-size="9">Opus (zero-ambiguity)</text>
|
|
704
|
-
</g>
|
|
705
|
-
</svg>
|
|
706
|
-
</div>
|
|
553
|
+
<h2>Workflow (6 Etapes)</h2>
|
|
554
|
+
|
|
555
|
+
<p data-lang="fr">
|
|
556
|
+
Le workflow v5.0 combine decouverte, decomposition, specification iterative et consolidation cross-module. Chaque etape enrichit progressivement le feature.json.
|
|
557
|
+
</p>
|
|
558
|
+
<p data-lang="en">
|
|
559
|
+
The v5.0 workflow combines discovery, decomposition, iterative specification and cross-module consolidation. Each step progressively enriches the feature.json.
|
|
560
|
+
</p>
|
|
707
561
|
</section>
|
|
708
562
|
|
|
709
563
|
<!-- ============================================ -->
|
|
710
|
-
<!-- STEP 00
|
|
564
|
+
<!-- STEP 00 - INIT -->
|
|
711
565
|
<!-- ============================================ -->
|
|
712
566
|
<section id="step-00">
|
|
713
|
-
<
|
|
714
|
-
|
|
715
|
-
<div class="command-card">
|
|
716
|
-
<div class="command-header">
|
|
717
|
-
<code class="command-name">step-00-init</code>
|
|
718
|
-
<span class="badge badge-blue">Haiku</span>
|
|
719
|
-
<span class="badge badge-teal">
|
|
720
|
-
<span data-lang="fr">Rapide</span>
|
|
721
|
-
<span data-lang="en">Fast</span>
|
|
722
|
-
</span>
|
|
723
|
-
</div>
|
|
724
|
-
<div class="command-body">
|
|
725
|
-
<p data-lang="fr">
|
|
726
|
-
<strong>Mission :</strong> Parser les flags, router vers le bon cas d'usage, creer le <code>feature.json</code> initial.
|
|
727
|
-
</p>
|
|
728
|
-
<p data-lang="en">
|
|
729
|
-
<strong>Mission:</strong> Parse flags, route to the correct use case, create the initial <code>feature.json</code>.
|
|
730
|
-
</p>
|
|
567
|
+
<h3>00. Init</h3>
|
|
731
568
|
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
<li data-lang="fr">Router vers le handler (question / refactor / micro / new)</li>
|
|
739
|
-
<li data-lang="en">Route to handler (question / refactor / micro / new)</li>
|
|
740
|
-
|
|
741
|
-
<li data-lang="fr">Health check MCP (non-bloquant)</li>
|
|
742
|
-
<li data-lang="en">MCP health check (non-blocking)</li>
|
|
743
|
-
|
|
744
|
-
<li data-lang="fr">Determiner application et module cible</li>
|
|
745
|
-
<li data-lang="en">Determine target application and module</li>
|
|
746
|
-
|
|
747
|
-
<li data-lang="fr">Generer l'ID feature (<code>FEAT-NNN</code>)</li>
|
|
748
|
-
<li data-lang="en">Generate feature ID (<code>FEAT-NNN</code>)</li>
|
|
749
|
-
|
|
750
|
-
<li data-lang="fr">Creer le dossier de sortie et le <code>feature.json</code> initial via <code>ba-writer</code></li>
|
|
751
|
-
<li data-lang="en">Create output directory and initial <code>feature.json</code> via <code>ba-writer</code></li>
|
|
752
|
-
|
|
753
|
-
<li data-lang="fr">Mettre a jour <code>.business-analyse/config.json</code></li>
|
|
754
|
-
<li data-lang="en">Update <code>.business-analyse/config.json</code></li>
|
|
755
|
-
</ol>
|
|
756
|
-
|
|
757
|
-
<div class="alert alert-info">
|
|
758
|
-
<span class="alert-icon">🔄</span>
|
|
759
|
-
<div class="alert-content">
|
|
760
|
-
<h5 data-lang="fr">Mode Question (-q)</h5>
|
|
761
|
-
<h5 data-lang="en">Question Mode (-q)</h5>
|
|
762
|
-
<p data-lang="fr">
|
|
763
|
-
Le mode question charge le <code>ba-reader</code>, repond a la question depuis le <code>feature.json</code> existant, puis termine immediatement (EXIT). Aucun fichier n'est modifie.
|
|
764
|
-
</p>
|
|
765
|
-
<p data-lang="en">
|
|
766
|
-
Question mode loads the <code>ba-reader</code>, answers the question from the existing <code>feature.json</code>, then exits immediately (EXIT). No files are modified.
|
|
767
|
-
</p>
|
|
768
|
-
</div>
|
|
769
|
-
</div>
|
|
569
|
+
<p data-lang="fr">
|
|
570
|
+
Detecte le mode d'execution (application vs module), cree le fichier feature.json initial avec metadata et configuration.
|
|
571
|
+
</p>
|
|
572
|
+
<p data-lang="en">
|
|
573
|
+
Detects execution mode (application vs module), creates initial feature.json with metadata and configuration.
|
|
574
|
+
</p>
|
|
770
575
|
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
576
|
+
<h4 data-lang="fr">Actions</h4>
|
|
577
|
+
<h4 data-lang="en">Actions</h4>
|
|
578
|
+
<ul>
|
|
579
|
+
<li data-lang="fr">Lire config de projet + detecter contexte</li>
|
|
580
|
+
<li data-lang="en">Read project config + detect context</li>
|
|
581
|
+
<li data-lang="fr">Mode application : creer master feature.json avec schema application-schema.json</li>
|
|
582
|
+
<li data-lang="en">Application mode: create master feature.json with application-schema.json</li>
|
|
583
|
+
<li data-lang="fr">Mode module : creer feature.json single avec schema feature-schema.json</li>
|
|
584
|
+
<li data-lang="en">Module mode: create single feature.json with feature-schema.json</li>
|
|
585
|
+
<li data-lang="fr">Initialiser metadata et premiere section</li>
|
|
586
|
+
<li data-lang="en">Initialize metadata and first section</li>
|
|
587
|
+
</ul>
|
|
775
588
|
</section>
|
|
776
589
|
|
|
777
590
|
<!-- ============================================ -->
|
|
778
|
-
<!-- STEP 01
|
|
591
|
+
<!-- STEP 01 - CADRAGE -->
|
|
779
592
|
<!-- ============================================ -->
|
|
780
593
|
<section id="step-01">
|
|
781
|
-
<
|
|
594
|
+
<h3>01. Cadrage</h3>
|
|
782
595
|
|
|
783
|
-
<
|
|
784
|
-
<
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
596
|
+
<p data-lang="fr">
|
|
597
|
+
Analyse applicative au niveau master : probleme, stakeholders, scope, roles, risques. Definit les <code>applicationRoles</code> (admin, manager, contributor, viewer).
|
|
598
|
+
</p>
|
|
599
|
+
<p data-lang="en">
|
|
600
|
+
Application-level framing: problem, stakeholders, scope, roles, risks. Defines <code>applicationRoles</code> (admin, manager, contributor, viewer).
|
|
601
|
+
</p>
|
|
602
|
+
|
|
603
|
+
<h4 data-lang="fr">Actions</h4>
|
|
604
|
+
<h4 data-lang="en">Actions</h4>
|
|
605
|
+
<ul>
|
|
606
|
+
<li data-lang="fr">AskUserQuestion (max 4 par batch) pour decouvrir besoin metier</li>
|
|
607
|
+
<li data-lang="en">AskUserQuestion (max 4 per batch) to discover business need</li>
|
|
608
|
+
<li data-lang="fr">Definir 4-tier applicationRoles : admin, manager, contributor, viewer</li>
|
|
609
|
+
<li data-lang="en">Define 4-tier applicationRoles: admin, manager, contributor, viewer</li>
|
|
610
|
+
<li data-lang="fr">Suggestions proactives depuis catalog</li>
|
|
611
|
+
<li data-lang="en">Proactive suggestions from catalog</li>
|
|
612
|
+
<li data-lang="fr">Analyse des risques (securite, performance, complexite)</li>
|
|
613
|
+
<li data-lang="en">Risk analysis (security, performance, complexity)</li>
|
|
614
|
+
<li data-lang="fr">Creer COVERAGE MATRIX (obligatoire) : trace chaque requirement a une UC/BR/FR</li>
|
|
615
|
+
<li data-lang="en">Create COVERAGE MATRIX (mandatory): trace each requirement to a UC/BR/FR</li>
|
|
616
|
+
</ul>
|
|
617
|
+
|
|
618
|
+
<div class="alert alert-warning">
|
|
619
|
+
<span class="alert-icon">⚠</span>
|
|
620
|
+
<div class="alert-content">
|
|
621
|
+
<h5 data-lang="fr">Coverage Matrix obligatoire</h5>
|
|
622
|
+
<h5 data-lang="en">Coverage Matrix Mandatory</h5>
|
|
790
623
|
<p data-lang="fr">
|
|
791
|
-
|
|
624
|
+
Chaque requirement doit avoir at least une trace cross-reference. La matrice est validee a l'etape 04 (Consolidation).
|
|
792
625
|
</p>
|
|
793
626
|
<p data-lang="en">
|
|
794
|
-
|
|
627
|
+
Each requirement must have at least one trace cross-reference. Matrix is validated in step 04 (Consolidation).
|
|
795
628
|
</p>
|
|
796
|
-
|
|
797
|
-
<h4 data-lang="fr">Detection du type de feature</h4>
|
|
798
|
-
<h4 data-lang="en">Feature type detection</h4>
|
|
799
|
-
|
|
800
|
-
<div class="table-container">
|
|
801
|
-
<table class="reference-table">
|
|
802
|
-
<thead>
|
|
803
|
-
<tr>
|
|
804
|
-
<th>Type</th>
|
|
805
|
-
<th>
|
|
806
|
-
<span data-lang="fr">Mots-cles</span>
|
|
807
|
-
<span data-lang="en">Keywords</span>
|
|
808
|
-
</th>
|
|
809
|
-
<th>
|
|
810
|
-
<span data-lang="fr">Categories questionnaire</span>
|
|
811
|
-
<span data-lang="en">Questionnaire categories</span>
|
|
812
|
-
</th>
|
|
813
|
-
</tr>
|
|
814
|
-
</thead>
|
|
815
|
-
<tbody>
|
|
816
|
-
<tr>
|
|
817
|
-
<td><strong>Data-centric</strong></td>
|
|
818
|
-
<td>management, CRUD, entity</td>
|
|
819
|
-
<td>01, 02, 03, 04, 06, 11</td>
|
|
820
|
-
</tr>
|
|
821
|
-
<tr>
|
|
822
|
-
<td><strong>Integration</strong></td>
|
|
823
|
-
<td>API, sync, import/export</td>
|
|
824
|
-
<td>01, 02, 03, 05, 06</td>
|
|
825
|
-
</tr>
|
|
826
|
-
<tr>
|
|
827
|
-
<td><strong>UI-centric</strong></td>
|
|
828
|
-
<td>screen, form, dashboard</td>
|
|
829
|
-
<td>01, 02, 03, 06, 07</td>
|
|
830
|
-
</tr>
|
|
831
|
-
<tr>
|
|
832
|
-
<td><strong>Workflow</strong></td>
|
|
833
|
-
<td>process, validation, steps</td>
|
|
834
|
-
<td>01, 02, 03, 06, 09</td>
|
|
835
|
-
</tr>
|
|
836
|
-
<tr>
|
|
837
|
-
<td><strong>Reporting</strong></td>
|
|
838
|
-
<td>report, export, KPI</td>
|
|
839
|
-
<td>01, 02, 03, 04, 08</td>
|
|
840
|
-
</tr>
|
|
841
|
-
<tr>
|
|
842
|
-
<td><strong>Full-module</strong></td>
|
|
843
|
-
<td>
|
|
844
|
-
<span data-lang="fr">(complet)</span>
|
|
845
|
-
<span data-lang="en">(comprehensive)</span>
|
|
846
|
-
</td>
|
|
847
|
-
<td>
|
|
848
|
-
<span data-lang="fr">Toutes (01-13)</span>
|
|
849
|
-
<span data-lang="en">All (01-13)</span>
|
|
850
|
-
</td>
|
|
851
|
-
</tr>
|
|
852
|
-
<tr>
|
|
853
|
-
<td><strong>Micro</strong></td>
|
|
854
|
-
<td><code>-m</code> flag</td>
|
|
855
|
-
<td>01, 02, 03, 06</td>
|
|
856
|
-
</tr>
|
|
857
|
-
</tbody>
|
|
858
|
-
</table>
|
|
859
|
-
</div>
|
|
860
|
-
|
|
861
|
-
<h4 data-lang="fr">Pre-recherche codebase (3 phases)</h4>
|
|
862
|
-
<h4 data-lang="en">Codebase pre-research (3 phases)</h4>
|
|
863
|
-
|
|
864
|
-
<ol>
|
|
865
|
-
<li data-lang="fr"><strong>Phase 3a :</strong> Appels MCP (<code>analyze_extension_points</code>, <code>api_docs</code>, <code>validate_conventions</code>)</li>
|
|
866
|
-
<li data-lang="en"><strong>Phase 3a:</strong> MCP calls (<code>analyze_extension_points</code>, <code>api_docs</code>, <code>validate_conventions</code>)</li>
|
|
867
|
-
|
|
868
|
-
<li data-lang="fr"><strong>Phase 3b :</strong> Agents paralleles (entites, integrations, patterns UI) — desactive en mode <code>-e</code></li>
|
|
869
|
-
<li data-lang="en"><strong>Phase 3b:</strong> Parallel agents (entities, integrations, UI patterns) — disabled in <code>-e</code> mode</li>
|
|
870
|
-
|
|
871
|
-
<li data-lang="fr"><strong>Phase 3c :</strong> Mode economique (<code>-e</code>) — Glob/Grep directement</li>
|
|
872
|
-
<li data-lang="en"><strong>Phase 3c:</strong> Economy mode (<code>-e</code>) — Glob/Grep directly</li>
|
|
873
|
-
</ol>
|
|
874
|
-
|
|
875
|
-
<h4 data-lang="fr">5 techniques d'elicitation</h4>
|
|
876
|
-
<h4 data-lang="en">5 elicitation techniques</h4>
|
|
877
|
-
|
|
878
|
-
<div class="table-container">
|
|
879
|
-
<table class="reference-table">
|
|
880
|
-
<thead>
|
|
881
|
-
<tr>
|
|
882
|
-
<th>#</th>
|
|
883
|
-
<th>Technique</th>
|
|
884
|
-
<th>
|
|
885
|
-
<span data-lang="fr">Objectif</span>
|
|
886
|
-
<span data-lang="en">Purpose</span>
|
|
887
|
-
</th>
|
|
888
|
-
</tr>
|
|
889
|
-
</thead>
|
|
890
|
-
<tbody>
|
|
891
|
-
<tr>
|
|
892
|
-
<td>1</td>
|
|
893
|
-
<td>Solution → Problem</td>
|
|
894
|
-
<td>
|
|
895
|
-
<span data-lang="fr">Recadrer si l'utilisateur decrit une solution</span>
|
|
896
|
-
<span data-lang="en">Reframe if user describes a solution</span>
|
|
897
|
-
</td>
|
|
898
|
-
</tr>
|
|
899
|
-
<tr>
|
|
900
|
-
<td>2</td>
|
|
901
|
-
<td>5 Whys</td>
|
|
902
|
-
<td>
|
|
903
|
-
<span data-lang="fr">Analyse de cause racine</span>
|
|
904
|
-
<span data-lang="en">Root cause analysis</span>
|
|
905
|
-
</td>
|
|
906
|
-
</tr>
|
|
907
|
-
<tr>
|
|
908
|
-
<td>3</td>
|
|
909
|
-
<td>
|
|
910
|
-
<span data-lang="fr">Scenario concret</span>
|
|
911
|
-
<span data-lang="en">Concrete scenario</span>
|
|
912
|
-
</td>
|
|
913
|
-
<td>
|
|
914
|
-
<span data-lang="fr">Extraire un exemple reel</span>
|
|
915
|
-
<span data-lang="en">Extract a real-world example</span>
|
|
916
|
-
</td>
|
|
917
|
-
</tr>
|
|
918
|
-
<tr>
|
|
919
|
-
<td>4</td>
|
|
920
|
-
<td>
|
|
921
|
-
<span data-lang="fr">Test d'absence</span>
|
|
922
|
-
<span data-lang="en">Absence test</span>
|
|
923
|
-
</td>
|
|
924
|
-
<td>
|
|
925
|
-
<span data-lang="fr">Que se passe-t-il sans cette feature ?</span>
|
|
926
|
-
<span data-lang="en">What happens without this feature?</span>
|
|
927
|
-
</td>
|
|
928
|
-
</tr>
|
|
929
|
-
<tr>
|
|
930
|
-
<td>5</td>
|
|
931
|
-
<td>
|
|
932
|
-
<span data-lang="fr">Sondage de completude</span>
|
|
933
|
-
<span data-lang="en">Completeness probing</span>
|
|
934
|
-
</td>
|
|
935
|
-
<td>
|
|
936
|
-
<span data-lang="fr">Challenger chaque reponse de type liste</span>
|
|
937
|
-
<span data-lang="en">Challenge every list-type answer</span>
|
|
938
|
-
</td>
|
|
939
|
-
</tr>
|
|
940
|
-
</tbody>
|
|
941
|
-
</table>
|
|
942
|
-
</div>
|
|
943
|
-
|
|
944
|
-
<h4 data-lang="fr">Sorties produites</h4>
|
|
945
|
-
<h4 data-lang="en">Produced outputs</h4>
|
|
946
|
-
|
|
947
|
-
<ul>
|
|
948
|
-
<li data-lang="fr"><strong>Regles metier</strong> (BR-{category}-NNN) avec priorite MUST/SHOULD/COULD</li>
|
|
949
|
-
<li data-lang="en"><strong>Business rules</strong> (BR-{category}-NNN) with MUST/SHOULD/COULD priority</li>
|
|
950
|
-
|
|
951
|
-
<li data-lang="fr"><strong>Entites</strong> (vue metier uniquement, pas de champs techniques)</li>
|
|
952
|
-
<li data-lang="en"><strong>Entities</strong> (business view only, no technical fields)</li>
|
|
953
|
-
|
|
954
|
-
<li data-lang="fr"><strong>Objectifs mesurables</strong> (OBJ-NNN)</li>
|
|
955
|
-
<li data-lang="en"><strong>Measurable objectives</strong> (OBJ-NNN)</li>
|
|
956
|
-
|
|
957
|
-
<li data-lang="fr"><strong>Flux de processus</strong> (points d'entree, decisions, actions)</li>
|
|
958
|
-
<li data-lang="en"><strong>Process flows</strong> (entry points, decisions, actions)</li>
|
|
959
|
-
|
|
960
|
-
<li data-lang="fr"><strong>Suggestions proactives</strong> depuis le catalogue de patterns</li>
|
|
961
|
-
<li data-lang="en"><strong>Proactive suggestions</strong> from the pattern catalog</li>
|
|
962
|
-
|
|
963
|
-
<li data-lang="fr"><strong>Analyse de risques</strong> (probabilite x impact)</li>
|
|
964
|
-
<li data-lang="en"><strong>Risk analysis</strong> (probability x impact)</li>
|
|
965
|
-
</ul>
|
|
966
|
-
|
|
967
|
-
<p data-lang="fr"><strong>Sortie :</strong> <code>feature.json</code> enrichi avec <code>discovery</code>, <code>analysis</code>, <code>suggestions</code> (status: <code>analysed</code>)</p>
|
|
968
|
-
<p data-lang="en"><strong>Output:</strong> <code>feature.json</code> enriched with <code>discovery</code>, <code>analysis</code>, <code>suggestions</code> (status: <code>analysed</code>)</p>
|
|
969
629
|
</div>
|
|
970
630
|
</div>
|
|
971
631
|
</section>
|
|
972
632
|
|
|
973
633
|
<!-- ============================================ -->
|
|
974
|
-
<!-- STEP 02
|
|
634
|
+
<!-- STEP 02 - DECOMPOSITION -->
|
|
975
635
|
<!-- ============================================ -->
|
|
976
636
|
<section id="step-02">
|
|
977
|
-
<
|
|
637
|
+
<h3>02. Decomposition</h3>
|
|
978
638
|
|
|
979
|
-
<
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
<div class="command-body">
|
|
986
|
-
<p data-lang="fr">
|
|
987
|
-
<strong>Mission :</strong> Specification detaillee — cas d'usage (UC), exigences fonctionnelles (FR), acteurs, permissions, wireframes, scenarios Gherkin, validations, cycle de vie, SeedData.
|
|
988
|
-
</p>
|
|
989
|
-
<p data-lang="en">
|
|
990
|
-
<strong>Mission:</strong> Detailed specification — use cases (UC), functional requirements (FR), actors, permissions, wireframes, Gherkin scenarios, validations, lifecycle, SeedData.
|
|
991
|
-
</p>
|
|
992
|
-
|
|
993
|
-
<h4 data-lang="fr">Sections specifiees</h4>
|
|
994
|
-
<h4 data-lang="en">Specified sections</h4>
|
|
995
|
-
|
|
996
|
-
<div class="table-container">
|
|
997
|
-
<table class="reference-table">
|
|
998
|
-
<thead>
|
|
999
|
-
<tr>
|
|
1000
|
-
<th>Section</th>
|
|
1001
|
-
<th>
|
|
1002
|
-
<span data-lang="fr">Contenu</span>
|
|
1003
|
-
<span data-lang="en">Content</span>
|
|
1004
|
-
</th>
|
|
1005
|
-
<th>Format</th>
|
|
1006
|
-
</tr>
|
|
1007
|
-
</thead>
|
|
1008
|
-
<tbody>
|
|
1009
|
-
<tr>
|
|
1010
|
-
<td>
|
|
1011
|
-
<span data-lang="fr">Acteurs & Permissions</span>
|
|
1012
|
-
<span data-lang="en">Actors & Permissions</span>
|
|
1013
|
-
</td>
|
|
1014
|
-
<td>
|
|
1015
|
-
<span data-lang="fr">Matrice acteurs x ressources x operations</span>
|
|
1016
|
-
<span data-lang="en">Actors x resources x operations matrix</span>
|
|
1017
|
-
</td>
|
|
1018
|
-
<td>Read, Create, Update, Delete, Approve, Delegate, Execute</td>
|
|
1019
|
-
</tr>
|
|
1020
|
-
<tr>
|
|
1021
|
-
<td>
|
|
1022
|
-
<span data-lang="fr">Cas d'usage</span>
|
|
1023
|
-
<span data-lang="en">Use Cases</span>
|
|
1024
|
-
</td>
|
|
1025
|
-
<td>UC-001, UC-002...</td>
|
|
1026
|
-
<td>
|
|
1027
|
-
<span data-lang="fr">Lies aux BR, categories CRUD/Workflow/Reports</span>
|
|
1028
|
-
<span data-lang="en">Linked to BRs, CRUD/Workflow/Reports categories</span>
|
|
1029
|
-
</td>
|
|
1030
|
-
</tr>
|
|
1031
|
-
<tr>
|
|
1032
|
-
<td>
|
|
1033
|
-
<span data-lang="fr">Exigences fonctionnelles</span>
|
|
1034
|
-
<span data-lang="en">Functional Requirements</span>
|
|
1035
|
-
</td>
|
|
1036
|
-
<td>FR-001, FR-002...</td>
|
|
1037
|
-
<td>
|
|
1038
|
-
<span data-lang="fr">Priorite MoSCoW, lies aux UC et BR</span>
|
|
1039
|
-
<span data-lang="en">MoSCoW priority, linked to UCs and BRs</span>
|
|
1040
|
-
</td>
|
|
1041
|
-
</tr>
|
|
1042
|
-
<tr>
|
|
1043
|
-
<td>SeedData</td>
|
|
1044
|
-
<td>
|
|
1045
|
-
<span data-lang="fr">5 tables obligatoires par module</span>
|
|
1046
|
-
<span data-lang="en">5 mandatory tables per module</span>
|
|
1047
|
-
</td>
|
|
1048
|
-
<td>Status, Priority, Category, Type, Department</td>
|
|
1049
|
-
</tr>
|
|
1050
|
-
<tr>
|
|
1051
|
-
<td>Navigation</td>
|
|
1052
|
-
<td>
|
|
1053
|
-
<span data-lang="fr">Hierarchie 3 niveaux</span>
|
|
1054
|
-
<span data-lang="en">3-level hierarchy</span>
|
|
1055
|
-
</td>
|
|
1056
|
-
<td>Level 1 → Level 2 → Level 3</td>
|
|
1057
|
-
</tr>
|
|
1058
|
-
<tr>
|
|
1059
|
-
<td>Wireframes</td>
|
|
1060
|
-
<td>
|
|
1061
|
-
<span data-lang="fr">Ecrans cles (List, Create, Detail)</span>
|
|
1062
|
-
<span data-lang="en">Key screens (List, Create, Detail)</span>
|
|
1063
|
-
</td>
|
|
1064
|
-
<td>Layout, components, actions</td>
|
|
1065
|
-
</tr>
|
|
1066
|
-
<tr>
|
|
1067
|
-
<td>
|
|
1068
|
-
<span data-lang="fr">Scenarios Gherkin</span>
|
|
1069
|
-
<span data-lang="en">Gherkin Scenarios</span>
|
|
1070
|
-
</td>
|
|
1071
|
-
<td>Given / When / Then</td>
|
|
1072
|
-
<td>
|
|
1073
|
-
<span data-lang="fr">Happy path, alternatives, erreurs</span>
|
|
1074
|
-
<span data-lang="en">Happy path, alternatives, errors</span>
|
|
1075
|
-
</td>
|
|
1076
|
-
</tr>
|
|
1077
|
-
<tr>
|
|
1078
|
-
<td>
|
|
1079
|
-
<span data-lang="fr">Cycle de vie</span>
|
|
1080
|
-
<span data-lang="en">Data Lifecycle</span>
|
|
1081
|
-
</td>
|
|
1082
|
-
<td>
|
|
1083
|
-
<span data-lang="fr">Machine a etats par entite</span>
|
|
1084
|
-
<span data-lang="en">State machine per entity</span>
|
|
1085
|
-
</td>
|
|
1086
|
-
<td>
|
|
1087
|
-
<span data-lang="fr">Transitions, visibilite, permissions par etat</span>
|
|
1088
|
-
<span data-lang="en">Transitions, visibility, permissions per state</span>
|
|
1089
|
-
</td>
|
|
1090
|
-
</tr>
|
|
1091
|
-
</tbody>
|
|
1092
|
-
</table>
|
|
1093
|
-
</div>
|
|
639
|
+
<p data-lang="fr">
|
|
640
|
+
Decompose l'application en modules interdependants. Construit le graphe de dependances avec tri topologique. Assigne priorite et complexite.
|
|
641
|
+
</p>
|
|
642
|
+
<p data-lang="en">
|
|
643
|
+
Decomposes application into interdependent modules. Builds dependency graph with topological sort. Assigns priority and complexity.
|
|
644
|
+
</p>
|
|
1094
645
|
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
Without these 5 files, the module is invisible and returns 403:
|
|
1110
|
-
<code>NavigationModuleConfiguration</code>,
|
|
1111
|
-
<code>NavigationTranslationConfiguration</code>,
|
|
1112
|
-
<code>PermissionConfiguration</code>,
|
|
1113
|
-
<code>Permissions.cs</code>,
|
|
1114
|
-
<code>RolePermissionConfiguration</code>.
|
|
1115
|
-
</p>
|
|
1116
|
-
</div>
|
|
1117
|
-
</div>
|
|
646
|
+
<h4 data-lang="fr">Actions</h4>
|
|
647
|
+
<h4 data-lang="en">Actions</h4>
|
|
648
|
+
<ul>
|
|
649
|
+
<li data-lang="fr">Splitter l'application en modules logiques</li>
|
|
650
|
+
<li data-lang="en">Split application into logical modules</li>
|
|
651
|
+
<li data-lang="fr">Determiner dependances inter-modules</li>
|
|
652
|
+
<li data-lang="en">Determine inter-module dependencies</li>
|
|
653
|
+
<li data-lang="fr">Construire dependencyGraph (tri topologique obligatoire)</li>
|
|
654
|
+
<li data-lang="en">Build dependencyGraph (topological sort mandatory)</li>
|
|
655
|
+
<li data-lang="fr">Assigner priorite (must/should/could) et complexite estimee</li>
|
|
656
|
+
<li data-lang="en">Assign priority (must/should/could) and estimated complexity</li>
|
|
657
|
+
<li data-lang="fr">Ecrire moduleRegistry dans master feature.json</li>
|
|
658
|
+
<li data-lang="en">Write moduleRegistry in master feature.json</li>
|
|
659
|
+
</ul>
|
|
1118
660
|
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
661
|
+
<div class="code-block">
|
|
662
|
+
<button class="copy-btn">Copy</button>
|
|
663
|
+
<pre><code>"dependencyGraph": {
|
|
664
|
+
"modules": ["Checkout", "Payment", "Inventory", "Shipping"],
|
|
665
|
+
"edges": [
|
|
666
|
+
{ "from": "Checkout", "to": "Payment", "type": "requires" },
|
|
667
|
+
{ "from": "Checkout", "to": "Inventory", "type": "requires" }
|
|
668
|
+
],
|
|
669
|
+
"topologicalOrder": ["Inventory", "Checkout", "Payment", "Shipping"],
|
|
670
|
+
"priorities": {
|
|
671
|
+
"Inventory": "must",
|
|
672
|
+
"Checkout": "must",
|
|
673
|
+
"Payment": "must",
|
|
674
|
+
"Shipping": "should"
|
|
675
|
+
}
|
|
676
|
+
}</code></pre>
|
|
1122
677
|
</div>
|
|
1123
678
|
</section>
|
|
1124
679
|
|
|
1125
680
|
<!-- ============================================ -->
|
|
1126
|
-
<!-- STEP 03
|
|
681
|
+
<!-- STEP 03 - SPECIFY (PER-MODULE) -->
|
|
1127
682
|
<!-- ============================================ -->
|
|
1128
683
|
<section id="step-03">
|
|
1129
|
-
<
|
|
1130
|
-
|
|
1131
|
-
<div class="command-card">
|
|
1132
|
-
<div class="command-header">
|
|
1133
|
-
<code class="command-name">step-03-validate</code>
|
|
1134
|
-
<span class="badge badge-green">Haiku</span>
|
|
1135
|
-
<span class="badge badge-blue">
|
|
1136
|
-
<span data-lang="fr">Porte qualite</span>
|
|
1137
|
-
<span data-lang="en">Quality gate</span>
|
|
1138
|
-
</span>
|
|
1139
|
-
</div>
|
|
1140
|
-
<div class="command-body">
|
|
1141
|
-
<p data-lang="fr">
|
|
1142
|
-
<strong>Mission :</strong> Porte qualite avant le handoff — decision binaire APPROVED / REJECTED.
|
|
1143
|
-
</p>
|
|
1144
|
-
<p data-lang="en">
|
|
1145
|
-
<strong>Mission:</strong> Quality gate before handoff — binary decision APPROVED / REJECTED.
|
|
1146
|
-
</p>
|
|
684
|
+
<h3>03. Specify (Per-Module Loop)</h3>
|
|
1147
685
|
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
<tr>
|
|
1155
|
-
<th>
|
|
1156
|
-
<span data-lang="fr">Controle</span>
|
|
1157
|
-
<span data-lang="en">Check</span>
|
|
1158
|
-
</th>
|
|
1159
|
-
<th>
|
|
1160
|
-
<span data-lang="fr">Verification</span>
|
|
1161
|
-
<span data-lang="en">Verification</span>
|
|
1162
|
-
</th>
|
|
1163
|
-
<th>
|
|
1164
|
-
<span data-lang="fr">Impact si echec</span>
|
|
1165
|
-
<span data-lang="en">Impact on failure</span>
|
|
1166
|
-
</th>
|
|
1167
|
-
</tr>
|
|
1168
|
-
</thead>
|
|
1169
|
-
<tbody>
|
|
1170
|
-
<tr>
|
|
1171
|
-
<td>
|
|
1172
|
-
<span data-lang="fr">Completude</span>
|
|
1173
|
-
<span data-lang="en">Completeness</span>
|
|
1174
|
-
</td>
|
|
1175
|
-
<td>
|
|
1176
|
-
<span data-lang="fr">Toutes sections requises presentes</span>
|
|
1177
|
-
<span data-lang="en">All required sections present</span>
|
|
1178
|
-
</td>
|
|
1179
|
-
<td><span class="badge badge-red">REJECT</span></td>
|
|
1180
|
-
</tr>
|
|
1181
|
-
<tr>
|
|
1182
|
-
<td>
|
|
1183
|
-
<span data-lang="fr">Coherence</span>
|
|
1184
|
-
<span data-lang="en">Consistency</span>
|
|
1185
|
-
</td>
|
|
1186
|
-
<td>UC ↔ FR, FR ↔ BR, Actor ↔ Permission</td>
|
|
1187
|
-
<td>
|
|
1188
|
-
<span class="badge badge-red">REJECT</span> (error) /
|
|
1189
|
-
<span class="badge badge-orange">WARN</span> (warning)
|
|
1190
|
-
</td>
|
|
1191
|
-
</tr>
|
|
1192
|
-
<tr>
|
|
1193
|
-
<td>
|
|
1194
|
-
<span data-lang="fr">Conventions SmartStack</span>
|
|
1195
|
-
<span data-lang="en">SmartStack conventions</span>
|
|
1196
|
-
</td>
|
|
1197
|
-
<td>
|
|
1198
|
-
<span data-lang="fr">Nommage PascalCase, UC-NNN, FR-NNN, BR-NNN</span>
|
|
1199
|
-
<span data-lang="en">Naming PascalCase, UC-NNN, FR-NNN, BR-NNN</span>
|
|
1200
|
-
</td>
|
|
1201
|
-
<td><span class="badge badge-red">REJECT</span></td>
|
|
1202
|
-
</tr>
|
|
1203
|
-
<tr>
|
|
1204
|
-
<td>
|
|
1205
|
-
<span data-lang="fr">Risques</span>
|
|
1206
|
-
<span data-lang="en">Risks</span>
|
|
1207
|
-
</td>
|
|
1208
|
-
<td>
|
|
1209
|
-
<span data-lang="fr">Scope creep, securite, complexite</span>
|
|
1210
|
-
<span data-lang="en">Scope creep, security, complexity</span>
|
|
1211
|
-
</td>
|
|
1212
|
-
<td>
|
|
1213
|
-
<span class="badge badge-red">REJECT</span> (critical) /
|
|
1214
|
-
<span class="badge badge-orange">USER</span> (high)
|
|
1215
|
-
</td>
|
|
1216
|
-
</tr>
|
|
1217
|
-
<tr>
|
|
1218
|
-
<td>RBAC</td>
|
|
1219
|
-
<td>
|
|
1220
|
-
<span data-lang="fr">Guest ⊂ User ⊂ Manager ⊂ Admin</span>
|
|
1221
|
-
<span data-lang="en">Guest ⊂ User ⊂ Manager ⊂ Admin</span>
|
|
1222
|
-
</td>
|
|
1223
|
-
<td><span class="badge badge-red">REJECT</span></td>
|
|
1224
|
-
</tr>
|
|
1225
|
-
</tbody>
|
|
1226
|
-
</table>
|
|
1227
|
-
</div>
|
|
686
|
+
<p data-lang="fr">
|
|
687
|
+
Specification iterative de chaque module dans l'ordre topologique. Pour chaque module : sections, entites, regles metier, UC, FR, permissions, wireframes.
|
|
688
|
+
</p>
|
|
689
|
+
<p data-lang="en">
|
|
690
|
+
Iterative specification of each module in topological order. For each module: sections, entities, business rules, UC, FR, permissions, wireframes.
|
|
691
|
+
</p>
|
|
1228
692
|
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
<p data-lang="fr">
|
|
1249
|
-
En mode micro (<code>-m</code>), la validation est automatique — auto-approve sans interaction utilisateur.
|
|
1250
|
-
</p>
|
|
1251
|
-
<p data-lang="en">
|
|
1252
|
-
In micro mode (<code>-m</code>), validation is automatic — auto-approve without user interaction.
|
|
1253
|
-
</p>
|
|
1254
|
-
</div>
|
|
1255
|
-
</div>
|
|
693
|
+
<h4 data-lang="fr">Actions par module</h4>
|
|
694
|
+
<h4 data-lang="en">Actions per module</h4>
|
|
695
|
+
<ul>
|
|
696
|
+
<li data-lang="fr"><strong>Sections & Resources</strong> (Niveaux 4-5) : Section = page React, Resource = composant</li>
|
|
697
|
+
<li data-lang="en"><strong>Sections & Resources</strong> (Levels 4-5): Section = React page, Resource = component</li>
|
|
698
|
+
<li data-lang="fr"><strong>Entites</strong> : tables metier, FK, indexes</li>
|
|
699
|
+
<li data-lang="en"><strong>Entities</strong>: business tables, FK, indexes</li>
|
|
700
|
+
<li data-lang="fr"><strong>Regles metier (BR)</strong> : format id BR-{CATEGORY}-{PREFIX}-{NNN}</li>
|
|
701
|
+
<li data-lang="en"><strong>Business Rules (BR)</strong>: format id BR-{CATEGORY}-{PREFIX}-{NNN}</li>
|
|
702
|
+
<li data-lang="fr"><strong>Cas d'usage (UC)</strong> : format id UC-{PREFIX}-{NNN}</li>
|
|
703
|
+
<li data-lang="en"><strong>Use Cases (UC)</strong>: format id UC-{PREFIX}-{NNN}</li>
|
|
704
|
+
<li data-lang="fr"><strong>Exigences fonctionnelles (FR)</strong> : format id FR-{PREFIX}-{NNN}</li>
|
|
705
|
+
<li data-lang="en"><strong>Functional Requirements (FR)</strong>: format id FR-{PREFIX}-{NNN}</li>
|
|
706
|
+
<li data-lang="fr"><strong>Wireframes structurels</strong> : ASCII mockup + JSON layout</li>
|
|
707
|
+
<li data-lang="en"><strong>Structural Wireframes</strong>: ASCII mockup + JSON layout</li>
|
|
708
|
+
</ul>
|
|
709
|
+
|
|
710
|
+
<h4 data-lang="fr">Verification de couverture</h4>
|
|
711
|
+
<h4 data-lang="en">Coverage Verification</h4>
|
|
1256
712
|
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
713
|
+
<p data-lang="fr">
|
|
714
|
+
Chaque requirement "mustHave" de la coverageMatrix doit avoir at least 1 UC qui la reference.
|
|
715
|
+
</p>
|
|
716
|
+
<p data-lang="en">
|
|
717
|
+
Each "mustHave" requirement in coverageMatrix must have at least 1 UC that references it.
|
|
718
|
+
</p>
|
|
1261
719
|
</section>
|
|
1262
720
|
|
|
1263
721
|
<!-- ============================================ -->
|
|
1264
|
-
<!-- STEP 04
|
|
722
|
+
<!-- STEP 04 - CONSOLIDATION -->
|
|
1265
723
|
<!-- ============================================ -->
|
|
1266
724
|
<section id="step-04">
|
|
1267
|
-
<
|
|
1268
|
-
|
|
1269
|
-
<div class="command-card">
|
|
1270
|
-
<div class="command-header">
|
|
1271
|
-
<code class="command-name">step-04-handoff</code>
|
|
1272
|
-
<span class="badge badge-orange">Opus</span>
|
|
1273
|
-
<span class="badge badge-purple">ULTRATHINK</span>
|
|
1274
|
-
</div>
|
|
1275
|
-
<div class="command-body">
|
|
1276
|
-
<p data-lang="fr">
|
|
1277
|
-
<strong>Mission :</strong> Generer le package de handoff pour le developpement — mapping fichiers, endpoints API, plan de tests, i18n, et generation du <code>prd.json</code> pour Ralph Loop.
|
|
1278
|
-
</p>
|
|
1279
|
-
<p data-lang="en">
|
|
1280
|
-
<strong>Mission:</strong> Generate the development handoff package — file mapping, API endpoints, test plan, i18n, and <code>prd.json</code> generation for Ralph Loop.
|
|
1281
|
-
</p>
|
|
1282
|
-
|
|
1283
|
-
<h4 data-lang="fr">Contenu du handoff</h4>
|
|
1284
|
-
<h4 data-lang="en">Handoff content</h4>
|
|
1285
|
-
|
|
1286
|
-
<div class="table-container">
|
|
1287
|
-
<table class="reference-table">
|
|
1288
|
-
<thead>
|
|
1289
|
-
<tr>
|
|
1290
|
-
<th>Section</th>
|
|
1291
|
-
<th>
|
|
1292
|
-
<span data-lang="fr">Contenu</span>
|
|
1293
|
-
<span data-lang="en">Content</span>
|
|
1294
|
-
</th>
|
|
1295
|
-
</tr>
|
|
1296
|
-
</thead>
|
|
1297
|
-
<tbody>
|
|
1298
|
-
<tr>
|
|
1299
|
-
<td>
|
|
1300
|
-
<span data-lang="fr">Mapping fichiers</span>
|
|
1301
|
-
<span data-lang="en">File mapping</span>
|
|
1302
|
-
</td>
|
|
1303
|
-
<td>
|
|
1304
|
-
<span data-lang="fr">Backend (Entity, Service, Controller, Repository, Migration, Tests) + Frontend (Pages, Components, API Client, Redux)</span>
|
|
1305
|
-
<span data-lang="en">Backend (Entity, Service, Controller, Repository, Migration, Tests) + Frontend (Pages, Components, API Client, Redux)</span>
|
|
1306
|
-
</td>
|
|
1307
|
-
</tr>
|
|
1308
|
-
<tr>
|
|
1309
|
-
<td>
|
|
1310
|
-
<span data-lang="fr">Sequence d'implementation</span>
|
|
1311
|
-
<span data-lang="en">Implementation sequence</span>
|
|
1312
|
-
</td>
|
|
1313
|
-
<td>Domain → SeedData → Application → Infrastructure → API → Frontend</td>
|
|
1314
|
-
</tr>
|
|
1315
|
-
<tr>
|
|
1316
|
-
<td>
|
|
1317
|
-
<span data-lang="fr">Endpoints API</span>
|
|
1318
|
-
<span data-lang="en">API endpoints</span>
|
|
1319
|
-
</td>
|
|
1320
|
-
<td>
|
|
1321
|
-
<span data-lang="fr">Routes RESTful pour tous les UC, parametres, corps de reponse, codes d'erreur</span>
|
|
1322
|
-
<span data-lang="en">RESTful routes for all UCs, parameters, response bodies, error codes</span>
|
|
1323
|
-
</td>
|
|
1324
|
-
</tr>
|
|
1325
|
-
<tr>
|
|
1326
|
-
<td>
|
|
1327
|
-
<span data-lang="fr">Plan de tests</span>
|
|
1328
|
-
<span data-lang="en">Test plan</span>
|
|
1329
|
-
</td>
|
|
1330
|
-
<td>
|
|
1331
|
-
<span data-lang="fr">Tests unitaires, integration, E2E</span>
|
|
1332
|
-
<span data-lang="en">Unit, integration, E2E tests</span>
|
|
1333
|
-
</td>
|
|
1334
|
-
</tr>
|
|
1335
|
-
<tr>
|
|
1336
|
-
<td>i18n</td>
|
|
1337
|
-
<td>
|
|
1338
|
-
<span data-lang="fr">Cles de traduction (en, fr, it, de) pour menus, titres, champs, validations, messages</span>
|
|
1339
|
-
<span data-lang="en">Translation keys (en, fr, it, de) for menus, titles, fields, validations, messages</span>
|
|
1340
|
-
</td>
|
|
1341
|
-
</tr>
|
|
1342
|
-
<tr>
|
|
1343
|
-
<td>
|
|
1344
|
-
<span data-lang="fr">Regles metier → Code</span>
|
|
1345
|
-
<span data-lang="en">Business rules → Code</span>
|
|
1346
|
-
</td>
|
|
1347
|
-
<td>
|
|
1348
|
-
<span data-lang="fr">Points d'implementation par BR (Domain, Infrastructure, API, Frontend)</span>
|
|
1349
|
-
<span data-lang="en">Implementation points per BR (Domain, Infrastructure, API, Frontend)</span>
|
|
1350
|
-
</td>
|
|
1351
|
-
</tr>
|
|
1352
|
-
</tbody>
|
|
1353
|
-
</table>
|
|
1354
|
-
</div>
|
|
1355
|
-
|
|
1356
|
-
<h4 data-lang="fr">Fichiers generes</h4>
|
|
1357
|
-
<h4 data-lang="en">Generated files</h4>
|
|
725
|
+
<h3>04. Consolidation</h3>
|
|
1358
726
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
727
|
+
<p data-lang="fr">
|
|
728
|
+
Validation cross-module (10 verifications semantiques). Coherence des permissions, entites partagees, mappage UC-FR.
|
|
729
|
+
</p>
|
|
730
|
+
<p data-lang="en">
|
|
731
|
+
Cross-module validation (10 semantic checks). Permission coherence, shared entities, UC-FR mapping.
|
|
732
|
+
</p>
|
|
1365
733
|
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
</
|
|
1387
|
-
|
|
734
|
+
<h4 data-lang="fr">10 Verifications semantiques</h4>
|
|
735
|
+
<h4 data-lang="en">10 Semantic Checks</h4>
|
|
736
|
+
|
|
737
|
+
<ol>
|
|
738
|
+
<li data-lang="fr">Permission orphans : roles utilises mais non definis dans applicationRoles</li>
|
|
739
|
+
<li data-lang="en">Permission orphans: roles used but not defined in applicationRoles</li>
|
|
740
|
+
<li data-lang="fr">UC-FR links : chaque UC doit avoir at least 1 FR</li>
|
|
741
|
+
<li data-lang="en">UC-FR links: each UC must have at least 1 FR</li>
|
|
742
|
+
<li data-lang="fr">Entity-endpoint mapping : chaque entite doit avoir CRUD endpoints</li>
|
|
743
|
+
<li data-lang="en">Entity-endpoint mapping: each entity must have CRUD endpoints</li>
|
|
744
|
+
<li data-lang="fr">BR consistency : chaque BR doit etre test dans un UC</li>
|
|
745
|
+
<li data-lang="en">BR consistency: each BR must be tested in a UC</li>
|
|
746
|
+
<li data-lang="fr">Cross-module entity refs : shared entities coherentes</li>
|
|
747
|
+
<li data-lang="en">Cross-module entity refs: shared entities coherent</li>
|
|
748
|
+
<li data-lang="fr">Permission hierarchy : no conflicts ou contraintes</li>
|
|
749
|
+
<li data-lang="en">Permission hierarchy: no conflicts or constraints</li>
|
|
750
|
+
<li data-lang="fr">E2E flows : workflows complets tracables</li>
|
|
751
|
+
<li data-lang="en">E2E flows: complete workflows traceable</li>
|
|
752
|
+
<li data-lang="fr">Coverage matrix completion : toutes requirements couverts</li>
|
|
753
|
+
<li data-lang="en">Coverage matrix completion: all requirements covered</li>
|
|
754
|
+
<li data-lang="fr">ID uniqueness : pas de collisions dans modules</li>
|
|
755
|
+
<li data-lang="en">ID uniqueness: no collisions across modules</li>
|
|
756
|
+
<li data-lang="fr">Schema validation : JSON Schema 2020-12 compliance</li>
|
|
757
|
+
<li data-lang="en">Schema validation: JSON Schema 2020-12 compliance</li>
|
|
758
|
+
</ol>
|
|
1388
759
|
</section>
|
|
1389
760
|
|
|
1390
761
|
<!-- ============================================ -->
|
|
1391
|
-
<!--
|
|
762
|
+
<!-- STEP 05 - HANDOFF -->
|
|
1392
763
|
<!-- ============================================ -->
|
|
1393
|
-
<section id="
|
|
1394
|
-
<
|
|
764
|
+
<section id="step-05">
|
|
765
|
+
<h3>05. Handoff</h3>
|
|
1395
766
|
|
|
1396
767
|
<p data-lang="fr">
|
|
1397
|
-
|
|
768
|
+
Handoff final par module avec mapping de fichiers (7 categories). Extraction programmatique du prd.json via <code>ss derive-prd</code>.
|
|
1398
769
|
</p>
|
|
1399
770
|
<p data-lang="en">
|
|
1400
|
-
|
|
771
|
+
Final per-module handoff with file mapping (7 categories). Programmatic extraction of prd.json via <code>ss derive-prd</code>.
|
|
1401
772
|
</p>
|
|
1402
773
|
|
|
774
|
+
<h4 data-lang="fr">Actions</h4>
|
|
775
|
+
<h4 data-lang="en">Actions</h4>
|
|
776
|
+
|
|
1403
777
|
<div class="table-container">
|
|
1404
778
|
<table class="reference-table">
|
|
1405
779
|
<thead>
|
|
1406
780
|
<tr>
|
|
1407
|
-
<th>#</th>
|
|
1408
781
|
<th>
|
|
1409
782
|
<span data-lang="fr">Categorie</span>
|
|
1410
783
|
<span data-lang="en">Category</span>
|
|
1411
784
|
</th>
|
|
1412
785
|
<th>
|
|
1413
|
-
<span data-lang="fr">
|
|
1414
|
-
<span data-lang="en">
|
|
1415
|
-
</th>
|
|
1416
|
-
<th>
|
|
1417
|
-
<span data-lang="fr">Charge quand</span>
|
|
1418
|
-
<span data-lang="en">Loaded when</span>
|
|
786
|
+
<span data-lang="fr">Fichiers</span>
|
|
787
|
+
<span data-lang="en">Files</span>
|
|
1419
788
|
</th>
|
|
1420
789
|
</tr>
|
|
1421
790
|
</thead>
|
|
1422
791
|
<tbody>
|
|
1423
792
|
<tr>
|
|
1424
|
-
<td>
|
|
1425
|
-
<td>
|
|
1426
|
-
<td>4</td>
|
|
1427
|
-
<td><span class="badge badge-green">
|
|
1428
|
-
<span data-lang="fr">Toujours</span>
|
|
1429
|
-
<span data-lang="en">Always</span>
|
|
1430
|
-
</span></td>
|
|
1431
|
-
</tr>
|
|
1432
|
-
<tr>
|
|
1433
|
-
<td>02</td>
|
|
1434
|
-
<td>Stakeholders</td>
|
|
1435
|
-
<td>8</td>
|
|
1436
|
-
<td><span class="badge badge-green">
|
|
1437
|
-
<span data-lang="fr">Toujours</span>
|
|
1438
|
-
<span data-lang="en">Always</span>
|
|
1439
|
-
</span></td>
|
|
1440
|
-
</tr>
|
|
1441
|
-
<tr>
|
|
1442
|
-
<td>03</td>
|
|
1443
|
-
<td>Scope</td>
|
|
1444
|
-
<td>8</td>
|
|
1445
|
-
<td><span class="badge badge-green">
|
|
1446
|
-
<span data-lang="fr">Toujours</span>
|
|
1447
|
-
<span data-lang="en">Always</span>
|
|
1448
|
-
</span></td>
|
|
1449
|
-
</tr>
|
|
1450
|
-
<tr>
|
|
1451
|
-
<td>04</td>
|
|
1452
|
-
<td>Data</td>
|
|
1453
|
-
<td>8</td>
|
|
1454
|
-
<td><span class="badge badge-blue">Data-centric / Full</span></td>
|
|
1455
|
-
</tr>
|
|
1456
|
-
<tr>
|
|
1457
|
-
<td>05</td>
|
|
1458
|
-
<td>Integrations</td>
|
|
1459
|
-
<td>8</td>
|
|
1460
|
-
<td><span class="badge badge-blue">Integration / Full</span></td>
|
|
1461
|
-
</tr>
|
|
1462
|
-
<tr>
|
|
1463
|
-
<td>06</td>
|
|
1464
|
-
<td>Security</td>
|
|
1465
|
-
<td>8</td>
|
|
1466
|
-
<td><span class="badge badge-green">
|
|
1467
|
-
<span data-lang="fr">Toujours (minimal)</span>
|
|
1468
|
-
<span data-lang="en">Always (minimal)</span>
|
|
1469
|
-
</span></td>
|
|
1470
|
-
</tr>
|
|
1471
|
-
<tr>
|
|
1472
|
-
<td>07</td>
|
|
1473
|
-
<td>UI</td>
|
|
1474
|
-
<td>8</td>
|
|
1475
|
-
<td><span class="badge badge-blue">UI-centric / Full</span></td>
|
|
793
|
+
<td><strong>Domain</strong></td>
|
|
794
|
+
<td>entities/, aggregates/, valueObjects/</td>
|
|
1476
795
|
</tr>
|
|
1477
796
|
<tr>
|
|
1478
|
-
<td>
|
|
1479
|
-
<td>
|
|
1480
|
-
<td>4</td>
|
|
1481
|
-
<td><span class="badge badge-blue">Reporting / Critical</span></td>
|
|
797
|
+
<td><strong>Application</strong></td>
|
|
798
|
+
<td>services/, handlers/, DTOs/</td>
|
|
1482
799
|
</tr>
|
|
1483
800
|
<tr>
|
|
1484
|
-
<td>
|
|
1485
|
-
<td>
|
|
1486
|
-
<td>4</td>
|
|
1487
|
-
<td><span class="badge badge-teal">
|
|
1488
|
-
<span data-lang="fr">Si contraintes</span>
|
|
1489
|
-
<span data-lang="en">If constraints</span>
|
|
1490
|
-
</span></td>
|
|
801
|
+
<td><strong>Infrastructure</strong></td>
|
|
802
|
+
<td>repositories/, context/, migrations/</td>
|
|
1491
803
|
</tr>
|
|
1492
804
|
<tr>
|
|
1493
|
-
<td>
|
|
1494
|
-
<td>
|
|
1495
|
-
<td>4</td>
|
|
1496
|
-
<td><span class="badge badge-teal">
|
|
1497
|
-
<span data-lang="fr">Si doc requise</span>
|
|
1498
|
-
<span data-lang="en">If doc required</span>
|
|
1499
|
-
</span></td>
|
|
805
|
+
<td><strong>API</strong></td>
|
|
806
|
+
<td>controllers/, endpoints/, auth/</td>
|
|
1500
807
|
</tr>
|
|
1501
808
|
<tr>
|
|
1502
|
-
<td>
|
|
1503
|
-
<td>
|
|
1504
|
-
<td>8</td>
|
|
1505
|
-
<td><span class="badge badge-teal">
|
|
1506
|
-
<span data-lang="fr">Conditionnel</span>
|
|
1507
|
-
<span data-lang="en">Conditional</span>
|
|
1508
|
-
</span></td>
|
|
809
|
+
<td><strong>Frontend</strong></td>
|
|
810
|
+
<td>pages/, components/, hooks/</td>
|
|
1509
811
|
</tr>
|
|
1510
812
|
<tr>
|
|
1511
|
-
<td>
|
|
1512
|
-
<td>
|
|
1513
|
-
<td>8</td>
|
|
1514
|
-
<td><span class="badge badge-teal">
|
|
1515
|
-
<span data-lang="fr">Conditionnel</span>
|
|
1516
|
-
<span data-lang="en">Conditional</span>
|
|
1517
|
-
</span></td>
|
|
813
|
+
<td><strong>SeedData</strong></td>
|
|
814
|
+
<td>Seeding/Data/{module}/</td>
|
|
1518
815
|
</tr>
|
|
1519
816
|
<tr>
|
|
1520
|
-
<td>
|
|
1521
|
-
<td>
|
|
1522
|
-
<td>8</td>
|
|
1523
|
-
<td><span class="badge badge-teal">
|
|
1524
|
-
<span data-lang="fr">Conditionnel</span>
|
|
1525
|
-
<span data-lang="en">Conditional</span>
|
|
1526
|
-
</span></td>
|
|
817
|
+
<td><strong>Tests</strong></td>
|
|
818
|
+
<td>Tests/{module}/, Unit/, Integration/</td>
|
|
1527
819
|
</tr>
|
|
1528
820
|
</tbody>
|
|
1529
821
|
</table>
|
|
1530
822
|
</div>
|
|
1531
823
|
|
|
1532
|
-
<
|
|
1533
|
-
|
|
1534
|
-
<div class="alert-content">
|
|
1535
|
-
<h5 data-lang="fr">Protocole d'elicitation</h5>
|
|
1536
|
-
<h5 data-lang="en">Elicitation protocol</h5>
|
|
1537
|
-
<p data-lang="fr">
|
|
1538
|
-
Les questions sont posees par lots de <strong>max 4</strong> via <code>AskUserQuestion</code>. Apres chaque categorie, un resume est affiche pour validation. Les reponses vagues declenchent des questions de suivi ciblees.
|
|
1539
|
-
</p>
|
|
1540
|
-
<p data-lang="en">
|
|
1541
|
-
Questions are asked in batches of <strong>max 4</strong> via <code>AskUserQuestion</code>. After each category, a summary is displayed for validation. Vague answers trigger targeted follow-up questions.
|
|
1542
|
-
</p>
|
|
1543
|
-
</div>
|
|
1544
|
-
</div>
|
|
824
|
+
<h4 data-lang="fr">prd.json (extraction programmatique)</h4>
|
|
825
|
+
<h4 data-lang="en">prd.json (Programmatic Extraction)</h4>
|
|
1545
826
|
|
|
1546
|
-
<
|
|
1547
|
-
<
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
827
|
+
<p data-lang="fr">
|
|
828
|
+
Le fichier <code>.ralph/prd.json</code> est genere par <code>ss derive-prd feature.json</code> (NOT par l'LLM). Il contient le resume technique pour implementation.
|
|
829
|
+
</p>
|
|
830
|
+
<p data-lang="en">
|
|
831
|
+
The <code>.ralph/prd.json</code> file is generated by <code>ss derive-prd feature.json</code> (NOT by LLM). It contains technical summary for implementation.
|
|
832
|
+
</p>
|
|
833
|
+
|
|
834
|
+
<div class="code-block">
|
|
835
|
+
<button class="copy-btn">Copy</button>
|
|
836
|
+
<pre><code>{
|
|
837
|
+
"application": "OrderManagement",
|
|
838
|
+
"version": "1.0",
|
|
839
|
+
"modules": [
|
|
840
|
+
{
|
|
841
|
+
"name": "Checkout",
|
|
842
|
+
"priority": "must",
|
|
843
|
+
"entities": ["Order", "OrderLine", "Customer"],
|
|
844
|
+
"useCases": ["UC-CHK-001", "UC-CHK-002"],
|
|
845
|
+
"apiEndpoints": [
|
|
846
|
+
"POST /api/orders",
|
|
847
|
+
"GET /api/orders/{id}",
|
|
848
|
+
"PUT /api/orders/{id}/confirm"
|
|
849
|
+
],
|
|
850
|
+
"permissions": ["viewer", "contributor"]
|
|
851
|
+
}
|
|
852
|
+
]
|
|
853
|
+
}</code></pre>
|
|
1558
854
|
</div>
|
|
855
|
+
|
|
856
|
+
<h4 data-lang="fr">Verification post-handoff</h4>
|
|
857
|
+
<h4 data-lang="en">Post-Handoff Verification</h4>
|
|
858
|
+
|
|
859
|
+
<ul>
|
|
860
|
+
<li data-lang="fr">Valider ba-reader.readApplicationContext() = tous modules presents</li>
|
|
861
|
+
<li data-lang="en">Validate ba-reader.readApplicationContext() = all modules present</li>
|
|
862
|
+
<li data-lang="fr">Verifier ba-writer.enrichModuleHandoff() completude</li>
|
|
863
|
+
<li data-lang="en">Verify ba-writer.enrichModuleHandoff() completeness</li>
|
|
864
|
+
<li data-lang="fr">Extraction prd.json via <code>ss derive-prd</code></li>
|
|
865
|
+
<li data-lang="en">Extract prd.json via <code>ss derive-prd</code></li>
|
|
866
|
+
<li data-lang="fr">Generer progress.txt tracker</li>
|
|
867
|
+
<li data-lang="en">Generate progress.txt tracker</li>
|
|
868
|
+
</ul>
|
|
1559
869
|
</section>
|
|
1560
870
|
|
|
1561
871
|
<!-- ============================================ -->
|
|
1562
|
-
<!--
|
|
872
|
+
<!-- SCHEMAS -->
|
|
1563
873
|
<!-- ============================================ -->
|
|
1564
|
-
<section id="
|
|
1565
|
-
<h2>
|
|
874
|
+
<section id="schemas">
|
|
875
|
+
<h2>Schemas</h2>
|
|
1566
876
|
|
|
1567
877
|
<p data-lang="fr">
|
|
1568
|
-
|
|
878
|
+
Deux schemas JSON Schema 2020-12 : <strong>application-schema.json</strong> (master) et <strong>feature-schema.json</strong> (per-module).
|
|
1569
879
|
</p>
|
|
1570
880
|
<p data-lang="en">
|
|
1571
|
-
|
|
881
|
+
Two JSON Schema 2020-12 files: <strong>application-schema.json</strong> (master) and <strong>feature-schema.json</strong> (per-module).
|
|
1572
882
|
</p>
|
|
1573
883
|
|
|
1574
|
-
<
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
<td>
|
|
1613
|
-
<span data-lang="fr">Changement d'architecture ou de perimetre</span>
|
|
1614
|
-
<span data-lang="en">Architecture or scope change</span>
|
|
1615
|
-
</td>
|
|
1616
|
-
</tr>
|
|
1617
|
-
</tbody>
|
|
1618
|
-
</table>
|
|
1619
|
-
</div>
|
|
1620
|
-
|
|
1621
|
-
<div class="code-block">
|
|
1622
|
-
<button class="copy-btn">Copy</button>
|
|
1623
|
-
<pre><code>docs/business/{app}/{module}/business-analyse/
|
|
1624
|
-
├── v1.0/feature.json # Initial version
|
|
1625
|
-
├── v1.1/feature.json # Delta: "Add PDF export" (previousVersion: v1.0)
|
|
1626
|
-
├── v1.2/feature.json # Delta: "Add bulk import" (previousVersion: v1.1)
|
|
1627
|
-
└── v2.0/feature.json # Major revision</code></pre>
|
|
1628
|
-
</div>
|
|
884
|
+
<h4><code>application-schema.json</code> (Master Level)</h4>
|
|
885
|
+
<ul>
|
|
886
|
+
<li data-lang="fr">Metadata : titre, contexte, version</li>
|
|
887
|
+
<li data-lang="en">Metadata: title, context, version</li>
|
|
888
|
+
<li data-lang="fr">Cadrage : problem, stakeholders, scope, applicationRoles, risks</li>
|
|
889
|
+
<li data-lang="en">Framing: problem, stakeholders, scope, applicationRoles, risks</li>
|
|
890
|
+
<li data-lang="fr">moduleRegistry[] : list des modules avec dependencies</li>
|
|
891
|
+
<li data-lang="en">moduleRegistry[]: list of modules with dependencies</li>
|
|
892
|
+
<li data-lang="fr">dependencyGraph : edges, topologicalOrder, priorities</li>
|
|
893
|
+
<li data-lang="en">dependencyGraph: edges, topologicalOrder, priorities</li>
|
|
894
|
+
<li data-lang="fr">coverageMatrix : mustHave/shouldHave/couldHave requirements</li>
|
|
895
|
+
<li data-lang="en">coverageMatrix: mustHave/shouldHave/couldHave requirements</li>
|
|
896
|
+
</ul>
|
|
897
|
+
|
|
898
|
+
<h4><code>feature-schema.json</code> (Per-Module Level)</h4>
|
|
899
|
+
<ul>
|
|
900
|
+
<li data-lang="fr">Metadata : module, version, featureType</li>
|
|
901
|
+
<li data-lang="en">Metadata: module, version, featureType</li>
|
|
902
|
+
<li data-lang="fr">Sections & Resources : 5-level navigation</li>
|
|
903
|
+
<li data-lang="en">Sections & Resources: 5-level navigation</li>
|
|
904
|
+
<li data-lang="fr">Entities : domaine, attributs, constraints</li>
|
|
905
|
+
<li data-lang="en">Entities: domain, attributes, constraints</li>
|
|
906
|
+
<li data-lang="fr">Business Rules (BR-{CAT}-{PREFIX}-{NNN}) : validations metier</li>
|
|
907
|
+
<li data-lang="en">Business Rules (BR-{CAT}-{PREFIX}-{NNN}): business validations</li>
|
|
908
|
+
<li data-lang="fr">Use Cases (UC-{PREFIX}-{NNN}) : workflows, actors, flows</li>
|
|
909
|
+
<li data-lang="en">Use Cases (UC-{PREFIX}-{NNN}): workflows, actors, flows</li>
|
|
910
|
+
<li data-lang="fr">Functional Requirements (FR-{PREFIX}-{NNN}) : exigences techniques</li>
|
|
911
|
+
<li data-lang="en">Functional Requirements (FR-{PREFIX}-{NNN}): technical requirements</li>
|
|
912
|
+
<li data-lang="fr">Wireframes : ASCII + JSON layout</li>
|
|
913
|
+
<li data-lang="en">Wireframes: ASCII + JSON layout</li>
|
|
914
|
+
<li data-lang="fr">Permissions : roles et access control</li>
|
|
915
|
+
<li data-lang="en">Permissions: roles and access control</li>
|
|
916
|
+
<li data-lang="fr">Handoff : mapping de fichiers, API endpoints, tests</li>
|
|
917
|
+
<li data-lang="en">Handoff: file mapping, API endpoints, tests</li>
|
|
918
|
+
</ul>
|
|
919
|
+
|
|
920
|
+
<h4 data-lang="fr">Module-Prefixed IDs</h4>
|
|
921
|
+
<h4 data-lang="en">Module-Prefixed IDs</h4>
|
|
1629
922
|
|
|
1630
923
|
<p data-lang="fr">
|
|
1631
|
-
|
|
924
|
+
Chaque ID inclut le prefixe du module pour eviter les collisions cross-module.
|
|
1632
925
|
</p>
|
|
1633
926
|
<p data-lang="en">
|
|
1634
|
-
|
|
927
|
+
Each ID includes module prefix to avoid cross-module collisions.
|
|
1635
928
|
</p>
|
|
929
|
+
|
|
930
|
+
<div class="code-block">
|
|
931
|
+
<button class="copy-btn">Copy</button>
|
|
932
|
+
<pre><code>UC-{PREFIX}-{NNN} # UseCase
|
|
933
|
+
BR-{CAT}-{PREFIX}-{NNN} # BusinessRule
|
|
934
|
+
FR-{PREFIX}-{NNN} # FunctionalRequirement
|
|
935
|
+
|
|
936
|
+
Exemple (module "checkout"):
|
|
937
|
+
UC-CHK-001 # Add item to cart
|
|
938
|
+
BR-VAL-CHK-001 # Order total must be positive
|
|
939
|
+
FR-CHK-001 # Shopping cart API</code></pre>
|
|
940
|
+
</div>
|
|
1636
941
|
</section>
|
|
1637
942
|
|
|
1638
943
|
<!-- ============================================ -->
|
|
1639
944
|
<!-- AGENTS -->
|
|
1640
945
|
<!-- ============================================ -->
|
|
1641
946
|
<section id="agents">
|
|
1642
|
-
<h2>Agents</h2>
|
|
947
|
+
<h2>Agents (ba-reader / ba-writer)</h2>
|
|
1643
948
|
|
|
949
|
+
<h4><code>ba-reader</code></h4>
|
|
1644
950
|
<p data-lang="fr">
|
|
1645
|
-
|
|
951
|
+
Agent de lecture specialise dans la decouverte et validation. Toutes operations sont read-only et deterministes.
|
|
1646
952
|
</p>
|
|
1647
953
|
<p data-lang="en">
|
|
1648
|
-
|
|
954
|
+
Read-only agent specialized in discovery and validation. All operations are read-only and deterministic.
|
|
1649
955
|
</p>
|
|
1650
956
|
|
|
1651
|
-
<
|
|
1652
|
-
<
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
<span data-lang="en">Role</span>
|
|
1659
|
-
</th>
|
|
1660
|
-
<th>
|
|
1661
|
-
<span data-lang="fr">Methodes principales</span>
|
|
1662
|
-
<span data-lang="en">Key methods</span>
|
|
1663
|
-
</th>
|
|
1664
|
-
<th>
|
|
1665
|
-
<span data-lang="fr">Utilise dans</span>
|
|
1666
|
-
<span data-lang="en">Used in</span>
|
|
1667
|
-
</th>
|
|
1668
|
-
</tr>
|
|
1669
|
-
</thead>
|
|
1670
|
-
<tbody>
|
|
1671
|
-
<tr>
|
|
1672
|
-
<td><strong>ba-writer</strong></td>
|
|
1673
|
-
<td>
|
|
1674
|
-
<span data-lang="fr">Ecrit et met a jour le feature.json</span>
|
|
1675
|
-
<span data-lang="en">Writes and updates feature.json</span>
|
|
1676
|
-
</td>
|
|
1677
|
-
<td><code>createFeature</code>, <code>enrichSection</code>, <code>updateStatus</code>, <code>createVersion</code></td>
|
|
1678
|
-
<td>
|
|
1679
|
-
<span data-lang="fr">Toutes les etapes (00-04)</span>
|
|
1680
|
-
<span data-lang="en">All steps (00-04)</span>
|
|
1681
|
-
</td>
|
|
1682
|
-
</tr>
|
|
1683
|
-
<tr>
|
|
1684
|
-
<td><strong>ba-reader</strong></td>
|
|
1685
|
-
<td>
|
|
1686
|
-
<span data-lang="fr">Lit le feature.json pour le contexte</span>
|
|
1687
|
-
<span data-lang="en">Reads feature.json for context</span>
|
|
1688
|
-
</td>
|
|
1689
|
-
<td><code>findFeature</code>, <code>readSection</code>, <code>answerQuestion</code>, <code>getSummaryForSkill</code></td>
|
|
1690
|
-
<td>
|
|
1691
|
-
<span data-lang="fr">Toutes les etapes (00-04) + mode -q</span>
|
|
1692
|
-
<span data-lang="en">All steps (00-04) + -q mode</span>
|
|
1693
|
-
</td>
|
|
1694
|
-
</tr>
|
|
1695
|
-
</tbody>
|
|
1696
|
-
</table>
|
|
1697
|
-
</div>
|
|
957
|
+
<ul>
|
|
958
|
+
<li><code>findFeature(featureId)</code> - Localiser feature par ID</li>
|
|
959
|
+
<li><code>readSection(moduleId, sectionPath)</code> - Lire section specifique</li>
|
|
960
|
+
<li><code>readApplicationContext()</code> - Charger contexte complet application</li>
|
|
961
|
+
<li><code>listAllModuleIds()</code> - Lister tous modules (ID collision detection)</li>
|
|
962
|
+
<li><code>answerQuestion(question)</code> - Repondre a question sur feature</li>
|
|
963
|
+
</ul>
|
|
1698
964
|
|
|
1699
|
-
<
|
|
1700
|
-
|
|
965
|
+
<h4><code>ba-writer</code></h4>
|
|
966
|
+
<p data-lang="fr">
|
|
967
|
+
Agent d'ecriture avec validation schema obligatoire et verification post-ecriture.
|
|
968
|
+
</p>
|
|
969
|
+
<p data-lang="en">
|
|
970
|
+
Write agent with mandatory schema validation and post-write verification.
|
|
971
|
+
</p>
|
|
972
|
+
|
|
973
|
+
<ul>
|
|
974
|
+
<li><code>create(spec)</code> - Creer nouveau feature.json (validate schema)</li>
|
|
975
|
+
<li><code>createApplicationFeature(appSpec)</code> - Creer master application feature</li>
|
|
976
|
+
<li><code>enrichSection(moduleId, sectionPath, content)</code> - Enrichir section existante</li>
|
|
977
|
+
<li><code>enrichModuleHandoff(moduleId, handoffData)</code> - Enrichir handoff (verify completeness)</li>
|
|
978
|
+
<li><code>updateStatus(featureId, newStatus)</code> - Mettre a jour statut step</li>
|
|
979
|
+
<li><code>enrichModuleRegistry(moduleRegistry)</code> - Enrichir registry modules</li>
|
|
980
|
+
<li><code>advanceModuleLoop(nextModuleId)</code> - Avancer au prochain module</li>
|
|
981
|
+
</ul>
|
|
982
|
+
|
|
983
|
+
<div class="alert alert-warning">
|
|
984
|
+
<span class="alert-icon">⚠</span>
|
|
1701
985
|
<div class="alert-content">
|
|
1702
|
-
<h5 data-lang="fr">
|
|
1703
|
-
<h5 data-lang="en">
|
|
986
|
+
<h5 data-lang="fr">Validation schema OBLIGATOIRE</h5>
|
|
987
|
+
<h5 data-lang="en">Schema Validation MANDATORY</h5>
|
|
1704
988
|
<p data-lang="fr">
|
|
1705
|
-
|
|
989
|
+
Chaque write doit passer par JSON Schema 2020-12 validation AVANT persistance. Les erreurs sont rejetes avec messages clairs.
|
|
1706
990
|
</p>
|
|
1707
991
|
<p data-lang="en">
|
|
1708
|
-
|
|
992
|
+
Each write must pass JSON Schema 2020-12 validation BEFORE persistence. Errors are rejected with clear messages.
|
|
1709
993
|
</p>
|
|
1710
994
|
</div>
|
|
1711
995
|
</div>
|
|
1712
996
|
</section>
|
|
1713
997
|
|
|
1714
998
|
<!-- ============================================ -->
|
|
1715
|
-
<!--
|
|
999
|
+
<!-- IDS & CROSS-REFERENCES -->
|
|
1716
1000
|
<!-- ============================================ -->
|
|
1717
|
-
<section id="
|
|
1001
|
+
<section id="ids-refs">
|
|
1718
1002
|
<h2>
|
|
1719
|
-
<span data-lang="fr">
|
|
1720
|
-
<span data-lang="en">
|
|
1003
|
+
<span data-lang="fr">IDs & References croisees</span>
|
|
1004
|
+
<span data-lang="en">IDs & Cross-References</span>
|
|
1721
1005
|
</h2>
|
|
1722
1006
|
|
|
1723
|
-
<h4 data-lang="fr">
|
|
1724
|
-
<h4 data-lang="en">
|
|
1007
|
+
<h4 data-lang="fr">Patterns de nommage</h4>
|
|
1008
|
+
<h4 data-lang="en">Naming Patterns</h4>
|
|
1725
1009
|
|
|
1726
|
-
<div class="
|
|
1727
|
-
<
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
<span data-lang="en">Content</span>
|
|
1745
|
-
</th>
|
|
1746
|
-
</tr>
|
|
1747
|
-
</thead>
|
|
1748
|
-
<tbody>
|
|
1749
|
-
<tr>
|
|
1750
|
-
<td><strong>feature.json</strong></td>
|
|
1751
|
-
<td><code>docs/business/{app}/{module}/business-analyse/v{X.Y}/</code></td>
|
|
1752
|
-
<td>
|
|
1753
|
-
<span data-lang="fr">Toutes les etapes</span>
|
|
1754
|
-
<span data-lang="en">All steps</span>
|
|
1755
|
-
</td>
|
|
1756
|
-
<td>
|
|
1757
|
-
<span data-lang="fr">Source unique de verite — enrichi progressivement</span>
|
|
1758
|
-
<span data-lang="en">Single source of truth — progressively enriched</span>
|
|
1759
|
-
</td>
|
|
1760
|
-
</tr>
|
|
1761
|
-
<tr>
|
|
1762
|
-
<td><strong>prd.json</strong></td>
|
|
1763
|
-
<td><code>.ralph/prd.json</code></td>
|
|
1764
|
-
<td>Step 04</td>
|
|
1765
|
-
<td>
|
|
1766
|
-
<span data-lang="fr">Decomposition en 15 taches sur 9 couches (schema v2.0.0)</span>
|
|
1767
|
-
<span data-lang="en">Breakdown into 15 tasks across 9 layers (v2.0.0 schema)</span>
|
|
1768
|
-
</td>
|
|
1769
|
-
</tr>
|
|
1770
|
-
<tr>
|
|
1771
|
-
<td><strong>progress.txt</strong></td>
|
|
1772
|
-
<td><code>.ralph/progress.txt</code></td>
|
|
1773
|
-
<td>Step 04</td>
|
|
1774
|
-
<td>
|
|
1775
|
-
<span data-lang="fr">Suivi de progression avec template de mise a jour quotidienne</span>
|
|
1776
|
-
<span data-lang="en">Progress tracker with daily update template</span>
|
|
1777
|
-
</td>
|
|
1778
|
-
</tr>
|
|
1779
|
-
</tbody>
|
|
1780
|
-
</table>
|
|
1010
|
+
<div class="code-block">
|
|
1011
|
+
<button class="copy-btn">Copy</button>
|
|
1012
|
+
<pre><code>Module Prefix Format:
|
|
1013
|
+
- 3-4 characters (e.g., CHK, PAY, INV)
|
|
1014
|
+
- Derived from module name
|
|
1015
|
+
- Stored in moduleRegistry
|
|
1016
|
+
|
|
1017
|
+
ID Formats:
|
|
1018
|
+
UC-{PREFIX}-{NNN} # Use Case (sequential)
|
|
1019
|
+
BR-{CAT}-{PREFIX}-{NNN} # Business Rule with category
|
|
1020
|
+
FR-{PREFIX}-{NNN} # Functional Requirement
|
|
1021
|
+
|
|
1022
|
+
Example:
|
|
1023
|
+
Module: "Checkout"
|
|
1024
|
+
Prefix: "CHK"
|
|
1025
|
+
UC-CHK-001: Add item to cart
|
|
1026
|
+
BR-VAL-CHK-001: Order total validation
|
|
1027
|
+
FR-CHK-001: Cart API endpoint</code></pre>
|
|
1781
1028
|
</div>
|
|
1782
1029
|
|
|
1783
|
-
<h4 data-lang="fr">
|
|
1784
|
-
<h4 data-lang="en">
|
|
1030
|
+
<h4 data-lang="fr">Detection des collisions</h4>
|
|
1031
|
+
<h4 data-lang="en">Collision Detection</h4>
|
|
1785
1032
|
|
|
1786
|
-
<
|
|
1787
|
-
<
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
<td><code>schemas/feature-schema.json</code></td>
|
|
1807
|
-
<td>
|
|
1808
|
-
<span data-lang="fr">Schema de validation JSON (JSON Schema 2020-12)</span>
|
|
1809
|
-
<span data-lang="en">JSON validation schema (JSON Schema 2020-12)</span>
|
|
1810
|
-
</td>
|
|
1811
|
-
<td>
|
|
1812
|
-
<span data-lang="fr">Toutes les etapes</span>
|
|
1813
|
-
<span data-lang="en">All steps</span>
|
|
1814
|
-
</td>
|
|
1815
|
-
</tr>
|
|
1816
|
-
<tr>
|
|
1817
|
-
<td><code>templates/tpl-frd.md</code></td>
|
|
1818
|
-
<td>
|
|
1819
|
-
<span data-lang="fr">Template de specification fonctionnelle (reference)</span>
|
|
1820
|
-
<span data-lang="en">Functional requirements document template (reference)</span>
|
|
1821
|
-
</td>
|
|
1822
|
-
<td>Step 02</td>
|
|
1823
|
-
</tr>
|
|
1824
|
-
<tr>
|
|
1825
|
-
<td><code>templates/tpl-handoff.md</code></td>
|
|
1826
|
-
<td>
|
|
1827
|
-
<span data-lang="fr">Template de handoff developpement (reference)</span>
|
|
1828
|
-
<span data-lang="en">Development handoff template (reference)</span>
|
|
1829
|
-
</td>
|
|
1830
|
-
<td>Step 04</td>
|
|
1831
|
-
</tr>
|
|
1832
|
-
<tr>
|
|
1833
|
-
<td><code>patterns/suggestion-catalog.md</code></td>
|
|
1834
|
-
<td>
|
|
1835
|
-
<span data-lang="fr">Catalogue de suggestions proactives</span>
|
|
1836
|
-
<span data-lang="en">Proactive suggestions catalog</span>
|
|
1837
|
-
</td>
|
|
1838
|
-
<td>Step 01</td>
|
|
1839
|
-
</tr>
|
|
1840
|
-
<tr>
|
|
1841
|
-
<td><code>questionnaire/*.md</code></td>
|
|
1842
|
-
<td>
|
|
1843
|
-
<span data-lang="fr">13 categories de questionnaire</span>
|
|
1844
|
-
<span data-lang="en">13 questionnaire categories</span>
|
|
1845
|
-
</td>
|
|
1846
|
-
<td>Step 01</td>
|
|
1847
|
-
</tr>
|
|
1848
|
-
</tbody>
|
|
1849
|
-
</table>
|
|
1850
|
-
</div>
|
|
1033
|
+
<p data-lang="fr">
|
|
1034
|
+
L'agent <code>ba-reader.listAllModuleIds()</code> detecte les collisions cross-module et rapporte les IDs dupliques.
|
|
1035
|
+
</p>
|
|
1036
|
+
<p data-lang="en">
|
|
1037
|
+
The <code>ba-reader.listAllModuleIds()</code> agent detects cross-module collisions and reports duplicate IDs.
|
|
1038
|
+
</p>
|
|
1039
|
+
|
|
1040
|
+
<h4 data-lang="fr">Regles de validation des references croisees</h4>
|
|
1041
|
+
<h4 data-lang="en">Cross-Reference Validation Rules</h4>
|
|
1042
|
+
|
|
1043
|
+
<ul>
|
|
1044
|
+
<li data-lang="fr">Chaque UC doit referencer at least 1 FR</li>
|
|
1045
|
+
<li data-lang="en">Each UC must reference at least 1 FR</li>
|
|
1046
|
+
<li data-lang="fr">Chaque BR doit etre teste dans at least 1 UC</li>
|
|
1047
|
+
<li data-lang="en">Each BR must be tested in at least 1 UC</li>
|
|
1048
|
+
<li data-lang="fr">Chaque requirement (mustHave) doit etre couverte par coverage matrix</li>
|
|
1049
|
+
<li data-lang="en">Each requirement (mustHave) must be covered by coverage matrix</li>
|
|
1050
|
+
<li data-lang="fr">Les references croisees (xref) doivent utiliser module prefix correct</li>
|
|
1051
|
+
<li data-lang="en">Cross-references (xref) must use correct module prefix</li>
|
|
1052
|
+
</ul>
|
|
1851
1053
|
</section>
|
|
1852
1054
|
|
|
1853
1055
|
<!-- ============================================ -->
|
|
1854
|
-
<!--
|
|
1056
|
+
<!-- OUTPUT -->
|
|
1855
1057
|
<!-- ============================================ -->
|
|
1856
|
-
<section id="
|
|
1058
|
+
<section id="output">
|
|
1857
1059
|
<h2>
|
|
1858
|
-
<span data-lang="fr">
|
|
1859
|
-
<span data-lang="en">
|
|
1060
|
+
<span data-lang="fr">Sorties</span>
|
|
1061
|
+
<span data-lang="en">Output</span>
|
|
1860
1062
|
</h2>
|
|
1861
1063
|
|
|
1862
|
-
<h4 data-lang="fr">
|
|
1863
|
-
<h4 data-lang="en">
|
|
1064
|
+
<h4 data-lang="fr">Structure des fichiers generes</h4>
|
|
1065
|
+
<h4 data-lang="en">Generated Files Structure</h4>
|
|
1864
1066
|
|
|
1865
1067
|
<div class="code-block">
|
|
1866
1068
|
<button class="copy-btn">Copy</button>
|
|
1867
|
-
<pre><code
|
|
1868
|
-
|
|
1069
|
+
<pre><code>docs/business/{app}/business-analyse/
|
|
1070
|
+
├── v1.0/
|
|
1071
|
+
│ ├── feature.json ← Master application spec
|
|
1072
|
+
│ └── README.md ← Overview
|
|
1073
|
+
├── checkout/v1.0/
|
|
1074
|
+
│ ├── feature.json ← Module spec
|
|
1075
|
+
│ └── README.md
|
|
1076
|
+
├── payment/v1.0/
|
|
1077
|
+
│ ├── feature.json
|
|
1078
|
+
│ └── README.md
|
|
1079
|
+
└── shipping/v1.0/
|
|
1080
|
+
├── feature.json
|
|
1081
|
+
└── README.md
|
|
1869
1082
|
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
</div>
|
|
1878
|
-
</div>
|
|
1879
|
-
<div class="step-item">
|
|
1880
|
-
<div class="step-number">01</div>
|
|
1881
|
-
<div class="step-content">
|
|
1882
|
-
<strong>Analyse</strong> —
|
|
1883
|
-
<span data-lang="fr">Type detecte: <code>data-centric</code>. Questionnaire categories 01, 02, 03, 04, 06, 11. Extraction de 12 regles metier, 3 entites, 2 risques. 4 suggestions proactives presentees.</span>
|
|
1884
|
-
<span data-lang="en">Type detected: <code>data-centric</code>. Questionnaire categories 01, 02, 03, 04, 06, 11. Extraction of 12 business rules, 3 entities, 2 risks. 4 proactive suggestions presented.</span>
|
|
1885
|
-
</div>
|
|
1886
|
-
</div>
|
|
1887
|
-
<div class="step-item">
|
|
1888
|
-
<div class="step-number">02</div>
|
|
1889
|
-
<div class="step-content">
|
|
1890
|
-
<strong>Specify</strong> —
|
|
1891
|
-
<span data-lang="fr">8 UC, 15 FR, matrice permissions 4 roles, 5 SeedData, wireframes List/Create/Detail, 12 scenarios Gherkin, machine a etats (Draft → Confirmed → Shipped → Delivered).</span>
|
|
1892
|
-
<span data-lang="en">8 UCs, 15 FRs, 4-role permission matrix, 5 SeedData, List/Create/Detail wireframes, 12 Gherkin scenarios, state machine (Draft → Confirmed → Shipped → Delivered).</span>
|
|
1893
|
-
</div>
|
|
1894
|
-
</div>
|
|
1895
|
-
<div class="step-item">
|
|
1896
|
-
<div class="step-number">03</div>
|
|
1897
|
-
<div class="step-content">
|
|
1898
|
-
<strong>Validate</strong> —
|
|
1899
|
-
<span data-lang="fr">Completude OK, coherence OK (8 UC ↔ 15 FR ↔ 12 BR), conventions OK. Decision: <strong>APPROVED</strong>.</span>
|
|
1900
|
-
<span data-lang="en">Completeness OK, consistency OK (8 UCs ↔ 15 FRs ↔ 12 BRs), conventions OK. Decision: <strong>APPROVED</strong>.</span>
|
|
1901
|
-
</div>
|
|
1902
|
-
</div>
|
|
1903
|
-
<div class="step-item">
|
|
1904
|
-
<div class="step-number">04</div>
|
|
1905
|
-
<div class="step-content">
|
|
1906
|
-
<strong>Handoff</strong> —
|
|
1907
|
-
<span data-lang="fr">Mapping de 25 fichiers (backend + frontend), 8 endpoints API, plan de tests (18 unit, 8 integration, 4 E2E), cles i18n (4 langues). Generation de <code>prd.json</code> (15 taches, ~28h).</span>
|
|
1908
|
-
<span data-lang="en">25 files mapped (backend + frontend), 8 API endpoints, test plan (18 unit, 8 integration, 4 E2E), i18n keys (4 languages). Generated <code>prd.json</code> (15 tasks, ~28h).</span>
|
|
1909
|
-
</div>
|
|
1910
|
-
</div>
|
|
1083
|
+
.ralph/
|
|
1084
|
+
├── prd.json ← Extracted (programmatic)
|
|
1085
|
+
├── progress.txt ← Tracking
|
|
1086
|
+
└── per-module/
|
|
1087
|
+
├── checkout-handoff.json
|
|
1088
|
+
├── payment-handoff.json
|
|
1089
|
+
└── shipping-handoff.json</code></pre>
|
|
1911
1090
|
</div>
|
|
1912
1091
|
|
|
1913
|
-
<h4
|
|
1914
|
-
<
|
|
1092
|
+
<h4>Master <code>feature.json</code></h4>
|
|
1093
|
+
<div class="code-block">
|
|
1094
|
+
<button class="copy-btn">Copy</button>
|
|
1095
|
+
<pre><code>{
|
|
1096
|
+
"id": "APP-ORDERS-001",
|
|
1097
|
+
"version": "1.0.0",
|
|
1098
|
+
"application": "OrderManagement",
|
|
1099
|
+
"status": "handed-off",
|
|
1100
|
+
"metadata": {
|
|
1101
|
+
"context": "ecommerce",
|
|
1102
|
+
"title": "Order Management System",
|
|
1103
|
+
"createdAt": "2026-02-04",
|
|
1104
|
+
"language": "fr"
|
|
1105
|
+
},
|
|
1106
|
+
"cadrage": {
|
|
1107
|
+
"problem": "...",
|
|
1108
|
+
"stakeholders": [...],
|
|
1109
|
+
"scope": {...},
|
|
1110
|
+
"applicationRoles": ["admin", "manager", "contributor", "viewer"]
|
|
1111
|
+
},
|
|
1112
|
+
"coverageMatrix": {...},
|
|
1113
|
+
"moduleRegistry": [...],
|
|
1114
|
+
"dependencyGraph": {...},
|
|
1115
|
+
"changelog": [...]
|
|
1116
|
+
}</code></pre>
|
|
1117
|
+
</div>
|
|
1915
1118
|
|
|
1119
|
+
<h4>Per-Module <code>feature.json</code></h4>
|
|
1916
1120
|
<div class="code-block">
|
|
1917
1121
|
<button class="copy-btn">Copy</button>
|
|
1918
|
-
<pre><code>
|
|
1919
|
-
|
|
1920
|
-
|
|
1122
|
+
<pre><code>{
|
|
1123
|
+
"id": "FEAT-CHK-001",
|
|
1124
|
+
"module": "Checkout",
|
|
1125
|
+
"version": "1.0.0",
|
|
1126
|
+
"status": "handed-off",
|
|
1127
|
+
"metadata": {...},
|
|
1128
|
+
"specification": {
|
|
1129
|
+
"sections": [...],
|
|
1130
|
+
"entities": [...],
|
|
1131
|
+
"businessRules": [...],
|
|
1132
|
+
"useCases": [...],
|
|
1133
|
+
"requirements": [...]
|
|
1134
|
+
},
|
|
1135
|
+
"validation": {...},
|
|
1136
|
+
"handoff": {
|
|
1137
|
+
"fileMapping": {...},
|
|
1138
|
+
"apiEndpoints": [...],
|
|
1139
|
+
"wireframes": [...],
|
|
1140
|
+
"testPlan": {...}
|
|
1141
|
+
}
|
|
1142
|
+
}</code></pre>
|
|
1921
1143
|
</div>
|
|
1922
1144
|
|
|
1923
|
-
<h4
|
|
1924
|
-
<
|
|
1145
|
+
<h4><code>prd.json</code> (Programmatic)</h4>
|
|
1146
|
+
<p data-lang="fr">
|
|
1147
|
+
Genere par <code>ss derive-prd feature.json</code>, contient resume technique pour implementation.
|
|
1148
|
+
</p>
|
|
1149
|
+
<p data-lang="en">
|
|
1150
|
+
Generated by <code>ss derive-prd feature.json</code>, contains technical summary for implementation.
|
|
1151
|
+
</p>
|
|
1925
1152
|
|
|
1926
1153
|
<div class="code-block">
|
|
1927
1154
|
<button class="copy-btn">Copy</button>
|
|
1928
|
-
<pre><code
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1155
|
+
<pre><code>{
|
|
1156
|
+
"application": "OrderManagement",
|
|
1157
|
+
"version": "1.0.0",
|
|
1158
|
+
"generatedAt": "2026-02-04",
|
|
1159
|
+
"modules": [
|
|
1160
|
+
{
|
|
1161
|
+
"name": "Checkout",
|
|
1162
|
+
"priority": "must",
|
|
1163
|
+
"complexity": "high",
|
|
1164
|
+
"entities": ["Order", "OrderLine", "Customer"],
|
|
1165
|
+
"apiEndpoints": [
|
|
1166
|
+
{ "method": "POST", "path": "/api/orders", "auth": "contributor" }
|
|
1167
|
+
],
|
|
1168
|
+
"permissions": ["viewer", "contributor"],
|
|
1169
|
+
"dependencies": ["Inventory"]
|
|
1170
|
+
}
|
|
1171
|
+
]
|
|
1172
|
+
}</code></pre>
|
|
1934
1173
|
</div>
|
|
1935
1174
|
|
|
1936
|
-
<h4
|
|
1937
|
-
<
|
|
1175
|
+
<h4><code>progress.txt</code></h4>
|
|
1176
|
+
<p data-lang="fr">
|
|
1177
|
+
Tracker textuel de progression, genere a chaque etape.
|
|
1178
|
+
</p>
|
|
1179
|
+
<p data-lang="en">
|
|
1180
|
+
Text progress tracker, generated at each step.
|
|
1181
|
+
</p>
|
|
1938
1182
|
|
|
1939
1183
|
<div class="code-block">
|
|
1940
1184
|
<button class="copy-btn">Copy</button>
|
|
1941
|
-
<pre><code>#
|
|
1942
|
-
|
|
1185
|
+
<pre><code># Business Analyse Progress - OrderManagement v1.0
|
|
1186
|
+
|
|
1187
|
+
[✓] Step 00 - Init (completed 2026-02-04 10:00)
|
|
1188
|
+
[✓] Step 01 - Cadrage (completed 2026-02-04 10:15)
|
|
1189
|
+
- 4 applicationRoles defined
|
|
1190
|
+
- 5 mustHave requirements in coverage matrix
|
|
1191
|
+
|
|
1192
|
+
[✓] Step 02 - Decomposition (completed 2026-02-04 10:30)
|
|
1193
|
+
- 3 modules identified: Checkout, Payment, Shipping
|
|
1194
|
+
- Topological order: [Inventory, Checkout, Payment, Shipping]
|
|
1195
|
+
|
|
1196
|
+
[→] Step 03 - Specify (in progress)
|
|
1197
|
+
- Current module: Checkout (1/4)
|
|
1198
|
+
- Entities: 3/5 done
|
|
1199
|
+
- Use Cases: 2/8 done
|
|
1200
|
+
|
|
1201
|
+
[ ] Step 04 - Consolidation (pending)
|
|
1202
|
+
[ ] Step 05 - Handoff (pending)</code></pre>
|
|
1203
|
+
</div>
|
|
1204
|
+
</section>
|
|
1205
|
+
|
|
1206
|
+
<!-- ============================================ -->
|
|
1207
|
+
<!-- VERSIONING -->
|
|
1208
|
+
<!-- ============================================ -->
|
|
1209
|
+
<section id="versioning">
|
|
1210
|
+
<h2>Versioning</h2>
|
|
1211
|
+
|
|
1212
|
+
<p data-lang="fr">
|
|
1213
|
+
Les versions suivent SemVer. Les workflows complets incrementent MAJOR ou MINOR. Les deltas (refactoring) incrementent PATCH.
|
|
1214
|
+
</p>
|
|
1215
|
+
<p data-lang="en">
|
|
1216
|
+
Versions follow SemVer. Complete workflows increment MAJOR or MINOR. Deltas (refactoring) increment PATCH.
|
|
1217
|
+
</p>
|
|
1943
1218
|
|
|
1944
|
-
|
|
1219
|
+
<div class="table-container">
|
|
1220
|
+
<table class="reference-table">
|
|
1221
|
+
<thead>
|
|
1222
|
+
<tr>
|
|
1223
|
+
<th>
|
|
1224
|
+
<span data-lang="fr">Scenario</span>
|
|
1225
|
+
<span data-lang="en">Scenario</span>
|
|
1226
|
+
</th>
|
|
1227
|
+
<th>
|
|
1228
|
+
<span data-lang="fr">Version</span>
|
|
1229
|
+
<span data-lang="en">Version</span>
|
|
1230
|
+
</th>
|
|
1231
|
+
<th>Flag</th>
|
|
1232
|
+
</tr>
|
|
1233
|
+
</thead>
|
|
1234
|
+
<tbody>
|
|
1235
|
+
<tr>
|
|
1236
|
+
<td data-lang="fr">Nouvelle application</td>
|
|
1237
|
+
<td data-lang="en">New application</td>
|
|
1238
|
+
<td>1.0.0</td>
|
|
1239
|
+
<td>-</td>
|
|
1240
|
+
</tr>
|
|
1241
|
+
<tr>
|
|
1242
|
+
<td data-lang="fr">Ajout module majeur</td>
|
|
1243
|
+
<td data-lang="en">Add major module</td>
|
|
1244
|
+
<td>2.0.0</td>
|
|
1245
|
+
<td>-</td>
|
|
1246
|
+
</tr>
|
|
1247
|
+
<tr>
|
|
1248
|
+
<td data-lang="fr">Refactoring delta</td>
|
|
1249
|
+
<td data-lang="en">Refactoring delta</td>
|
|
1250
|
+
<td>1.1.0</td>
|
|
1251
|
+
<td>-r</td>
|
|
1252
|
+
</tr>
|
|
1253
|
+
<tr>
|
|
1254
|
+
<td data-lang="fr">Micro-feature</td>
|
|
1255
|
+
<td data-lang="en">Micro-feature</td>
|
|
1256
|
+
<td>1.0.1</td>
|
|
1257
|
+
<td>-m</td>
|
|
1258
|
+
</tr>
|
|
1259
|
+
</tbody>
|
|
1260
|
+
</table>
|
|
1945
1261
|
</div>
|
|
1946
1262
|
</section>
|
|
1947
1263
|
|
|
1948
1264
|
</div>
|
|
1265
|
+
|
|
1266
|
+
<!-- Footer -->
|
|
1267
|
+
<div style="margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border); text-align: center; color: var(--text-muted); font-size: 0.85rem;">
|
|
1268
|
+
<span data-lang="fr">Developpe par</span>
|
|
1269
|
+
<span data-lang="en">Developed by</span>
|
|
1270
|
+
<a href="https://www.atlashub.ch" style="color: var(--primary-light);">AtlasHub</a> •
|
|
1271
|
+
<a href="mailto:support@atlashub.ch" style="color: var(--primary-light);">support@atlashub.ch</a> •
|
|
1272
|
+
MIT License
|
|
1273
|
+
</div>
|
|
1274
|
+
|
|
1949
1275
|
</main>
|
|
1950
1276
|
</div>
|
|
1951
1277
|
</div>
|
|
1952
1278
|
|
|
1279
|
+
<!-- Mobile Menu Button -->
|
|
1280
|
+
<button class="mobile-menu-btn">☰</button>
|
|
1281
|
+
<div class="overlay"></div>
|
|
1282
|
+
|
|
1953
1283
|
<script src="js/app.js"></script>
|
|
1954
1284
|
</body>
|
|
1955
1285
|
</html>
|