S.A.W. · 3.2

Guide pratique · Spec-Driven Development

Mettre SAW en pratique

De votre première idée au premier lot accepté : un guide pas à pas pour S.A.W. 3.2.

Vous pouvez confier au LLM la réalisation et la tenue des fichiers. Vous gardez la définition du besoin, les arbitrages et l’acceptation. Vous pouvez aussi appliquer le protocole entièrement à la main.

Comment lire ce guide

Suivez les étapes 1 à 10 pour un premier projet. La préparation du découpage avec un LLM est optionnelle. Consultez ensuite les situations particulières et la partie Application si votre périmètre le nécessite. Les modèles sont des exemples à adapter ; la spécification exécutable reste la référence pour l’exécution.

Étape 1

Préparer votre point de départ

Partez d’un besoin concret. Un projet SAW peut couvrir une application entière, une fonctionnalité ou un autre périmètre identifiable.

Récupérez la spécification exécutable et fournissez-la au LLM avant de lui demander de préparer les documents. La version Markdown distribuée avec SAW porte le nom SAW-3.2-SPECIFICATION-EXEC.md ; la version texte téléchargeable contient le même Markdown et peut être enregistrée sous ce nom.

  1. Choisissez un dossier accessible aux personnes et au LLM qui interviendront.
  2. Rassemblez vos spécifications, maquettes et contraintes connues. Signalez les questions ouvertes.
  3. Identifiez la personne qui décide et accepte le résultat. Aucun compte ni système de signature particulier n’est imposé.
  4. Choisissez vos outils habituels. SAW repose sur des fichiers Markdown sans imposer Git, un IDE ou un fournisseur de LLM.

Notre exemple suivi

Une petite liste de tâches personnelle : ajouter des tâches, les voir, les terminer et les retrouver à la prochaine session. Les comptes, le partage et la synchronisation sont hors périmètre.

Avant de continuer

Le besoin, le périmètre initial et la personne qui accepte sont identifiés. La réalisation n’a pas encore besoin de commencer.

Étape 2

Décrire le produit et ses contraintes

PROJECT.md décrit le produit et sa raison d’être. RULES.md contient les contraintes actives.

  1. Écrivez le problème, les utilisateurs, le périmètre et le hors périmètre.
  2. Décrivez les caractéristiques fonctionnelles stables et les termes utiles.
  3. Précisez les contraintes réelles : plateforme, architecture, stockage, sécurité, tests et conventions. N’inventez pas une contrainte pour remplir un modèle.
  4. Relisez les propositions du LLM et corrigez-les avant de les utiliser comme cadre du projet.

Les règles initiales n’exigent pas de décision au ledger. Après initialisation, leur ajout ou leur modification demande une décision humaine consignée, avec sa portée et ses conséquences.

Exemple suivi

Les données doivent rester sur l’appareil de l’utilisateur. La persistance appartient au produit final ; elle peut être réalisée dans un lot ultérieur.

À demander au LLM

À partir de mes spécifications, prépare PROJECT.md et les règles initiales de RULES.md selon SAW 3.2. Sépare le périmètre du produit des contraintes techniques. Signale tes hypothèses et les questions nécessitant ma décision. Ne commence pas la réalisation.

Avant de continuer

Le produit et ses exclusions sont compréhensibles. Les contraintes sont explicites et vérifiables.

Étape 3

Installer le cadre documentaire

Copiez à la racine documentaire la spécification exécutable de SAW 3.2, dans la langue choisie. Le README doit identifier son fichier, sa version et sa révision, avec un lien direct.

Créez les six fichiers globaux requis. Les noms normatifs restent en anglais. HISTORY.md est obligatoire dans cette version exécutable, même pour un petit projet.

my-project/
  SAW-3.2-SPECIFICATION-EXEC.md
  README.md
  PROJECT.md
  RULES.md
  STATUS.md
  LEDGER.md
  HISTORY.md
  Specs/
    001-create-list/
      SPEC-001.md
      FINDINGS-001.md
      GATES-001.md
      CONVERGENCE-001.md  ← préparé à la fermeture

README est le point d’entrée universel. STATUS fait autorité sur l’état courant. LEDGER conserve les décisions durables ; HISTORY retrace les opérations significatives. Une conversation seule ne conserve pas les règles indispensables.

Exemple suivi

Le dossier du premier lot sera Specs/001-create-list/. Sa convergence peut être absente au départ ; elle doit exister pour la fermeture.

À demander au LLM

