@atlashub/smartstack-cli 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.documentation/agents.html +8 -4
  2. package/.documentation/apex.html +8 -4
  3. package/.documentation/business-analyse.html +833 -406
  4. package/.documentation/commands.html +8 -4
  5. package/.documentation/css/styles.css +153 -15
  6. package/.documentation/efcore.html +8 -4
  7. package/.documentation/gitflow.html +795 -230
  8. package/.documentation/hooks.html +8 -4
  9. package/.documentation/index.html +13 -9
  10. package/.documentation/installation.html +23 -19
  11. package/.documentation/ralph-loop.html +530 -0
  12. package/.documentation/test-web.html +8 -4
  13. package/README.md +52 -10
  14. package/dist/index.js +813 -283
  15. package/dist/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/templates/agents/efcore/conflicts.md +44 -17
  18. package/templates/agents/efcore/db-status.md +27 -6
  19. package/templates/agents/efcore/scan.md +43 -13
  20. package/templates/commands/ai-prompt.md +315 -315
  21. package/templates/commands/application/create.md +362 -362
  22. package/templates/commands/controller/create.md +216 -216
  23. package/templates/commands/controller.md +59 -0
  24. package/templates/commands/create/agent.md +138 -0
  25. package/templates/commands/create/command.md +166 -0
  26. package/templates/commands/create/hook.md +234 -0
  27. package/templates/commands/create/plugin.md +329 -0
  28. package/templates/commands/create/project.md +507 -0
  29. package/templates/commands/create/skill.md +199 -0
  30. package/templates/commands/create.md +220 -0
  31. package/templates/commands/documentation/module.md +202 -202
  32. package/templates/commands/efcore/_env-check.md +153 -153
  33. package/templates/commands/efcore/conflicts.md +109 -192
  34. package/templates/commands/efcore/db-status.md +101 -89
  35. package/templates/commands/efcore/migration.md +23 -11
  36. package/templates/commands/efcore/scan.md +115 -119
  37. package/templates/commands/efcore.md +54 -6
  38. package/templates/commands/feature-full.md +267 -267
  39. package/templates/commands/gitflow/11-finish.md +145 -11
  40. package/templates/commands/gitflow/13-sync.md +216 -216
  41. package/templates/commands/gitflow/14-rebase.md +251 -251
  42. package/templates/commands/gitflow/2-status.md +120 -10
  43. package/templates/commands/gitflow/3-commit.md +150 -0
  44. package/templates/commands/gitflow/7-pull-request.md +134 -5
  45. package/templates/commands/gitflow/9-merge.md +142 -1
  46. package/templates/commands/implement.md +663 -663
  47. package/templates/commands/init.md +562 -0
  48. package/templates/commands/mcp-integration.md +330 -0
  49. package/templates/commands/notification.md +129 -129
  50. package/templates/commands/validate.md +233 -0
  51. package/templates/commands/workflow.md +193 -193
  52. package/templates/skills/ai-prompt/SKILL.md +778 -778
  53. package/templates/skills/application/SKILL.md +563 -563
  54. package/templates/skills/application/templates-backend.md +450 -450
  55. package/templates/skills/application/templates-frontend.md +531 -531
  56. package/templates/skills/application/templates-i18n.md +520 -520
  57. package/templates/skills/application/templates-seed.md +647 -647
  58. package/templates/skills/controller/SKILL.md +240 -240
  59. package/templates/skills/controller/postman-templates.md +614 -614
  60. package/templates/skills/controller/templates.md +1468 -1468
  61. package/templates/skills/documentation/SKILL.md +133 -133
  62. package/templates/skills/documentation/templates.md +476 -476
  63. package/templates/skills/feature-full/SKILL.md +838 -838
  64. package/templates/skills/notification/SKILL.md +555 -555
  65. package/templates/skills/ui-components/SKILL.md +870 -870
  66. package/templates/skills/workflow/SKILL.md +582 -582
@@ -3,16 +3,16 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>GitFlow Workflow - Claude Tools</title>
6
+ <title>GitFlow Workflow - SmartStack CLI</title>
7
7
  <link rel="stylesheet" href="css/styles.css">
8
8
  </head>
9
9
  <body class="lang-fr">
10
10
  <div class="app-container">
11
11
  <!-- Global Header (single unified element) -->
12
12
  <header class="global-header">
13
- <div class="logo">CT</div>
14
- <span class="site-title">Claude Tools</span>
15
- <span class="version-badge">v1.8.7</span>
13
+ <div class="logo">SS</div>
14
+ <span class="site-title">SmartStack CLI</span>
15
+ <span class="version-badge">v1.4.0</span>
16
16
  <div class="header-divider"></div>
17
17
  <span class="page-title">GitFlow Workflow</span>
18
18
  <nav class="breadcrumb">
@@ -116,6 +116,10 @@
116
116
  <span class="icon">&#128202;</span>
117
117
  <span class="nav-text">Business Analyse</span>
118
118
  </a>
119
+ <a href="ralph-loop.html" class="nav-item">
120
+ <span class="icon">&#128260;</span>
121
+ <span class="nav-text">Ralph Loop</span>
122
+ </a>
119
123
  </div>
120
124
 
121
125
  <div class="nav-section">
@@ -792,376 +796,477 @@
792
796
  <span data-lang="en">When to use which command?</span>
793
797
  </h3>
794
798
 
795
- <!-- Decision Flowchart SVG -->
796
- <div class="decision-diagram" style="margin: 2rem 0; overflow-x: auto;">
797
- <svg viewBox="0 0 900 570" style="width: 100%; max-width: 900px; height: auto; display: block; margin: 0 auto;">
799
+ <!-- Integration Methods Explanation -->
800
+ <div class="alert alert-warning" style="margin-bottom: 2rem;">
801
+ <span class="alert-icon">&#128161;</span>
802
+ <div class="alert-content">
803
+ <h5 data-lang="fr">Deux methodes d'integration</h5>
804
+ <h5 data-lang="en">Two Integration Methods</h5>
805
+ <div data-lang="fr">
806
+ <p><strong>1. Methode PR (Recommandee)</strong> : <code>/gitflow:7-pull-request</code> &#8594; <code>/gitflow:11-finish</code></p>
807
+ <ul style="margin: 0.5rem 0; padding-left: 1.5rem;">
808
+ <li>Cree une Pull Request pour revue de code</li>
809
+ <li>Apres merge de la PR, <code>/gitflow:11-finish</code> supprime la branche locale ET remote</li>
810
+ <li><strong>A utiliser pour</strong> : features, releases, hotfixes</li>
811
+ </ul>
812
+ <p style="margin-top: 1rem;"><strong>2. Methode directe (Legacy)</strong> : <code>/gitflow:4-plan</code> &#8594; <code>/gitflow:5-exec</code></p>
813
+ <ul style="margin: 0.5rem 0; padding-left: 1.5rem;">
814
+ <li>Merge directement sans Pull Request</li>
815
+ <li>Utile pour les projets solo ou CI/CD automatise</li>
816
+ <li><strong>Attention</strong> : Ne supprime pas la branche remote automatiquement</li>
817
+ </ul>
818
+ </div>
819
+ <div data-lang="en">
820
+ <p><strong>1. PR Method (Recommended)</strong>: <code>/gitflow:7-pull-request</code> &#8594; <code>/gitflow:11-finish</code></p>
821
+ <ul style="margin: 0.5rem 0; padding-left: 1.5rem;">
822
+ <li>Creates a Pull Request for code review</li>
823
+ <li>After PR merge, <code>/gitflow:11-finish</code> deletes both local AND remote branches</li>
824
+ <li><strong>Use for</strong>: features, releases, hotfixes</li>
825
+ </ul>
826
+ <p style="margin-top: 1rem;"><strong>2. Direct Method (Legacy)</strong>: <code>/gitflow:4-plan</code> &#8594; <code>/gitflow:5-exec</code></p>
827
+ <ul style="margin: 0.5rem 0; padding-left: 1.5rem;">
828
+ <li>Merges directly without Pull Request</li>
829
+ <li>Useful for solo projects or automated CI/CD</li>
830
+ <li><strong>Warning</strong>: Does not automatically delete remote branch</li>
831
+ </ul>
832
+ </div>
833
+ </div>
834
+ </div>
835
+
836
+ <!-- Branch Cleanup Info -->
837
+ <div class="alert alert-info" style="margin-bottom: 2rem;">
838
+ <span class="alert-icon">&#128465;</span>
839
+ <div class="alert-content">
840
+ <h5 data-lang="fr">Suppression des branches remote</h5>
841
+ <h5 data-lang="en">Remote Branch Deletion</h5>
842
+ <p data-lang="fr">
843
+ <code>/gitflow:11-finish</code> supprime automatiquement la branche sur le remote (<code>git push origin --delete {branch}</code>).
844
+ Pour un nettoyage complet des worktrees orphelins, utilisez <code>/gitflow:12-cleanup</code>.
845
+ </p>
846
+ <p data-lang="en">
847
+ <code>/gitflow:11-finish</code> automatically deletes the remote branch (<code>git push origin --delete {branch}</code>).
848
+ For complete cleanup of orphan worktrees, use <code>/gitflow:12-cleanup</code>.
849
+ </p>
850
+ </div>
851
+ </div>
852
+
853
+ <!-- Decision Flowchart SVG - Responsive -->
854
+ <div class="decision-diagram" style="margin: 2rem 0;">
855
+ <svg viewBox="0 0 1200 750" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: auto; display: block;">
798
856
  <!-- Background -->
799
- <rect width="900" height="570" fill="#0f172a" rx="8"/>
857
+ <rect width="1200" height="750" fill="#0f172a" rx="8"/>
800
858
 
801
859
  <!-- Title -->
802
- <text x="450" y="35" text-anchor="middle" fill="#f8fafc" font-size="18" font-weight="600">
860
+ <text x="500" y="40" text-anchor="middle" fill="#f8fafc" font-size="22" font-weight="600">
803
861
  <tspan data-lang="fr">Quel est votre objectif ?</tspan>
804
862
  <tspan data-lang="en">What is your goal?</tspan>
805
863
  </text>
806
864
 
807
865
  <!-- Central decision diamond -->
808
- <polygon points="450,60 550,110 450,160 350,110" fill="#1e293b" stroke="#6366f1" stroke-width="2"/>
809
- <text x="450" y="115" text-anchor="middle" fill="#f8fafc" font-size="11" font-weight="500">
866
+ <polygon points="500,70 620,130 500,190 380,130" fill="transparent" stroke="#6366f1" stroke-width="2.5"/>
867
+ <text x="500" y="135" text-anchor="middle" fill="#f8fafc" font-size="14" font-weight="500">
810
868
  <tspan data-lang="fr">Objectif</tspan>
811
869
  <tspan data-lang="en">Goal</tspan>
812
870
  </text>
813
871
 
814
- <!-- FEATURE PATH (Left) -->
815
- <line x1="350" y1="110" x2="160" y2="110" stroke="#22c55e" stroke-width="2"/>
816
- <polygon points="160,110 170,105 170,115" fill="#22c55e"/>
872
+ <!-- FEATURE PATH (Left) - Scaled for 1200x750 -->
873
+ <line x1="380" y1="130" x2="200" y2="130" stroke="#22c55e" stroke-width="2.5"/>
874
+ <polygon points="200,130 215,124 215,136" fill="#22c55e"/>
817
875
 
818
- <rect x="30" y="85" width="130" height="50" rx="6" fill="#22c55e" fill-opacity="0.15" stroke="#22c55e" stroke-width="2"/>
819
- <text x="95" y="105" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">
876
+ <rect x="40" y="100" width="160" height="60" rx="8" fill="#22c55e" fill-opacity="0.15" stroke="#22c55e" stroke-width="2.5"/>
877
+ <text x="120" y="125" text-anchor="middle" fill="#22c55e" font-size="14" font-weight="600">
820
878
  <tspan data-lang="fr">Nouvelle</tspan>
821
879
  <tspan data-lang="en">New</tspan>
822
880
  </text>
823
- <text x="95" y="120" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">
881
+ <text x="120" y="145" text-anchor="middle" fill="#22c55e" font-size="14" font-weight="600">
824
882
  <tspan data-lang="fr">fonctionnalite</tspan>
825
883
  <tspan data-lang="en">feature</tspan>
826
884
  </text>
827
885
 
828
886
  <!-- Feature flow down -->
