Plan: executable AURoscope v1 implementation sequence #18
No reviewers
Labels
No labels
Agent/Autonomous OK
Agent/Demeter
Agent/Hermes
Agent/Human
Agent/Needs Review
Area/API
Area/Auth
Area/CLI
Area/Data
Area/Docs
Area/Infra
Area/UI
CI/Failing
CI/Flaky
CI/Green
CI/Needs Runner
CI/Needs Workflow
Compat/Backward Compatible
Compat/Breaking
Compat/Migration
Deploy/Ansible
Deploy/Blocked
Deploy/Homelab
Deploy/Needs Config
Deploy/Needs Secret
Deploy/Ready
Deploy/Rollback
Kind/Bug
Kind/Chore
Kind/Design
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Spike
Kind/Testing
Ops/Backup
Ops/Incident
Ops/Maintenance
Ops/Monitoring
Ops/Upgrade
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Someday
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Risk
Critical
Risk
High
Risk
Low
Risk
Medium
Security/Auth
Security/Disclosure
Security/Hardening
Security/Secret
Size
L
Size
M
Size
S
Size
XL
Size
XS
Stack/Ansible
Stack/Docker
Stack/Forgejo
Stack/Hermes
Stack/Node
Stack/Postgres
Stack/Python
Stack/Systemd
Status
Abandoned
Status
Blocked
Status
In Progress
Status
In Review
Status
Need More Info
Status
Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
2027a/auroscope!18
Loading…
Reference in a new issue
No description provided.
Delete branch "execution/issue-17-initial-implementation-plan"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
implementation/v1, one draft PR, a stable worktree, and a concise restart status file.Scope
Documentation only. This PR closes planning issue #17 but does not authorize production implementation. Implementation starts only after this PR is merged and Mathieu explicitly launches the separate implementation loop.
Verification
npx --yes markdownlint-cli2@0.19.0 docs/implementation/initial-plan.md— one real file linted, 0 errors; MD013 is intentionally disabled in-file, all other enabled rules remain active;git diff --check— clean;6c86e714e384aa0fee9d2ff6be21d5495affc558is signed by Hephaistos;Risks and stop gates
Review guidance
Review Milestone 0's fail-closed feasibility gate first, then the exact human-authority/approval invariants in milestones 1–2, the official-upgrade-first sequencing in Milestone 3, and the disposable-host guard in Milestone 6. Also review the one-branch serial Kanban policy for restartability and collision avoidance.
Closes #17
Revue critique — angle simplification
Verdict proposé : modifications avant approbation. Les ADR ont déjà éliminé plusieurs mauvaises directions (framework CLI, PTY systématique, resolver maison, event sourcing). Mon problème principal est maintenant le plan d’exécution : il transforme ces décisions en 19 chantiers horizontaux et reporte trop tard les preuves qui peuvent invalider l’ensemble.
1. [Bloquant] Prouver le contrat d’exécution avant de construire autour
Le plan reconnaît lui-même que la fermeture réellement exécutée par Paru n’est pas encore prouvée (
initial-plan.md:21,349-357,398-406). Pourtant cette inconnue ne devient un gate qu’aux slices 10/12, après le bootstrap, la configuration, le process runner, les adaptateurs, SQLite, l’acquisition, le scanner, le LLM et la revue.C’est le mauvais ordre de risque : si le run d’exécution ne peut pas être borné par le plan approuvé avec une surface Paru supportée, une partie importante de l’orchestration doit être redessinée.
Simplification demandée : faire de cette preuve un spike exécutable initial, juste après le bootstrap et le minimum d’adaptateur Paru, dans Arch jetable. Le spike doit prouver sélection/planification, re-résolution, visibilité de la fermeture réellement exécutée et timing du hook. Échec = issue
MODE: DECISIONavant toute architecture applicative supplémentaire.2. [Important] Ne pas mettre le LLM sur le chemin critique du premier flux vertical
La slice 08 est un blocage préalable à la présentation, à la décision humaine, à la planification et au guard (
286-357, graphe546-554). Or le backenddisabledest déjà un état v1 accepté : la revue et les rapports doivent donc fonctionner sans assessment LLM.Simplification demandée : livrer d’abord un flux vertical déterministe
classification → plan → acquisition → scan → présentation → décision → guard → exécutionpour un-SAUR explicite, puis ajouter le LLM comme enrichissement. Cela ne retire pas le LLM de v1; cela évite qu’un adaptateur HTTP/Codex, sa persistance et sa validation bloquent la preuve du cœur produit.3. [Important] Retirer la réutilisation d’artefacts de v1 tant que sa surface n’est pas prouvée
Le plan dit que la réutilisation reste désactivée sans preuve (
22), mais lui réserve quand même une migration,internal/approval/artifact.go, une matrice de mutation/réutilisation, des scénarios d’intégration et un critère global (384-406,483,606). C’est une branche spéculative coûteuse autour d’une capacité possiblement indisponible.Simplification demandée : v1 force toujours le rebuild et ne réutilise aucun paquet préconstruit. Conserver seulement l’enregistrement d’outcome réellement nécessaire à
status/explain. Si une surface post-build exacte est prouvée plus tard, l’ajouter dans une feature séparée; si les textes acceptés sont interprétés comme exigeant cette capacité en v1, ouvrir d’abord un petit amendement de décision au lieu d’implémenter un demi-système conditionnel.4. [Important] Garder les 19 slices comme checklist TDD, pas comme topologie de 19 issues/PR
28-41impose une issue, une branche et une PR par slice;473-491ajoute ensuite une slice d’intégration générale alors que chaque slice annonce déjà ses tests et le baseline cumulatif. Le résultat annoncé est 19 PR sérielles et 91 directives de création de fichiers avant même le premier retour d’usage. C’est beaucoup de coût de coordination et une intégration réelle trop tardive.Simplification demandée : conserver les petites slices RED/GREEN comme étapes internes, mais les regrouper en 6–8 PR de capacité cohérentes. Chaque PR doit fermer un comportement observable et porter ses scénarios d’intégration. Supprimer la slice 16 comme phase de “rattrapage” : ses scénarios vont dans les PR qui livrent le comportement; la slice 18 reste l’unique gate E2E jetable final.
Un découpage plus maigre serait :
5. [Suggestion] Faire croître config et maintenance avec leurs consommateurs
La slice 02 crée d’un coup
[policy],[scanner],[llm],[retention],[compatibility], etc. avant ces features (148-168). La slice 05 ajoute backup/restore,quick_checket locking opérationnel dès la première migration (215-238), puis la slice 15 revient sur récupération et maintenance (450-471).Simplification demandée :
quick_checkde démarrage et maintenance dans la slice récupération/rétention.Cela applique à la configuration et aux opérations le même principe “instrumental, pas générique” déjà accepté pour le schéma SQLite.
6. [Suggestion] Alléger les preuves de processus et les écritures non autoritatives
Deux exigences ajoutent du bruit sans renforcer le contrat produit :
35,45-50demandent de conserver une trace RED/GREEN/REFACTOR par commits ou dans chaque description de PR. Garder le TDD comme méthode, mais exiger surtout des commits verts et les preuves finales; ne conserver un échec RED que lorsqu’il documente une régression ou une découverte de contrat externe.326-328demandentfsync, rename et synchronisation du répertoire pour des rapports que la spécification déclare reconstructibles et non autoritatifs. Un fichier temporaire privé, fermé puis renommé atomiquement suffit; la durabilité forte appartient à SQLite et aux migrations/backups.Même principe pour CI : tests ciblés et race tests pertinents sur chaque PR; suite race complète aux checkpoints et à la release, plutôt que
go test -race ./...après chaque micro-slice.Conclusion
Je ne demande pas de remettre en cause les 14 ADR. Je demande que le plan soit réordonné autour de preuves de faisabilité précoces et de tranches verticales, et qu’il supprime deux coûts non nécessaires au premier v1 : la réutilisation d’artefacts et la correspondance 1 slice = 1 PR. En l’état, le plan est très complet, mais sa complétude augmente le coût avant d’avoir prouvé le chemin critique.
Plan définitif réécrit dans l’optique allégée demandée.
implementation/v1, une draft PR et une chaîne Kanban sérielle et reprenable;/goalcompact inclus pour lancer la boucle depuis une nouvelle session.Commit signé :
7400e1e996b9256501cb1a699f976d3c1e376c78. Les remarques de la revue #1294 sont intégrées.Audit final intégré après la réécriture allégée. Corrections principales :
Commit signé :
1d4bdc7bb631ce2c2d96191219d25678bafe10eb.Plan: initial AURoscope v1 implementation sequenceto Plan: executable AURoscope v1 implementation sequencePR bloquée par la remise à plat demandée par Mathieu.
Le plan actuel reste trop éloigné du produit : l’audit LLM doit être le cœur, pas une option autour d’un moteur de règles et d’un protocole transactionnel. La nouvelle architecture minimale est proposée dans #19 : #19
Ne pas fusionner cette PR. Après acceptation de #19, la spécification et les ADR seront simplifiés, puis ce plan sera remplacé par une séquence courte centrée sur le spike Paru, l’audit Codex CLI, la décision par paquet et l’exécution finale.
PR fermée sans fusion. Son plan repose sur l’architecture scanner/LLM optionnel désormais supersédée par la décision #19 et ADR-0015.
La finalisation minimale est dans PR #20; le nouveau spike et plan seront suivis par #21. Cette PR reste comme historique uniquement.
hephaistos referenced this pull request2026-08-31 03:06:00 +00:00
Pull request closed