Lis la spécification exécutable SAW 3.2 fournie. Prépare les six documents globaux requis et le protocole de lecture, à partir du cadre produit approuvé. Préserve les fichiers existants et signale les incohérences. Référence directement la copie locale de la méthode, sa version et sa révision dans README.md. N’invente aucune décision ou validation humaine et ne lance aucun lot.

Avant de continuer

Les six fichiers globaux et la référence exécutable sont présents. README permet de retrouver les règles sans mémoire de conversation.

Étape 4 · Assistance du LLM optionnelle

Découper le travail en lots

Un lot porte un objectif cohérent, un résultat identifiable et des conditions de validation. Son identifiant, par exemple LOT-001, est unique et ne sera jamais réutilisé.

  1. Listez les résultats successifs qui feront progresser le produit.
  2. Définissez l’objectif, le périmètre, les exclusions et les dépendances de chaque lot.
  3. Vérifiez que chaque résultat pourra être évalué clairement.
  4. Améliorez le découpage avant de préparer les lots reconnus. Tous les détails n’ont pas besoin d’être inventés immédiatement.

Préparer le découpage avec ou sans LLM

Fournissez les spécifications du produit et la méthode au LLM. Dans de nombreux cas, vous pouvez lui demander de proposer tout le découpage et de préparer les fichiers en brouillon. Examinez ses hypothèses, ajustez périmètres, dépendances, exigences et gates, puis validez une base de départ avant le premier lancement.

Cette préparation se situe en amont du cycle formel des lots, tout en faisant partie du parcours pratique. Les humains peuvent aussi décider entièrement du découpage et préparer tous les fichiers eux-mêmes. Le découpage validé reste évolutif selon les règles de SAW.

Exemple suivi

LOT-001 : créer et afficher les tâches. LOT-002 : terminer une tâche, dépend de LOT-001. LOT-003 : conserver les tâches entre sessions, dépend des deux premiers. Ce découpage est un exemple à adapter.

À demander au LLM

Voici les spécifications du produit et la méthode SAW 3.2. Propose un découpage complet en lots : objectifs, périmètres, dépendances et validations envisagées. Si plusieurs projets sont utiles, propose leur regroupement dans une Application. Tu peux préparer les fichiers en brouillon ; signale les hypothèses et attends ma revue avant de retenir le découpage comme base approuvée. Ne démarre aucun lot.

Avant de continuer

Le périmètre est couvert, les dépendances sont visibles et les lots permettent de préparer exigences et gates.

Étape 5

Préparer le premier lot

Créez SPEC-001.md, FINDINGS-001.md et GATES-001.md. Chaque fichier de lot commence par un renvoi au README racine.

  1. Dans SPEC, décrivez objectif et exigences identifiées, par exemple REQ-001-001. Ajoutez cas importants et dépendances.
  2. Préparez FINDINGS pour les connaissances qui apparaîtront ; n’inventez aucune découverte.
  3. Définissez les gates et leur condition de réussite avant Planned. Pour AUTO, définissez aussi la méthode déterministe de contrôle.
  4. Avec un identifiant attribué, une spec suffisamment définie et des gates définies, inscrivez le lot Planned dans STATUS et l’opération significative dans HISTORY.

Avant cela, les fichiers restent un brouillon Draft. Le lot n’occupe pas encore le créneau actif.

TypeÉvaluationExemple
AUTOContrôle déterministe, même lancé par un LLM.Tests de création et de rejet d’un titre vide.
LLMAnalyse sémantique justifiée et documentée.Respect des exigences et règles applicables.
HUMANPersonne nommée, avec horodatage.Acceptation du parcours d’usage.

Une validation métier est HUMAN, sauf décision humaine démontrant l’absence d’impact métier. Verdicts : TO TEST, PASS, FAIL et N/A. N/A exige une décision humaine au ledger, avec raison et conditions de non-applicabilité.

Exemple suivi

REQ-001-001 : un titre non vide crée une tâche visible. REQ-001-002 : un titre vide ou composé d’espaces ne crée aucune tâche et produit une explication claire.

À demander au LLM

Prépare LOT-001 selon le découpage approuvé : SPEC, FINDINGS et GATES. Définis exigences, cas importants et conditions de validation avant de proposer Planned. Garde les gates à TO TEST. Fais préciser les décisions ou informations manquantes ; ne démarre pas le lot.

Avant de continuer

Les exigences décrivent le résultat et les gates permettent de l’évaluer. Aucun PASS n’est anticipé.

Étape 6