829
- <line x1="90" y1="135" x2="90" y2="175" stroke="#22c55e" stroke-width="2"/>
830
- <polygon points="90,175 85,165 95,165" fill="#22c55e"/>
887
+ <line x1="120" y1="160" x2="120" y2="200" stroke="#22c55e" stroke-width="2.5"/>
888
+ <polygon points="120,200 114,186 126,186" fill="#22c55e"/>
831
889
 
832
890
  <g class="cmd-copyable" data-cmd="/gitflow:10-start feature {nom}" style="cursor:pointer;">
833
- <rect x="20" y="180" width="140" height="35" rx="4" fill="#0f172a" stroke="#22c55e" stroke-width="1.5"/>
834
- <text x="90" y="202" text-anchor="middle" fill="#22c55e" font-size="10" font-family="monospace">/gitflow:10-start</text>
835
- <text x="90" y="210" text-anchor="middle" fill="#94a3b8" font-size="8">feature {nom}</text>
891
+ <rect x="30" y="205" width="180" height="45" rx="6" fill="#0f172a" stroke="#22c55e" stroke-width="2"/>
892
+ <text x="120" y="230" text-anchor="middle" fill="#22c55e" font-size="12" font-family="monospace">/gitflow:10-start</text>
893
+ <text x="120" y="245" text-anchor="middle" fill="#94a3b8" font-size="10">feature {nom}</text>
836
894
  </g>
837
895
 
838
- <line x1="90" y1="215" x2="90" y2="245" stroke="#22c55e" stroke-width="2" stroke-dasharray="4,2"/>
839
- <text x="90" y="265" text-anchor="middle" fill="#64748b" font-size="10" font-style="italic">
896
+ <line x1="120" y1="250" x2="120" y2="290" stroke="#22c55e" stroke-width="2.5" stroke-dasharray="5,3"/>
897
+ <text x="120" y="310" text-anchor="middle" fill="#64748b" font-size="12" font-style="italic">
840
898
  <tspan data-lang="fr">coder...</tspan>
841
899
  <tspan data-lang="en">code...</tspan>
842
900
  </text>
843
901
 
844
902
  <!-- Decision: Fini? (Done?) -->
845
- <line x1="90" y1="275" x2="90" y2="290" stroke="#22c55e" stroke-width="2"/>
846
- <polygon points="90,330 120,310 90,290 60,310" fill="#1e293b" stroke="#22c55e" stroke-width="1.5"/>
847
- <text x="90" y="313" text-anchor="middle" fill="#f8fafc" font-size="9" font-weight="500">
903
+ <line x1="120" y1="325" x2="120" y2="345" stroke="#22c55e" stroke-width="2.5"/>
904
+ <polygon points="120,395 160,370 120,345 80,370" fill="transparent" stroke="#22c55e" stroke-width="2"/>
905
+ <text x="120" y="375" text-anchor="middle" fill="#f8fafc" font-size="11" font-weight="500">
848
906
  <tspan data-lang="fr">Fini?</tspan>
849
907
  <tspan data-lang="en">Done?</tspan>
850
908
  </text>
851
909
 
852
910
  <!-- NON path - go right to commit -->
853
- <line x1="120" y1="310" x2="145" y2="310" stroke="#64748b" stroke-width="2"/>
854
- <polygon points="145,310 135,305 135,315" fill="#64748b"/>
855
- <text x="132" y="303" text-anchor="middle" fill="#64748b" font-size="7" font-weight="600">
911
+ <line x1="160" y1="370" x2="195" y2="370" stroke="#64748b" stroke-width="2.5"/>
912
+ <polygon points="195,370 182,364 182,376" fill="#64748b"/>
913
+ <text x="177" y="360" text-anchor="middle" fill="#64748b" font-size="9" font-weight="600">
856
914
  <tspan data-lang="fr">NON</tspan>
857
915
  <tspan data-lang="en">NO</tspan>
858
916
  </text>
859
917
 
860
918
  <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
861
- <rect x="148" y="295" width="85" height="30" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
862
- <text x="190" y="314" text-anchor="middle" fill="#8b5cf6" font-size="9" font-family="monospace">/gitflow:3-commit</text>
919
+ <rect x="198" y="352" width="110" height="36" rx="5" fill="#0f172a" stroke="#8b5cf6" stroke-width="2"/>
920
+ <text x="253" y="375" text-anchor="middle" fill="#8b5cf6" font-size="11" font-family="monospace">/gitflow:3-commit</text>
863
921
  </g>
864
922
 
865
923
  <!-- Loop back from commit to coder -->
866
- <path d="M 190 295 L 190 260 L 120 260" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
867
- <polygon points="120,260 130,255 130,265" fill="#64748b"/>
924
+ <path d="M 253 352 L 253 305 L 160 305" stroke="#64748b" stroke-width="2.5" fill="none" stroke-dasharray="5,3"/>
925
+ <polygon points="160,305 175,299 175,311" fill="#64748b"/>
868
926
 
869
- <!-- OUI path - continue to plan -->
870
- <line x1="90" y1="330" x2="90" y2="355" stroke="#22c55e" stroke-width="2"/>
871
- <polygon points="90,355 85,345 95,345" fill="#22c55e"/>
872
- <text x="75" y="345" text-anchor="end" fill="#22c55e" font-size="7" font-weight="600">
927
+ <!-- OUI path - continue to PR (NEW: PR flow instead of plan/exec) -->
928
+ <line x1="120" y1="395" x2="120" y2="425" stroke="#22c55e" stroke-width="2.5"/>
929
+ <polygon points="120,425 114,411 126,411" fill="#22c55e"/>
930
+ <text x="100" y="415" text-anchor="end" fill="#22c55e" font-size="9" font-weight="600">
873
931
  <tspan data-lang="fr">OUI</tspan>
874
932
  <tspan data-lang="en">YES</tspan>
875
933
  </text>
876
934
 
877
- <!-- Plan step -->
878
- <g class="cmd-copyable" data-cmd="/gitflow:4-plan" style="cursor:pointer;">
879
- <rect x="20" y="358" width="140" height="30" rx="4" fill="#0f172a" stroke="#f97316" stroke-width="1.5"/>
880
- <text x="90" y="378" text-anchor="middle" fill="#f97316" font-size="10" font-family="monospace">/gitflow:4-plan</text>
935
+ <!-- PR step -->
936
+ <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
937
+ <rect x="30" y="430" width="180" height="32" rx="5" fill="#0f172a" stroke="#06b6d4" stroke-width="2"/>
938
+ <text x="120" y="451" text-anchor="middle" fill="#06b6d4" font-size="10" font-family="monospace">/gitflow:7-pull-request</text>
881
939
  </g>
882
940
 
883
- <!-- Decision diamond - Plan OK? -->
884
- <line x1="90" y1="388" x2="90" y2="400" stroke="#f97316" stroke-width="2"/>
885
- <polygon points="90,445 125,422 90,400 55,422" fill="#1e293b" stroke="#f97316" stroke-width="1.5"/>
886
- <text x="90" y="426" text-anchor="middle" fill="#f8fafc" font-size="9" font-weight="500">
887
- <tspan data-lang="fr">Plan OK?</tspan>
888
- <tspan data-lang="en">Plan OK?</tspan>
889
- </text>
941
+ <!-- Arrow to merge on GitHub -->
942
+ <line x1="120" y1="462" x2="120" y2="478" stroke="#22c55e" stroke-width="2.5"/>
943
+ <polygon points="120,478 114,467 126,467" fill="#22c55e"/>
890
944
 
891
- <!-- YES path - continue to exec -->
892
- <line x1="90" y1="445" x2="90" y2="465" stroke="#22c55e" stroke-width="2"/>
893
- <polygon points="90,465 85,455 95,455" fill="#22c55e"/>
894
- <text x="75" y="458" text-anchor="end" fill="#22c55e" font-size="7" font-weight="600">
895
- <tspan data-lang="fr">OUI</tspan>
896
- <tspan data-lang="en">YES</tspan>
945
+ <!-- Merge on GitHub (external step) -->
946
+ <rect x="30" y="483" width="180" height="38" rx="5" fill="#334155" fill-opacity="0.5" stroke="#64748b" stroke-width="2" stroke-dasharray="4,2"/>
947
+ <text x="120" y="500" text-anchor="middle" fill="#94a3b8" font-size="10" font-weight="500">
948
+ <tspan data-lang="fr">Merge sur GitHub</tspan>
949
+ <tspan data-lang="en">Merge on GitHub</tspan>
950
+ </text>
951
+ <text x="120" y="514" text-anchor="middle" fill="#64748b" font-size="8">
952
+ <tspan data-lang="fr">(manuel ou /gitflow:9-merge)</tspan>
953
+ <tspan data-lang="en">(manual or /gitflow:9-merge)</tspan>
897
954
  </text>
898
955
 
899
- <g class="cmd-copyable" data-cmd="/gitflow:5-exec" style="cursor:pointer;">
900
- <rect x="20" y="468" width="140" height="30" rx="4" fill="#0f172a" stroke="#f97316" stroke-width="1.5"/>
901
- <text x="90" y="488" text-anchor="middle" fill="#f97316" font-size="10" font-family="monospace">/gitflow:5-exec</text>
902
- </g>
956
+ <!-- Arrow to finish -->
957
+ <line x1="120" y1="521" x2="120" y2="538" stroke="#22c55e" stroke-width="2.5"/>
958
+ <polygon points="120,538 114,527 126,527" fill="#22c55e"/>
903
959
 
904
- <!-- NO path - arrow back up to revise code -->
905
- <path d="M 55 422 L 15 422 L 15 260 L 55 260" stroke="#ef4444" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
906
- <polygon points="55,260 45,255 45,265" fill="#ef4444"/>
907
- <text x="5" y="345" text-anchor="middle" fill="#ef4444" font-size="7" font-weight="500" transform="rotate(-90, 5, 345)">
908
- <tspan data-lang="fr">réviser</tspan>
909
- <tspan data-lang="en">revise</tspan>
910
- </text>
960
+ <!-- Finish step -->
961
+ <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
962
+ <rect x="30" y="543" width="180" height="32" rx="5" fill="#0f172a" stroke="#22c55e" stroke-width="2"/>
963
+ <text x="120" y="564" text-anchor="middle" fill="#22c55e" font-size="10" font-family="monospace">/gitflow:11-finish</text>
964
+ </g>
911
965
 
912
- <!-- Final merge result -->
913
- <line x1="90" y1="498" x2="90" y2="520" stroke="#22c55e" stroke-width="2"/>
914
- <polygon points="90,520 85,510 95,510" fill="#22c55e"/>
966
+ <!-- Arrow to result -->
967
+ <line x1="120" y1="575" x2="120" y2="592" stroke="#22c55e" stroke-width="2.5"/>
968
+ <polygon points="120,592 114,581 126,581" fill="#22c55e"/>
915
969
 
916
- <rect x="30" y="525" width="120" height="30" rx="6" fill="#22c55e" fill-opacity="0.2" stroke="#22c55e" stroke-width="2"/>
917
- <text x="90" y="545" text-anchor="middle" fill="#22c55e" font-size="10" font-weight="600">
918
- <tspan data-lang="fr">Merge dans develop</tspan>
919
- <tspan data-lang="en">Merged to develop</tspan>
970
+ <!-- Final cleanup result -->
971
+ <rect x="30" y="597" width="180" height="48" rx="8" fill="#22c55e" fill-opacity="0.2" stroke="#22c55e" stroke-width="2.5"/>
972
+ <text x="120" y="617" text-anchor="middle" fill="#22c55e" font-size="11" font-weight="600">
973
+ <tspan data-lang="fr">Cleanup</tspan>
974
+ <tspan data-lang="en">Cleanup</tspan>
975
+ </text>
976
+ <text x="120" y="634" text-anchor="middle" fill="#94a3b8" font-size="8">
977
+ <tspan data-lang="fr">suppression branches + worktree</tspan>
978
+ <tspan data-lang="en">delete branches + worktree</tspan>
920
979
  </text>
921
980
 
