diff --git a/.ideai/memory/MEMORY.md b/.ideai/memory/MEMORY.md index 7d6be9f9..b2a34e2a 100644 --- a/.ideai/memory/MEMORY.md +++ b/.ideai/memory/MEMORY.md @@ -87,3 +87,4 @@ - [plugin-hot-reload-agent-facing-delivered](plugin-hot-reload-agent-facing-delivered.md) — memory note plugin-hot-reload-agent-facing-delivered - [plugin-soft-refresh-and-agent-install-tools-delivered](plugin-soft-refresh-and-agent-install-tools-delivered.md) — memory note plugin-soft-refresh-and-agent-install-tools-delivered - [cross-project-ask-drop-cleans-live-state](cross-project-ask-drop-cleans-live-state.md) — memory note cross-project-ask-drop-cleans-live-state +- [project-plugin-skills-multi-harness-contract](project-plugin-skills-multi-harness-contract.md) — memory note project-plugin-skills-multi-harness-contract diff --git a/.ideai/memory/project-plugin-skills-multi-harness-contract.md b/.ideai/memory/project-plugin-skills-multi-harness-contract.md new file mode 100644 index 00000000..43b04c85 --- /dev/null +++ b/.ideai/memory/project-plugin-skills-multi-harness-contract.md @@ -0,0 +1,25 @@ +--- +name: project-plugin-skills-multi-harness-contract +description: memory note project-plugin-skills-multi-harness-contract +metadata: + type: project +--- +# Skills et tools de plugins par projet — contrat multi-harness + +Ticket #282 livré sur `develop` le 2026-09-08. + +Contrat produit retenu : + +1. Un plugin IdeA est installé globalement dans IdeA. +2. Le projet active explicitement les plugins qu'il veut utiliser via les settings projet. +3. Chaque agent reçoit explicitement les skills et tools MCP du plugin qui lui sont attribués. + +Les skills de plugin sont déclarés dans `idea-plugin.json` via `contributes.skills` avec `id`, `name`, `description`, `kind` (`workflow` par défaut ou `reference`) et `path` package-relative vers un Markdown `.md`. + +Ce contrat est IdeA-native et multi-harness : il ne dépend pas de `.codex-plugin/plugin.json`, de `$CODEX_HOME`, ni d'une découverte propre à Codex. IdeA résout les plugins activés et les assignments agent, injecte les affordances de skills dans le contexte de l'agent, et sert le corps via `idea_skill_read` pour les harness compatibles IdeA (Claude Code, Codex, OpenCode local/cloud). + +Persistance projet : `.ideai/project-plugins.json` version 1. Elle contient l'activation des plugins et les assignments `{pluginId, skillId}` / `{pluginId, serverId, toolName}` par agent. Les tombstones sont conservés pour uninstall/reinstall temporaire. + +SDK : `sdk/IdeaSDK` commit `6eb8db3` expose/valide `IdeAPluginSkillContribution` et documente la séparation entre skills IdeA-native et `.codex-plugin` Codex. + +Réserve connue : pour les tools MCP de plugin, `toolName` reste saisi librement tant qu'un catalogue dynamique des tools n'est pas disponible côté UI/runtime. \ No newline at end of file diff --git a/.ideai/tickets/283/carnet.md b/.ideai/tickets/283/carnet.md new file mode 100644 index 00000000..7e2456b3 --- /dev/null +++ b/.ideai/tickets/283/carnet.md @@ -0,0 +1,6 @@ +--- +issueRef: "#283" +version: 1 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1788877456900 +--- diff --git a/.ideai/tickets/283/issue.md b/.ideai/tickets/283/issue.md new file mode 100644 index 00000000..e221f9ef --- /dev/null +++ b/.ideai/tickets/283/issue.md @@ -0,0 +1,17 @@ +--- +id: "d8d03bd5-acbe-41c7-b8b3-64f6b4b4c5e9" +number: 283 +title: "Documenter l'assignation des skills plugin aux agents" +status: "inProgress" +priority: "medium" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1788877456900 +updatedAt: 1788877456900 +version: 1 +--- +La doc SDK explique contributes.skills et la visibilité des skills plugin, mais ne documente pas encore le schéma exact de .ideai/project-plugins.json ni la procédure d'assignation agent. Demande venue du projet UnityPlugin après plugin reload OK mais agents sans skills assignés. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index e158d6b7..db594665 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 283 + "nextNumber": 284 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 9feed30f..fc57eb71 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -3861,6 +3861,20 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1788875629546 + }, + { + "issueRef": "#283", + "path": "283", + "title": "Documenter l'assignation des skills plugin aux agents", + "status": "inProgress", + "priority": "medium", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1788877456900 } ] } \ No newline at end of file diff --git a/sdk/IdeaSDK b/sdk/IdeaSDK index 6eb8db37..7db819c6 160000 --- a/sdk/IdeaSDK +++ b/sdk/IdeaSDK @@ -1 +1 @@ -Subproject commit 6eb8db3791b4377dd0ede89410fc540835c5d4d1 +Subproject commit 7db819c64720baae1b38cd48060fd97bca5b2dd8