Autoriser le démarrage et réaliser le lot

L’humain décide le démarrage. Le LLM vérifie les dépendances et le créneau actif. Si le choix entre plusieurs lots possibles est ambigu, il le fait trancher.

Lire avant toute intervention sur un lot

README → PROJECT → RULES → décisions actives de LEDGER
→ décisions obsolètes explicitement référencées → STATUS
→ SPEC → FINDINGS → GATES → CONVERGENCE si présente

Consultez HISTORY lorsque la chronologie aide la reprise ou la réconciliation. Résolvez les incohérences touchant l’intention, les validations ou l’état avant de travailler.

  1. Après autorisation et vérifications, passez à In-progress.
  2. Réalisez les exigences actives et consignez les nouvelles connaissances dans FINDINGS.
  3. Tenez à jour les informations de reprise : résultat disponible, travail restant, blocages et prochaine action.
  4. Consignez les opérations documentaires significatives dans HISTORY.

Un seul lot parmi In-progress, Blocked et Ready-to-close occupe le créneau d’un projet. Après démarrage, changer le sens d’une exigence ou d’une gate demande une décision humaine au ledger et la conservation du contenu remplacé.

Exemple suivi

Le LLM réalise l’ajout de tâches et le contrôle du titre. S’il découvre une ambiguïté, il la consigne au lieu de modifier silencieusement le besoin.

À demander au LLM

Lis README.md et suis le bootstrap obligatoire. Je t’autorise à démarrer LOT-001 si les dépendances sont satisfaites et le créneau disponible. Réalise les exigences actives et tiens à jour les documents et informations de reprise. Demande les décisions humaines réservées par SAW ; ne démarre aucun autre lot et ne ferme pas celui-ci sans mon acceptation.

Avant de continuer

Le lot est autorisé, le contexte a été lu et le créneau est disponible. Découvertes et décisions sont dans leurs fichiers respectifs.

Étape 7

Évaluer les gates sur le résultat

Identifiez le résultat examiné : livraison nommée, version de document, copie conservée ou révision de gestionnaire de versions. Un chemin vers un contenu qui change ne suffit pas, seul, à distinguer deux résultats. Git n’est pas imposé.

  1. AUTO : conservez date, résultat évalué, verdict, résultat du contrôle et preuves.
  2. LLM : conservez date, résultat évalué, évaluateur et justification concise ; identifiez le modèle lorsqu’il est disponible.
  3. HUMAN : faites réellement examiner le résultat par la personne. PASS exige son nom et un horodatage ; le LLM ne peut pas l’accorder.
  4. Après un échec, corrigez et réévaluez. Avant toute nouvelle évaluation ou remise à zéro, préservez l’ancien verdict et ses détails dans Test history.

Une correction peut invalider un PASS

Documentez l’examen d’impact après une modification susceptible d’affecter une validation. Remettez les gates affectées à TO TEST après conservation des résultats antérieurs. Si l’impact est indéterminable, réévaluez toutes les gates actives sauf les N/A encore applicables. Justifiez les PASS maintenus après examen. Une validation HUMAN affectée doit être refaite par un humain.

Exemple suivi

La livraison task-list-review-01 est évaluée par les trois gates. Corriger le message de titre vide impose d’examiner l’impact sur les tests et le parcours déjà validés.

À demander au LLM

Évalue les gates AUTO et LLM de LOT-001 sur un résultat identifié. Préserve les évaluations précédentes et documente preuves et justifications. Présente-moi les contrôles HUMAN sans leur attribuer de PASS. Signale échecs et validations devenues invalides.

Avant de continuer

Chaque gate active applicable a un PASS valable ou un N/A autorisé encore applicable. FAIL et TO TEST empêchent la fermeture.

Étape 8

Préparer, accepter et fermer le lot

La fermeture compare l’intention et le résultat réel. Des tests réussis ne suffisent pas.

  1. Vérifiez la validité des gates actives et les conditions des N/A. Refusez la fermeture si une gate reste FAIL ou TO TEST.
  2. Examinez chaque exigence active : satisfaction ou écart précis à faire accepter. Vérifiez remplacements et obsolètes pertinents.
  3. Traitez chaque finding : résolution locale expliquée, promotion, report dans un lot au moins Planned ou rejet motivé. Aucun OPEN ne doit rester à la fermeture.
  4. Préparez CONVERGENCE : résultat identifié, écarts, gates essentielles, traitement des findings et travail résiduel.
  5. Obtenez et consignez les décisions humaines requises, appliquez leurs conséquences et réexaminez les validations affectées.
  6. Vérifiez l’absence de cause de refus et passez à Ready-to-close si nécessaire.
  7. Présentez résultat et convergence à l’humain pour acceptation explicite.
  8. Finalisez convergence et mises à jour approuvées, contrôlez leur cohérence, puis inscrivez Closed dans STATUS en dernier parmi les documents de contenu et d’état. Consignez ensuite l’opération dans HISTORY.