922
- <!-- RELEASE PATH (Center) -->
923
- <line x1="420" y1="160" x2="420" y2="180" stroke="#eab308" stroke-width="2"/>
924
- <line x1="420" y1="180" x2="350" y2="180" stroke="#eab308" stroke-width="2"/>
925
- <line x1="350" y1="180" x2="350" y2="200" stroke="#eab308" stroke-width="2"/>
926
- <polygon points="350,200 345,190 355,190" fill="#eab308"/>
981
+ <!-- RELEASE PATH (Center) - Scaled for 1200x750 -->
982
+ <line x1="470" y1="190" x2="470" y2="220" stroke="#eab308" stroke-width="2.5"/>
983
+ <line x1="470" y1="220" x2="400" y2="220" stroke="#eab308" stroke-width="2.5"/>
984
+ <line x1="400" y1="220" x2="400" y2="250" stroke="#eab308" stroke-width="2.5"/>
985
+ <polygon points="400,250 394,236 406,236" fill="#eab308"/>
927
986
 
928
- <rect x="280" y="205" width="140" height="40" rx="6" fill="#eab308" fill-opacity="0.15" stroke="#eab308" stroke-width="2"/>
929
- <text x="350" y="230" text-anchor="middle" fill="#eab308" font-size="10" font-weight="600">
987
+ <rect x="310" y="255" width="180" height="55" rx="8" fill="#eab308" fill-opacity="0.15" stroke="#eab308" stroke-width="2.5"/>
988
+ <text x="400" y="280" text-anchor="middle" fill="#eab308" font-size="13" font-weight="600">
930
989
  <tspan data-lang="fr">Deployer en prod</tspan>
931
990
  <tspan data-lang="en">Deploy to prod</tspan>
932
991
  </text>
992
+ <text x="400" y="298" text-anchor="middle" fill="#94a3b8" font-size="10">(release)</text>
933
993
 
934
- <line x1="350" y1="245" x2="350" y2="258" stroke="#eab308" stroke-width="2"/>
935
- <polygon points="350,258 345,248 355,248" fill="#eab308"/>
994
+ <line x1="400" y1="310" x2="400" y2="335" stroke="#eab308" stroke-width="2.5"/>
995
+ <polygon points="400,335 394,321 406,321" fill="#eab308"/>
936
996
 
937
997
  <g class="cmd-copyable" data-cmd="/gitflow:10-start release" style="cursor:pointer;">
938
- <rect x="285" y="263" width="130" height="26" rx="4" fill="#0f172a" stroke="#eab308" stroke-width="1.5"/>
939
- <text x="350" y="280" text-anchor="middle" fill="#eab308" font-size="8" font-family="monospace">/gitflow:10-start release</text>
998
+ <rect x="310" y="340" width="180" height="40" rx="6" fill="#0f172a" stroke="#eab308" stroke-width="2"/>
999
+ <text x="400" y="365" text-anchor="middle" fill="#eab308" font-size="11" font-family="monospace">/gitflow:10-start release</text>
940
1000
  </g>
941
1001
 
942
1002
  <!-- Release: tests... -->
943
- <line x1="350" y1="289" x2="350" y2="305" stroke="#eab308" stroke-width="2" stroke-dasharray="4,2"/>
944
- <text x="350" y="318" text-anchor="middle" fill="#64748b" font-size="9" font-style="italic">
1003
+ <line x1="400" y1="380" x2="400" y2="410" stroke="#eab308" stroke-width="2.5" stroke-dasharray="5,3"/>
1004
+ <text x="400" y="430" text-anchor="middle" fill="#64748b" font-size="11" font-style="italic">
945
1005
  <tspan data-lang="fr">tests...</tspan>
946
1006
  <tspan data-lang="en">tests...</tspan>
947
1007
  </text>
948
1008
 
949
1009
  <!-- Release: Fini? diamond -->
950
- <line x1="350" y1="323" x2="350" y2="335" stroke="#eab308" stroke-width="2"/>
951
- <polygon points="350,368 378,351 350,335 322,351" fill="#1e293b" stroke="#eab308" stroke-width="1.5"/>
952
- <text x="350" y="355" text-anchor="middle" fill="#f8fafc" font-size="8" font-weight="500">
1010
+ <line x1="400" y1="445" x2="400" y2="460" stroke="#eab308" stroke-width="2.5"/>
1011
+ <polygon points="400,505 435,482 400,460 365,482" fill="transparent" stroke="#eab308" stroke-width="2"/>
1012
+ <text x="400" y="487" text-anchor="middle" fill="#f8fafc" font-size="10" font-weight="500">
953
1013
  <tspan data-lang="fr">Fini?</tspan>
954
1014
  <tspan data-lang="en">Done?</tspan>
955
1015
  </text>
956
1016
 
957
1017
  <!-- Release NON -> commit (shared) -->
958
- <line x1="378" y1="351" x2="430" y2="351" stroke="#64748b" stroke-width="2"/>
959
- <text x="404" y="344" text-anchor="middle" fill="#64748b" font-size="6" font-weight="600">
1018
+ <line x1="435" y1="482" x2="495" y2="482" stroke="#64748b" stroke-width="2.5"/>
1019
+ <text x="465" y="473" text-anchor="middle" fill="#64748b" font-size="8" font-weight="600">
960
1020
  <tspan data-lang="fr">NON</tspan>
961
1021
  <tspan data-lang="en">NO</tspan>
962
1022
  </text>
963
1023
 
964
1024
  <!-- Shared commit box between Release and Hotfix -->
965
1025
  <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
966
- <rect x="433" y="338" width="84" height="26" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
967
- <text x="475" y="355" text-anchor="middle" fill="#8b5cf6" font-size="8" font-family="monospace">/gitflow:3-commit</text>
1026
+ <rect x="498" y="465" width="120" height="34" rx="5" fill="#0f172a" stroke="#8b5cf6" stroke-width="2"/>
1027
+ <text x="558" y="487" text-anchor="middle" fill="#8b5cf6" font-size="10" font-family="monospace">/gitflow:3-commit</text>
968
1028
  </g>
969
1029
 
970
1030
  <!-- Hotfix NON -> commit (shared) -->
971
- <line x1="572" y1="351" x2="520" y2="351" stroke="#64748b" stroke-width="2"/>
972
- <text x="546" y="344" text-anchor="middle" fill="#64748b" font-size="6" font-weight="600">
1031
+ <line x1="685" y1="482" x2="622" y2="482" stroke="#64748b" stroke-width="2.5"/>
1032
+ <text x="653" y="473" text-anchor="middle" fill="#64748b" font-size="8" font-weight="600">
973
1033
  <tspan data-lang="fr">NON</tspan>
974
1034
  <tspan data-lang="en">NO</tspan>
975
1035
  </text>
976
1036
 
977
1037
  <!-- Release: loop back from commit -->
978
- <path d="M 450 338 L 450 305 L 378 305" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
979
- <polygon points="378,305 388,300 388,310" fill="#64748b"/>
1038
+ <path d="M 520 465 L 520 420 L 440 420" stroke="#64748b" stroke-width="2.5" fill="none" stroke-dasharray="5,3"/>
1039
+ <polygon points="440,420 455,414 455,426" fill="#64748b"/>
980
1040
 
981
1041
  <!-- Hotfix: loop back from commit -->
982
- <path d="M 500 338 L 500 305 L 572 305" stroke="#64748b" stroke-width="2" fill="none" stroke-dasharray="4,2"/>
983
- <polygon points="572,305 562,300 562,310" fill="#64748b"/>
1042
+ <path d="M 598 465 L 598 420 L 680 420" stroke="#64748b" stroke-width="2.5" fill="none" stroke-dasharray="5,3"/>
1043
+ <polygon points="680,420 665,414 665,426" fill="#64748b"/>
984
1044
 
985
1045
  <!-- Release OUI -> PR -> finish -->
986
- <line x1="350" y1="368" x2="350" y2="383" stroke="#eab308" stroke-width="2"/>
987
- <polygon points="350,383 345,373 355,373" fill="#eab308"/>
988
- <text x="335" y="378" text-anchor="end" fill="#eab308" font-size="6" font-weight="600">
1046
+ <line x1="400" y1="505" x2="400" y2="530" stroke="#eab308" stroke-width="2.5"/>
1047
+ <polygon points="400,530 394,516 406,516" fill="#eab308"/>
1048
+ <text x="380" y="520" text-anchor="end" fill="#eab308" font-size="9" font-weight="600">
989
1049
  <tspan data-lang="fr">OUI</tspan>
990
1050
  <tspan data-lang="en">YES</tspan>
991
1051
  </text>
992
1052
 
993
1053
  <!-- Release: PR step -->
994
1054
  <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
995
- <rect x="285" y="388" width="130" height="24" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
996
- <text x="350" y="404" text-anchor="middle" fill="#06b6d4" font-size="7" font-family="monospace">/gitflow:7-pull-request</text>
1055
+ <rect x="310" y="535" width="180" height="28" rx="5" fill="#0f172a" stroke="#06b6d4" stroke-width="2"/>
1056
+ <text x="400" y="554" text-anchor="middle" fill="#06b6d4" font-size="9" font-family="monospace">/gitflow:7-pull-request</text>
997
1057
  </g>
998
1058
 
999
- <line x1="350" y1="412" x2="350" y2="427" stroke="#eab308" stroke-width="2"/>
1000
- <polygon points="350,427 345,417 355,417" fill="#eab308"/>
1059
+ <line x1="400" y1="563" x2="400" y2="575" stroke="#eab308" stroke-width="2.5"/>
1060
+ <polygon points="400,575 394,566 406,566" fill="#eab308"/>
1061
+
1062
+ <!-- Merge on GitHub -->
1063
+ <rect x="310" y="580" width="180" height="32" rx="5" fill="#334155" fill-opacity="0.5" stroke="#64748b" stroke-width="2" stroke-dasharray="4,2"/>
1064
+ <text x="400" y="594" text-anchor="middle" fill="#94a3b8" font-size="9" font-weight="500">
1065
+ <tspan data-lang="fr">Merge sur GitHub</tspan>
1066
+ <tspan data-lang="en">Merge on GitHub</tspan>
1067
+ </text>
1068
+ <text x="400" y="606" text-anchor="middle" fill="#64748b" font-size="7">(manuel ou /gitflow:9-merge)</text>
1069
+
1070
+ <line x1="400" y1="612" x2="400" y2="625" stroke="#eab308" stroke-width="2.5"/>
1071
+ <polygon points="400,625 394,616 406,616" fill="#eab308"/>
1001
1072
 
1002
1073
  <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
1003
- <rect x="285" y="432" width="130" height="24" rx="4" fill="#0f172a" stroke="#eab308" stroke-width="1.5"/>
1004
- <text x="350" y="448" text-anchor="middle" fill="#eab308" font-size="7" font-family="monospace">/gitflow:11-finish</text>
1074
+ <rect x="310" y="630" width="180" height="28" rx="5" fill="#0f172a" stroke="#eab308" stroke-width="2"/>
1075
+ <text x="400" y="649" text-anchor="middle" fill="#eab308" font-size="9" font-family="monospace">/gitflow:11-finish</text>
1005
1076
  </g>
1006
1077
 
1007
- <line x1="350" y1="456" x2="350" y2="475" stroke="#eab308" stroke-width="2"/>
1008
- <polygon points="350,475 345,465 355,465" fill="#eab308"/>
1078
+ <line x1="400" y1="658" x2="400" y2="672" stroke="#eab308" stroke-width="2.5"/>
1079
+ <polygon points="400,672 394,663 406,663" fill="#eab308"/>
1009
1080
 
1010
- <rect x="295" y="480" width="110" height="24" rx="6" fill="#eab308" fill-opacity="0.2" stroke="#eab308" stroke-width="2"/>
1011
- <text x="350" y="496" text-anchor="middle" fill="#eab308" font-size="8" font-weight="600">
1012
- <tspan data-lang="fr">Tag + Prod</tspan>
1013
- <tspan data-lang="en">Tag + Prod</tspan>
1081
+ <rect x="310" y="677" width="180" height="45" rx="8" fill="#eab308" fill-opacity="0.2" stroke="#eab308" stroke-width="2.5"/>
1082
+ <text x="400" y="695" text-anchor="middle" fill="#eab308" font-size="10" font-weight="600">
1083
+ <tspan data-lang="fr">Tag + merge back</tspan>
1084
+ <tspan data-lang="en">Tag + merge back</tspan>
1085
+ </text>
1086
+ <text x="400" y="712" text-anchor="middle" fill="#94a3b8" font-size="8">
1087
+ <tspan data-lang="fr">→ main + develop + cleanup</tspan>
1088
+ <tspan data-lang="en">→ main + develop + cleanup</tspan>
1014
1089
  </text>
