1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# Managed by IssueSpec. Hand edits are welcome; keep the schema valid.
id: 2
title: "Spike : maîtriser le protocole ACP et le valider avec mm"
state: open
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
updatedAt: 2026-10-29T07:20:00.000Z
labels:
- "kind::spike"
- "area::acp"
- "priority::urgent"
- "size::M"
- "real-agents"
milestone: "Initialize"
epic: "Specifications"
body: |
## Contexte
Sidekicks est un **client ACP** (Agent Client Protocol, https://agentclientprotocol.com) : c'est ce qui le rend agnostique de l'agent (cf. [#1 — draft](.tickets/issues/0001-draft.yaml)). Tout le reste du projet repose sur notre compréhension de ce protocole.
## Pourquoi un spike en premier
- C'est le **risque technique n°1** : si on se trompe sur le modèle (sessions, streaming, permissions, commandes), on refait l'architecture.
- Le draft contient des exigences qui dépendent directement d'ACP : commandes `/` (≈ `available_commands_update`), permissions (≈ `session/request_permission`), fichiers/terminal (capacités client `fs/*` et `terminal/*`). Il faut vérifier ce que le protocole offre réellement **et ce que `mm` implémente**.
- Un SDK Go existe-t-il et est-il maintenu ? (à vérifier, ex. `github.com/coder/acp-go-sdk`). L'utiliser ou non change la charge de [#10 — Client ACP : transport stdio et handshake initialize](.tickets/issues/0010-client-acp-transport-stdio-et-handshake-initiali.yaml).
## Livrable
Un document `docs/adr/0001-acp.md` (ou équivalent) contenant :
- la liste des méthodes/notifications utilisées par Sidekicks et celles ignorées (avec la raison) ;
- le choix SDK vs implémentation maison du JSON-RPC sur stdio ;
- des traces JSON-RPC réelles capturées avec Alice (simple) et Riker (tools + permissions).
## Critères d'acceptation
- [ ] On sait répondre : une session = un channel ? un agent ? les deux ?
- [ ] On sait si `mm` supporte `session/load` (reprise de conversation, utile pour [#25 — Reprendre les conversations après redémarrage](.tickets/issues/0025-reprendre-les-conversations-apres-redemarrage.yaml)).
- [ ] On sait quelles commandes `mm` expose (skills de Garfield ?).
⚠️ Jamais plus de 2 agents lancés en même temps (voir [#7 — Outillage de test avec les agents réels (2 agents max)](.tickets/issues/0007-outillage-de-test-avec-les-agents-reels-2-agents.yaml)).
tasks:
- id: 1
title: "Lire la spec ACP : initialize, session/new, session/prompt, session/update, session/cancel"
state: open
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 2
title: "Lire la partie permissions (session/request_permission) et tool calls"
state: open
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 3
title: "Lire les capacités client fs/* et terminal/*"
state: open
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 4
title: "Lire available_commands_update (commandes slash) et session/load"
state: open
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 5
title: "Évaluer les SDK Go existants (maintenance, licence, couverture du protocole)"
state: open
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 6
title: "Capturer une trace JSON-RPC réelle avec Alice (mm -acp)"
state: open
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 7
title: "Capturer une trace avec Riker (tool call + demande de permission)"
state: open
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 8
title: "Capturer une trace avec Garfield (commandes/skills exposés)"
state: open
priority: medium
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
- id: 9
title: "Rédiger l'ADR ACP"
state: open
priority: high
author:
name: k33g
email: ph.charriere@gmail.com
createdAt: 2026-10-29T07:20:00.000Z
comments: []
|