TOTAL signifie que toutes les exigences actives sont satisfaites. PARTIAL signifie qu’au moins un écart a été accepté par décision humaine au ledger. Un écart accepté ne neutralise jamais une gate FAIL ou TO TEST. Une fermeture totale ordinaire n’exige pas d’entrée au ledger ; l’acceptation humaine reste obligatoire.

Exemple suivi

L’humain examine la liste livrée, les validations et le traitement des findings. Son acceptation porte sur ce résultat identifié et les écarts réellement présentés.

À demander au LLM

Je te demande de préparer la fermeture de LOT-001 selon SAW. Vérifie gates, exigences, findings, décisions et cohérence documentaire. Prépare la convergence et présente le résultat identifié, les écarts et les décisions nécessaires. Attends mon acceptation avant de finaliser la fermeture et de passer STATUS à Closed.

Avant de continuer

Toutes les exigences sont examinées, les findings traités, les gates valables et les décisions présentes. La convergence rapporte une acceptation réelle.

Étape 9

Reprendre sans dépendre de la conversation

Avant une interruption ou une transmission, préparez les documents pour la reprise :

  • Le résultat disponible et son emplacement, ou son absence.
  • Le travail restant connu.
  • Les blocages et leurs conditions de levée.
  • La prochaine action ou décision attendue.

STATUS donne un résumé courant ou des références : causes dans FINDINGS, validations dans GATES, intention dans SPEC. Une transmission autonome inclut la spécification exécutable et les documents du bootstrap.

Si une opération documentaire a été interrompue, comparez les fichiers à la décision enregistrée. Achevez les écritures manquantes si elle règle clairement la suite, sans redemander une acceptation déjà documentée. Si une décision nécessaire manque ou reste ambiguë, demandez une clarification avant le travail dépendant. Préservez les traces et consignez la réconciliation dans HISTORY.

Exemple suivi

Une nouvelle conversation doit retrouver que LOT-001 est In-progress, où se trouve sa réalisation et quelles gates restent à tester, sans relire l’ancien chat.

À demander au LLM

Lis README.md et reconstruis le contexte selon le bootstrap. Compare STATUS et les fichiers du lot, consulte les informations de reprise et HISTORY si utile. Signale les incohérences et réconcilie les écritures interrompues selon les décisions enregistrées. Reprends le travail autorisé ; demande seulement les décisions nécessaires encore absentes ou ambiguës.

Avant de continuer

Les fichiers suffisent à déterminer l’état, le résultat et la prochaine action. Aucun fait historique n’est inventé.

Étape 10

Passer au lot suivant

Après fermeture, répétez le cycle pour le prochain lot planifié. Vérifiez ses dépendances, actualisez sa préparation avec les connaissances acquises et faites autoriser le démarrage.

Planned → In-progress → Ready-to-close → Closed

Les lots décidés depuis les findings doivent être préparés et référencés. Une évolution du périmètre ne doit pas effacer les documents précédents ; les identifiants retirés ne sont pas réutilisés.

Exemple suivi

LOT-001 fermé, l’humain peut autoriser LOT-002 pour terminer les tâches. LOT-003 conservera ensuite titres et états entre sessions.

À demander au LLM

Lis README.md et propose le prochain lot Planned dont les dépendances sont satisfaites. Explique tout choix ambigu et les ajustements de préparation nécessaires. Attends mon choix et mon autorisation avant le démarrage.

Avant de continuer

Le lot précédent est fermé, le créneau libre et les dépendances satisfaites. Le démarrage du suivant est autorisé par l’humain.

Quand le parcours change

Donner un traitement final à un finding

Une découverte commence généralement à OPEN. Pour la traiter, utilisez RESOLVED LOCALLY (résolution locale expliquée), PROMOTED TO LEDGER (décision durable), PROMOTED TO RULE (règle approuvée), DEFERRED TO LOT (travail confié à un autre lot) ou DISCARDED (rejet motivé). Indiquez les destinations et leurs références réelles. Plusieurs traitements terminaux peuvent se combiner pour plusieurs destinations ; OPEN ne se combine pas avec eux, et DISCARDED ne se combine pas avec une promotion. Créer un lot depuis un finding exige une décision humaine ; le lot destinataire doit être au moins Planned à la fermeture du lot source.