1015
1090
 
1016
- <!-- HOTFIX PATH (Center-Right) -->
1017
- <line x1="490" y1="160" x2="490" y2="180" stroke="#ec4899" stroke-width="2"/>
1018
- <line x1="490" y1="180" x2="600" y2="180" stroke="#ec4899" stroke-width="2"/>
1019
- <line x1="600" y1="180" x2="600" y2="200" stroke="#ec4899" stroke-width="2"/>
1020
- <polygon points="600,200 595,190 605,190" fill="#ec4899"/>
1091
+ <!-- HOTFIX PATH (Center-Right) - Scaled for 1200x750 -->
1092
+ <line x1="550" y1="190" x2="550" y2="220" stroke="#ec4899" stroke-width="2.5"/>
1093
+ <line x1="550" y1="220" x2="720" y2="220" stroke="#ec4899" stroke-width="2.5"/>
1094
+ <line x1="720" y1="220" x2="720" y2="250" stroke="#ec4899" stroke-width="2.5"/>
1095
+ <polygon points="720,250 714,236 726,236" fill="#ec4899"/>
1021
1096
 
1022
- <rect x="530" y="205" width="140" height="40" rx="6" fill="#ec4899" fill-opacity="0.15" stroke="#ec4899" stroke-width="2"/>
1023
- <text x="600" y="230" text-anchor="middle" fill="#ec4899" font-size="10" font-weight="600">
1097
+ <rect x="630" y="255" width="180" height="55" rx="8" fill="#ec4899" fill-opacity="0.15" stroke="#ec4899" stroke-width="2.5"/>
1098
+ <text x="720" y="280" text-anchor="middle" fill="#ec4899" font-size="13" font-weight="600">
1024
1099
  <tspan data-lang="fr">Bug urgent prod</tspan>
1025
1100
  <tspan data-lang="en">Urgent prod bug</tspan>
1026
1101
  </text>
1102
+ <text x="720" y="298" text-anchor="middle" fill="#94a3b8" font-size="10">(hotfix)</text>
1027
1103
 
1028
- <line x1="600" y1="245" x2="600" y2="258" stroke="#ec4899" stroke-width="2"/>
1029
- <polygon points="600,258 595,248 605,248" fill="#ec4899"/>
1104
+ <line x1="720" y1="310" x2="720" y2="335" stroke="#ec4899" stroke-width="2.5"/>
1105
+ <polygon points="720,335 714,321 726,321" fill="#ec4899"/>
1030
1106
 
1031
1107
  <g class="cmd-copyable" data-cmd="/gitflow:10-start hotfix {nom}" style="cursor:pointer;">
1032
- <rect x="535" y="263" width="130" height="26" rx="4" fill="#0f172a" stroke="#ec4899" stroke-width="1.5"/>
1033
- <text x="600" y="280" text-anchor="middle" fill="#ec4899" font-size="8" font-family="monospace">/gitflow:10-start hotfix</text>
1108
+ <rect x="630" y="340" width="180" height="40" rx="6" fill="#0f172a" stroke="#ec4899" stroke-width="2"/>
1109
+ <text x="720" y="365" text-anchor="middle" fill="#ec4899" font-size="11" font-family="monospace">/gitflow:10-start hotfix</text>
1034
1110
  </g>
1035
1111
 
1036
1112
  <!-- Hotfix: fix... -->
1037
- <line x1="600" y1="289" x2="600" y2="305" stroke="#ec4899" stroke-width="2" stroke-dasharray="4,2"/>
1038
- <text x="600" y="318" text-anchor="middle" fill="#64748b" font-size="9" font-style="italic">
1113
+ <line x1="720" y1="380" x2="720" y2="410" stroke="#ec4899" stroke-width="2.5" stroke-dasharray="5,3"/>
1114
+ <text x="720" y="430" text-anchor="middle" fill="#64748b" font-size="11" font-style="italic">
1039
1115
  <tspan data-lang="fr">fix...</tspan>
1040
1116
  <tspan data-lang="en">fix...</tspan>
1041
1117
  </text>
1042
1118
 
1043
1119
  <!-- Hotfix: Fini? diamond -->
1044
- <line x1="600" y1="323" x2="600" y2="335" stroke="#ec4899" stroke-width="2"/>
1045
- <polygon points="600,368 628,351 600,335 572,351" fill="#1e293b" stroke="#ec4899" stroke-width="1.5"/>
1046
- <text x="600" y="355" text-anchor="middle" fill="#f8fafc" font-size="8" font-weight="500">
1120
+ <line x1="720" y1="445" x2="720" y2="460" stroke="#ec4899" stroke-width="2.5"/>
1121
+ <polygon points="720,505 755,482 720,460 685,482" fill="transparent" stroke="#ec4899" stroke-width="2"/>
1122
+ <text x="720" y="487" text-anchor="middle" fill="#f8fafc" font-size="10" font-weight="500">
1047
1123
  <tspan data-lang="fr">Fini?</tspan>
1048
1124
  <tspan data-lang="en">Done?</tspan>
1049
1125
  </text>
1050
1126
 
1051
1127
  <!-- Hotfix OUI -> PR -> finish -->
1052
- <line x1="600" y1="368" x2="600" y2="383" stroke="#ec4899" stroke-width="2"/>
1053
- <polygon points="600,383 595,373 605,373" fill="#ec4899"/>
1054
- <text x="615" y="378" text-anchor="start" fill="#ec4899" font-size="6" font-weight="600">
1128
+ <line x1="720" y1="505" x2="720" y2="530" stroke="#ec4899" stroke-width="2.5"/>
1129
+ <polygon points="720,530 714,516 726,516" fill="#ec4899"/>
1130
+ <text x="740" y="520" text-anchor="start" fill="#ec4899" font-size="9" font-weight="600">
1055
1131
  <tspan data-lang="fr">OUI</tspan>
1056
1132
  <tspan data-lang="en">YES</tspan>
1057
1133
  </text>
1058
1134
 
1059
1135
  <!-- Hotfix: PR step -->
1060
1136
  <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
1061
- <rect x="535" y="388" width="130" height="24" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
1062
- <text x="600" y="404" text-anchor="middle" fill="#06b6d4" font-size="7" font-family="monospace">/gitflow:7-pull-request</text>
1137
+ <rect x="630" y="535" width="180" height="28" rx="5" fill="#0f172a" stroke="#06b6d4" stroke-width="2"/>
1138
+ <text x="720" y="554" text-anchor="middle" fill="#06b6d4" font-size="9" font-family="monospace">/gitflow:7-pull-request</text>
1063
1139
  </g>
1064
1140
 
1065
- <line x1="600" y1="412" x2="600" y2="427" stroke="#ec4899" stroke-width="2"/>
1066
- <polygon points="600,427 595,417 605,417" fill="#ec4899"/>
1141
+ <line x1="720" y1="563" x2="720" y2="575" stroke="#ec4899" stroke-width="2.5"/>
1142
+ <polygon points="720,575 714,566 726,566" fill="#ec4899"/>
1143
+
1144
+ <!-- Merge on GitHub -->
1145
+ <rect x="630" y="580" width="180" height="32" rx="5" fill="#334155" fill-opacity="0.5" stroke="#64748b" stroke-width="2" stroke-dasharray="4,2"/>
1146
+ <text x="720" y="594" text-anchor="middle" fill="#94a3b8" font-size="9" font-weight="500">
1147
+ <tspan data-lang="fr">Merge sur GitHub</tspan>
1148
+ <tspan data-lang="en">Merge on GitHub</tspan>
1149
+ </text>
1150
+ <text x="720" y="606" text-anchor="middle" fill="#64748b" font-size="7">(manuel ou /gitflow:9-merge)</text>
1151
+
1152
+ <line x1="720" y1="612" x2="720" y2="625" stroke="#ec4899" stroke-width="2.5"/>
1153
+ <polygon points="720,625 714,616 726,616" fill="#ec4899"/>
1067
1154
 
1068
1155
  <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
1069
- <rect x="535" y="432" width="130" height="24" rx="4" fill="#0f172a" stroke="#ec4899" stroke-width="1.5"/>
1070
- <text x="600" y="448" text-anchor="middle" fill="#ec4899" font-size="7" font-family="monospace">/gitflow:11-finish</text>
1156
+ <rect x="630" y="630" width="180" height="28" rx="5" fill="#0f172a" stroke="#ec4899" stroke-width="2"/>
1157
+ <text x="720" y="649" text-anchor="middle" fill="#ec4899" font-size="9" font-family="monospace">/gitflow:11-finish</text>
1071
1158
  </g>
1072
1159
 
1073
- <line x1="600" y1="456" x2="600" y2="475" stroke="#ec4899" stroke-width="2"/>
1074
- <polygon points="600,475 595,465 605,465" fill="#ec4899"/>
1160
+ <!-- Hotfix result -->
1161
+ <line x1="720" y1="658" x2="720" y2="672" stroke="#ec4899" stroke-width="2.5"/>
1162
+ <polygon points="720,672 714,663 726,663" fill="#ec4899"/>
1075
1163
 
1076
- <rect x="545" y="480" width="110" height="24" rx="6" fill="#ec4899" fill-opacity="0.2" stroke="#ec4899" stroke-width="2"/>
1077
- <text x="600" y="496" text-anchor="middle" fill="#ec4899" font-size="8" font-weight="600">
1078
- <tspan data-lang="fr">Fix deploye</tspan>
1079
- <tspan data-lang="en">Fix deployed</tspan>
1164
+ <rect x="630" y="677" width="180" height="45" rx="8" fill="#ec4899" fill-opacity="0.2" stroke="#ec4899" stroke-width="2.5"/>
1165
+ <text x="720" y="695" text-anchor="middle" fill="#ec4899" font-size="10" font-weight="600">
1166
+ <tspan data-lang="fr">Version + Tag + merge back</tspan>
1167
+ <tspan data-lang="en">Version + Tag + merge back</tspan>
1168
+ </text>
1169
+ <text x="720" y="712" text-anchor="middle" fill="#94a3b8" font-size="8">
1170
+ <tspan data-lang="fr">bump PATCH + main + develop</tspan>
1171
+ <tspan data-lang="en">bump PATCH + main + develop</tspan>
1080
1172
  </text>
1081
1173
 
1082
- <!-- UTILITY COMMANDS (Right) -->
1083
- <line x1="550" y1="110" x2="720" y2="110" stroke="#6366f1" stroke-width="2"/>
1084
- <polygon points="720,110 710,105 710,115" fill="#6366f1"/>
1174
+ <!-- UTILITY COMMANDS (Right) - Scaled for 1200x750 -->
1175
+ <line x1="620" y1="130" x2="920" y2="130" stroke="#6366f1" stroke-width="2.5"/>
1176
+ <polygon points="920,130 905,124 905,136" fill="#6366f1"/>
1085
1177
 
1086
- <rect x="730" y="70" width="150" height="395" rx="8" fill="#1e293b" stroke="#475569" stroke-width="1"/>
1087
- <text x="805" y="95" text-anchor="middle" fill="#94a3b8" font-size="11" font-weight="600">
1178
+ <rect x="935" y="70" width="240" height="640" rx="10" fill="transparent" stroke="#475569" stroke-width="1.5"/>
1179
+ <text x="1055" y="100" text-anchor="middle" fill="#94a3b8" font-size="14" font-weight="600">
1088
1180
  <tspan data-lang="fr">Utilitaires</tspan>
1089
1181
  <tspan data-lang="en">Utilities</tspan>
1090
1182
  </text>
1091
1183
 
1092
1184
  <!-- Init (first - setup) -->
1093
1185
  <g class="cmd-copyable" data-cmd="/gitflow:1-init" style="cursor:pointer;">
1094
- <rect x="745" y="108" width="120" height="26" rx="4" fill="#0f172a" stroke="#475569" stroke-width="1.5" stroke-dasharray="3,2"/>
1095
- <text x="805" y="125" text-anchor="middle" fill="#64748b" font-size="9" font-family="monospace">/gitflow:1-init</text>
1186
+ <rect x="955" y="118" width="200" height="36" rx="5" fill="#0f172a" stroke="#475569" stroke-width="2" stroke-dasharray="4,3"/>
1187
+ <text x="1055" y="141" text-anchor="middle" fill="#64748b" font-size="11" font-family="monospace">/gitflow:1-init</text>
1096
1188
  </g>
1097
1189
 
1098
1190
  <!-- Status -->
