devflow-cli 10.1.0__py3-none-any.whl → 10.1.1__py3-none-any.whl

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.
devflow_cli/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """devflow CLI — workflow de développement adaptatif."""
2
2
 
3
- VERSION = "10.1.0"
3
+ VERSION = "10.1.1"
4
4
 
5
5
  ACTIVITY_LINEAR_MAPPING = {
6
6
  "assess": "Backlog",
@@ -9,6 +9,9 @@ allowed-tools: Bash(devflow:*)
9
9
  Utiliser exclusivement la machine adaptative de la CLI. Ne jamais créer ni
10
10
  interpréter de `state.json`.
11
11
 
12
+ Avant toute chose, exécuter `devflow check`. En échec, ne pas utiliser
13
+ Devflow : le dire, avec la cause, et traiter la demande hors Devflow.
14
+
12
15
  1. Lire `$ARGUMENTS` et extraire l'identifiant de feature et la cible `--until`
13
16
  (`done` par défaut).
14
17
  2. Exécuter `devflow status ISSUE_ID`.
@@ -17,7 +20,13 @@ interpréter de `state.json`.
17
20
  l'issue) et annoncer la branche et le dossier créés.
18
21
  4. Si la feature n'est pas encore évaluée et que `need.md` n'existe pas dans
19
22
  son dossier, le rédiger à partir de l'issue et de la demande. En cas de
20
- doute sur le besoin, poser la question avant de l'écrire.
23
+ doute sur le besoin, poser la question avant de l'écrire. Le besoin dit :
24
+ 1. les constats observés, avec leur origine ;
25
+ 2. les décisions prises, non rediscutables pendant le parcours ;
26
+ 3. l'attendu et les tests ;
27
+ 4. la livraison (version, fichiers de version) ;
28
+ 5. le hors périmètre ;
29
+ 6. les contraintes d'exécution.
21
30
  5. Si elle n'est pas évaluée, demander les signaux nécessaires puis lancer
22
31
  `devflow assess ISSUE_ID` avec des options explicites.
23
32
  6. Si elle est évaluée mais non démarrée, lancer
@@ -59,3 +68,6 @@ devflow feedback add --type bilan --issue <ISSUE> --what "…" \
59
68
 
60
69
  Le contrat produit par Devflow est la seule autorité sur les actions,
61
70
  artefacts, validations et preuves de l'activité.
71
+
72
+ Si le projet a une constitution (`.specify/memory/constitution.md`), la lire
73
+ avant d'implémenter : elle prime sur spec, plan et tâches.
@@ -0,0 +1,167 @@
1
+ Metadata-Version: 2.5
2
+ Name: devflow-cli
3
+ Version: 10.1.1
4
+ Summary: Workflow adaptatif pour Claude Code : profils, preuves et contrats d'activité
5
+ Project-URL: Homepage, https://github.com/sopequenoteck/devflow
6
+ Project-URL: Repository, https://github.com/sopequenoteck/devflow
7
+ Author-email: sopequenoteck <sopequeno.tech@gmail.com>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Keywords: adaptive,claude-code,cli,workflow
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Topic :: Software Development :: Quality Assurance
18
+ Requires-Python: >=3.11
19
+ Requires-Dist: jsonschema>=4.23
20
+ Requires-Dist: pyyaml>=6
21
+ Requires-Dist: rich>=13
22
+ Requires-Dist: typer>=0.12
23
+ Provides-Extra: dev
24
+ Requires-Dist: hatchling>=1.27; extra == 'dev'
25
+ Requires-Dist: pytest-cov>=5; extra == 'dev'
26
+ Requires-Dist: pytest>=8; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ # devflow
30
+
31
+ Devflow est un workflow adaptatif pour Claude Code. Il s'adresse au développeur
32
+ qui fait travailler Claude Code sur ses projets et veut une rigueur
33
+ proportionnée au risque : la CLI choisit un profil à partir de signaux
34
+ explicites, confie chaque activité à un agent sous un contrat écrit et ne
35
+ franchit une étape que sur des preuves qu'elle produit elle-même.
36
+
37
+ Un parcours produit une branche Git et un dossier de feature, un besoin écrit
38
+ (`need.md`), les résultats de chaque activité, des preuves exécutées
39
+ localement (tests, inspection du diff, revue) et un journal des retours
40
+ d'usage (frictions et bilan).
41
+
42
+ ## Installer
43
+
44
+ Prérequis : Python 3.11+, Git et la CLI `claude` (Claude Code).
45
+
46
+ ```bash
47
+ uv tool install --refresh devflow-cli==X.Y.Z # version publiée sur PyPI
48
+ devflow init
49
+ devflow check
50
+ ```
51
+
52
+ `devflow init` installe les commandes `/devflow` et `/devflow.status` dans
53
+ `~/.claude` ; `devflow check` vérifie les prérequis. Installer toujours depuis
54
+ PyPI, à une version précise.
55
+
56
+ Après chaque mise à jour de la CLI, lancer `devflow upgrade` : il met à jour
57
+ les commandes `/devflow` installées dans `~/.claude`, que l'installation de la
58
+ CLI ne touche pas. Tant qu'elles diffèrent de la CLI, `devflow status` affiche
59
+ un avertissement avec cette commande ; rien n'est modifié sans vous.
60
+ `--refresh` évite qu'`uv` ignore une version tout juste publiée. Juste après
61
+ une publication, l'installation peut échouer pendant une à quatre minutes, le
62
+ temps que l'index se propage : réessayer.
63
+
64
+ `devflow init` et `devflow upgrade` déplacent les anciennes commandes Claude
65
+ connues vers `~/.claude/.devflow-legacy-backup/` sans toucher aux commandes
66
+ personnalisées.
67
+
68
+ Une version majeure refuse, sans migration, les parcours démarrés avec une
69
+ version majeure antérieure : terminez-les avant la mise à jour, voir les notes
70
+ de version du dépôt.
71
+
72
+ ## Premier parcours
73
+
74
+ Une feature avec un identifiant d'issue passe par Devflow ; un correctif
75
+ ponctuel ou une tâche hors feature, non.
76
+
77
+ Avec Claude Code :
78
+
79
+ ```text
80
+ /devflow KS-123
81
+ ```
82
+
83
+ La commande crée la feature, rédige `need.md`, demande les signaux de
84
+ l'évaluation puis enchaîne les activités jusqu'à `done`.
85
+
86
+ À la main :
87
+
88
+ ```bash
89
+ devflow feature KS-123 --short-name user-auth
90
+ # Décrire le besoin dans need.md, dans le dossier de la feature créé
91
+ devflow assess KS-123 --scope multiple --ambiguity medium --risk medium
92
+ devflow adaptive start KS-123
93
+ devflow adaptive run KS-123
94
+ devflow adaptive status KS-123
95
+ ```
96
+
97
+ Chaque invocation de `adaptive run` traite une activité. `adaptive status`
98
+ affiche la progression, les preuves et la prochaine commande ; `--json` en
99
+ donne une forme exploitable par la CI.
100
+
101
+ ## Décrire le besoin
102
+
103
+ `need.md` est l'entrée de tout parcours et fait foi pour chaque activité. Le
104
+ besoin dit :
105
+
106
+ 1. les constats observés, avec leur origine ;
107
+ 2. les décisions prises, non rediscutables pendant le parcours ;
108
+ 3. l'attendu et les tests ;
109
+ 4. la livraison (version, fichiers de version) ;
110
+ 5. le hors périmètre ;
111
+ 6. les contraintes d'exécution.
112
+
113
+ ## Lire un refus
114
+
115
+ Chaque refus affiche son motif et la commande de reprise recommandée.
116
+
117
+ - Refus justifié (le travail de l'agent ne satisfait pas l'étape) : corriger
118
+ le travail, puis reprendre par la commande proposée.
119
+ - Échec de Devflow (refus à tort, message trompeur, reprise inadaptée,
120
+ prérequis non documenté) : le consigner aussitôt avec
121
+ `devflow feedback add --type friction`.
122
+ - En fin de parcours, terminé ou abandonné : un bilan avec
123
+ `devflow feedback add --type bilan`.
124
+
125
+ ## Profils et garde-fous
126
+
127
+ Le profil fixe la route documentaire :
128
+
129
+ - `quick` : changement local, clair et peu risqué, sans revue.
130
+ - `standard` : plusieurs composants ou risque modéré ; préparation puis revue
131
+ systématique.
132
+ - `deep` : changement transversal, ambigu ou contractuel ; `spec`, `plan`,
133
+ `tasks`, plus `contracts` quand `--contract-change` est déclaré.
134
+
135
+ Un bloc de garde-fous s'y ajoute quand `--data-security` est déclaré ou que
136
+ `--risk high` : évaluation du risque, contrôle bloquant de sécurité ou de
137
+ données à `verify`, revue indépendante, puis vérification du retour arrière
138
+ avant `done`. Un bloc actif impose au minimum le profil `standard`, ne se
139
+ désactive par aucune option et interdit les dérogations.
140
+
141
+ La référence complète (routes, preuves, commandes, contrats d'activité) est
142
+ livrée dans le dépôt, sous `docs/`.
143
+
144
+ ## Synchronisation Linear
145
+
146
+ Si `LINEAR_API_KEY` contient une clé d'API personnelle Linear, la CLI met à jour
147
+ le statut de l'issue du parcours au démarrage de chaque activité (`adaptive
148
+ run`, y compris avec `--until`, et clôture `done`). L'équipe Linear doit avoir
149
+ les statuts `Backlog`, `Design`, `In Progress`, `Review` et `Done`. Un statut
150
+ n'est jamais ramené en arrière ; un statut hors de cette liste (`Canceled`,
151
+ `Duplicate`) n'est jamais modifié.
152
+
153
+ Sans clé, ou si Linear échoue (issue inconnue, statut absent, erreur réseau ou
154
+ délai de 5 s dépassé), la CLI affiche un avertissement et le parcours continue
155
+ à l'identique. La clé est retirée de l'environnement de tout processus lancé
156
+ par Devflow (agents, commandes de validation, commandes git) ; elle reste
157
+ lisible par un agent si elle est définie dans un fichier que son shell charge
158
+ (`~/.zshrc`).
159
+
160
+ ## Développement
161
+
162
+ ```bash
163
+ uv sync --extra dev
164
+ uv run pytest -q
165
+ ./tests/run-tests.sh
166
+ uv run devflow docs-sync --check
167
+ ```
@@ -1,4 +1,4 @@
1
- devflow_cli/__init__.py,sha256=lZsIKCNGd77qBp7LlFtTmNgqB5liD5Yu1cvqa1NxfYg,871
1
+ devflow_cli/__init__.py,sha256=NAGGk9OBe8YXw8PKPqglUP-Ky2xGiIPf0Ine3TMUXl0,871
2
2
  devflow_cli/cli.py,sha256=DVLx3wr1Hulke2qxhgHsEvvprRuO7SVETui_VGPNQv4,1983
3
3
  devflow_cli/adapters/__init__.py,sha256=z1J7_YJHcgak2a6dTZpOUKKwf-K7UwRqGzS8XY9duC0,299
4
4
  devflow_cli/adapters/agents.py,sha256=-9zmNlFmQfP2pOGxA3_SSKij8ScR76J4-sgv4GMBWEI,18530
@@ -53,11 +53,11 @@ devflow_cli/utils/console.py,sha256=t7cpyeEluWj4v_O_KFSI59iqXK4GiSXPuxlsr8q5zoQ,
53
53
  devflow_cli/utils/logging.py,sha256=I7U9_IVvYAFnUAWi7xs5F_WGR0uSz6DmRvZ_B3xLFbs,1769
54
54
  devflow_cli/utils/paths.py,sha256=CH81dZZTI2vjgl8mck6QcAChxoBpujmKZ0vVKhKmXEY,8176
55
55
  devflow_cli/utils/strings.py,sha256=bfFXCwBDnFxshgZOYfy6mtysnjiaWO1wFnqBf7HLg4o,351
56
- devflow_cli/resources/commands/devflow.md,sha256=R_8oExTiK2oE5-7YycePFbUeu3tpkyMpsvXVZHAegYM,2899
56
+ devflow_cli/resources/commands/devflow.md,sha256=5MjahTVYXAT_zrjEQmM25KH9s6DbRmyI1TdJCxYlrKk,3464
57
57
  devflow_cli/resources/commands/devflow.status.md,sha256=tqjQ1IboU99ztG6C4nunBHGJCvMn3qDqx3AoF4SPjCk,338
58
58
  devflow_cli/resources/templates/constitution-template.md,sha256=uSzNuwF-xIRx8cHt9gloynRjNgDGmnN5z2Xck6fCOsI,2102
59
- devflow_cli-10.1.0.dist-info/METADATA,sha256=Jy6CrWnMaCHJZ_EcSIc42wP0VHJzcUBazJQCwhHx83k,10116
60
- devflow_cli-10.1.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
61
- devflow_cli-10.1.0.dist-info/entry_points.txt,sha256=GVJ6bMvFpqyO5589iC4nFKeGTpGIW8aKn_QPPpSZ6kU,48
62
- devflow_cli-10.1.0.dist-info/licenses/LICENSE,sha256=v79PvnmqOdKhQiOa_QcWxng4q8GuGscLOwi7ygUpwpo,1070
63
- devflow_cli-10.1.0.dist-info/RECORD,,
59
+ devflow_cli-10.1.1.dist-info/METADATA,sha256=2J_RNk3Db7cbmZbRZxe_NfLeXFOnXtLde9bIRsOec4I,6501
60
+ devflow_cli-10.1.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
61
+ devflow_cli-10.1.1.dist-info/entry_points.txt,sha256=GVJ6bMvFpqyO5589iC4nFKeGTpGIW8aKn_QPPpSZ6kU,48
62
+ devflow_cli-10.1.1.dist-info/licenses/LICENSE,sha256=v79PvnmqOdKhQiOa_QcWxng4q8GuGscLOwi7ygUpwpo,1070
63
+ devflow_cli-10.1.1.dist-info/RECORD,,
@@ -1,212 +0,0 @@
1
- Metadata-Version: 2.5
2
- Name: devflow-cli
3
- Version: 10.1.0
4
- Summary: Spec-Driven Development workflow CLI
5
- Project-URL: Homepage, https://github.com/sopequenoteck/devflow
6
- Project-URL: Repository, https://github.com/sopequenoteck/devflow
7
- Author-email: sopequenoteck <sopequeno.tech@gmail.com>
8
- License: MIT
9
- License-File: LICENSE
10
- Keywords: claude-code,cli,development,spec-driven,workflow
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Environment :: Console
13
- Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Programming Language :: Python :: 3.12
17
- Classifier: Topic :: Software Development :: Quality Assurance
18
- Requires-Python: >=3.11
19
- Requires-Dist: jsonschema>=4.23
20
- Requires-Dist: pyyaml>=6
21
- Requires-Dist: rich>=13
22
- Requires-Dist: typer>=0.12
23
- Provides-Extra: dev
24
- Requires-Dist: hatchling>=1.27; extra == 'dev'
25
- Requires-Dist: pytest-cov>=5; extra == 'dev'
26
- Requires-Dist: pytest>=8; extra == 'dev'
27
- Description-Content-Type: text/markdown
28
-
29
- # devflow
30
-
31
- Devflow est un moteur de développement adaptatif pour Claude Code. Il choisit un niveau de rigueur à partir de signaux explicites, produit
32
- des contrats d’activité portables et bloque les transitions tant que les
33
- preuves attendues ne sont pas présentes.
34
-
35
- ## Profils
36
-
37
- Le profil fixe la route documentaire :
38
-
39
- - `quick` : changement local, clair et peu risqué, sans revue.
40
- - `standard` : plusieurs composants ou risque modéré ; préparation puis revue
41
- systématique (`implementation-review`).
42
- - `deep` : changement transversal, ambigu ou contractuel ; `spec`, `plan`,
43
- `tasks`, plus `contracts` quand `--contract-change` est déclaré.
44
-
45
- Un bloc de garde-fous s'y ajoute quand `--data-security` est déclaré ou que
46
- `--risk high` : `risk-assessment` après l'évaluation, validation bloquante de
47
- sécurité ou de données dans le plan de validation (une validation protégée non
48
- bloquante est refusée dès `prepare` ou `plan`), preuve
49
- `security-or-data-check` produite par `verify`, revue `independent-review`,
50
- puis `rollback-check` avec `rollback-plan`. Un bloc actif impose au minimum le
51
- profil `standard`, ne se désactive par aucune option et interdit les
52
- dérogations.
53
-
54
- Les routes exactes et leurs preuves sont générées dans
55
- [docs/pipeline-reference.generated.md](docs/pipeline-reference.generated.md).
56
-
57
- ## Installation
58
-
59
- ```bash
60
- uv tool install --refresh devflow-cli==X.Y.Z # version publiée, voir CHANGELOG.md
61
- devflow init
62
- ```
63
-
64
- Après chaque mise à jour de la CLI, lancer `devflow upgrade` : il met à jour
65
- les commandes `/devflow` installées dans `~/.claude`, que l'installation de la
66
- CLI ne touche pas. `--refresh` évite qu'`uv` ignore une version tout juste
67
- publiée. Juste après une publication, l'installation peut échouer pendant une
68
- à quatre minutes, le temps que l'index se propage : réessayer. Tant que les commandes installées diffèrent de la CLI,
69
- `devflow status` affiche un avertissement avec cette commande ; rien n'est
70
- modifié sans vous.
71
-
72
- Installer toujours depuis PyPI, à une version précise, jamais depuis le
73
- dossier du dépôt. Les versions publiées sont listées dans
74
- [CHANGELOG.md](CHANGELOG.md).
75
-
76
- Python 3.11+ et Git sont requis.
77
-
78
- ## Parcours quotidien
79
-
80
- ```bash
81
- devflow feature KS-123 --short-name user-auth
82
- # Décrire le besoin dans need.md, dans le dossier de la feature créé
83
- devflow assess KS-123 --scope multiple --ambiguity medium --risk medium
84
- devflow adaptive start KS-123
85
- devflow adaptive run KS-123
86
- devflow adaptive status KS-123
87
- ```
88
-
89
- `adaptive status --json` fournit un état exploitable par la CI. Les échecs
90
- distinguent explicitement blocage métier, contrat invalide, panne agent,
91
- validation échouée et conflit concurrent ; chaque refus affiche la commande de
92
- reprise recommandée. Après un refus de `verify`, cette reprise dépend du motif :
93
- approbations à donner, environnement à corriger, ou trois voies après un
94
- contrôle échoué (rouvrir `implement` si le code est en cause, rouvrir `prepare`
95
- ou `plan` si la validation l'est, relancer `verify` après un échec passager).
96
- En `quick`, un lot purement documentaire (`README.md`, Markdown sous `docs/`)
97
- sans contrôle détecté franchit `verify` sur l'inspection du diff.
98
-
99
- Un plan de `prepare` ou de `plan` refusé par les validateurs se corrige sans
100
- relancer l'agent : `devflow adaptive reconcile KS-123 --result FICHIER.json
101
- --reason MOTIF` rejoue les mêmes validateurs et trace la correction. Les
102
- validations qui attendent une approbation (`devflow adaptive approve-command`)
103
- sont listées en une fois à la fin du plan et au début de `verify`. Pendant
104
- qu'un agent travaille, les commandes humaines qui modifieraient l'état sont
105
- refusées sans effet, et un fichier d'exécution modifié par l'agent est remis
106
- dans son état d'avant l'agent.
107
-
108
- L'agent Claude d'une activité est lancé avec
109
- `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1` : il peut déléguer à des sous-agents,
110
- mais au premier plan seulement. Effet de bord : il ne peut plus lancer de
111
- commande shell en arrière-plan (serveur de test, par exemple). Tous les contrats
112
- demandent en plus que la sortie structurée soit le dernier message de l'agent.
113
- Si un agent termine sans erreur mais sans sortie structurée, `adaptive run`
114
- nomme la cause (`structured-output-missing`) et propose
115
- `devflow adaptive reconcile KS-123 --result MODELE --reason MOTIF` avec un
116
- modèle de résultat prérempli, écrit dans `~/.devflow/reconcile/` et à compléter.
117
-
118
- `need.md` peut être amendé en cours de parcours. Avant une activité
119
- documentaire, l'amendement est accepté avec un avertissement qui nomme les
120
- activités déjà closes, à rouvrir si leur résultat en dépend ; avant `prepare`,
121
- il est accepté sans cet avertissement ; pendant l'exécution d'un agent, il est refusé ;
122
- avant `implement`, il périme la preuve de pré-vol ; après `implement`, il
123
- périme une revue déjà faite. Pour arbitrer après un blocage d'`implement` :
124
- amender `need.md`, puis `devflow adaptive reopen KS-123 preflight-evidence
125
- --reason MOTIF`, refaire le pré-vol et relancer `implement`. Un refus
126
- d'artefact (`artifact-files-mismatch`) nomme chaque fichier en trop et sa
127
- cause : retirer ou remettre en état le fichier, puis
128
- `devflow adaptive reconcile KS-123` ; la relance à l'identique n'est plus
129
- proposée. Pour une entrée du besoin modifiée par un agent, la relance est
130
- refusée avant le lancement de l'agent : remettre l'entrée en état, ou
131
- `devflow adaptive discard-attempt KS-123 --reason MOTIF`, puis
132
- `devflow adaptive run KS-123`.
133
-
134
- Chaque invocation de `adaptive run` traite une activité. La politique est dans
135
- `assessment.json`; la progression et les preuves sont dans
136
- `workflow-state.json`. Les résultats agent sont validés par schéma et les
137
- preuves d’exécution sensibles sont produites localement par Devflow.
138
-
139
- Chaque profil exécute `preflight-evidence` avant `implement`. Cette
140
- activité archive des faits externes reproductibles dans
141
- `preflight-evidence.md`, sans secret ni donnée utilisateur.
142
-
143
- `adaptive run` lance toujours Claude Code, sans option d'agent.
144
-
145
- ## Features créées avant devflow 9
146
-
147
- Devflow 9 refuse, sans migration, un dossier de feature dont la racine contient
148
- un `*-result.json` de `schemaVersion` 1 ou un `*-attempt.json` de schéma 2 ou
149
- moins (parcours démarré avec devflow 8.x). Terminez les parcours en cours avec
150
- devflow 8.5.1, ou gardez la CLI épinglée :
151
- `uv tool install devflow-cli==8.5.1`. Voir les
152
- [notes de version 9.0.0](docs/releases/9.0.0.md).
153
-
154
- ## Features créées avant devflow 8
155
-
156
- Devflow 8 refuse, sans migration, un `workflow-state.json` (schéma 5) produit
157
- par devflow 7.x. Terminez les parcours en cours avec devflow 7.x, ou gardez la
158
- CLI épinglée : `uv tool install 'devflow-cli<8'`. Voir les
159
- [notes de version 8.0.0](docs/releases/8.0.0.md).
160
-
161
- ## Features créées avant devflow 7
162
-
163
- Devflow 7 refuse, sans migration, un `assessment.json` (schéma 3) ou un
164
- `workflow-state.json` (schéma 4) produit par devflow 6.x, avec un message qui
165
- nomme le fichier. Avant la mise à jour, terminez les parcours en cours avec
166
- devflow 6.x, ou gardez la CLI épinglée :
167
- `uv tool install 'devflow-cli<7'`. Voir
168
- [ADR-0003](docs/adr/0003-v7-guardrails-rupture.md) et les
169
- [notes de version 7.0.0](docs/releases/7.0.0.md).
170
-
171
- ## Features créées avant devflow 5
172
-
173
- Devflow 5 ne lit que ses propres schémas et ne fournit aucune migration : un
174
- `assessment.json`, un `workflow-state.json` ou un `state.json` créé par une
175
- version antérieure est refusé. Terminez ces features avec devflow 4.x avant la
176
- mise à jour. Voir [ADR-0002](docs/adr/0002-v5-rupture-and-provenance.md).
177
-
178
- `devflow init` et `devflow upgrade` déplacent également les anciennes commandes
179
- Claude connues vers `~/.claude/.devflow-legacy-backup/` sans toucher aux
180
- commandes personnalisées.
181
-
182
- ## Synchronisation Linear
183
-
184
- Si `LINEAR_API_KEY` contient une clé d'API personnelle Linear, la CLI met à jour
185
- le statut de l'issue du parcours au démarrage de chaque activité (`adaptive
186
- run`, y compris avec `--until`, et clôture `done`). L'équipe Linear doit avoir
187
- les statuts `Backlog`, `Design`, `In Progress`, `Review` et `Done`. Un statut
188
- n'est jamais ramené en arrière ; un statut hors de cette liste (`Canceled`,
189
- `Duplicate`) n'est jamais modifié.
190
-
191
- Sans clé, ou si Linear échoue (issue inconnue, statut absent, erreur réseau ou
192
- délai de 5 s dépassé), la CLI affiche un avertissement et le parcours continue
193
- à l'identique. La clé est retirée de l'environnement de tout processus lancé
194
- par Devflow (agents, commandes de validation, commandes git) ; elle reste
195
- lisible par un agent si elle est définie dans un fichier que son shell charge (`~/.zshrc`). Détails :
196
- [Référence CLI](docs/cli-reference.md#synchronisation-linear).
197
-
198
- ## Documentation
199
-
200
- - [Workflow adaptatif](docs/pipeline.md)
201
- - [Référence CLI](docs/cli-reference.md)
202
- - [Contrats d’activité](docs/activity-contracts.md)
203
- - [Façade Claude Code](docs/commands-reference.md)
204
-
205
- ## Développement
206
-
207
- ```bash
208
- uv sync --extra dev
209
- uv run pytest -q
210
- ./tests/run-tests.sh
211
- uv run devflow docs-sync --check
212
- ```