Le lot est bloqué

Consignez cause, conditions de levée et prochaine action, puis passez à Blocked. Le créneau reste occupé : aucun autre lot du même projet ne démarre. Revenez à In-progress quand les conditions sont satisfaites et les décisions nécessaires obtenues.

Le besoin ou une règle change

Après démarrage, un changement de sens de SPEC ou GATES exige une décision humaine au ledger. Une évolution de RULES après initialisation en exige aussi une, avec portée et conséquences pour les lots concernés. Préservez les textes remplacés comme obsolètes, reliez les remplacements et examinez les gates affectées. Une nouvelle règle ne rouvre pas automatiquement un lot fermé.

Un sous-lot devient utile

Un sous-lot isole un objectif avec ses fichiers, par exemple LOT-001-001 dans Specs/001-create-list/001-001-input-validation/. Le parent reste LOT-001. L’humain autorise le démarrage ; le parent passe d’abord de In-progress à Stand-by, puis le sous-lot devient seul In-progress. Après fermeture, annulation ou remplacement du sous-lot, le retour au parent est décidé par l’humain après examen de l’impact sur son travail et ses validations.

Arrêter ou remplacer un lot

Cancelled : arrêt avant fermeture sans remplacement. Obsolete : lot remplacé. Abandoned : résultat précédemment fermé, puis écarté sans remplacement. Ces décisions sont humaines et consignées au ledger. Préservez fichiers, références et convergences existantes. Annuler ou remplacer ne doit pas contourner une gate ni simuler une fermeture.

Modifier un lot déjà fermé

La reprise exige une décision humaine préalable au ledger et un créneau disponible. Conservez l’ancienne convergence dans Historical convergences, les évaluations dans Test history ; remettez toutes les gates actives applicables à TO TEST et réexaminez les N/A. Enregistrez ensuite In-progress avant de modifier. Revalidez et obtenez une nouvelle fermeture humaine. Pour Obsolete, résolvez aussi le sort du remplaçant.

Utilisation avancée

Organiser une Application avec plusieurs projets

Pour un ensemble plus important, une Application regroupe plusieurs projets SAW. Elle porte la coordination et les règles communes au-dessus des projets ; elle ne possède pas de lots.

À partir des spécifications et de la méthode, vous pouvez demander au LLM de proposer cette organisation, puis faire revoir responsabilités, dépendances et découpage par les humains.

task-application/
  README.md  PROJECT.md  RULES.md  LEDGER.md  STATUS.md
  user-interface/  ← projet SAW et ses lots
  task-service/    ← projet SAW et ses lots
  integration/     ← projet SAW pour le résultat transversal
  1. Définissez le périmètre de l’Application et inventoriez exhaustivement les projets, leur racine documentaire et leurs responsabilités.
  2. Créez son README, PROJECT, RULES, LEDGER et STATUS. Son README référence directement la méthode exécutable applicable. Chaque projet conserve ses six fichiers globaux et sa référence locale.
  3. Chaque projet fait lire le README de l’Application puis son README local. Son RULES demande d’appliquer les règles globales sans les recopier. Ses SPEC renvoient aux deux README.
  4. Découpez chaque projet en lots et définissez les dépendances entre projets. Nommez les projets dans les références interprojets : les identifiants sont uniques localement.
  5. Pour avancer en parallèle, obtenez avant l’exécution une décision d’une autorité architecturale identifiée dans le LEDGER de l’Application.

Le contrat de parallélisme

Il définit pour chaque projet : périmètre et responsabilités, dépendances et interfaces, ressources ou fichiers partagés, propriétaire de chaque zone modifiable, justification de l’indépendance, coordination et résolution des conflits. Si des écritures partagées sont nécessaires, définissez leur mécanisme de coordination avant les travaux.

Chaque projet garde un seul lot actif. Le blocage d’un projet ne bloque pas automatiquement les autres : examinez leurs dépendances. Le STATUS d’Application est une vue de coordination datée ou indiquant son origine ; le STATUS de chaque projet reste l’autorité pour ses lots.

Exemple

Un projet réalise l’interface, un autre le service de tâches. Leurs interfaces et zones de modification sont définies avant la progression simultanée. Le projet d’intégration possède ses lots, gates et convergences pour accepter le parcours complet. La validation transversale est gouvernée par ce projet, pas par un lot d’Application.