1099
1191
  <g class="cmd-copyable" data-cmd="/gitflow:2-status" style="cursor:pointer;">
1100
- <rect x="745" y="142" width="120" height="26" rx="4" fill="#0f172a" stroke="#3b82f6" stroke-width="1.5"/>
1101
- <text x="805" y="159" text-anchor="middle" fill="#3b82f6" font-size="9" font-family="monospace">/gitflow:2-status</text>
1192
+ <rect x="955" y="164" width="200" height="36" rx="5" fill="#0f172a" stroke="#3b82f6" stroke-width="2"/>
1193
+ <text x="1055" y="187" text-anchor="middle" fill="#3b82f6" font-size="11" font-family="monospace">/gitflow:2-status</text>
1102
1194
  </g>
1103
1195
 
1104
1196
  <!-- Commit -->
1105
1197
  <g class="cmd-copyable" data-cmd="/gitflow:3-commit" style="cursor:pointer;">
1106
- <rect x="745" y="176" width="120" height="26" rx="4" fill="#0f172a" stroke="#8b5cf6" stroke-width="1.5"/>
1107
- <text x="805" y="193" text-anchor="middle" fill="#8b5cf6" font-size="9" font-family="monospace">/gitflow:3-commit</text>
1198
+ <rect x="955" y="210" width="200" height="36" rx="5" fill="#0f172a" stroke="#8b5cf6" stroke-width="2"/>
1199
+ <text x="1055" y="233" text-anchor="middle" fill="#8b5cf6" font-size="11" font-family="monospace">/gitflow:3-commit</text>
1108
1200
  </g>
1109
1201
 
1110
1202
  <!-- Abort -->
1111
1203
  <g class="cmd-copyable" data-cmd="/gitflow:6-abort" style="cursor:pointer;">
1112
- <rect x="745" y="210" width="120" height="26" rx="4" fill="#0f172a" stroke="#ef4444" stroke-width="1.5"/>
1113
- <text x="805" y="227" text-anchor="middle" fill="#ef4444" font-size="9" font-family="monospace">/gitflow:6-abort</text>
1204
+ <rect x="955" y="256" width="200" height="36" rx="5" fill="#0f172a" stroke="#ef4444" stroke-width="2"/>
1205
+ <text x="1055" y="279" text-anchor="middle" fill="#ef4444" font-size="11" font-family="monospace">/gitflow:6-abort</text>
1114
1206
  </g>
1115
1207
 
1116
1208
  <!-- PR Commands Section -->
1117
- <text x="805" y="254" text-anchor="middle" fill="#64748b" font-size="8" font-weight="500">
1209
+ <text x="1055" y="318" text-anchor="middle" fill="#64748b" font-size="10" font-weight="500">
1118
1210
  <tspan data-lang="fr">─── Pull Request ───</tspan>
1119
1211
  <tspan data-lang="en">─── Pull Request ───</tspan>
1120
1212
  </text>
1121
1213
 
1122
1214
  <!-- Pull Request -->
1123
1215
  <g class="cmd-copyable" data-cmd="/gitflow:7-pull-request" style="cursor:pointer;">
1124
- <rect x="745" y="264" width="120" height="26" rx="4" fill="#0f172a" stroke="#06b6d4" stroke-width="1.5"/>
1125
- <text x="805" y="281" text-anchor="middle" fill="#06b6d4" font-size="9" font-family="monospace">/gitflow:7-pull-request</text>
1216
+ <rect x="955" y="332" width="200" height="36" rx="5" fill="#0f172a" stroke="#06b6d4" stroke-width="2"/>
1217
+ <text x="1055" y="355" text-anchor="middle" fill="#06b6d4" font-size="11" font-family="monospace">/gitflow:7-pull-request</text>
1126
1218
  </g>
1127
1219
 
1128
1220
  <!-- Review -->
1129
1221
  <g class="cmd-copyable" data-cmd="/gitflow:8-review" style="cursor:pointer;">
1130
- <rect x="745" y="298" width="120" height="26" rx="4" fill="#0f172a" stroke="#10b981" stroke-width="1.5"/>
1131
- <text x="805" y="315" text-anchor="middle" fill="#10b981" font-size="9" font-family="monospace">/gitflow:8-review</text>
1222
+ <rect x="955" y="378" width="200" height="36" rx="5" fill="#0f172a" stroke="#10b981" stroke-width="2"/>
1223
+ <text x="1055" y="401" text-anchor="middle" fill="#10b981" font-size="11" font-family="monospace">/gitflow:8-review</text>
1132
1224
  </g>
1133
1225
 
1134
1226
  <!-- Merge -->
1135
1227
  <g class="cmd-copyable" data-cmd="/gitflow:9-merge" style="cursor:pointer;">
1136
- <rect x="745" y="332" width="120" height="26" rx="4" fill="#0f172a" stroke="#6366f1" stroke-width="1.5"/>
1137
- <text x="805" y="349" text-anchor="middle" fill="#6366f1" font-size="9" font-family="monospace">/gitflow:9-merge</text>
1228
+ <rect x="955" y="424" width="200" height="36" rx="5" fill="#0f172a" stroke="#6366f1" stroke-width="2"/>
1229
+ <text x="1055" y="447" text-anchor="middle" fill="#6366f1" font-size="11" font-family="monospace">/gitflow:9-merge</text>
1230
+ </g>
1231
+
1232
+ <!-- Cleanup Commands Section -->
1233
+ <text x="1055" y="487" text-anchor="middle" fill="#64748b" font-size="10" font-weight="500">
1234
+ <tspan data-lang="fr">─── Nettoyage ───</tspan>
1235
+ <tspan data-lang="en">─── Cleanup ───</tspan>
1236
+ </text>
1237
+
1238
+ <!-- Finish -->
1239
+ <g class="cmd-copyable" data-cmd="/gitflow:11-finish" style="cursor:pointer;">
1240
+ <rect x="955" y="501" width="200" height="36" rx="5" fill="#0f172a" stroke="#22c55e" stroke-width="2"/>
1241
+ <text x="1055" y="524" text-anchor="middle" fill="#22c55e" font-size="11" font-family="monospace">/gitflow:11-finish</text>
1242
+ </g>
1243
+
1244
+ <!-- Cleanup -->
1245
+ <g class="cmd-copyable" data-cmd="/gitflow:12-cleanup" style="cursor:pointer;">
1246
+ <rect x="955" y="547" width="200" height="36" rx="5" fill="#0f172a" stroke="#f97316" stroke-width="2"/>
1247
+ <text x="1055" y="570" text-anchor="middle" fill="#f97316" font-size="11" font-family="monospace">/gitflow:12-cleanup</text>
1138
1248
  </g>
1139
1249
 
1140
1250
  <!-- Legend inside box -->
1141
- <text x="805" y="378" text-anchor="middle" fill="#64748b" font-size="8" font-weight="500">
1251
+ <text x="1055" y="610" text-anchor="middle" fill="#64748b" font-size="10" font-weight="500">
1142
1252
  <tspan data-lang="fr">─── Couleurs ───</tspan>
1143
1253
  <tspan data-lang="en">─── Colors ───</tspan>
1144
1254
  </text>
1145
1255
 
1146
- <circle cx="750" cy="395" r="4" fill="#22c55e"/>
1147
- <text x="760" y="398" fill="#94a3b8" font-size="7">Feature</text>
1148
- <circle cx="820" cy="395" r="4" fill="#eab308"/>
1149
- <text x="830" y="398" fill="#94a3b8" font-size="7">Release</text>
1150
-
1151
- <circle cx="750" cy="412" r="4" fill="#ec4899"/>
1152
- <text x="760" y="415" fill="#94a3b8" font-size="7">Hotfix</text>
1153
- <circle cx="820" cy="412" r="4" fill="#06b6d4"/>
1154
- <text x="830" y="415" fill="#94a3b8" font-size="7">PR</text>
1155
-
1156
- <circle cx="750" cy="429" r="4" fill="#f97316"/>
1157
- <text x="760" y="432" fill="#94a3b8" font-size="7">Integr.</text>
1158
- <circle cx="820" cy="429" r="4" fill="#6366f1"/>
1159
- <text x="830" y="432" fill="#94a3b8" font-size="7">Decision</text>
1160
-
1161
- <circle cx="750" cy="446" r="4" fill="#3b82f6"/>
1162
- <text x="760" y="449" fill="#94a3b8" font-size="7">Status</text>
1163
- <circle cx="820" cy="446" r="4" fill="#8b5cf6"/>
1164
- <text x="830" y="449" fill="#94a3b8" font-size="7">Commit</text>
1256
+ <circle cx="970" cy="635" r="5" fill="#22c55e"/>
1257
+ <text x="983" y="639" fill="#94a3b8" font-size="9">Feature</text>
1258
+ <circle cx="1080" cy="635" r="5" fill="#eab308"/>
1259
+ <text x="1093" y="639" fill="#94a3b8" font-size="9">Release</text>
1260
+
1261
+ <circle cx="970" cy="658" r="5" fill="#ec4899"/>
1262
+ <text x="983" y="662" fill="#94a3b8" font-size="9">Hotfix</text>
1263
+ <circle cx="1080" cy="658" r="5" fill="#06b6d4"/>
1264
+ <text x="1093" y="662" fill="#94a3b8" font-size="9">PR</text>
1265
+
1266
+ <circle cx="970" cy="681" r="5" fill="#3b82f6"/>
1267
+ <text x="983" y="685" fill="#94a3b8" font-size="9">Status</text>
1268
+ <circle cx="1080" cy="681" r="5" fill="#8b5cf6"/>
1269
+ <text x="1093" y="685" fill="#94a3b8" font-size="9">Commit</text>
1165
1270
  </svg>
1166
1271
  </div>
1167
1272
 
@@ -1171,6 +1276,229 @@
1171
1276
  <span data-lang="en">Command Reference</span>
1172
1277
  </h3>
1173
1278
 
