[Decision D5] Valider l’architecture Go et la gestion des processus #6
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
2027a/auroscope#6
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
MODE: DECISION
Statut
Proposé. Réponse puis go explicite requis avant clôture.
Question
Quelle architecture Go minimale doit porter le CLI passthrough, les subprocessus et les signaux sans framework spéculatif ?
Option recommandée
Un seul exécutable avec packages internes explicites :
cli,config,process,paru,recipe,scanner,llm,review,store,approval,report. Les interfaces ne sont introduites qu’aux frontières non déterministes réellement testées : horloge/aléa, processus, transport modèle, transaction store.Processus
Alternatives
Framework CLI
Plus de génération d’aide, mais risque de casser la compatibilité Paru et de normaliser les arguments inconnus.
PTY partout
Terminal très fidèle, mais multiplexe UI et données et rend la capture fragile.
Microservices/plugin framework
Aucun besoin actuel; complexité refusée.
Recommandation
Architecture monobinaire explicite, stdlib processus, aucune dépendance PTY tant qu’un test ne la justifie pas.
Risques/preuves attendues
Réponse attendue
Accepte/amende/rejette. Je n’établis pas l’ADR et ne ferme pas avant ton go.
Documentation
Protocole automatique de décision
GO DECISIONn’autorise ni code de production ni plan d’implémentation; ce travail doit avoir son propre ticketMODE: EXECUTION.Accepté, go
Ticket classé comme décision humaine. La discussion continue ici, mais aucune implémentation ni ADR accepté ne sera produit tant que Mathieu n’aura pas publié exactement
GO DECISIONdans un commentaire distinct.Merci. Je prends « Accepté, go » comme un avis favorable dans la discussion, mais pas comme l’acceptation formelle de la décision : le watcher ne reconnaît que le commentaire distinct et exact
GO DECISION.Ma recommandation actuelle reste donc : un monobinaire Go, des packages
internalexplicites, et la stdlib pour les processus. Le CLI ne classifie que notre grammaire minimale puis transmet l’argvbrut à Paru; aucun shell implicite; stdin/stdout/stderr hérités par défaut; pour la sélection Paru, stderr reste au terminal et stdout est capturé; groupes de processus et propagation explicite de SIGINT/SIGTERM/SIGHUP; attente du fils avant cleanup/invalidation.Comparaison :
Je recommande donc de garder ces trois options hors du socle initial et de n’introduire une interface qu’aux frontières non déterministes testées (processus, transport modèle, transaction store, horloge/aléa). Aucun ADR ni code de production n’est lancé dans cette discussion. Si cette proposition te convient telle quelle, publie un commentaire séparé contenant exactement
GO DECISION.GO DECISION
Convention de finalisation concurrente : utilise le numéro du ticket comme numéro ADR sur quatre chiffres (
#N→NNNN-*.md). Ne choisis pas « le prochain numéro libre » et ne renumérote aucun ADR; cette règle évite les collisions entre décisions validées en parallèle.Décision D5 consignée et vérifiée, sans code de production ni plan d’implémentation.
070f33837c5eb7b79cc60645b768a5ed727bcf78Vérifications :
git diff --check, signature SSH valide pourhephaistos@ecl.400iso.net, branche distante relue, PR #15 relue etmergeable: true. Le choix reste borné au monobinaire Go, aux packages internes explicites, à la stdlib pour argv/processus/signaux, sans framework CLI ni dépendance PTY initiale.Réconciliation demandée par la revue effectuée et vérifiée.
design/technical-contractsen préservant les décisions D1, D2, D4, D5, D6 et D7;149fc72b7b2cc3d19080b398469db158555865a8;Vérifications relancées :
git diff --check, signature SSH valide pourhephaistos@ecl.400iso.net, branche distante identique au commit local, aucun commit de la base manquant (5 0pour tête…base), PR #15 relue avecmergeable: true. Aucun code de production ni plan d’implémentation n’a été ajouté.Mise à jour de la preuve après réconciliation avec la branche de design courante (ce commentaire remplace l’état distant cité dans #issuecomment-1176).
b15570e9661804b05c5bbbd01fb36861c3ddcabcVérifications relues après le push : branche D5 à zéro commit derrière
design/technical-contracts(55af3339b69a9da0ccbabca978553ed2203f113a), PR ouverte avecmergeable: trueetmerge_baseégal à la base courante, diff limité àdocs/architecture/design-proposals.mdetdocs/decisions/0006-go-process-architecture.md, signature SSH valide pourhephaistos@ecl.400iso.net. Aucun code de production ni plan d’implémentation.Vérification finale de review après la dernière avancée concurrente de la branche de design. Cette preuve remplace les états distants précédents.
b755f988df0b9217d3c7e57f0ae3e3462d2fa17dReadback de review : branche D5 à zéro commit derrière
design/technical-contracts(6fe245c6487de4607768cad134708912966721f4), PR ouverte etmergeable: true,merge_baseégal à la base courante, diff D5 limité au registre de design et à ADR-0006, signature SSH valide pourhephaistos@ecl.400iso.net. Aucun code de production ni plan d’implémentation.Preuve finale après intégration de la dernière avancée concurrente du design; elle remplace les preuves précédentes.
09c069b1180e9307704e1f8a257c6a9e6f765ed7Readback : zéro commit derrière
design/technical-contracts(ac66a71a3af8fccb611f4783ce6164726383a8ed), PR ouverte etmergeable: true,merge_baseégal à la base courante, signature SSH valide pourhephaistos@ecl.400iso.net. Aucun code de production ni plan d’implémentation.Preuve finale après intégration de la base de design courante; elle remplace les preuves précédentes.
036305f45746a3422678b80fbe307a2c667ec546Readback : zéro commit derrière
design/technical-contracts(d7aa6c43a3b389904a9c9cffda420cc0fd4f7cad), PR ouverte etmergeable: true,merge_baseégal àbase.sha, diff D5 limité au registre de design et à ADR-0006, signature SSH valide pourhephaistos@ecl.400iso.net. Les décisions acceptées concurrentes, notamment D8 et D12, sont préservées. Aucun code de production ni plan d’implémentation.Preuve finale après intégration de la base de design courante; elle remplace les preuves distantes précédentes.
036305f45746a3422678b80fbe307a2c667ec546Readback : branche D5 à zéro commit derrière
design/technical-contracts(d7aa6c43a3b389904a9c9cffda420cc0fd4f7cad), PR ouverte avecmergeable: trueetmerge_base == base.shasur cette base exacte, diff limité au registre de design et à ADR-0006, toutes les signatures SSH D5 valides pourhephaistos@ecl.400iso.net. Aucun code de production ni plan d’implémentation.