Aide-mémoire, consignes et modèles

Checklist du cycle

  • Cadre produit, règles et référence exécutable explicites.
  • Six documents globaux présents, dont HISTORY.
  • SPEC, FINDINGS et GATES préparés ; gates définies avant Planned.
  • Démarrage autorisé ; un seul lot dans le créneau actif.
  • Découvertes, décisions et informations de reprise conservées.
  • PASS valables ou N/A humains encore applicables.
  • Chaque exigence et chaque finding examinés et traités.
  • Résultat identifié et écarts présentés acceptés par l’humain.
  • Convergence et mises à jour finalisées avant Closed dans STATUS.

Quelle information va dans quel fichier ?

FichierQuestion traitée
READMEComment travailler et où lire les règles ?
PROJECTQuel produit, pour qui et dans quel périmètre ?
RULESQuelles contraintes actives ?
STATUSQuel état courant et quelle prochaine action ?
LEDGERQuelles décisions durables, par qui et pourquoi ?
HISTORYQuelles opérations documentaires significatives ?
SPECQuel résultat le lot doit-il produire ?
FINDINGSQuelles connaissances acquises et quel traitement ?
GATESQuelles validations, sur quel résultat ?
CONVERGENCEQuel résultat accepté et quels écarts ?

Modèles à copier et à adapter

Les modèles utilisent des titres anglais comme les fichiers normatifs. Adaptez leur contenu au projet et à ses conventions. Remplacez les champs entre chevrons par des informations réelles et retirez les indications pédagogiques. Ces exemples ne constituent pas une validation.

Le modèle STATUS suppose une SPEC et des GATES complètes : ne le copiez comme Planned qu’après cette préparation. La méthode exacte d’une gate AUTO doit être définie avant Planned. La convergence se remplit avec les constats et décisions réellement obtenus.

README.md
# S.A.W. project protocol
## Purpose of this file
Universal entry point for this project.
## Protocol reference
This project follows S.A.W. 3.2, revision 3.2.0-2026-09-27:
[local executable specification](SAW-3.2-SPECIFICATION-EXEC.md).
HISTORY.md is required and uses dated, append-only entries.
## Mandatory bootstrap
Read README, PROJECT, RULES, all active LEDGER decisions, explicitly
referenced obsolete decisions, STATUS, then SPEC, FINDINGS, GATES,
and CONVERGENCE if present, in that order.
Consult HISTORY when chronology helps resumption or reconciliation.
## Starting a lot
Check dependencies and the active slot. Obtain human authorization.
Resolve ambiguous choices with the human. Update STATUS and HISTORY.
## Working on a lot
Implement active requirements. Record knowledge in FINDINGS.
Keep resumption information current. Follow the executable specification.
## Validating a lot
Evaluate active gates on an identifiable result. Preserve previous evaluations.
Only a named human can grant HUMAN PASS, with a timestamp.
## Closing a lot
Follow the executable specification's closure procedure. Review every
requirement and finding, prepare convergence, obtain human acceptance,
finalize approved documents, then record Closed in STATUS last among
content/state documents. Record the operation in HISTORY afterward.
## Mutation rules
Preserve obsolete content and replacement references. Never reuse identifiers.
Meaning changes after starting require a human LEDGER decision.
Review affected validations after relevant changes.
## Human-only decisions
Significant product changes; rule evolution; meaning changes after starting;
HUMAN verdicts; N/A; accepted differences; lots created from findings;
closure; cancellation; replacement; abandonment; reopening; reactivation.
PROJECT.md
# Project
## Purpose
Provide a small task list for personal use.
## Problem
Users need to retain tasks and see which remain unfinished.
## Users and actors
One user; a human project owner accepting the result.
## Scope
Create, list and complete tasks; retain tasks between sessions.
## Out of scope
Accounts, sharing, cloud synchronization and notifications.
## Stable functional characteristics
A task has a title and a completion state.
## Glossary
Task: an item of work entered by the user.
RULES.md
## R-001 — Local storage
Status: ACTIVE
Source: Initial project rule
Rule: Keep task data on the user's device; do not send it to a server.
Replaces: None
Replaced by: None

## R-002 — Timestamp format
Status: ACTIVE
Source: Initial project rule
Rule: Use YYYY-MM-DDTHH:mm:ss±HH:mm for documentary timestamps.
Replaces: None
Replaced by: None
STATUS.md
# Lot status
| Lot reference | Parent | Title | Status | Replaced by | Comment |
|---|---|---|---|---|---|
| LOT-001 | None | Create and list tasks | Planned | None | Spec and gates defined; awaiting human start. |

