I3405 — Every generated model-invocable domain skill follows the skill an unsuccessful answer names, so the MCP path does not end at a refused paste
Put the rule I3402 gives the alias into the generic domain-skill text at apps/majordomus-cli/src/editors/claude.rs:179: an unsuccessful answer of a capability that changes something, when it names majordomus://skill/<id>, is followed by reading that skill (majordomus skills show <id> or majordomus://skill/<id>) with the same text; the capability is never called again with altered text; any other refusal is reported as it is. Reuse the sentence I3402 introduced rather than writing it twice, regenerate the 58 .claude/skills/mj-*/SKILL.md projections and extend docs/EDITORS.md.
BLOCKED wave 3 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I3402 is done. The status is derived from that, not declared.
Objective
Put the rule I3402 gives the alias into the generic domain-skill text at apps/majordomus-cli/src/editors/claude.rs:179: an unsuccessful answer of a capability that changes something, when it names majordomus://skill/<id>, is followed by reading that skill (majordomus skills show <id> or majordomus://skill/<id>) with the same text; the capability is never called again with altered text; any other refusal is reported as it is. Reuse the sentence I3402 introduced rather than writing it twice, regenerate the 58 .claude/skills/mj-*/SKILL.md projections and extend docs/EDITORS.md.
Why
The owner's 2026-10-19 order covers every path a paste can take. Under T6 of the owner's report of 2026-10-19 a new user does not pick the alias; a model reaches majordomus_intent_propose through the model-invocable mj-intents skill, and that text today ends the turn at the refusal. Split from I3402 so the change to 58 generated files is reviewed alone; it depends on I3402 because both edit claude.rs, case 2980 and docs/EDITORS.md.
Current state
apps/majordomus-cli/src/editors/claude.rs:179-181 says a capability that changes something is called once 'and if it is refused or its outcome is not known, report that as it is and do not try again by another way'. That sentence is line 26 of .claude/skills/mj-intents/SKILL.md and appears in all 58 tracked .claude/skills/mj-*/SKILL.md files (git ls-files '.claude/skills/mj-*/SKILL.md' | wc -l). No .agents/skills/mj-* projection exists.
Desired state
An agent that reaches intents.propose through a domain skill and is refused for a paste continues into decompose-a-brief with the same text, and every other refusal behaves as today.
Scope
- apps/majordomus-cli/src/editors/claude.rs
- 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
- .claude/skills/mj-artifacts/SKILL.md
- .claude/skills/mj-brief/SKILL.md
- .claude/skills/mj-capabilities/SKILL.md
- .claude/skills/mj-commands/SKILL.md
- .claude/skills/mj-commit/SKILL.md
- .claude/skills/mj-continuity/SKILL.md
- .claude/skills/mj-convergence/SKILL.md
- .claude/skills/mj-dashboard/SKILL.md
- .claude/skills/mj-delivery/SKILL.md
- .claude/skills/mj-deploy/SKILL.md
- .claude/skills/mj-design/SKILL.md
- .claude/skills/mj-devcontext/SKILL.md
- .claude/skills/mj-devtask/SKILL.md
- .claude/skills/mj-directories/SKILL.md
- .claude/skills/mj-distribution/SKILL.md
- .claude/skills/mj-economics/SKILL.md
- .claude/skills/mj-editors/SKILL.md
- .claude/skills/mj-entity/SKILL.md
- .claude/skills/mj-environment/SKILL.md
- .claude/skills/mj-episodes/SKILL.md
- .claude/skills/mj-evidence/SKILL.md
- .claude/skills/mj-executions/SKILL.md
- .claude/skills/mj-gates/SKILL.md
- .claude/skills/mj-graph/SKILL.md
- .claude/skills/mj-guard/SKILL.md
- .claude/skills/mj-health/SKILL.md
- .claude/skills/mj-integration/SKILL.md
- .claude/skills/mj-intent-realization/SKILL.md
- .claude/skills/mj-intents/SKILL.md
- .claude/skills/mj-knowledge-base/SKILL.md
- .claude/skills/mj-lifecycle/SKILL.md
- .claude/skills/mj-mcp/SKILL.md
- .claude/skills/mj-mesh/SKILL.md
- .claude/skills/mj-models/SKILL.md
- .claude/skills/mj-monitor/SKILL.md
- .claude/skills/mj-objects/SKILL.md
- .claude/skills/mj-obligations/SKILL.md
- .claude/skills/mj-observatory/SKILL.md
- .claude/skills/mj-pack/SKILL.md
- .claude/skills/mj-peers/SKILL.md
- .claude/skills/mj-perf/SKILL.md
- .claude/skills/mj-plan/SKILL.md
- .claude/skills/mj-product/SKILL.md
- .claude/skills/mj-quality/SKILL.md
- .claude/skills/mj-reasoning/SKILL.md
- .claude/skills/mj-recover/SKILL.md
- .claude/skills/mj-release/SKILL.md
- .claude/skills/mj-repository/SKILL.md
- .claude/skills/mj-rules/SKILL.md
- .claude/skills/mj-served/SKILL.md
- .claude/skills/mj-server/SKILL.md
- .claude/skills/mj-session-domain/SKILL.md
- .claude/skills/mj-shell/SKILL.md
- .claude/skills/mj-skills/SKILL.md
- .claude/skills/mj-trace/SKILL.md
- .claude/skills/mj-web/SKILL.md
- .claude/skills/mj-why/SKILL.md
- .claude/skills/mj-worktree/SKILL.md
Out of scope
- The /intent alias text (I3402)
- Making any writer model-invocable, or changing which capabilities a domain skill lists
- Workflow skill pointers under .claude/skills/<workflow-skill>
- Packaging the skills as a plugin (I3300)
Dependencies
Acceptance criteria
- Precondition: majordomus intent preflight for this issue passes from a branch of master that holds I3402
- Each of the 58 generated .claude/skills/mj-*/SKILL.md files carries the follow-the-named-skill sentence and the no-altered-retry sentence; a unit test in editors/claude.rs asserts both in the generated mj-intents text, and case 2980 asserts them in .claude/skills/mj-intents/SKILL.md
- The sentence text exists once in claude.rs and is shared by the alias and the domain text
- The phrase 'do not try again by another way' stays for a refusal naming no skill
- docs/EDITORS.md states that the domain skills follow the same rule, and majordomus generate --check is clean
Validation
- 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
Evidence required
- test_the_domain_skills_follow_the_skill_a_refusal_names
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3405.yaml. Read it back with majordomus plan show I3405.