@dev-kosaly/kagents 0.1.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.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: catalyst-export
3
+ description: Demander, lire et exploiter l'export JSON d'un projet Zoho Catalyst (tables Data Store, colonnes, clés étrangères, permissions, règles de sécurité) sans le charger en entier.
4
+ ---
5
+
6
+ # Export Catalyst
7
+
8
+ ## 1. Pourquoi
9
+ Les tables Data Store sont définies dans la console Catalyst, pas dans le repository. Le code ne dit rien des types exacts, de l'obligation, de l'unicité, des clés étrangères ni des permissions. **L'export JSON du projet est la source de vérité du schéma.** Il se trouve dans `.kagents/docs/knowledge/catalyst-export/`.
10
+
11
+ ## 2. Vérifier sa présence et sa fraîcheur
12
+ - **Présent** : il fait foi. Note son nom et sa date dans `INDEX.md` et dans l'en-tête de `schema-map.md`.
13
+ - **Absent**, ou **plus ancien** que des changements visibles dans le code (nouvelle table ou colonne utilisée) : demande-le (section 3). En attendant, reconstruis ce que tu peux depuis le code et classe le reste en **Inconnu**.
14
+
15
+ ## 3. Demander l'export
16
+ Avant un audit ou une évolution, en quelques lignes. Par exemple :
17
+
18
+ > Avant de fouiller, un petit service : le schéma Catalyst vit dans la console, pas dans le code. Sans lui, je devine les types et les relations, et deviner n'est pas auditer.
19
+ > Exporte le projet depuis la console Catalyst (fichier JSON), puis dépose-le dans `.kagents/docs/knowledge/catalyst-export/`. Deux minutes, et mon audit gagne en précision.
20
+ > Tu préfères que je commence sans ? Possible, mais tout ce qui touche au schéma sera marqué Inconnu.
21
+
22
+ ## 4. Lire l'export sans le charger en entier
23
+ L'export pèse souvent plusieurs centaines de Ko et contient des milliers d'entrées. Ne l'ouvre jamais en entier. Extrais seulement ce dont tu as besoin avec `jq` (ou un court script Python si `jq` est absent), puis résume dans la carte. Une fois la carte construite, c'est elle que tu relis, pas l'export.
24
+
25
+ ### Structure utile
26
+ Sous `components` :
27
+ - `Datastore` : la base. Chaque entrée a un `type` :
28
+ - `table` : `properties.table_name` ;
29
+ - `column` : `table_name`, `column_name`, `data_type` (`varchar`, `text`, `int`, `bigint`, `double`, `boolean`, `date`, `datetime`, `foreign key`…), `is_mandatory`, `is_unique`, `max_length`, `default_value`, `search_index_enabled` ; pour une clé étrangère : `parent_table`, `parent_column`, `constraint_type` (ex. `ON-DELETE-SET-NULL`) ;
30
+ - `tableScope` et `tablePermission` : portée et droits (`SELECT`, `INSERT`, `UPDATE`, `DELETE`) par rôle et par table.
31
+ - `SecurityRules` : règles d'accès aux endpoints (méthodes, `authentication`).
32
+ - `Authentication` : rôles et configuration d'authentification.
33
+ - Le reste (`Functions`, `Cron`, `SchedulingCron`, `Filestore`, `Cache`, `AppSail`…) : seulement si une question précise l'exige.
34
+
35
+ ### Extractions types
36
+
37
+ ```bash
38
+ F=.kagents/docs/knowledge/catalyst-export/*.json
39
+ # Liste des tables
40
+ jq -r '.components.Datastore[] | select(.type=="table") | .properties.table_name' $F
41
+ # Colonnes d'une table
42
+ jq -r '.components.Datastore[] | select(.type=="column" and .properties.table_name=="TABLE")
43
+ | .properties | [.column_name,.data_type,.is_mandatory,.is_unique,.max_length] | @tsv' $F
44
+ # Toutes les clés étrangères
45
+ jq -r '.components.Datastore[] | select(.type=="column" and .properties.data_type=="foreign key")
46
+ | .properties | "\(.table_name).\(.column_name) -> \(.parent_table).\(.parent_column) [\(.constraint_type)]"' $F
47
+ # Permissions d'une table
48
+ jq -r '.components.Datastore[] | select(.type=="tablePermission" and .properties.table_name=="TABLE")
49
+ | .properties | "\(.role_name): \(.table_permissions|join(","))"' $F
50
+ ```
51
+
52
+ ## 5. Croiser avec le code
53
+ - Table ou colonne utilisée dans le code mais absente de l'export, ou l'inverse : écart à signaler.
54
+ - Colonne qui ressemble à un identifiant (`*_id`) mais n'est pas déclarée en `foreign key` : intégrité non garantie.
55
+
56
+ ## 6. Points d'attention systématiques
57
+ - Rôles ayant `DELETE` sur des tables sensibles.
58
+ - Règles de sécurité avec `authentication` optionnelle.
59
+ - Absence d'unicité sur des valeurs métier uniques.
60
+ - Clés étrangères en `ON-DELETE-SET-NULL` sur des liens qui ne devraient jamais être vides.
61
+
62
+ ## 7. Limites de la plateforme
63
+ Tiens compte des limites propres à Catalyst (capacités de ZCQL, contraintes disponibles, quotas). Ne les suppose pas : si une limite conditionne ta proposition, indique-la comme point à vérifier dans la documentation officielle Catalyst.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: db-analysis
3
+ description: Grille d'analyse d'une base de données (intégrité, sécurité, performance, maintenabilité, évolutivité) et niveaux de sévérité pour classer les problèmes observés.
4
+ ---
5
+
6
+ # Analyse de la base
7
+
8
+ Ne signale que ce que tu as observé, avec sa preuve (fichier et ligne, ou entrée de l'export).
9
+
10
+ ## Intégrité
11
+ - Clés étrangères absentes alors qu'une relation existe dans le code.
12
+ - Unicité manquante sur des valeurs métier uniques (email, référence, slug).
13
+ - Nullabilité ou valeurs par défaut incohérentes.
14
+ - Suppression en cascade dangereuse, ou orphelins possibles.
15
+ - Règles métier garanties seulement par le code alors qu'elles devraient l'être en base.
16
+ - Opérations multi-étapes sans transaction (ou sans mécanisme compensatoire quand la plateforme n'en offre pas).
17
+ - Types inadaptés (montants en flottant, dates en chaîne, énumérations en texte libre).
18
+
19
+ ## Sécurité
20
+ - Données personnelles ou sensibles non protégées, mots de passe non hachés.
21
+ - Requêtes construites par concaténation (SQL, ZCQL) : risque d'injection.
22
+ - Isolation multi-tenant absente ou fragile.
23
+ - Secrets en clair dans le code ou les migrations.
24
+ - Colonnes sensibles exposées sans nécessité.
25
+ - Règles d'accès absentes ou trop larges (RLS, permissions de table, règles de sécurité Catalyst).
26
+
27
+ ## Performance
28
+ - Colonnes filtrées, triées ou jointes sans index.
29
+ - Requêtes N+1, chargements excessifs.
30
+ - Pagination absente sur des listes potentiellement longues.
31
+ - Index redondants.
32
+ - En NoSQL : motifs de lecture qui ne correspondent pas aux clés (parcours complets).
33
+ - Croissance forte sans stratégie (archivage, partitionnement) au regard de la volumétrie annoncée.
34
+
35
+ ## Maintenabilité
36
+ - Nommage incohérent.
37
+ - Migrations modifiées après coup, schéma ORM désynchronisé, ou code Catalyst qui utilise des colonnes absentes de l'export.
38
+ - Logique d'accès aux données dupliquée.
39
+ - Colonnes ou tables mortes.
40
+ - Colonnes fourre-tout (JSON, texte libre) là où une structure serait préférable, ou l'inverse.
41
+
42
+ ## Évolutivité
43
+ - Modèle qui bloque une évolution annoncée dans `knowledge/context.md`.
44
+ - Type de base inadapté aux accès réels.
45
+ - Couplage fort qui rendra les migrations coûteuses.
46
+ - Absence de suppression logique ou d'historisation quand le métier en aura besoin.
47
+
48
+ ## Sévérité
49
+ - **Critique** : risque de perte, corruption ou fuite de données.
50
+ - **Élevée** : bug probable ou dégradation sérieuse à court terme.
51
+ - **Moyenne** : dette qui coûtera cher si elle n'est pas traitée.
52
+ - **Faible** : amélioration de confort ou de clarté.
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: db-docs
3
+ description: Modèles et règles d'écriture des fichiers de documentation base de données dans .kagents/docs/base-docs/db/ (INDEX, carte du schéma, fiches entités, modèle cible, audits, propositions).
4
+ ---
5
+
6
+ # Documentation base de données
7
+
8
+ Tous les fichiers vivent dans `.kagents/docs/base-docs/db/`.
9
+
10
+ ## Règles d'écriture
11
+ - `INDEX.md` reste court (une page). C'est un sommaire, pas un rapport.
12
+ - Une fiche entité : faits, références, usages. Pas de prose.
13
+ - Une proposition = un sujet. Si elle grossit, découpe-la.
14
+ - Un audit est figé après écriture. Le suivant est un nouveau fichier.
15
+ - La carte ne contient que ce qui est observé, jamais une proposition.
16
+ - Au-delà de ~8 entités, la carte garde la vue d'ensemble et le diagramme, et le détail passe dans `entities/`.
17
+
18
+ ## INDEX.md
19
+
20
+ ~~~~markdown
21
+ # Base — Index
22
+
23
+ > Dernière session : <date> — Mode : <A|B|C> — Carte à jour au : <date / dernière source lue>
24
+
25
+ ## Stack
26
+ - Base de données : …
27
+ - Couche d'accès : …
28
+ - Source de vérité du schéma : …
29
+ - Export Catalyst (si applicable) : <nom du fichier> — <date de l'export>
30
+
31
+ ## Fichiers
32
+ - Carte : [schema-map.md](schema-map.md)
33
+ - Dernier audit : [audits/<fichier>](audits/<fichier>)
34
+ - Modèle cible (mode A) : [design/model-v1.md](design/model-v1.md)
35
+
36
+ ## Propositions ouvertes
37
+ | ID | Sujet | Sévérité | Statut |
38
+ |---|---|---|---|
39
+ | PROP-001 | … | Élevée | proposée |
40
+
41
+ ## Inconnus en attente
42
+ - … (ce qu'il faut demander, ou l'export Catalyst à fournir)
43
+ ~~~~
44
+
45
+ ## schema-map.md
46
+
47
+ ~~~~markdown
48
+ # Carte du schéma
49
+
50
+ > Mise à jour : <date> — Dernière source lue : <migration / schéma / export Catalyst + date>
51
+
52
+ ## Diagramme
53
+ ```mermaid
54
+ erDiagram
55
+ USER ||--o{ ORDER : passe
56
+ ORDER ||--|{ ORDER_ITEM : contient
57
+ ```
58
+
59
+ ## Entités
60
+ | Entité | Rôle métier | Fiche |
61
+ |---|---|---|
62
+ | User | … | [entities/user.md](entities/user.md) |
63
+
64
+ ## Inconnus
65
+ - …
66
+
67
+ ## Historique
68
+ - <date> : <ce qui a changé et pourquoi>
69
+ ~~~~
70
+
71
+ ## entities/<entite>.md
72
+
73
+ ~~~~markdown
74
+ # <Entité>
75
+
76
+ - Rôle métier : …
77
+ - Sources : <modèle>, <migration ou export>
78
+ - Clé : …
79
+ - Attributs clés : <nom : type, contraintes> (Établi / Déduit / Inconnu)
80
+ - Index : …
81
+ - Relations : …
82
+ - Usages : création <fichier:ligne> · lecture <…> · modification <…> · suppression <…>
83
+ ~~~~
84
+
85
+ ## design/model-v1.md (mode A)
86
+
87
+ ~~~~markdown
88
+ # Modèle cible — v1
89
+
90
+ ## Besoins couverts
91
+ - …
92
+
93
+ ## Type de base retenu
94
+ <choix> — <pourquoi, en une ou deux phrases>
95
+
96
+ ## Diagramme
97
+ ```mermaid
98
+ erDiagram
99
+ ```
100
+
101
+ ## Entités
102
+ <même format que les fiches entités>
103
+
104
+ ## Décisions
105
+ - …
106
+
107
+ ## Hypothèses
108
+ - …
109
+
110
+ ## Questions ouvertes
111
+ - …
112
+ ~~~~
113
+
114
+ ## audits/AAAA-MM-JJ-<sujet>.md
115
+
116
+ ~~~~markdown
117
+ # Audit — <sujet> — <date>
118
+
119
+ ## Résumé
120
+ <3 à 5 lignes>
121
+
122
+ ## Écarts contexte / repository
123
+ | Contexte dit | Repository montre | Référence |
124
+ |---|---|---|
125
+
126
+ ## Problèmes
127
+ ### [Critique] <titre court>
128
+ - Catégorie : …
129
+ - Preuve : <fichier:ligne ou entrée de l'export>
130
+ - Statut : Établi | Déduit
131
+ - Impact : …
132
+ - Proposition : [PROP-NNN](../proposals/PROP-NNN-<slug>.md) ou « aucune »
133
+
134
+ ## Actions prioritaires
135
+ 1. …
136
+
137
+ ## Hypothèses retenues
138
+ - …
139
+
140
+ ## Questions ouvertes
141
+ - …
142
+ ~~~~
143
+
144
+ ## proposals/PROP-NNN-<slug>.md
145
+
146
+ ~~~~markdown
147
+ # PROP-NNN — <titre>
148
+
149
+ - Statut : proposée | acceptée | rejetée | appliquée
150
+ - Origine : audit <lien> | fonctionnalité « … »
151
+ - Créée le : <date> — Mise à jour : <date>
152
+ - Sévérité / priorité : …
153
+
154
+ ## Problème ou besoin
155
+ …
156
+
157
+ ## Impact
158
+ - Entités et colonnes : …
159
+ - Données existantes : …
160
+ - Code concerné : <fichier:ligne>
161
+ - Risques : …
162
+ - Contraintes de plateforme à vérifier : …
163
+
164
+ ## Approche recommandée
165
+ …
166
+
167
+ ## Alternative (si compromis réel)
168
+ …
169
+
170
+ ## Migration
171
+ 1. …
172
+ - Migration des données : …
173
+ - Retour arrière : …
174
+
175
+ ## Décision
176
+ <rempli quand l'utilisateur tranche>
177
+ ~~~~
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: feature-analysis
3
+ description: >-
4
+ Analyse une nouvelle fonctionnalite ou modification fonctionnelle avant
5
+ implementation. Utiliser pour situation C (feature) ou clarification de
6
+ demande sur projet existant. Produit une Architect Analysis ou alimente
7
+ write-change-brief.
8
+ ---
9
+
10
+ # Feature analysis
11
+
12
+ ## Quand utiliser
13
+
14
+ - Nouvelle fonctionnalite ou evolution d'une existante (situation **C**).
15
+ - Demande ambigue necessitant cadrage avant dev.
16
+ - **Ne pas** utiliser seul pour L0 correctif trivial (workflow `bug-local.md`) : renvoyer Developer sauf doute sur le niveau.
17
+
18
+ ## Prerequis
19
+
20
+ - Demande utilisateur ou ticket identifiable.
21
+ - Repo projet accessible avec artefacts de base (`STATE.md` ideal).
22
+
23
+ ## Fichiers a lire (minimal, puis elargir si besoin)
24
+
25
+ 1. Projet : `AGENTS.md`, `STATE.md`, `business-rules.md`, `glossary.md`
26
+ 2. ADR / Change Brief ouverts lies au sujet
27
+ 3. `schema.yaml` si la demande touche donnees ou entites metier
28
+ 4. Code : uniquement modules, routes, ecrans ou APIs **nommes** dans la demande ou deduits apres premiere passe
29
+
30
+ References harness : `agents/architect.md`, `workflows/impact-levels.yaml`.
31
+
32
+ ## Etapes
33
+
34
+ 1. **Goal** : objectif, utilisateurs, resultat attendu cote utilisateur.
35
+ 2. **Perimetre** : in scope / out of scope explicites.
36
+ 3. **Regles metier** : extraire de `business-rules.md` et glossary ; signaler lacunes (questions ou hypotheses).
37
+ 4. **Entites et dependances** : noms metier ; pas de schema detaille — noter « Database Architect si L2+ ».
38
+ 5. **Existant** : composants, flux, API deja en place a reutiliser ; zones protegees (`STATE.md`).
39
+ 6. **Simplicite** : solution minimale ; justifier toute nouvelle couche/table/service.
40
+ 7. Invoquer **`architecture-impact`** pour Impact + niveau L0–L3.
41
+ 8. Remplir le format **Architect Analysis** (`agents/architect.md`).
42
+ 9. Si L2+ ou changement significatif L1 : enchainer **`write-change-brief`**.
43
+
44
+ ## Resultat attendu
45
+
46
+ - **Architect Analysis** complete (sections vides ou N/A si non pertinent).
47
+ - Liste de **questions metier** seulement si bloquantes.
48
+ - **Next Step** clair (ex. validation Change Brief, Database Architect, Developer).
49
+
50
+ ## Standards / rules
51
+
52
+ Charger `standards/` uniquement si le sujet l'exige (securite, catalyst). Index : `standards/README.md`.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: schema-exploration
3
+ description: Explorer un repository de façon ciblée pour identifier la base de données, sa source de vérité, reconstruire le modèle de données et son usage réel, et savoir quand l'exploration est suffisante.
4
+ ---
5
+
6
+ # Exploration du schéma
7
+
8
+ ## 1. Principe
9
+ Exploration ciblée et progressive, jamais le repository entier. Boucle :
10
+
11
+ **Explorer → Observer → Décider → Rechercher précisément → Analyser → Diagnostiquer**
12
+
13
+ À chaque tour : « Que me manque-t-il pour cocher le critère d'arrêt (section 6) ? » Cherche uniquement cela.
14
+
15
+ ## 2. Outils
16
+ - Si `graft` est disponible, utilise-le d'abord pour localiser modèles, schémas et requêtes.
17
+ - Sinon, recherche par motif de fichiers, puis `grep` pour les usages.
18
+
19
+ ## 3. Identifier la stack et la source de vérité
20
+ Commence par les fichiers de dépendances et de configuration (`package.json`, `composer.json`, `requirements.txt`, `pyproject.toml`, `go.mod`, `catalyst.json`…).
21
+
22
+ | Stack | Où regarder en priorité |
23
+ |---|---|
24
+ | Laravel / Eloquent | `database/migrations/`, `app/Models/`, `config/database.php` |
25
+ | Prisma | `prisma/schema.prisma`, `prisma/migrations/` |
26
+ | Drizzle | `schema.ts` ou `schema/`, `drizzle.config.*`, dossier `drizzle/` |
27
+ | TypeORM | `*.entity.ts`, `migrations/` |
28
+ | Sequelize | `models/`, `migrations/` |
29
+ | Django | `*/models.py`, `*/migrations/` |
30
+ | Rails | `db/schema.rb` ou `db/structure.sql`, `app/models/` |
31
+ | Mongoose / MongoDB | `models/`, `*.schema.ts`, validateurs JSON Schema |
32
+ | Supabase | `supabase/migrations/`, politiques RLS |
33
+ | **Zoho Catalyst Data Store** | **Source de vérité : l'export** (skill `catalyst-export`). Dans le code : `catalyst.json`, `functions/*/`, appels `datastore()`, `.table(...)`, `zcql()`, `executeZCQLQuery(...)` |
34
+ | **Zoho Catalyst NoSQL** | Dans le code : appels `nosql()`, `.table(...)` ; clés de partition et de tri, attributs écrits, motifs de lecture |
35
+ | SQL brut | fichiers `.sql`, dossiers `db/` ou `sql/` |
36
+
37
+ Si plusieurs sources de schéma coexistent (migrations et schéma ORM, export Catalyst et code), identifie celle qui fait foi et signale toute incohérence.
38
+
39
+ ## 4. Reconstruire le modèle
40
+ Pour chaque entité : nom, attributs et types, clé primaire (ou clés de partition et de tri en NoSQL), contraintes (unicité, obligation, défauts), relations (cardinalité, clé étrangère, comportement à la suppression), index.
41
+
42
+ ## 5. Comprendre l'usage réel
43
+ Pour les entités critiques, trouve où les données sont **créées, lues, modifiées, supprimées** : contrôleurs, services, repositories, fonctions Catalyst, jobs, requêtes brutes. Repère :
44
+ - les filtres et tris fréquents (candidats aux index) ;
45
+ - les requêtes dans des boucles (N+1) ;
46
+ - les transactions, ou leur absence ;
47
+ - les suppressions logiques ;
48
+ - les règles métier appliquées dans le code plutôt qu'en base.
49
+
50
+ ## 6. Critère d'arrêt
51
+ Tu passes au diagnostic quand **tous** ces points sont cochés :
52
+
53
+ - [ ] Base de données et couche d'accès identifiées.
54
+ - [ ] Source de vérité du schéma localisée (Catalyst : export présent dans `.kagents/docs/knowledge/catalyst-export/`, ou demandé et son absence notée).
55
+ - [ ] Toutes les entités listées avec leurs relations.
56
+ - [ ] Pour chaque entité critique (désignée par `knowledge/context.md`, sinon : utilisateurs, paiements, données personnelles, cœur métier), chemins de création, lecture, modification et suppression trouvés.
57
+ - [ ] Index et contraintes recensés.
58
+ - [ ] Chaque point non vérifiable classé **Inconnu**.
59
+
60
+ **Budget** : si après une vingtaine de fichiers lus un point reste bloqué, arrête, classe-le en Inconnu et pose la question. En mode Évolution, limite l'exploration aux entités touchées et à leurs voisines directes.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: write-change-brief
3
+ description: >-
4
+ Redige un Change Brief dans le repository projet a partir d'une Architect
5
+ Analysis. Utiliser pour L2+ ou changement L1 significatif. Template harness
6
+ templates/change-brief/template.md.
7
+ ---
8
+
9
+ # Write Change Brief
10
+
11
+ ## Quand utiliser
12
+
13
+ - **L2 ou L3** (obligatoire processus : `workflows/impact-levels.yaml`).
14
+ - **L1** si le changement touche contrat API, regles metier nouvelles, ou equipe exige trace ecrite.
15
+ - Apres **`architecture-impact`** (Architect Analysis a jour).
16
+
17
+ Ne pas confondre avec l'ADR : Change Brief = cadre du changement ; ADR = decision structurante (L3 typiquement), template `templates/adr/template.md`, statut **propose**.
18
+
19
+ ## Prerequis
20
+
21
+ - Architect Analysis complete ou sections Goal, Impact, Impact Level, Proposal, Decisions, Acceptance Criteria remplies.
22
+ - Emplacement projet choisi (convention equipe : ex. `docs/changes/YYYY-MM-DD-titre.md` ou `change-briefs/` — **dans le repo projet**, jamais dans le harness).
23
+
24
+ ## Fichiers a lire
25
+
26
+ - Harness : `templates/change-brief/template.md`, `governance/actions.yaml`
27
+ - Projet : ADR existantes pour liens croises
28
+
29
+ ## Etapes
30
+
31
+ 1. Copier la structure du **template** et adapter le titre.
32
+ 2. Renseigner metadonnees : niveau L0–L3, auteur (agent + validateur humain prevu), date.
33
+ 3. Mapper le contenu depuis l'Architect Analysis :
34
+
35
+ | Change Brief (template) | Source Analysis |
36
+ |-------------------------|-----------------|
37
+ | Besoin | Goal + Context |
38
+ | Perimetre | Goal (in/out) + Found |
39
+ | Impacts | Impact (tous axes) |
40
+ | Plan | Next Step + Proposal (phases courtes) |
41
+ | Validation | Decisions To validate ; cocher humain si L2/L3 |
42
+
43
+ 4. Ajouter dans le corps du document (sections libres si utile, rester concis) :
44
+
45
+ - Regles metier concernees
46
+ - Hors perimetre explicite
47
+ - Donnees / entites (niveau Architect, pas schema detaille)
48
+ - Dependances et regression
49
+ - Criteres d'acceptation (liste Analysis)
50
+ - Artefacts a consulter (liste Analysis)
51
+ - Risques / exceptions
52
+
53
+ 5. Toute decision nouvelle : libelle **proposition — a valider**, jamais « decide » sans ADR acceptee ou accord humain documente.
54
+ 6. L3 : mentionner brouillon ADR associe ou lien a creer.
55
+
56
+ ## Resultat attendu
57
+
58
+ - Fichier Change Brief **dans le repo projet**, pret pour revue humaine (L2 propose, L3 requis).
59
+ - **Next Step** dans l'Analysis mise a jour : ex. « Validation Change Brief », « Database Architect sur schema », « Developer apres validation ».
60
+
61
+ ## Gouvernance
62
+
63
+ Actions sensibles : `governance/actions.yaml` — l'agent **propose** le fichier ; merge / validation selon processus equipe.
@@ -0,0 +1,17 @@
1
+ # ADR-NNNN — Titre
2
+
3
+ - Statut : propose | accepte | deprecie | remplace
4
+ - Date :
5
+ - Deciders :
6
+
7
+ ## Contexte
8
+
9
+ ## Decision
10
+
11
+ ## Consequences
12
+
13
+ ### Positives
14
+
15
+ ### Negatives
16
+
17
+ ### Risques
@@ -0,0 +1,22 @@
1
+ # Change Brief — Titre
2
+
3
+ - Niveau d'impact : L0 | L1 | L2 | L3
4
+ - Auteur :
5
+ - Date :
6
+
7
+ ## Besoin
8
+
9
+ ## Perimetre
10
+
11
+ ## Impacts
12
+
13
+ - Architecture :
14
+ - Donnees :
15
+ - Securite :
16
+ - Performance / Catalyst :
17
+
18
+ ## Plan
19
+
20
+ ## Validation
21
+
22
+ - [ ] Humain (si L2/L3)
@@ -0,0 +1,10 @@
1
+ # Workflows
2
+
3
+ Chaque fichier decrit un type de travail. Croiser avec `impact-levels.yaml` pour ne pas sur-activer le pipeline.
4
+
5
+ | Fichier | Usage |
6
+ |---------|--------|
7
+ | `new-project.md` | Creation projet |
8
+ | `existing-project.md` | Onboarding / audit existant |
9
+ | `new-feature.md` | Fonctionnalite |
10
+ | `bug-local.md` | Correctif local faible impact |
@@ -0,0 +1,9 @@
1
+ # Workflow — Bug local (L0)
2
+
3
+ 1. Confirmer L0 : pas d'impact archi, schema, permissions, securite
4
+ 2. Developpement cible
5
+ 3. Tests pertinents
6
+ 4. Review legere ou pair humain
7
+ 5. CI
8
+
9
+ Si le correctif touche au schema ou au contrat API, remonter en L1 minimum.
@@ -0,0 +1,11 @@
1
+ # Workflow — Projet existant
2
+
3
+ 1. Audit repository
4
+ 2. Cartographie
5
+ 3. Architecture existante
6
+ 4. BDD existante
7
+ 5. Etat (`STATE.md`)
8
+ 6. Dette (`debt.yaml` si present)
9
+ 7. Zones protegees documentees
10
+
11
+ Ensuite enchaîner selon `impact-levels.yaml` pour chaque changement.
@@ -0,0 +1,47 @@
1
+ # Niveaux d'impact — etapes obligatoires (+) ou optionnelles (-)
2
+
3
+ levels:
4
+ L0:
5
+ label: Bug local / typo / pas d'impact archi ou BDD
6
+ workflow: bug-local.md
7
+ required:
8
+ - developer
9
+ optional:
10
+ - reviewer
11
+ human_validation: false
12
+
13
+ L1:
14
+ label: Feature localisee
15
+ workflow: new-feature.md
16
+ required:
17
+ - developer
18
+ - reviewer
19
+ optional:
20
+ - architect
21
+ human_validation: false
22
+
23
+ L2:
24
+ label: BDD, API ou transversal
25
+ workflow: new-feature.md
26
+ required:
27
+ - architect
28
+ - database-architect
29
+ - change-brief
30
+ - developer
31
+ - reviewer
32
+ - checklist_catalyst
33
+ optional: []
34
+ human_validation: propose
35
+
36
+ L3:
37
+ label: Architecture, migration destructive, permissions, securite
38
+ workflow: new-feature.md
39
+ required:
40
+ - architect
41
+ - database-architect
42
+ - adr
43
+ - change-brief
44
+ - developer
45
+ - reviewer
46
+ optional: []
47
+ human_validation: true
@@ -0,0 +1,13 @@
1
+ # Workflow — Nouvelle fonctionnalite
2
+
3
+ 1. Demande et niveau d'impact (L0–L3)
4
+ 2. Analyse (Architect si L1+)
5
+ 3. Impact architecture / BDD (L2+)
6
+ 4. Securite, performance, cout Catalyst — via checklists + standards (L2+)
7
+ 5. Plan et Change Brief (L2+)
8
+ 6. Validation humaine (L2 propose, L3 obligatoire)
9
+ 7. Developpement
10
+ 8. Tests
11
+ 9. Review
12
+ 10. CI
13
+ 11. Validation finale si L3
@@ -0,0 +1,11 @@
1
+ # Workflow — Nouveau projet
2
+
3
+ 1. Analyse besoin et perimetre
4
+ 2. Architecture (Architect) — ADR si L3
5
+ 3. Modele de donnees (Database Architect)
6
+ 4. Validation humaine
7
+ 5. Initialiser artefacts projet (`templates/project/`)
8
+ 6. Developpement
9
+ 7. Tests
10
+ 8. Review
11
+ 9. CI