I3300 — Majordomus installs into Claude Code as one generated plugin carrying its skills, hooks, mods and MCP server
Generate one plugin bundle from the registry (the skills editors/claude.rs projects, the capture and edit-guard hooks, the two mods under share/mods/claude-code, the MCP server entry), stamped with its source digest and the Claude Code version it was verified against, replacing hand-assembled pieces.
BLOKOVÁNO vlna 1 · p2 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3322 is done. The status is derived from that, not declared.
Cíl
Generate one plugin bundle from the registry (the skills editors/claude.rs projects, the capture and edit-guard hooks, the two mods under share/mods/claude-code, the MCP server entry), stamped with its source digest and the Claude Code version it was verified against, replacing hand-assembled pieces.
Proč
Today the Claude integration is four mechanisms installed three ways (.claude/skills by generate, .claude/hooks by capture install, mods copied into .claude/skills, .mcp.json); an adopter cannot install or update it as one thing, and the owner asked for zero-config Claude integration. Critique 2026-10-18: the install mechanism that loads a project plugin with no configuration by the person is unverified, and a plugin installed beside the hand-assembled pieces would capture every prompt twice and connect two MCP servers. The edit-guard wiring and its rollout, which the critique also put here, are split into I3322 and I3323 (one worker, one issue, one pull request); this issue packages the guard once it is wired. Proposed in ADR 0214 (A provider's native extension points carry the contract as generated projections; Majordomus neither embeds nor patches the worker's runtime) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c174#18, chatgpt-majordomus:c194#3, chatgpt-majordomus:c236#4, chatgpt-majordomus:c261#7, chatgpt-majordomus:c048#5, chatgpt-majordomus:c048#6.
Aktuální stav
share/mods/claude-code/{majordomus-brief,majordomus-handover} each carry .claude-plugin; editors/claude.rs is verified against Claude Code 2.1 by a constant, not by detection.
Cílový stav
majordomus generate writes one plugin; generate --check fails on drift; the detected client version is recorded.
Rozsah
- apps/majordomus-cli/src/editors/claude.rs
- share/mods/claude-code
- apps/majordomus-cli/src/generate.rs
- lib/capture.sh
- lib/doctor.sh
- .mcp.json
- share/providers.yaml
- docs/EDITORS.md
Mimo rozsah
- A marketplace
- Personal settings or permission modes
- Hosting or operating a marketplace (ADR 0214); a repo-local marketplace manifest that is generated and drift-gated is a projection, not a marketplace
- Wiring the edit guard into .claude/settings.json and its rollout to refusal (I3322, I3323)
Závislosti
Co na tom čeká
Kritéria přijetí
- Before any generation, share/providers.yaml records the Claude Code mechanism that loads a project plugin without the person configuring anything, with dated vendor evidence and the detected client version, which replaces the hard-coded VERIFIED_AGAINST constant; if no such mechanism exists, the work stops and the criterion is reworded
- The plugin is generated deterministically from the registry
- Installing it yields working skills, hooks and MCP in a fixture
- A hand edit to a generated file fails the drift gate
- Once the plugin is installed, capture install removes its own settings.json hooks, its .claude/skills mod copies and any duplicate majordomus MCP entry; doctor reports double wiring; and a fixture yields exactly one capture record and one episode per event
- Proof is split into a CI-runnable structural case on the generated plugin and provider configuration, and an opt-in end-to-end case (gated like case 2980) run against a dated Claude Code version; both carry case numbers taken from scripts/case-numbers and announced on the board
- docs/EDITORS.md documents the plugin, its install mechanism and the client version it was verified against
Validace
- majordomus generate --check
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test editors
Požadované důkazy
- case_the_claude_code_plugin_is_generated
- case_the_plugin_loads_in_claude_code_opt_in
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3300.yaml. Read it back with majordomus plan show I3300.