## Resumption — LOT-001
Available result: planning files in Specs/001-create-list/; no implementation.
Remaining work: implement and validate the lot.
Blockers: none known.
Next action: human authorizes starting LOT-001.
LEDGER.md
# Decision ledger

No durable decision has been recorded yet.

<!-- For a real approved decision, replace this comment with:
## D-001 — <Decision title>
Date: <actual timestamp>
Decided by: <human name>
Decision: <approved decision>
Reason: <reason>
Source: <finding identifier or None>
Related: <affected identifiers>
Consequences: <scope and required actions>
Do not record a proposed decision as approved.
-->
HISTORY.md
# Project history

<!-- After actual initialization, append a real entry:
## <actual timestamp> — Project initialized
Actor: <person or LLM performing the operation>
Operation: Created project documents and planned LOT-001.
Documents: README.md, PROJECT.md, RULES.md, STATUS.md, LEDGER.md,
HISTORY.md, Specs/001-create-list/
Outcome: Applied
Summary: LOT-001 awaits human start; no implementation has started.
Do not invent historical dates, actors or operations.
-->
SPEC-001.md
# LOT-001 — Create and list tasks
> Before working on this lot, read the repository root README.md.
## Objective
Let a user create tasks and see the current list.
## Context
First lot of the personal task-list project.
## In scope
Title entry, task creation and current-session list display.
## Out of scope
Completion state and persistence, assigned to later planned lots.
## Requirements
### REQ-001-001 — Create a task
A non-empty title creates exactly one task visible in the current list.
### REQ-001-002 — Reject an empty title
An empty or whitespace-only title creates no task and shows a clear explanation.
## Important cases
Empty title; whitespace-only title; successive additions; initially empty list.
## Dependencies
None.
## Known constraints
Apply every active RULES.md rule.
FINDINGS-001.md
# Findings — LOT-001
> Before working on this lot, read the repository root README.md.

No finding has been recorded yet.

<!-- For a real finding, replace this comment with:
## F-001-001 — <Finding title>
Status: OPEN
Found at: <actual timestamp>
Finding: <observed knowledge>
Destinations: <identified destination, e.g. Local>
Evidence: <evidence if useful>
Impact: <impact if useful>
Before closure, explain final treatment and assign a consistent terminal status.
-->
GATES-001.md
# Gates — LOT-001
> Before working on this lot, read the repository root README.md.

## G-001-001 — Creation and empty-title tests
Type: AUTO
Status: TO TEST
Defined at: <actual timestamp>
Condition: Automated tests for REQ-001-001 and REQ-001-002 pass.
Method: <exact test command and pass criterion, defined before Planned>

## G-001-002 — Requirement and rule consistency
Type: LLM
Status: TO TEST
Defined at: <actual timestamp>
Condition: Implementation satisfies REQ-001-001 and REQ-001-002
and applicable active rules without an unexplained discrepancy.

## G-001-003 — User journey acceptance
Type: HUMAN
Status: TO TEST
Defined at: <actual timestamp>
Condition: The human confirms that adding tasks, reading the list and
understanding the empty-title explanation meet the intended use.

<!-- Record actual evaluations with these type-specific fields:
AUTO: Tested at, Evaluated result, Result, Evidence.
LLM: Evaluated at, Evaluated result, Evaluator, Rationale (model if available).
HUMAN: Validated at, Validated by, Evaluated result, Comment.
Preserve previous verdicts and evaluation details in Test history
before every new evaluation or reset. Do not assume PASS.
-->
CONVERGENCE-001.md
# Convergence — LOT-001
> Before working on this lot, read the repository root README.md.
Closed at: <complete after actual acceptance>
Closed by: <human accepting closure>
Decision: <required ledger decision, or None for ordinary total closure>
Convergence: <TOTAL or PARTIAL based on the actual result>
## Result obtained
<Identify the accepted result and relate it to results evaluated in GATES.>
## Differences from active requirements
<For every active requirement, state satisfaction or the precise accepted
difference and its human ledger decision. Do not assume satisfaction.>
## Essential gate results
<Summarize valid PASS verdicts and authorized, still-applicable N/A.>
## Findings disposition
<Explain final treatment of each finding and reference its destinations.>
## Residual work
<Reference decided/planned future lots or state that none remains.>
## Closure decision
<Record actual human acceptance of the identified result and differences.>
## Historical convergences
<Preserve previous convergences here when reopening under the method.>

