a-provider-carries-the-contract-natively — Each agent client carries the contract through its own extension points, generated once and checked for drift
One generated Claude plugin, the edit guard wired and then refusing, a Stop-time owed report, extension provenance in doctor, bounded hooks and MCP listing, Codex hook parity where Codex offers the hook, Zed schema associations.
PLÁNOVÁNO 0 of 11 issues done
- připraveno
- 6
- blokováno
- 5
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
The Claude integration is four mechanisms installed three ways; Codex has no hook adapter; nothing checks an installed extension against what was generated; the stop of a session owes nothing. 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:c193#1, chatgpt-majordomus:c109#3, chatgpt-majordomus:c222#2.
Výsledek
One generated Claude plugin, the edit guard wired and then refusing, a Stop-time owed report, extension provenance in doctor, bounded hooks and MCP listing, Codex hook parity where Codex offers the hook, Zed schema associations.
Aktuální stav
Verified on master 707a04c: ADR 0146/0165 accepted, .claude/skills generated per domain; .claude/hooks/majordomus-edit-guard exists and case 3069 pipes payloads into it, but .claude/settings.json wires only UserPromptSubmit, SessionStart, SessionEnd and PreCompact, so Claude Code never calls it; share/mods/claude-code/{majordomus-brief,majordomus-handover} (ADR 0136); editors/{claude,zed,antigravity}.rs (ADR 0140); codex `unadapted` in share/providers.yaml.
Cílový stav
As the outcome, with every artefact stamped and drift-gated.
Rozsah
- apps/majordomus-cli/src/editors
- share/mods
- lib/capture.sh
- .claude/hooks
- share/providers.yaml
Mimo rozsah
- Patching a client
- Projecting permission modes
Kritéria přijetí
- Intent a-provider-carries-the-contract-natively criteria
Validace
- majordomus plan validate
Rizika
- Client versions move monthly; every claim cites the version verified
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3300 | BLOKOVÁNO | 1 | I3322 | Majordomus installs into Claude Code as one generated plugin carrying its skills, hooks, mods and MCP server |
| I3301 | BLOKOVÁNO | 1 | I3304 | A Claude Code session that stops with an active task is told what the task still owes |
| I3302 | BLOKOVÁNO | 2 | I3300 | An installed plugin or mod that differs from what the repository generated is a doctor finding |
| I3303 | PŘIPRAVENO | 1 | I2734 | Codex's hooks draw its episodes and refuse an edit no claim covers, as Claude Code's do |
| I3304 | PŘIPRAVENO | 0 | — | A prompt reaches the model within a declared capture budget, and no captured record is lost |
| I3307 | PŘIPRAVENO | 0 | — | The default MCP tools/list stays within a declared byte budget, and a full schema is fetched per tool |
| I3308 | PŘIPRAVENO | 0 | — | Zed validates and completes .ai files against the repository's own schemas |
| I3322 | PŘIPRAVENO | 0 | — | capture install wires the edit guard into Claude Code's PreToolUse, first in an advisory mode, and doctor reports it unwired |
| I3323 | BLOKOVÁNO | 1 | I3322 | An unclaimed edit is refused in Claude Code once no live peer edits without a claim |
| I3410 | BLOKOVÁNO | 2 | I3303, I3406 | A Codex prompt is captured through Codex's own UserPromptSubmit hook, and capture status stops calling Codex prompts unadapted |
| I3829 | PŘIPRAVENO | 0 | — | A provider declares whether its client drives a browser beside the server, and preflight says when this machine's bridge is missing |
Graf
flowchart LR
I3300["I3300<br/>Majordomus installs into Claude Code as one generated plugin carrying its skills, hooks, mods and MCP server"]:::blocked
I3301["I3301<br/>A Claude Code session that stops with an active task is told what the task still owes"]:::blocked
I3302["I3302<br/>An installed plugin or mod that differs from what the repository generated is a doctor finding"]:::blocked
I3303["I3303<br/>Codex's hooks draw its episodes and refuse an edit no claim covers, as Claude Code's do"]:::ready
I3304["I3304<br/>A prompt reaches the model within a declared capture budget, and no captured record is lost"]:::ready
I3307["I3307<br/>The default MCP tools/list stays within a declared byte budget, and a full schema is fetched per tool"]:::ready
I3308["I3308<br/>Zed validates and completes .ai files against the repository's own schemas"]:::ready
I3322["I3322<br/>capture install wires the edit guard into Claude Code's PreToolUse, first in an advisory mode, and doctor reports it unwired"]:::ready
I3323["I3323<br/>An unclaimed edit is refused in Claude Code once no live peer edits without a claim"]:::blocked
I3410["I3410<br/>A Codex prompt is captured through Codex's own UserPromptSubmit hook, and capture status stops calling Codex prompts unadapted"]:::blocked
I3829["I3829<br/>A provider declares whether its client drives a browser beside the server, and preflight says when this machine's bridge is missing"]:::ready
I3300 --> I3302
I3303 --> I3410
I3304 --> I3301
I3322 --> I3300
I3322 --> I3323
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazuje z tohoto diagramu (11)
- I3300 Majordomus installs into Claude Code as one generated plugin carrying its skills, hooks, mods and MCP server
- I3301 A Claude Code session that stops with an active task is told what the task still owes
- I3302 An installed plugin or mod that differs from what the repository generated is a doctor finding
- I3303 Codex's hooks draw its episodes and refuse an edit no claim covers, as Claude Code's do
- I3304 A prompt reaches the model within a declared capture budget, and no captured record is lost
- I3307 The default MCP tools/list stays within a declared byte budget, and a full schema is fetched per tool
- I3308 Zed validates and completes .ai files against the repository's own schemas
- I3322 capture install wires the edit guard into Claude Code's PreToolUse, first in an advisory mode, and doctor reports it unwired
- I3323 An unclaimed edit is refused in Claude Code once no live peer edits without a claim
- I3410 A Codex prompt is captured through Codex's own UserPromptSubmit hook, and capture status stops calling Codex prompts unadapted
- I3829 A provider declares whether its client drives a browser beside the server, and preflight says when this machine's bridge is missing
Canonical record: .ai/repo/project/milestones/a-provider-carries-the-contract-natively.yaml. Read it back with majordomus plan show a-provider-carries-the-contract-natively.