1279
+ <!-- Command Hierarchy Diagram -->
1280
+ <div class="svg-diagram" style="margin: 1.5rem 0 2.5rem 0;">
1281
+ <svg viewBox="0 0 1000 400" preserveAspectRatio="xMidYMid meet" style="width: 100%; max-width: 1000px; height: auto;">
1282
+ <!-- Title -->
1283
+ <text x="500" y="25" text-anchor="middle" fill="#94a3b8" font-size="14" font-weight="500">
1284
+ <tspan data-lang="fr">Hierarchie des commandes</tspan>
1285
+ <tspan data-lang="en">Command Hierarchy</tspan>
1286
+ </text>
1287
+
1288
+ <!-- ===== MAIN WORKFLOW (Center) ===== -->
1289
+ <text x="500" y="60" text-anchor="middle" fill="#f8fafc" font-size="13" font-weight="600">
1290
+ <tspan data-lang="fr">WORKFLOW PRINCIPAL</tspan>
1291
+ <tspan data-lang="en">MAIN WORKFLOW</tspan>
1292
+ </text>
1293
+
1294
+ <!-- Start -->
1295
+ <g transform="translate(120, 80)">
1296
+ <rect x="0" y="0" width="180" height="50" rx="8" fill="transparent" stroke="#22c55e" stroke-width="2"/>
1297
+ <text x="90" y="22" text-anchor="middle" fill="#4ade80" font-size="12" font-weight="600">/gitflow:10-start</text>
1298
+ <text x="90" y="40" text-anchor="middle" fill="#64748b" font-size="10">
1299
+ <tspan data-lang="fr">Demarrer branche</tspan>
1300
+ <tspan data-lang="en">Start branch</tspan>
1301
+ </text>
1302
+ </g>
1303
+
1304
+ <!-- Arrow -->
1305
+ <line x1="300" y1="105" x2="380" y2="105" stroke="#475569" stroke-width="2"/>
1306
+ <polygon points="380,105 370,100 370,110" fill="#475569"/>
1307
+
1308
+ <!-- Commit (loop) -->
1309
+ <g transform="translate(390, 80)">
1310
+ <rect x="0" y="0" width="180" height="50" rx="8" fill="transparent" stroke="#8b5cf6" stroke-width="2"/>
1311
+ <text x="90" y="22" text-anchor="middle" fill="#a78bfa" font-size="12" font-weight="600">/gitflow:3-commit</text>
1312
+ <text x="90" y="40" text-anchor="middle" fill="#64748b" font-size="10">
1313
+ <tspan data-lang="fr">Commiter (boucle)</tspan>
1314
+ <tspan data-lang="en">Commit (loop)</tspan>
1315
+ </text>
1316
+ <!-- Loop arrow -->
1317
+ <path d="M180,25 Q200,25 200,10 Q200,-5 90,-5 Q-10,-5 -10,10 Q-10,25 0,25" stroke="#8b5cf6" stroke-width="1.5" fill="none" stroke-dasharray="4,2"/>
1318
+ <polygon points="0,25 8,20 8,30" fill="#8b5cf6"/>
1319
+ </g>
1320
+
1321
+ <!-- ===== DECISION POINT: Choose integration method ===== -->
1322
+ <!-- Arrow to decision -->
1323
+ <line x1="570" y1="105" x2="610" y2="105" stroke="#475569" stroke-width="2"/>
1324
+
1325
+ <!-- Decision diamond -->
1326
+ <polygon points="650,105 690,80 730,105 690,130" fill="transparent" stroke="#6366f1" stroke-width="2"/>
1327
+ <text x="690" y="102" text-anchor="middle" fill="#a5b4fc" font-size="8" font-weight="500">
1328
+ <tspan data-lang="fr">Methode?</tspan>
1329
+ <tspan data-lang="en">Method?</tspan>
1330
+ </text>
1331
+ <text x="690" y="113" text-anchor="middle" fill="#64748b" font-size="7">PR ou Direct</text>
1332
+
1333
+ <!-- ===== PATH 1: PR FLOW (Up) ===== -->
1334
+ <line x1="690" y1="80" x2="690" y2="55" stroke="#06b6d4" stroke-width="2"/>
1335
+ <polygon points="690,55 685,65 695,65" fill="#06b6d4"/>
1336
+
1337
+ <!-- PR Flow label -->
1338
+ <text x="770" y="50" text-anchor="start" fill="#06b6d4" font-size="9" font-weight="600">
1339
+ <tspan data-lang="fr">METHODE PR</tspan>
1340
+ <tspan data-lang="en">PR METHOD</tspan>
1341
+ </text>
1342
+ <text x="770" y="62" text-anchor="start" fill="#64748b" font-size="7">
1343
+ <tspan data-lang="fr">Equipe, review, CI/CD</tspan>
1344
+ <tspan data-lang="en">Team, review, CI/CD</tspan>
1345
+ </text>
1346
+
1347
+ <!-- PR Flow box -->
1348
+ <g transform="translate(580, 160)">
1349
+ <rect x="0" y="0" width="380" height="95" rx="8" fill="#06b6d4" fill-opacity="0.05" stroke="#06b6d4" stroke-width="1.5"/>
1350
+ <text x="190" y="18" text-anchor="middle" fill="#22d3ee" font-size="10" font-weight="600">
1351
+ <tspan data-lang="fr">PR FLOW : Equipe / Review / CI</tspan>
1352
+ <tspan data-lang="en">PR FLOW: Team / Review / CI</tspan>
1353
+ </text>
1354
+
1355
+ <!-- PR -->
1356
+ <g transform="translate(15, 35)">
1357
+ <rect x="0" y="0" width="85" height="45" rx="5" fill="transparent" stroke="#06b6d4" stroke-width="2"/>
1358
+ <text x="42" y="20" text-anchor="middle" fill="#22d3ee" font-size="8" font-weight="600">/gitflow:7-pr</text>
1359
+ <text x="42" y="35" text-anchor="middle" fill="#64748b" font-size="7">Creer PR</text>
1360
+ </g>
1361
+
1362
+ <!-- Arrow -->
1363
+ <line x1="100" y1="57" x2="115" y2="57" stroke="#06b6d4" stroke-width="1.5"/>
1364
+ <polygon points="115,57 108,53 108,61" fill="#06b6d4"/>
1365
+
1366
+ <!-- Merge GitHub -->
1367
+ <g transform="translate(120, 35)">
1368
+ <rect x="0" y="0" width="85" height="45" rx="5" fill="#334155" fill-opacity="0.5" stroke="#64748b" stroke-width="1.5"/>
1369
+ <text x="42" y="20" text-anchor="middle" fill="#94a3b8" font-size="8" font-weight="500">Merge</text>
1370
+ <text x="42" y="35" text-anchor="middle" fill="#64748b" font-size="7">sur GitHub</text>
1371
+ </g>
1372
+
1373
+ <!-- Arrow -->
1374
+ <line x1="205" y1="57" x2="220" y2="57" stroke="#06b6d4" stroke-width="1.5"/>
1375
+ <polygon points="220,57 213,53 213,61" fill="#06b6d4"/>
1376
+
1377
+ <!-- Finish -->
1378
+ <g transform="translate(225, 35)">
1379
+ <rect x="0" y="0" width="85" height="45" rx="5" fill="transparent" stroke="#22c55e" stroke-width="2"/>
1380
+ <text x="42" y="20" text-anchor="middle" fill="#4ade80" font-size="8" font-weight="600">/gitflow:11-finish</text>
1381
+ <text x="42" y="35" text-anchor="middle" fill="#64748b" font-size="7">tag + cleanup</text>
1382
+ </g>
1383
+
1384
+ <!-- Result -->
1385
+ <line x1="310" y1="57" x2="325" y2="57" stroke="#22c55e" stroke-width="1.5"/>
1386
+ <polygon points="325,57 318,53 318,61" fill="#22c55e"/>
1387
+ <text x="340" y="55" text-anchor="start" fill="#22c55e" font-size="8">
1388
+ <tspan data-lang="fr">Done</tspan>
1389
+ <tspan data-lang="en">Done</tspan>
1390
+ </text>
1391
+ <text x="340" y="67" text-anchor="start" fill="#64748b" font-size="6">(branche remote)</text>
1392
+ </g>
1393
+
1394
+ <!-- Connect decision to PR flow -->
1395
+ <path d="M 690 80 L 690 55 L 770 55 L 770 160" stroke="#06b6d4" stroke-width="1.5" fill="none"/>
1396
+ <polygon points="770,160 765,150 775,150" fill="#06b6d4"/>
1397
+
1398
+ <!-- ===== PATH 2: DIRECT MERGE (Down) ===== -->
1399
+ <line x1="690" y1="130" x2="690" y2="155" stroke="#f97316" stroke-width="2"/>
1400
+ <polygon points="690,155 685,145 695,145" fill="#f97316"/>
1401
+
1402
+ <!-- Direct Flow box -->
1403
+ <g transform="translate(40, 160)">
1404
+ <rect x="0" y="0" width="380" height="95" rx="8" fill="#f97316" fill-opacity="0.05" stroke="#f97316" stroke-width="1.5"/>
1405
+ <text x="190" y="18" text-anchor="middle" fill="#fb923c" font-size="10" font-weight="600">
1406
+ <tspan data-lang="fr">DIRECT MERGE : Solo / Pas de review</tspan>
1407
+ <tspan data-lang="en">DIRECT MERGE: Solo / No review</tspan>
1408
+ </text>
1409
+
1410
+ <!-- Plan -->
1411
+ <g transform="translate(60, 35)">
1412
+ <rect x="0" y="0" width="100" height="45" rx="5" fill="transparent" stroke="#f97316" stroke-width="2"/>
1413
+ <text x="50" y="20" text-anchor="middle" fill="#fb923c" font-size="8" font-weight="600">/gitflow:4-plan</text>
1414
+ <text x="50" y="35" text-anchor="middle" fill="#64748b" font-size="7">Analyse conflits</text>
1415
+ </g>
1416
+
1417
+ <!-- Arrow -->
1418
+ <line x1="160" y1="57" x2="180" y2="57" stroke="#f97316" stroke-width="1.5"/>
1419
+ <polygon points="180,57 173,53 173,61" fill="#f97316"/>
1420
+
1421
+ <!-- Exec -->
1422
+ <g transform="translate(185, 35)">
1423
+ <rect x="0" y="0" width="100" height="45" rx="5" fill="transparent" stroke="#f97316" stroke-width="2"/>
1424
+ <text x="50" y="20" text-anchor="middle" fill="#fb923c" font-size="8" font-weight="600">/gitflow:5-exec</text>
1425
+ <text x="50" y="35" text-anchor="middle" fill="#64748b" font-size="7">Merge local</text>
1426
+ </g>
1427
+
1428
+ <!-- Result -->
1429
+ <line x1="285" y1="57" x2="305" y2="57" stroke="#f97316" stroke-width="1.5"/>
1430
+ <polygon points="305,57 298,53 298,61" fill="#f97316"/>
1431
+ <text x="315" y="55" text-anchor="start" fill="#fb923c" font-size="8">
1432
+ <tspan data-lang="fr">Done</tspan>
1433
+ <tspan data-lang="en">Done</tspan>
1434
+ </text>
1435
+ <text x="315" y="67" text-anchor="start" fill="#64748b" font-size="6">(branche locale)</text>
1436
+ </g>
1437
+
1438
+ <!-- Connect decision to Direct flow -->
1439
+ <path d="M 690 155 L 690 175 L 420 175 L 420 160" stroke="#f97316" stroke-width="1.5" fill="none"/>
1440
+ <polygon points="420,160 415,170 425,170" fill="#f97316"/>
1441
+
1442
+ <!-- ===== UTILITIES ===== -->
1443
+ <text x="500" y="295" text-anchor="middle" fill="#64748b" font-size="12" font-weight="500">
1444
+ <tspan data-lang="fr">UTILITAIRES (independants)</tspan>
1445
+ <tspan data-lang="en">UTILITIES (standalone)</tspan>
1446
+ </text>
1447
+
1448
+ <g transform="translate(80, 310)">
1449
+ <rect x="0" y="0" width="120" height="35" rx="5" fill="transparent" stroke="#475569" stroke-width="1.5" stroke-dasharray="3,2"/>
1450
+ <text x="60" y="22" text-anchor="middle" fill="#64748b" font-size="10">/gitflow:1-init</text>
1451
+ </g>
1452
+
1453
+ <g transform="translate(220, 310)">
1454
+ <rect x="0" y="0" width="130" height="35" rx="5" fill="transparent" stroke="#3b82f6" stroke-width="1.5"/>
1455
+ <text x="65" y="22" text-anchor="middle" fill="#60a5fa" font-size="10">/gitflow:2-status</text>
1456
+ </g>
1457
+
1458
+ <g transform="translate(370, 310)">
1459
+ <rect x="0" y="0" width="120" height="35" rx="5" fill="transparent" stroke="#ef4444" stroke-width="1.5"/>
1460
+ <text x="60" y="22" text-anchor="middle" fill="#f87171" font-size="10">/gitflow:6-abort</text>
1461
+ </g>
1462
+
1463
+ <g transform="translate(510, 310)">
1464
+ <rect x="0" y="0" width="140" height="35" rx="5" fill="transparent" stroke="#f97316" stroke-width="1.5"/>
1465
+ <text x="70" y="22" text-anchor="middle" fill="#fb923c" font-size="10">/gitflow:12-cleanup</text>
1466
+ </g>
1467
+
1468
+ <g transform="translate(670, 310)">
1469
+ <rect x="0" y="0" width="140" height="35" rx="5" fill="transparent" stroke="#22c55e" stroke-width="1.5"/>
1470
+ <text x="70" y="22" text-anchor="middle" fill="#4ade80" font-size="10">/gitflow:11-finish</text>
1471
+ </g>
1472
+
1473
+ <!-- Legend -->
1474
+ <g transform="translate(40, 370)">
1475
+ <rect x="0" y="-8" width="16" height="16" rx="3" fill="#06b6d4" fill-opacity="0.1" stroke="#06b6d4" stroke-width="1.5"/>
1476
+ <text x="25" y="4" fill="#06b6d4" font-size="9">
1477
+ <tspan data-lang="fr">PR Flow (recommande)</tspan>
1478
+ <tspan data-lang="en">PR Flow (recommended)</tspan>
1479
+ </text>
1480
+
1481
+ <rect x="180" y="-8" width="16" height="16" rx="3" fill="#f97316" fill-opacity="0.1" stroke="#f97316" stroke-width="1.5"/>
1482
+ <text x="205" y="4" fill="#fb923c" font-size="9">
1483
+ <tspan data-lang="fr">Direct Merge (solo)</tspan>
1484
+ <tspan data-lang="en">Direct Merge (solo)</tspan>
1485
+ </text>
1486
+
1487
+ <rect x="360" y="-8" width="16" height="16" rx="3" fill="#334155" fill-opacity="0.5" stroke="#64748b" stroke-width="1"/>
1488
+ <text x="385" y="4" fill="#64748b" font-size="9">
1489
+ <tspan data-lang="fr">Action externe (GitHub)</tspan>
1490
+ <tspan data-lang="en">External action (GitHub)</tspan>
1491
+ </text>
1492
+
1493
+ <polygon points="558,-8 570,0 558,8 546,0" fill="transparent" stroke="#6366f1" stroke-width="1.5"/>
1494
+ <text x="580" y="4" fill="#64748b" font-size="9">
1495
+ <tspan data-lang="fr">Decision</tspan>
1496
+ <tspan data-lang="en">Decision</tspan>
1497
+ </text>
1498
+ </g>
1499
+ </svg>
1500
+ </div>
1501
+
1174
1502
  <div class="command-cards" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-top: 1.5rem;">