Référence : Spécification exécutable 3.2 · Spécification normative complète.

Questions fréquentes

1. SAW convient-il à un petit projet ?

Oui. Le projet peut couvrir une petite fonctionnalité. Gardez des documents courts et proportionnés, mais respectez toutes les obligations applicables, dont les six fichiers globaux de la version exécutable.

2. Faut-il obligatoirement utiliser une IA ?

Non. Les humains peuvent appliquer SAW avec les fichiers Markdown seuls. Un LLM peut réaliser le produit et gérer les documents ; il doit respecter les décisions réservées à l’humain.

3. Faut-il un outil, un IDE ou Git particulier ?

Non. Aucun outil propre à SAW, IDE, gestionnaire de versions ou fournisseur de LLM n’est imposé. Choisissez les outils utiles. Une gate AUTO peut utiliser une commande de test ou de build.

4. Peut-on appliquer SAW à un logiciel existant ?

Oui. Définissez le périmètre, documentez les contraintes et l’existant utiles à sa compréhension, puis préparez les lots d’évolution. Ne prétendez pas que les travaux antérieurs ont suivi SAW si leurs traces ne l’établissent pas.

5. Peut-on demander au LLM de préparer tout le découpage ?

Oui, dans de nombreux cas. Fournissez spécifications du produit et méthode, demandez une proposition de projets et de lots avec dépendances, puis revoyez hypothèses et documents avant de lancer l’exécution. Cette assistance est optionnelle.

6. Peut-on préparer tous les fichiers sans LLM ?

Oui. Les humains peuvent décider du découpage, écrire les documents globaux et préparer SPEC, FINDINGS et GATES. Ils peuvent ensuite travailler manuellement ou déléguer l’exécution à un LLM.

7. Comment choisir la taille d’un lot ?

Choisissez un objectif cohérent, un résultat identifiable et des conditions de validation claires. Découpez si le périmètre mélange des objectifs indépendants ou devient difficile à examiner. SAW ne fixe pas de durée ni de nombre de fichiers par lot.

8. Quelle différence entre Application, projet et lot ?

L’Application coordonne plusieurs projets et ne possède pas de lots. Le projet est une unité de pilotage documentaire avec ses fichiers et son état. Le lot porte un objectif de réalisation à l’intérieur d’un projet.

9. Peut-on travailler sur plusieurs lots en parallèle ?

Un seul lot occupe le créneau actif d’un projet. Plusieurs projets d’une Application peuvent progresser simultanément avec un contrat de parallélisme approuvé définissant responsabilités, interfaces et ressources partagées.

10. Quelle différence entre SPEC, FINDINGS et LEDGER ?

SPEC décrit l’intention du lot. FINDINGS conserve les connaissances acquises. LEDGER consigne les décisions durables et leurs raisons. Une découverte ne modifie pas automatiquement une exigence ou une règle.

11. Qui choisit les gates et quand ?

Elles se préparent avec le lot, à la main ou avec un LLM, avant Planned. Elles décrivent les conditions de fermeture. Une validation métier est HUMAN, sauf décision humaine démontrant l’absence d’impact métier. Après démarrage, un changement de sens demande une décision au ledger.

12. Le LLM peut-il valider une gate HUMAN ou fermer seul un lot ?

Non. PASS HUMAN exige un nom et un horodatage humains. Le LLM peut préparer contrôles et convergence, puis finaliser les documents après l’acceptation humaine réelle.

13. Que faire si une gate échoue ou si le résultat change après validation ?

Corrigez, préservez les évaluations précédentes et réévaluez. Après un changement, consignez l’examen d’impact et remettez les gates affectées à TO TEST. Si elles deviennent FAIL ou TO TEST pendant Ready-to-close, revenez à In-progress avant de poursuivre.

14. Que faire si le besoin change ou si le lot est bloqué ?

Faites décider les changements d’intention, consignez-les et examinez leurs effets. Pour un blocage, documentez cause et conditions de levée, puis inscrivez Blocked. Aucun autre lot du même projet ne démarre pendant le blocage.

15. Comment reprendre après une interruption ou avec un autre LLM ?

Repartez du README et suivez le bootstrap. Les fichiers décrivent résultat disponible, travail restant, blocages et prochaine action. Incluez la spécification exécutable dans une transmission autonome et réconciliez les écritures interrompues sans inventer de faits.

Retour au sommaire