bots-garden/sidekickspublic Fork
⑂ specifications
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
specifications are defined eb9186a · on specifications · k33g · 4d ago
0002-spike-maitriser-le-protocole-acp-et-le-valider-a.yaml · 112 lines · 4.4 KBYAML Blame HistoryRaw
  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: []