1175
1503
 
1176
1504
  <!-- gitflow:1-init -->
@@ -1358,6 +1686,40 @@
1358
1686
  <span data-lang="en">Audit and clean up orphan (deleted branch) or stale (inactive) worktrees. Run from main or develop only.</span>
1359
1687
  </p>
1360
1688
  </div>
1689
+
1690
+ <!-- gitflow:13-sync -->
1691
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #14b8a6;">
1692
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1693
+ <code style="background: #14b8a6; color: #0f172a; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:13-sync</code>
1694
+ </div>
1695
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1696
+ <span data-lang="fr">Synchroniser avec le remote</span>
1697
+ <span data-lang="en">Sync with Remote</span>
1698
+ </h5>
1699
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0; line-height: 1.5;">
1700
+ <span data-lang="fr">Synchronise la branche locale avec sa remote tracking. Detecte automatiquement si pull ou push est necessaire et gere les divergences.</span>
1701
+ <span data-lang="en">Synchronizes local branch with remote tracking. Automatically detects if pull or push is needed and handles divergence.</span>
1702
+ </p>
1703
+ </div>
1704
+
1705
+ <!-- gitflow:14-rebase -->
1706
+ <div class="command-card" style="background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: 1.25rem; border-left: 4px solid #a855f7;">
1707
+ <div style="display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem;">
1708
+ <code style="background: #a855f7; color: #f8fafc; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.85rem;">/gitflow:14-rebase</code>
1709
+ </div>
1710
+ <h5 style="color: #c8d0dc; margin: 0 0 0.5rem 0; font-size: 0.95rem;">
1711
+ <span data-lang="fr">Rebase sur branche cible</span>
1712
+ <span data-lang="en">Rebase on Target Branch</span>
1713
+ </h5>
1714
+ <p style="color: #94a3b8; font-size: 0.85rem; margin: 0 0 0.5rem 0; line-height: 1.5;">
1715
+ <span data-lang="fr">Rebase la branche courante sur develop (ou branche specifiee) :</span>
1716
+ <span data-lang="en">Rebases current branch on develop (or specified branch):</span>
1717
+ </p>
1718
+ <ul style="color: #94a3b8; font-size: 0.8rem; margin: 0; padding-left: 1.25rem; line-height: 1.6;">
1719
+ <li><code style="color: #a855f7;">/gitflow:14-rebase</code> <span data-lang="fr">→ rebase sur develop</span><span data-lang="en">→ rebase on develop</span></li>
1720
+ <li><code style="color: #a855f7;">/gitflow:14-rebase main</code> <span data-lang="fr">→ rebase sur main</span><span data-lang="en">→ rebase on main</span></li>
1721
+ </ul>
1722
+ </div>
1361
1723
  </div>
1362
1724
  </section>
1363
1725
 
@@ -1378,45 +1740,248 @@
1378
1740
  GitFlow uses <strong>git worktrees</strong> to isolate each branch in its own directory. This allows working on multiple branches simultaneously without having to checkout.
1379
1741
  </p>
1380
1742
 
1381
- <div class="code-block">
1382
- <button class="copy-btn">Copy</button>
1383
- <pre><code>parent/
1384
- ├── my-project/ # Repertoire principal du projet
1385
- │ ├── <a href=".claude/gitflow/" class="file-link">.claude/gitflow/</a>
1386
- │ │ ├── <a href=".claude/gitflow/config.json" class="file-link">config.json</a> # Configuration GitFlow
1387
- │ │ ├── <a href=".claude/gitflow/plans/" class="file-link">plans/</a> # Plans d'integration
1388
- │ │ ├── <a href=".claude/gitflow/logs/" class="file-link">logs/</a> # Historique des operations
1389
- │ │ ├── <a href=".claude/gitflow/migrations/" class="file-link">migrations/</a> # Snapshots EF Core
1390
- │ │ ├── backup/ # Sauvegardes de config
1391
- │ │ └── cache/ # Cache cross-branch
1392
- │ └── ...
1393
-
1394
- └── worktrees/ # Worktrees organises
1395
- ├── main/ # Worktree permanent (production)
1396
- ├── develop/ # Worktree permanent (integration)
1397
- ├── features/ # Features en cours
1398
- │ ├── user-auth/
1399
- │ └── payment-gateway/
1400
- ├── releases/ # Releases en cours
1401
- │ └── v1.2.0/
1402
- └── hotfixes/ # Hotfixes en cours
1403
- └── critical-fix/</code></pre>
1404
- </div>
1743
+ <!-- Worktree Structure SVG Diagram -->
1744
+ <div class="svg-diagram" style="margin: 1.5rem 0;">
1745
+ <svg viewBox="0 0 1100 520" preserveAspectRatio="xMidYMid meet" style="width: 100%; max-width: 1100px; height: auto; display: block; margin: 0 auto;">
1746
+ <!-- Definitions for folder icons -->
1747
+ <defs>
1748
+ <linearGradient id="folderGradient" x1="0%" y1="0%" x2="0%" y2="100%">
1749
+ <stop offset="0%" style="stop-color:#fbbf24"/>
1750
+ <stop offset="100%" style="stop-color:#f59e0b"/>
1751
+ </linearGradient>
1752
+ <linearGradient id="folderBlue" x1="0%" y1="0%" x2="0%" y2="100%">
1753
+ <stop offset="0%" style="stop-color:#60a5fa"/>
1754
+ <stop offset="100%" style="stop-color:#3b82f6"/>
1755
+ </linearGradient>
1756
+ <linearGradient id="folderGreen" x1="0%" y1="0%" x2="0%" y2="100%">
1757
+ <stop offset="0%" style="stop-color:#4ade80"/>
1758
+ <stop offset="100%" style="stop-color:#22c55e"/>
1759
+ </linearGradient>
1760
+ <linearGradient id="folderYellow" x1="0%" y1="0%" x2="0%" y2="100%">
1761
+ <stop offset="0%" style="stop-color:#fde047"/>
1762
+ <stop offset="100%" style="stop-color:#eab308"/>
1763
+ </linearGradient>
1764
+ <linearGradient id="folderPink" x1="0%" y1="0%" x2="0%" y2="100%">
1765
+ <stop offset="0%" style="stop-color:#f472b6"/>
1766
+ <stop offset="100%" style="stop-color:#ec4899"/>
1767
+ </linearGradient>
1768
+ <linearGradient id="folderPurple" x1="0%" y1="0%" x2="0%" y2="100%">
1769
+ <stop offset="0%" style="stop-color:#a78bfa"/>
1770
+ <stop offset="100%" style="stop-color:#8b5cf6"/>
1771
+ </linearGradient>
1772
+ </defs>
1405
1773
 
