@atlashub/smartstack-cli 1.13.2 → 1.14.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 +1 -1
- package/.documentation/cli-commands.html +3 -3
- package/.documentation/commands.html +1 -1
- package/.documentation/efcore.html +1 -1
- package/.documentation/gitflow.html +231 -236
- package/.documentation/hooks.html +1 -1
- package/.documentation/index.html +1 -1
- package/.documentation/init.html +3 -3
- package/.documentation/installation.html +1075 -351
- package/.documentation/ralph-loop.html +1 -1
- package/.documentation/test-web.html +1 -1
- package/README.md +88 -20
- package/config/default-config.json +10 -1
- package/dist/index.js +276 -85
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/code-reviewer.md +163 -0
- package/templates/agents/efcore/db-deploy.md +25 -7
- package/templates/agents/efcore/db-reset.md +31 -10
- package/templates/agents/efcore/db-status.md +22 -5
- package/templates/agents/efcore/migration.md +70 -20
- package/templates/agents/gitflow/cleanup.md +8 -1
- package/templates/agents/gitflow/commit.md +7 -5
- package/templates/agents/gitflow/finish.md +6 -4
- package/templates/agents/gitflow/pr.md +8 -1
- package/templates/agents/gitflow/start.md +1 -1
- package/templates/commands/check-version.md +267 -0
- package/templates/commands/efcore/_shared.md +31 -2
- package/templates/commands/efcore/db-reset.md +18 -6
- package/templates/commands/efcore/migration.md +1 -1
- package/templates/commands/efcore/rebase-snapshot.md +1 -1
- package/templates/commands/efcore/squash.md +1 -0
- package/templates/commands/refactor.md +164 -0
- package/templates/project/DependencyInjection.Application.cs.template +25 -0
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
- package/templates/project/ExampleEntity.cs.template +116 -0
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
- package/templates/project/ExampleService.cs.template +146 -0
- package/templates/project/ExtensionsDbContext.cs.template +41 -0
- package/templates/project/IExtensionsDbContext.cs.template +22 -0
- package/templates/project/Program.cs.template +47 -0
- package/templates/project/README.md +79 -0
- package/templates/ralph/README.md +10 -8
- package/templates/ralph/ralph.config.yaml +2 -2
- package/templates/skills/_shared.md +44 -44
- package/templates/skills/ai-prompt/SKILL.md +55 -55
- package/templates/skills/apex/SKILL.md +235 -0
- package/templates/skills/apex/steps/step-00-init.md +203 -0
- package/templates/skills/apex/steps/step-01-analyze.md +210 -0
- package/templates/skills/apex/steps/step-02-plan.md +217 -0
- package/templates/skills/apex/steps/step-03-execute.md +178 -0
- package/templates/skills/apex/steps/step-04-validate.md +217 -0
- package/templates/skills/apex/steps/step-05-examine.md +207 -0
- package/templates/skills/apex/steps/step-06-resolve.md +181 -0
- package/templates/skills/apex/steps/step-07-tests.md +206 -0
- package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
- package/templates/skills/apex/templates/00-context.md +46 -0
- package/templates/skills/apex/templates/01-analyze.md +63 -0
- package/templates/skills/apex/templates/02-plan.md +63 -0
- package/templates/skills/apex/templates/03-execute.md +34 -0
- package/templates/skills/apex/templates/04-validate.md +61 -0
- package/templates/skills/apex/templates/05-examine.md +58 -0
- package/templates/skills/apex/templates/06-resolve.md +39 -0
- package/templates/skills/apex/templates/07-tests.md +56 -0
- package/templates/skills/apex/templates/08-run-tests.md +41 -0
- package/templates/skills/apex/templates/README.md +69 -0
- package/templates/skills/application/SKILL.md +50 -50
- package/templates/skills/application/templates-backend.md +25 -25
- package/templates/skills/application/templates-frontend.md +43 -43
- package/templates/skills/application/templates-i18n.md +29 -29
- package/templates/skills/application/templates-seed.md +77 -77
- package/templates/skills/business-analyse/SKILL.md +223 -0
- package/templates/skills/business-analyse/_shared.md +258 -0
- package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
- package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
- package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
- package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
- package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
- package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
- package/templates/skills/business-analyse/questionnaire.md +177 -177
- package/templates/skills/business-analyse/react/components.md +340 -0
- package/templates/skills/business-analyse/react/i18n-template.md +245 -0
- package/templates/skills/business-analyse/react/schema.md +151 -0
- package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
- package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
- package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
- package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
- package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
- package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
- package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
- package/templates/skills/business-analyse/templates/00-context.md +105 -0
- package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
- package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
- package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
- package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
- package/templates/skills/business-analyse/templates-frd.md +217 -217
- package/templates/skills/business-analyse/templates-react.md +26 -26
- package/templates/skills/controller/SKILL.md +141 -92
- package/templates/skills/controller/postman-templates.md +15 -15
- package/templates/skills/controller/steps/step-00-init.md +191 -0
- package/templates/skills/controller/steps/step-01-analyze.md +146 -0
- package/templates/skills/controller/steps/step-02-plan.md +176 -0
- package/templates/skills/controller/steps/step-03-generate.md +219 -0
- package/templates/skills/controller/steps/step-04-perms.md +219 -0
- package/templates/skills/controller/steps/step-05-validate.md +107 -0
- package/templates/skills/controller/templates.md +77 -77
- package/templates/skills/documentation/SKILL.md +79 -79
- package/templates/skills/feature-full/SKILL.md +38 -38
- package/templates/skills/gitflow/SKILL.md +277 -0
- package/templates/{commands → skills}/gitflow/_shared.md +20 -20
- package/templates/skills/gitflow/phases/abort.md +173 -0
- package/templates/skills/gitflow/phases/cleanup.md +226 -0
- package/templates/skills/gitflow/phases/status.md +178 -0
- package/templates/skills/gitflow/steps/step-commit.md +255 -0
- package/templates/skills/gitflow/steps/step-finish.md +255 -0
- package/templates/skills/gitflow/steps/step-init.md +209 -0
- package/templates/skills/gitflow/steps/step-merge.md +225 -0
- package/templates/skills/gitflow/steps/step-plan.md +208 -0
- package/templates/skills/gitflow/steps/step-pr.md +235 -0
- package/templates/skills/gitflow/steps/step-start.md +334 -0
- package/templates/skills/gitflow/steps/step-sync.md +200 -0
- package/templates/skills/gitflow/templates/config.json +53 -0
- package/templates/skills/notification/SKILL.md +51 -51
- package/templates/skills/ralph-loop/SKILL.md +228 -0
- package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
- package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
- package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
- package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
- package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
- package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
- package/templates/skills/review-code/SKILL.md +219 -0
- package/templates/skills/review-code/references/clean-code-principles.md +140 -0
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
- package/templates/skills/review-code/references/feedback-patterns.md +149 -0
- package/templates/skills/review-code/references/security-checklist.md +127 -0
- package/templates/skills/ui-components/SKILL.md +54 -54
- package/templates/skills/workflow/SKILL.md +46 -46
- package/templates/commands/ai-prompt.md +0 -315
- package/templates/commands/apex/1-analyze.md +0 -100
- package/templates/commands/apex/2-plan.md +0 -145
- package/templates/commands/apex/3-execute.md +0 -171
- package/templates/commands/apex/4-examine.md +0 -116
- package/templates/commands/apex/5-tasks.md +0 -209
- package/templates/commands/apex.md +0 -76
- package/templates/commands/application/create.md +0 -362
- package/templates/commands/application/templates-backend.md +0 -463
- package/templates/commands/application/templates-frontend.md +0 -517
- package/templates/commands/application/templates-i18n.md +0 -478
- package/templates/commands/application/templates-seed.md +0 -362
- package/templates/commands/application.md +0 -303
- package/templates/commands/business-analyse/0-orchestrate.md +0 -156
- package/templates/commands/business-analyse/1-init.md +0 -99
- package/templates/commands/business-analyse/2-discover.md +0 -143
- package/templates/commands/business-analyse/3-analyse.md +0 -106
- package/templates/commands/business-analyse/4-specify.md +0 -133
- package/templates/commands/business-analyse/5-validate.md +0 -132
- package/templates/commands/business-analyse/6-handoff.md +0 -157
- package/templates/commands/business-analyse/7-doc-html.md +0 -103
- package/templates/commands/business-analyse/_shared.md +0 -176
- package/templates/commands/business-analyse/bug.md +0 -118
- package/templates/commands/business-analyse/change-request.md +0 -144
- package/templates/commands/business-analyse/hotfix.md +0 -116
- package/templates/commands/business-analyse.md +0 -121
- package/templates/commands/controller/create.md +0 -216
- package/templates/commands/controller/postman-templates.md +0 -528
- package/templates/commands/controller/templates.md +0 -600
- package/templates/commands/controller.md +0 -337
- package/templates/commands/create/agent.md +0 -138
- package/templates/commands/create/command.md +0 -166
- package/templates/commands/create/hook.md +0 -234
- package/templates/commands/create/plugin.md +0 -329
- package/templates/commands/create/project.md +0 -508
- package/templates/commands/create/skill.md +0 -199
- package/templates/commands/create.md +0 -220
- package/templates/commands/documentation/module.md +0 -202
- package/templates/commands/documentation/templates.md +0 -432
- package/templates/commands/documentation.md +0 -190
- package/templates/commands/epct.md +0 -69
- package/templates/commands/explain.md +0 -186
- package/templates/commands/feature-full.md +0 -267
- package/templates/commands/gitflow/1-init.md +0 -188
- package/templates/commands/gitflow/10-start.md +0 -190
- package/templates/commands/gitflow/11-finish.md +0 -382
- package/templates/commands/gitflow/12-cleanup.md +0 -103
- package/templates/commands/gitflow/13-sync.md +0 -216
- package/templates/commands/gitflow/14-rebase.md +0 -251
- package/templates/commands/gitflow/2-status.md +0 -122
- package/templates/commands/gitflow/3-commit.md +0 -209
- package/templates/commands/gitflow/4-plan.md +0 -174
- package/templates/commands/gitflow/5-exec.md +0 -202
- package/templates/commands/gitflow/6-abort.md +0 -121
- package/templates/commands/gitflow/7-pull-request.md +0 -176
- package/templates/commands/gitflow/8-review.md +0 -113
- package/templates/commands/gitflow/9-merge.md +0 -157
- package/templates/commands/gitflow.md +0 -128
- package/templates/commands/implement.md +0 -663
- package/templates/commands/init.md +0 -567
- package/templates/commands/mcp-integration.md +0 -330
- package/templates/commands/notification.md +0 -129
- package/templates/commands/oneshot.md +0 -57
- package/templates/commands/quickstart.md +0 -154
- package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
- package/templates/commands/ralph-loop/help.md +0 -126
- package/templates/commands/ralph-loop/ralph-loop.md +0 -120
- package/templates/commands/review.md +0 -106
- package/templates/commands/workflow.md +0 -193
- package/templates/gitflow/config.json +0 -138
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Systematic implementation using APEX methodology (Analyze-Plan-Execute-eXamine)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
You are a systematic implementation specialist. Follow the APEX workflow rigorously for every task.
|
|
6
|
-
|
|
7
|
-
**You need to always ULTRA THINK.**
|
|
8
|
-
|
|
9
|
-
**CRITICAL: When starting each phase, output a clear heading like "# 1. ANALYZE", "# 2. PLAN", "# 3. EXECUTE", "# 4. EXAMINE" so the user can see which phase you're in.**
|
|
10
|
-
|
|
11
|
-
## 1. ANALYZE
|
|
12
|
-
|
|
13
|
-
**Goal**: Find all relevant files for implementation
|
|
14
|
-
|
|
15
|
-
- Launch **parallel subagents** to search codebase (`explore-codebase` agent is good for that)
|
|
16
|
-
- Launch **parallel subagents** to gather online information (`websearch` agent is good for that)
|
|
17
|
-
- Launch **parallel subagents** to search inside documentation (`explore-docs` agent is good for that)
|
|
18
|
-
- Find files to use as **examples** or **edit targets**
|
|
19
|
-
- Return relevant file paths and useful context
|
|
20
|
-
- **CRITICAL**: Think deeply before starting agents - know exactly what to search for
|
|
21
|
-
- Use multiple agents to search across different areas
|
|
22
|
-
|
|
23
|
-
## 2. PLAN
|
|
24
|
-
|
|
25
|
-
**Goal**: Create detailed implementation strategy
|
|
26
|
-
|
|
27
|
-
- Write comprehensive implementation plan including:
|
|
28
|
-
- Core functionality changes
|
|
29
|
-
- Test coverage requirements
|
|
30
|
-
- Lookbook components if needed
|
|
31
|
-
- Documentation updates
|
|
32
|
-
- **STOP and ASK** user if anything remains unclear
|
|
33
|
-
|
|
34
|
-
## 3. EXECUTE
|
|
35
|
-
|
|
36
|
-
**Goal**: Implement following existing patterns
|
|
37
|
-
|
|
38
|
-
- Follow existing codebase style:
|
|
39
|
-
- Prefer clear variable/method names over comments
|
|
40
|
-
- Match existing patterns and conventions
|
|
41
|
-
- **CRITICAL RULES**:
|
|
42
|
-
- Stay **STRICTLY IN SCOPE** - change only what's needed
|
|
43
|
-
- NO comments unless absolutely necessary
|
|
44
|
-
- Run autoformatting scripts when done
|
|
45
|
-
- Fix reasonable linter warnings
|
|
46
|
-
|
|
47
|
-
## 4. EXAMINE
|
|
48
|
-
|
|
49
|
-
**Goal**: Verify your changes work correctly
|
|
50
|
-
|
|
51
|
-
- **First check package.json** for available scripts:
|
|
52
|
-
- Look for: `lint`, `typecheck`, `test`, `format`, `build`
|
|
53
|
-
- Run relevant commands like `npm run lint`, `npm run typecheck`
|
|
54
|
-
- Run **ONLY tests related to your feature** using subagents
|
|
55
|
-
- **STAY IN SCOPE**: Don't run entire test suite, just tests that match your changes
|
|
56
|
-
- For major UX changes:
|
|
57
|
-
- Create test checklist for affected features only
|
|
58
|
-
- Use browser agent to verify specific functionality
|
|
59
|
-
- **CRITICAL**: Code must pass linting and type checks
|
|
60
|
-
- If tests fail: **return to PLAN phase** and rethink approach
|
|
61
|
-
|
|
62
|
-
## Execution Rules
|
|
63
|
-
|
|
64
|
-
- Use parallel execution for speed
|
|
65
|
-
- Think deeply at each phase transition
|
|
66
|
-
- Never exceed task boundaries
|
|
67
|
-
- Follow repo standards for tests/docs/components
|
|
68
|
-
- Test ONLY what you changed
|
|
69
|
-
|
|
70
|
-
## Priority
|
|
71
|
-
|
|
72
|
-
Correctness > Completeness > Speed. Each phase must be thorough before proceeding.
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
User: $ARGUMENTS
|
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
# /application:create - Génération Full-Stack SmartStack
|
|
2
|
-
|
|
3
|
-
> **Synergie Skill/Commande:**
|
|
4
|
-
> - **Skill** (`.claude/skills/application/`) → Invocation automatique par Claude
|
|
5
|
-
> - **Commande** (`/application:create`) → Invocation manuelle par l'utilisateur
|
|
6
|
-
> - Templates partagés dans `.claude/skills/application/templates-*.md`
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## ARGUMENTS
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
/application:create <level> <parent> <code> [options]
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
| Variable | Description | Valeurs |
|
|
17
|
-
|----------|-------------|---------|
|
|
18
|
-
| `level` | Niveau de navigation | `context`, `application`, `module`, `section` |
|
|
19
|
-
| `parent` | Code du parent | Ex: `platform`, `platform.administration` |
|
|
20
|
-
| `code` | Code de l'entité | Ex: `products`, `crm`, `erp` |
|
|
21
|
-
|
|
22
|
-
**Exemples:**
|
|
23
|
-
```bash
|
|
24
|
-
# Créer un nouveau context
|
|
25
|
-
/application:create context _ erp
|
|
26
|
-
|
|
27
|
-
# Créer une application dans un context existant
|
|
28
|
-
/application:create application platform sales
|
|
29
|
-
|
|
30
|
-
# Créer un module dans une application existante
|
|
31
|
-
/application:create module platform.administration products
|
|
32
|
-
|
|
33
|
-
# Créer une section dans un module existant
|
|
34
|
-
/application:create section platform.administration.users settings
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## WORKFLOW
|
|
40
|
-
|
|
41
|
-
### PHASE 1: PARSING & VALIDATION
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
1. EXTRAIRE level, parent, code des arguments
|
|
45
|
-
2. VALIDER que le parent existe (sauf pour context)
|
|
46
|
-
3. DÉTECTER le context racine
|
|
47
|
-
4. GÉNÉRER les chemins de route et permission
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### PHASE 2: COLLECTE DES TRADUCTIONS
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
AskUserQuestion({
|
|
54
|
-
questions: [
|
|
55
|
-
{
|
|
56
|
-
header: "Labels FR",
|
|
57
|
-
question: "Libellés en français ?",
|
|
58
|
-
options: [
|
|
59
|
-
{ label: "$CODE_PASCAL", description: "Label par défaut" }
|
|
60
|
-
]
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
header: "Icône",
|
|
64
|
-
question: "Quelle icône Lucide ?",
|
|
65
|
-
options: [
|
|
66
|
-
{ label: "Package", description: "Icône produit" },
|
|
67
|
-
{ label: "Folder", description: "Icône générique" },
|
|
68
|
-
{ label: "Settings", description: "Icône configuration" }
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
})
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### PHASE 3: GÉNÉRATION DB SEED
|
|
76
|
-
|
|
77
|
-
| Fichier | Action |
|
|
78
|
-
|---------|--------|
|
|
79
|
-
| `Navigation{Level}Configuration.cs` | Ajouter entité |
|
|
80
|
-
| `NavigationTranslationConfiguration.cs` | Ajouter 4 traductions |
|
|
81
|
-
| `PermissionConfiguration.cs` | Ajouter permissions CRUD |
|
|
82
|
-
| `RolePermissionConfiguration.cs` | Assigner aux rôles |
|
|
83
|
-
|
|
84
|
-
**Templates:** → `.claude/skills/application/templates-seed.md`
|
|
85
|
-
|
|
86
|
-
### PHASE 4: GÉNÉRATION BACKEND
|
|
87
|
-
|
|
88
|
-
| Fichier | Action |
|
|
89
|
-
|---------|--------|
|
|
90
|
-
| `Permissions.cs` | Ajouter classe permissions |
|
|
91
|
-
| `I{Entity}Service.cs` | Créer interface |
|
|
92
|
-
| `{Entity}Service.cs` | Créer implémentation |
|
|
93
|
-
| `{Entity}Dto.cs` | Créer DTOs |
|
|
94
|
-
| `{Entity}.cs` | Créer entité Domain |
|
|
95
|
-
| `{Entity}Configuration.cs` | Créer config EF |
|
|
96
|
-
| `IApplicationDbContext.cs` | Ajouter DbSet |
|
|
97
|
-
| `DependencyInjection.cs` | Enregistrer service |
|
|
98
|
-
|
|
99
|
-
**Templates:** → `.claude/skills/application/templates-backend.md`
|
|
100
|
-
|
|
101
|
-
**Chaîner:** → `/controller:create $AREA $MODULE $ENTITY`
|
|
102
|
-
|
|
103
|
-
### PHASE 5: GÉNÉRATION FRONTEND
|
|
104
|
-
|
|
105
|
-
| Fichier | Action |
|
|
106
|
-
|---------|--------|
|
|
107
|
-
| `{Module}Page.tsx` | Créer page principale |
|
|
108
|
-
| `{Module}ListView.tsx` | Créer composant liste |
|
|
109
|
-
| `use{Module}Preferences.ts` | Créer hook préférences |
|
|
110
|
-
| `{module}Api.ts` | Créer service API |
|
|
111
|
-
| `App.tsx` | Ajouter routes |
|
|
112
|
-
|
|
113
|
-
**Templates:** → `.claude/skills/application/templates-frontend.md`
|
|
114
|
-
|
|
115
|
-
#### 5.1 RÈGLE SECTIONS: Toute section DOIT avoir une page
|
|
116
|
-
|
|
117
|
-
Pour les **sections** (`level=section`), vérifier si une page dédiée est demandée :
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
// Logique de décision
|
|
121
|
-
if (level === 'section') {
|
|
122
|
-
const hasCustomPage = userRequestedSpecificPage();
|
|
123
|
-
|
|
124
|
-
if (!hasCustomPage) {
|
|
125
|
-
// Créer page placeholder avec UnderDevelopment
|
|
126
|
-
createPlaceholderPage(code, parent);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**Création automatique de page placeholder:**
|
|
132
|
-
|
|
133
|
-
1. **Vérifier** que `UnderDevelopment.tsx` existe dans `components/ui/`
|
|
134
|
-
2. **Créer** `{Section}Page.tsx` utilisant `UnderDevelopment`
|
|
135
|
-
3. **Ajouter** route dans `App.tsx`
|
|
136
|
-
4. **Ajouter** traductions i18n pour la section
|
|
137
|
-
|
|
138
|
-
**Template page placeholder:**
|
|
139
|
-
|
|
140
|
-
```tsx
|
|
141
|
-
// web/smartstack-web/src/pages/{area}/{Section}Page.tsx
|
|
142
|
-
import { {Icon} } from 'lucide-react';
|
|
143
|
-
import { useTranslation } from 'react-i18next';
|
|
144
|
-
import { UnderDevelopment } from '@/components/ui/UnderDevelopment';
|
|
145
|
-
|
|
146
|
-
export function {Section}Page() {
|
|
147
|
-
const { t } = useTranslation('{namespace}');
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
<div className="space-y-6">
|
|
151
|
-
<div>
|
|
152
|
-
<h1 className="text-2xl font-bold text-[var(--text-primary)]">
|
|
153
|
-
{t('{section}.title')}
|
|
154
|
-
</h1>
|
|
155
|
-
<p className="text-sm text-[var(--text-tertiary)] mt-1">
|
|
156
|
-
{t('{section}.subtitle')}
|
|
157
|
-
</p>
|
|
158
|
-
</div>
|
|
159
|
-
<div className="card">
|
|
160
|
-
<UnderDevelopment
|
|
161
|
-
title={t('{section}.underDevelopmentTitle')}
|
|
162
|
-
description={t('{section}.underDevelopmentDescription')}
|
|
163
|
-
icon={<{Icon} className="w-10 h-10 text-amber-600 dark:text-amber-400" />}
|
|
164
|
-
showBackButton={true}
|
|
165
|
-
backUrl="{parentRoute}"
|
|
166
|
-
/>
|
|
167
|
-
</div>
|
|
168
|
-
</div>
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
**Template traductions placeholder (à ajouter dans le namespace existant):**
|
|
174
|
-
|
|
175
|
-
```json
|
|
176
|
-
"{section}": {
|
|
177
|
-
"title": "{Label}",
|
|
178
|
-
"subtitle": "{Description}",
|
|
179
|
-
"underDevelopmentTitle": "{Label}",
|
|
180
|
-
"underDevelopmentDescription": "Cette fonctionnalité sera bientôt disponible."
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### PHASE 6: GÉNÉRATION I18N
|
|
185
|
-
|
|
186
|
-
| Fichier | Action |
|
|
187
|
-
|---------|--------|
|
|
188
|
-
| `fr/{module}.json` | Créer traductions FR |
|
|
189
|
-
| `en/{module}.json` | Créer traductions EN |
|
|
190
|
-
| `it/{module}.json` | Créer traductions IT |
|
|
191
|
-
| `de/{module}.json` | Créer traductions DE |
|
|
192
|
-
| `navigation.json` (×4) | Mettre à jour |
|
|
193
|
-
| `i18n/index.ts` | Enregistrer namespace |
|
|
194
|
-
|
|
195
|
-
**Templates:** → `.claude/skills/application/templates-i18n.md`
|
|
196
|
-
|
|
197
|
-
### PHASE 7: MIGRATION
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
# Chaîner automatiquement
|
|
201
|
-
/efcore:migration Add{Level}{Code}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### PHASE 8: VALIDATION
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# Backend
|
|
208
|
-
dotnet build
|
|
209
|
-
dotnet test
|
|
210
|
-
|
|
211
|
-
# Frontend
|
|
212
|
-
cd web/smartstack-web
|
|
213
|
-
npm run build
|
|
214
|
-
npm run lint
|
|
215
|
-
npm run test
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### PHASE 9: RÉSUMÉ
|
|
219
|
-
|
|
220
|
-
```markdown
|
|
221
|
-
## ✅ Création terminée
|
|
222
|
-
|
|
223
|
-
### Fichiers créés
|
|
224
|
-
- 📁 Backend: X fichiers
|
|
225
|
-
- 📁 Frontend: X fichiers
|
|
226
|
-
- 🌐 i18n: 4 langues
|
|
227
|
-
|
|
228
|
-
### Navigation
|
|
229
|
-
- Route: /$ROUTE
|
|
230
|
-
- Permission: $PERMISSION_PATH.*
|
|
231
|
-
|
|
232
|
-
### Prochaines étapes
|
|
233
|
-
1. Vérifier les seeds générés
|
|
234
|
-
2. Tester avec Swagger
|
|
235
|
-
3. Valider l'UI
|
|
236
|
-
|
|
237
|
-
### Commandes utiles
|
|
238
|
-
- `dotnet ef database update` - Appliquer migration
|
|
239
|
-
- `npm run dev` - Lancer frontend
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## RÈGLES ABSOLUES
|
|
245
|
-
|
|
246
|
-
1. **TOUJOURS** 4 langues (FR, EN, IT, DE)
|
|
247
|
-
2. **TOUJOURS** respecter l'architecture en couches
|
|
248
|
-
3. **TOUJOURS** implémenter les préférences utilisateur (template complet)
|
|
249
|
-
4. **TOUJOURS** chaîner avec `/controller:create` et `/efcore:migration`
|
|
250
|
-
5. **TOUJOURS** utiliser GUIDs déterministes (`GenerateGuid(index)`)
|
|
251
|
-
6. **TOUJOURS** créer une page pour chaque section (placeholder si non spécifiée)
|
|
252
|
-
7. **JAMAIS** de violation d'architecture (WEB → Infrastructure)
|
|
253
|
-
8. **JAMAIS** de traduction manquante
|
|
254
|
-
9. **JAMAIS** de section sans page frontend correspondante
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
## VALIDATION ARCHITECTURE
|
|
259
|
-
|
|
260
|
-
Le skill **DOIT** vérifier après génération :
|
|
261
|
-
|
|
262
|
-
```typescript
|
|
263
|
-
// Vérifier qu'aucun fichier frontend n'importe Infrastructure
|
|
264
|
-
const frontendFiles = glob('web/**/*.{ts,tsx}');
|
|
265
|
-
for (const file of frontendFiles) {
|
|
266
|
-
const content = read(file);
|
|
267
|
-
if (content.includes('SmartStack.Infrastructure')) {
|
|
268
|
-
ERROR('Architecture violation: ' + file);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
## SOURCES DE DONNÉES
|
|
276
|
-
|
|
277
|
-
| Donnée | Source |
|
|
278
|
-
|--------|--------|
|
|
279
|
-
| Navigation entities | `src/SmartStack.Infrastructure/Persistence/Configurations/Navigation/` |
|
|
280
|
-
| Translations | `NavigationTranslationConfiguration.cs` |
|
|
281
|
-
| Permissions | `src/SmartStack.Application/Common/Authorization/Permissions.cs` |
|
|
282
|
-
| i18n locales | `web/smartstack-web/src/i18n/locales/` |
|
|
283
|
-
| Routes | `web/smartstack-web/src/App.tsx` |
|
|
284
|
-
| UnderDevelopment | `web/smartstack-web/src/components/ui/UnderDevelopment.tsx` |
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## MAPPING NIVEAU → GÉNÉRATION
|
|
289
|
-
|
|
290
|
-
| Niveau | DB Seed | Backend | Frontend | i18n |
|
|
291
|
-
|--------|---------|---------|----------|------|
|
|
292
|
-
| Context | ✅ | ❌ | ❌ | ✅ (nav) |
|
|
293
|
-
| Application | ✅ | ❌ | ✅ (layout) | ✅ (nav) |
|
|
294
|
-
| Module | ✅ | ✅ (complet) | ✅ (complet) | ✅ (complet) |
|
|
295
|
-
| Section | ✅ | ✅ (optionnel) | ✅ (page ou placeholder) | ✅ (nav + section) |
|
|
296
|
-
|
|
297
|
-
> **Note Section:** Toute section DOIT avoir une page. Si aucune page spécifique n'est demandée, créer automatiquement une page placeholder utilisant `UnderDevelopment`.
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## EXEMPLES COMPLETS
|
|
302
|
-
|
|
303
|
-
### Exemple 1: Nouveau module Products
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
/application:create module business.sales products
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
Génère:
|
|
310
|
-
- Navigation seed + 4 traductions
|
|
311
|
-
- Permissions CRUD
|
|
312
|
-
- Domain entity `Product`
|
|
313
|
-
- Service `IProductService` + `ProductService`
|
|
314
|
-
- DTOs
|
|
315
|
-
- Controller (via /controller:create)
|
|
316
|
-
- Page React + ListView + Hook préférences
|
|
317
|
-
- 4 fichiers i18n
|
|
318
|
-
- Routes
|
|
319
|
-
- Migration
|
|
320
|
-
|
|
321
|
-
### Exemple 2: Nouvelle application CRM
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
/application:create application business crm
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
Génère:
|
|
328
|
-
- Navigation seed application + 4 traductions
|
|
329
|
-
- Layout/Dashboard pour CRM
|
|
330
|
-
- Mise à jour navigation.json (4 langues)
|
|
331
|
-
|
|
332
|
-
### Exemple 3: Nouveau context ERP
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
/application:create context _ erp
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
Génère:
|
|
339
|
-
- Navigation seed context + 4 traductions
|
|
340
|
-
- Mise à jour navigation.json (4 langues)
|
|
341
|
-
- Base pour futures applications
|
|
342
|
-
|
|
343
|
-
### Exemple 4: Nouvelle section (avec page placeholder automatique)
|
|
344
|
-
|
|
345
|
-
```bash
|
|
346
|
-
/application:create section platform.administration.workflows analytics
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
Génère:
|
|
350
|
-
- Navigation seed section + 4 traductions
|
|
351
|
-
- Permissions (si applicable)
|
|
352
|
-
- **Page placeholder** `WorkflowAnalyticsPage.tsx` utilisant `UnderDevelopment`
|
|
353
|
-
- Traductions i18n pour la section (titre, description, underDevelopment)
|
|
354
|
-
- Route dans `App.tsx`
|
|
355
|
-
- Export dans `index.ts` du dossier pages
|
|
356
|
-
|
|
357
|
-
**Fichiers créés:**
|
|
358
|
-
```
|
|
359
|
-
web/smartstack-web/src/pages/admin/communications/WorkflowAnalyticsPage.tsx
|
|
360
|
-
web/smartstack-web/src/i18n/locales/{fr,en,de,it}/communications.json (màj)
|
|
361
|
-
web/smartstack-web/src/App.tsx (màj)
|
|
362
|
-
```
|