I3254 — A proposal names the existing intents and issues it duplicates or overlaps, and is merged into one rather than added beside it
intents.propose and draft_check compare a new statement and its drafted issues with existing intents and issues (the brief of I3251) and return each likely duplicate with the shared terms; the proposal is refused as a duplicate unless the caller names the existing intent to amend or confirms novelty.
BLOKOVÁNO vlna 1 · p2 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3251 is done. The status is derived from that, not declared.
Cíl
intents.propose and draft_check compare a new statement and its drafted issues with existing intents and issues (the brief of I3251) and return each likely duplicate with the shared terms; the proposal is refused as a duplicate unless the caller names the existing intent to amend or confirms novelty.
Proč
The owner repeated the same demands for weeks: the conversations promoted on 2026-10-18 restated single themes in many conversations; 2026-10-12 asked that a conversation not turn one sentence into one issue. Proposed in ADR 0191 (A plan drafted from an intent is a proposal, checked by the plan's own validators before any record is written) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c122#1, chatgpt-majordomus:c239#7, chatgpt-majordomus:c270#4, chatgpt-majordomus:c294#2.
Aktuální stav
ProposeError has Invalid, Exists (same id) and Write; a different id with the same meaning is accepted.
Cílový stav
Duplicate detection reuses the object search and the brief; no similarity model is required.
Rozsah
- apps/majordomus-cli/src/intent.rs
- apps/majordomus-cli/src/capability/builtin/intents.rs
- apps/majordomus-cli/src/capability/builtin/objects.rs
- apps/majordomus-cli/src/intent_plan.rs
- apps/majordomus-cli/src/commands/intent.rs
- apps/majordomus-cli/tests/intent.rs
Závislosti
Co na tom čeká
Kritéria přijetí
- A proposal restating an existing intent's statement with a new id is refused naming it
- Confirming novelty records the reason in the proposal
Validace
- majordomus plan validate
- majordomus intent validate
Požadované důkazy
- test_a_proposal_names_its_duplicates
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/I3254.yaml. Read it back with majordomus plan show I3254.