1406
- <div class="alert alert-info">
1407
- <span class="alert-icon">&#128161;</span>
1408
- <div class="alert-content">
1409
- <h5 data-lang="fr">Navigation entre worktrees</h5>
1410
- <h5 data-lang="en">Navigating between worktrees</h5>
1411
- <p data-lang="fr">
1412
- Pour travailler sur une feature : <code>cd ../worktrees/features/ma-feature/</code><br/>
1413
- Pour ouvrir dans VS Code : <code>code ../worktrees/features/ma-feature/</code>
1414
- </p>
1415
- <p data-lang="en">
1416
- To work on a feature: <code>cd ../worktrees/features/my-feature/</code><br/>
1417
- To open in VS Code: <code>code ../worktrees/features/my-feature/</code>
1418
- </p>
1419
- </div>
1774
+ <!-- Title -->
1775
+ <text x="550" y="35" text-anchor="middle" fill="#f8fafc" font-size="16" font-weight="600">
1776
+ <tspan data-lang="fr">Structure des dossiers GitFlow</tspan>
1777
+ <tspan data-lang="en">GitFlow Folder Structure</tspan>
1778
+ </text>
1779
+
1780
+ <!-- ========== LEFT SIDE: Project Structure ========== -->
1781
+ <text x="180" y="70" text-anchor="middle" fill="#94a3b8" font-size="12" font-weight="500">
1782
+ <tspan data-lang="fr">Projet principal</tspan>
1783
+ <tspan data-lang="en">Main project</tspan>
1784
+ </text>
1785
+
1786
+ <!-- my-project folder -->
1787
+ <g transform="translate(30, 85)">
1788
+ <rect x="0" y="0" width="300" height="40" rx="8" fill="transparent" stroke="#3b82f6" stroke-width="2"/>
1789
+ <path d="M15,12 L15,8 L22,8 L25,12 L35,12 L35,28 L15,28 Z" fill="url(#folderBlue)"/>
1790
+ <text x="50" y="26" fill="#f8fafc" font-size="14" font-weight="600">my-project/</text>
1791
+ <text x="180" y="26" fill="#64748b" font-size="11">Repertoire principal</text>
1792
+ </g>
1793
+
1794
+ <!-- .claude/gitflow/ folder -->
1795
+ <g transform="translate(60, 135)">
1796
+ <line x1="-15" y1="-20" x2="-15" y2="20" stroke="#475569" stroke-width="2"/>
1797
+ <line x1="-15" y1="20" x2="0" y2="20" stroke="#475569" stroke-width="2"/>
1798
+ <rect x="0" y="0" width="270" height="40" rx="8" fill="transparent" stroke="#8b5cf6" stroke-width="2"/>
1799
+ <path d="M15,12 L15,8 L22,8 L25,12 L35,12 L35,28 L15,28 Z" fill="url(#folderPurple)"/>
1800
+ <text x="50" y="26" fill="#a78bfa" font-size="13" font-weight="600">.claude/gitflow/</text>
1801
+ <text x="200" y="26" fill="#64748b" font-size="10">Config GitFlow</text>
1802
+ </g>
1803
+
1804
+ <!-- Config files inside .claude/gitflow -->
1805
+ <g transform="translate(90, 185)">
1806
+ <line x1="-15" y1="-20" x2="-15" y2="155" stroke="#475569" stroke-width="2" stroke-dasharray="4,4"/>
1807
+
1808
+ <!-- config.json -->
1809
+ <g transform="translate(0, 0)">
1810
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1811
+ <rect x="0" y="0" width="200" height="30" rx="6" fill="transparent" stroke="#475569" stroke-width="1"/>
1812
+ <rect x="12" y="7" width="16" height="16" rx="2" fill="#6366f1"/>
1813
+ <text x="40" y="20" fill="#e2e8f0" font-size="11" font-family="monospace">config.json</text>
1814
+ <text x="135" y="20" fill="#64748b" font-size="9">Configuration</text>
1815
+ </g>
1816
+
1817
+ <!-- plans/ -->
1818
+ <g transform="translate(0, 40)">
1819
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1820
+ <rect x="0" y="0" width="200" height="30" rx="6" fill="transparent" stroke="#475569" stroke-width="1"/>
1821
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,21 L12,21 Z" fill="#f97316"/>
1822
+ <text x="40" y="20" fill="#e2e8f0" font-size="11" font-family="monospace">plans/</text>
1823
+ <text x="105" y="20" fill="#64748b" font-size="9">Plans d'integration</text>
1824
+ </g>
1825
+
1826
+ <!-- logs/ -->
1827
+ <g transform="translate(0, 80)">
1828
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1829
+ <rect x="0" y="0" width="200" height="30" rx="6" fill="transparent" stroke="#475569" stroke-width="1"/>
1830
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,21 L12,21 Z" fill="#64748b"/>
1831
+ <text x="40" y="20" fill="#e2e8f0" font-size="11" font-family="monospace">logs/</text>
1832
+ <text x="90" y="20" fill="#64748b" font-size="9">Historique</text>
1833
+ </g>
1834
+
1835
+ <!-- migrations/ -->
1836
+ <g transform="translate(0, 120)">
1837
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1838
+ <rect x="0" y="0" width="200" height="30" rx="6" fill="transparent" stroke="#475569" stroke-width="1"/>
1839
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,21 L12,21 Z" fill="#06b6d4"/>
1840
+ <text x="40" y="20" fill="#06b6d4" font-size="11" font-family="monospace">migrations/</text>
1841
+ <text x="130" y="20" fill="#64748b" font-size="9">EF Core</text>
1842
+ </g>
1843
+
1844
+ <!-- backup/ & cache/ -->
1845
+ <g transform="translate(0, 160)">
1846
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1847
+ <rect x="0" y="0" width="200" height="30" rx="6" fill="transparent" stroke="#334155" stroke-width="1"/>
1848
+ <text x="15" y="20" fill="#64748b" font-size="10">backup/, cache/</text>
1849
+ <text x="130" y="20" fill="#475569" font-size="9">Autres</text>
1850
+ </g>
1851
+ </g>
1852
+
1853
+ <!-- Separator line -->
1854
+ <line x1="400" y1="80" x2="400" y2="480" stroke="#334155" stroke-width="2" stroke-dasharray="8,8"/>
1855
+
1856
+ <!-- ========== RIGHT SIDE: Worktrees Structure ========== -->
1857
+ <text x="750" y="70" text-anchor="middle" fill="#94a3b8" font-size="12" font-weight="500">
1858
+ <tspan data-lang="fr">Worktrees (branches isolees)</tspan>
1859
+ <tspan data-lang="en">Worktrees (isolated branches)</tspan>
1860
+ </text>
1861
+
1862
+ <!-- worktrees/ folder -->
1863
+ <g transform="translate(430, 85)">
1864
+ <rect x="0" y="0" width="260" height="40" rx="8" fill="transparent" stroke="#fbbf24" stroke-width="2"/>
1865
+ <path d="M15,12 L15,8 L22,8 L25,12 L35,12 L35,28 L15,28 Z" fill="url(#folderGradient)"/>
1866
+ <text x="50" y="26" fill="#fbbf24" font-size="14" font-weight="600">worktrees/</text>
1867
+ <text x="160" y="26" fill="#64748b" font-size="11">Branches isolees</text>
1868
+ </g>
1869
+
1870
+ <!-- main/ -->
1871
+ <g transform="translate(460, 140)">
1872
+ <line x1="-15" y1="-15" x2="-15" y2="15" stroke="#475569" stroke-width="2"/>
1873
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1874
+ <rect x="0" y="0" width="220" height="32" rx="6" fill="transparent" stroke="#6366f1" stroke-width="1.5"/>
1875
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,23 L12,23 Z" fill="#6366f1"/>
1876
+ <text x="40" y="21" fill="#818cf8" font-size="12" font-weight="500">main/</text>
1877
+ <text x="100" y="21" fill="#64748b" font-size="10">Production</text>
1878
+ <circle cx="200" cy="16" r="6" fill="#6366f1"/>
1879
+ </g>
1880
+
1881
+ <!-- develop/ -->
1882
+ <g transform="translate(460, 182)">
1883
+ <line x1="-15" y1="-10" x2="-15" y2="15" stroke="#475569" stroke-width="2"/>
1884
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1885
+ <rect x="0" y="0" width="220" height="32" rx="6" fill="transparent" stroke="#f97316" stroke-width="1.5"/>
1886
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,23 L12,23 Z" fill="#f97316"/>
1887
+ <text x="40" y="21" fill="#fb923c" font-size="12" font-weight="500">develop/</text>
1888
+ <text x="115" y="21" fill="#64748b" font-size="10">Integration</text>
1889
+ <circle cx="200" cy="16" r="6" fill="#f97316"/>
1890
+ </g>
1891
+
1892
+ <!-- features/ -->
1893
+ <g transform="translate(460, 230)">
1894
+ <line x1="-15" y1="-16" x2="-15" y2="15" stroke="#475569" stroke-width="2"/>
1895
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1896
+ <rect x="0" y="0" width="220" height="32" rx="6" fill="#22c55e" fill-opacity="0.15" stroke="#22c55e" stroke-width="1.5"/>
1897
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,23 L12,23 Z" fill="url(#folderGreen)"/>
1898
+ <text x="40" y="21" fill="#4ade80" font-size="12" font-weight="600">features/</text>
1899
+ <text x="125" y="21" fill="#64748b" font-size="10">En cours</text>
1900
+ <circle cx="200" cy="16" r="6" fill="#22c55e"/>
1901
+ </g>
1902
+
1903
+ <!-- Feature subfolders -->
1904
+ <g transform="translate(490, 275)">
1905
+ <line x1="-15" y1="-13" x2="-15" y2="45" stroke="#22c55e" stroke-width="1.5" stroke-dasharray="3,3"/>
1906
+
1907
+ <g transform="translate(0, 0)">
1908
+ <line x1="-15" y1="12" x2="0" y2="12" stroke="#22c55e" stroke-width="1.5"/>
1909
+ <rect x="0" y="0" width="170" height="26" rx="5" fill="transparent" stroke="#22c55e" stroke-width="1"/>
1910
+ <text x="12" y="18" fill="#4ade80" font-size="11" font-family="monospace">user-auth/</text>
1911
+ </g>
1912
+
1913
+ <g transform="translate(0, 35)">
1914
+ <line x1="-15" y1="12" x2="0" y2="12" stroke="#22c55e" stroke-width="1.5"/>
1915
+ <rect x="0" y="0" width="170" height="26" rx="5" fill="transparent" stroke="#22c55e" stroke-width="1"/>
1916
+ <text x="12" y="18" fill="#4ade80" font-size="11" font-family="monospace">payment-gateway/</text>
1917
+ </g>
1918
+ </g>
1919
+
1920
+ <!-- releases/ -->
1921
+ <g transform="translate(460, 365)">
1922
+ <line x1="-15" y1="-29" x2="-15" y2="15" stroke="#475569" stroke-width="2"/>
1923
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1924
+ <rect x="0" y="0" width="220" height="32" rx="6" fill="#eab308" fill-opacity="0.15" stroke="#eab308" stroke-width="1.5"/>
1925
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,23 L12,23 Z" fill="url(#folderYellow)"/>
1926
+ <text x="40" y="21" fill="#fde047" font-size="12" font-weight="600">releases/</text>
1927
+ <text x="125" y="21" fill="#64748b" font-size="10">En cours</text>
1928
+ <circle cx="200" cy="16" r="6" fill="#eab308"/>
1929
+ </g>
1930
+
1931
+ <!-- Release subfolder -->
1932
+ <g transform="translate(490, 410)">
1933
+ <line x1="-15" y1="-13" x2="-15" y2="12" stroke="#eab308" stroke-width="1.5" stroke-dasharray="3,3"/>
1934
+ <line x1="-15" y1="12" x2="0" y2="12" stroke="#eab308" stroke-width="1.5"/>
1935
+ <rect x="0" y="0" width="170" height="26" rx="5" fill="transparent" stroke="#eab308" stroke-width="1"/>
1936
+ <text x="12" y="18" fill="#fde047" font-size="11" font-family="monospace">v1.2.0/</text>
1937
+ </g>
1938
+
1939
+ <!-- hotfixes/ -->
1940
+ <g transform="translate(460, 450)">
1941
+ <line x1="-15" y1="-14" x2="-15" y2="15" stroke="#475569" stroke-width="2"/>
1942
+ <line x1="-15" y1="15" x2="0" y2="15" stroke="#475569" stroke-width="2"/>
1943
+ <rect x="0" y="0" width="220" height="32" rx="6" fill="#ec4899" fill-opacity="0.15" stroke="#ec4899" stroke-width="1.5"/>
1944
+ <path d="M12,9 L12,6 L18,6 L20,9 L28,9 L28,23 L12,23 Z" fill="url(#folderPink)"/>
1945
+ <text x="40" y="21" fill="#f472b6" font-size="12" font-weight="600">hotfixes/</text>
1946
+ <text x="125" y="21" fill="#64748b" font-size="10">Urgents</text>
1947
+ <circle cx="200" cy="16" r="6" fill="#ec4899"/>
1948
+ </g>
1949
+
1950
+ <!-- Hotfix subfolder -->
1951
+ <g transform="translate(490, 495)">
1952
+ <line x1="-15" y1="-13" x2="-15" y2="10" stroke="#ec4899" stroke-width="1.5" stroke-dasharray="3,3"/>
1953
+ <line x1="-15" y1="10" x2="0" y2="10" stroke="#ec4899" stroke-width="1.5"/>
1954
+ <rect x="0" y="0" width="170" height="24" rx="5" fill="transparent" stroke="#ec4899" stroke-width="1"/>
1955
+ <text x="12" y="16" fill="#f472b6" font-size="11" font-family="monospace">critical-fix/</text>
1956
+ </g>
1957
+
1958
+ <!-- Legend -->
1959
+ <g transform="translate(750, 140)">
1960
+ <rect x="0" y="0" width="200" height="130" rx="8" fill="transparent" stroke="#334155" stroke-width="1"/>
1961
+ <text x="100" y="22" text-anchor="middle" fill="#94a3b8" font-size="11" font-weight="500">
1962
+ <tspan data-lang="fr">Legende</tspan>
1963
+ <tspan data-lang="en">Legend</tspan>
1964
+ </text>
1965
+
1966
+ <circle cx="20" cy="45" r="5" fill="#6366f1"/>
1967
+ <text x="35" y="49" fill="#94a3b8" font-size="10">Permanent</text>
1968
+
1969
+ <circle cx="20" cy="68" r="5" fill="#22c55e"/>
1970
+ <text x="35" y="72" fill="#94a3b8" font-size="10">Feature</text>
1971
+
1972
+ <circle cx="110" cy="45" r="5" fill="#eab308"/>
1973
+ <text x="125" y="49" fill="#94a3b8" font-size="10">Release</text>
1974
+
1975
+ <circle cx="110" cy="68" r="5" fill="#ec4899"/>
1976
+ <text x="125" y="72" fill="#94a3b8" font-size="10">Hotfix</text>
1977
+
1978
+ <line x1="15" y1="90" x2="185" y2="90" stroke="#334155" stroke-width="1"/>
1979
+ <text x="100" y="110" text-anchor="middle" fill="#64748b" font-size="9">
1980
+ <tspan data-lang="fr">Chaque worktree = 1 branche isolee</tspan>
1981
+ <tspan data-lang="en">Each worktree = 1 isolated branch</tspan>
1982
+ </text>
1983
+ </g>
1984
+ </svg>
1420
1985
  </div>
1421
1986
 
1422
1987
  <h3 data-lang="fr">Fichiers de configuration</h3>
@@ -1481,15 +2046,15 @@
1481
2046
 
1482
2047
  <div class="code-block">
1483
2048
  <button class="copy-btn">Copy</button>
1484
- <pre><code># Initialiser GitFlow avec worktrees
1485
- /gitflow:1-init --with-worktrees
2049
+ <pre><code><span class="code-comment"># Initialiser GitFlow avec worktrees</span>
2050
+ <span class="code-cmd">/gitflow:1-init</span> <span class="code-flag">--with-worktrees</span>
1486
2051
 
1487
- # Demarrer une feature (cree le worktree automatiquement)
1488
- /gitflow:10-start feature user-auth
1489
- # → Worktree cree: ../worktrees/features/user-auth/
2052
+ <span class="code-comment"># Demarrer une feature (cree le worktree automatiquement)</span>
2053
+ <span class="code-cmd">/gitflow:10-start</span> <span class="code-arg">feature</span> <span class="code-string">user-auth</span>
2054
+ <span class="code-output"># → Worktree cree: ../worktrees/features/user-auth/</span>
1490
2055
 
1491
- # Travailler sans worktree (meme repertoire)
1492
- /gitflow:10-start feature test --no-worktree</code></pre>
2056
+ <span class="code-comment"># Travailler sans worktree (meme repertoire)</span>
2057
+ <span class="code-cmd">/gitflow:10-start</span> <span class="code-arg">feature</span> <span class="code-string">test</span> <span class="code-flag">--no-worktree</span></code></pre>
1493
2058
  </div>
1494
2059
  </section>
1495
2060