I3402 — The /intent alias follows the skill an unsuccessful answer names instead of stopping at it or retrying with altered text
Change the generated command-alias text in apps/majordomus-cli/src/editors/claude.rs for a capability that changes something. When an unsuccessful answer names majordomus://skill/<id>, the alias reads that skill with majordomus skills show <id> or the MCP resource majordomus://skill/<id> and follows it with the same text. Any other refusal, or an unknown outcome, is reported as it is, keeping the pinned phrase 'do not try again by another way'. The alias never calls the capability again with shortened or rewritten text. Regenerate .claude/skills/intent/SKILL.md and document the rule in docs/EDITORS.md.
BLOKOVÁNO vlna 2 · p1 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3400, I3401 are done. The status is derived from that, not declared.
Cíl
Change the generated command-alias text in apps/majordomus-cli/src/editors/claude.rs for a capability that changes something. When an unsuccessful answer names majordomus://skill/<id>, the alias reads that skill with majordomus skills show <id> or the MCP resource majordomus://skill/<id> and follows it with the same text. Any other refusal, or an unknown outcome, is reported as it is, keeping the pinned phrase 'do not try again by another way'. The alias never calls the capability again with shortened or rewritten text. Regenerate .claude/skills/intent/SKILL.md and document the rule in docs/EDITORS.md.
Proč
The owner's 2026-10-19 order asks that a paste lead on to its decomposition, not only to a refusal. Under T6 of the owner's report of 2026-10-19, a new user who pastes through /intent must reach a verified intent without knowing which skill runs next. Today's alias forbids trying again another way, so a refused paste would end the turn. The change is generic for every writing alias and names no capability. majordomus skills explain answers tests and invocations, not the body (capability/builtin/skills.rs:142), so the alias names skills show.
Aktuální stav
apps/majordomus-cli/src/editors/claude.rs:79-81 writes 'if the call is refused or its outcome is not known, report that as it is and do not try again by another way'; 86-94 pass the text 'whole and verbatim'. The unit test at claude.rs:330-342 and case 2980:57 pin 'do not try again by another way'. lib/skills.sh:29 implements skills show, which prints the file as written. docs/EDITORS.md:41-50 documents the alias, and site/content/docs/editors.md is its generated projection.
Cílový stav
A refused paste typed after /intent continues into decompose-a-brief with the same text in the same turn, and every other refusal behaves as today.
Rozsah
- apps/majordomus-cli/src/editors/claude.rs
- .claude/skills/intent/SKILL.md
- apps/majordomus-cli/tests/editors.rs
- test/cases/2980_a_capability_is_invoked_by_name_from_claude_code.sh
- docs/EDITORS.md
- site/content/docs/editors.md
Mimo rozsah
- disable-model-invocation, which stays true for a writer
- A per-capability special case in the generator
- The generic domain-skill text and the mj-* projections (I3405)
- Packaging the alias as a plugin (I3300)
Závislosti
- I3400READY The decompose-a-brief skill exists, is invoked by the plan workflow, and is named by both skill tests, so skills verify holds it as a capability
- I3401BLOCKED intents.propose writes no record for a multi-paragraph, Markdown or over-length statement and answers invalid_input, naming the canonical digest and the skill that decomposes it
Co na tom čeká
Kritéria přijetí
- Precondition: majordomus intent preflight for this issue passes from a branch of master that holds I3400 and I3401
- The generated alias of a capability that changes something contains the sentence that sends an unsuccessful answer naming majordomus://skill/<id> to that skill through majordomus skills show <id> or majordomus://skill/<id> with the same text, and the sentence that forbids calling the capability again with shortened or rewritten text. A read-only alias's text is unchanged
- The phrase 'do not try again by another way' stays, now for a refusal naming no skill, so claude.rs's unit test and case 2980:57 keep passing
- A unit test in editors/claude.rs and case 2980 assert both new sentences in the generated .claude/skills/intent/SKILL.md
- The first call still passes the text whole and verbatim
- docs/EDITORS.md states the rule, and majordomus generate --check is clean
Validace
- cargo test -p majordomus-cli --lib editors::claude
- cargo test -p majordomus-cli --test editors
- bash test/run.sh 2980_a_capability_is_invoked_by_name_from_claude_code
- majordomus generate --check
Požadované důkazy
- test_the_alias_follows_the_skill_a_refusal_names
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/I3402.yaml. Read it back with majordomus plan show I3402.