Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion docs/conventions/invocation-mode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,21 @@ Consequences: any skill another skill chains to MUST be `false` (this is the rub
cross-skill-reach axis), and no skill body may instruct model invocation of a `true` target —
the audit-side trigger that guards this lives in the SSOT strand.

## Cross-skill invocation phrasing

When a skill body chains to another skill, name the mechanism explicitly — "invoke
`/plugin:skill` via the Skill tool" (or an equivalent that names the Skill tool) — never bare
`/name` prose, which reads as a suggestion to a human rather than an instruction the model
reliably executes. Scope: this binds NEW and EDITED skill text; the existing fleet is mixed
(many skills already use the explicit form, others chain bare — e.g. the knowledge pipeline
handoffs), and normalizing the existing operative chains is the filed sweep
[#3002](https://github.com/melodic-software/claude-code-plugins/issues/3002) (adopted
2026-08-18, lane 6 of the AI Hero course vetting — `docs/upstream/aihero-course.md`). Upstream
basis, named
provenance: mattpocock/skills standardized the same rule in `.agents/invocation.md` (upstream
PRs #878 and #880) on his measured claim — his repo's measurement, not re-verified here — that
explicit Skill-tool phrasing has a higher cross-skill hit rate than bare `/name` prose.

## Splitting by invocation

When one skill serves both an autonomous-reach audience and a manual-timing audience, split it so
Expand Down Expand Up @@ -123,4 +138,5 @@ in-lane.
(enforcement, filed as #2968).
- `playbooks:skill-authoring`: authoring-time pointer here (filed as #2968).
- Steering-lane provenance and lesson decision rows:
`docs/upstream/aihero-steering-lanes.md` (lane 8).
`docs/upstream/aihero-course.md` (lane 8 section; the interim steering record dissolved into
it at harvest).
9 changes: 5 additions & 4 deletions docs/specs/invocation-mode-doctrine-brief.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
Lane 8 of the AI Hero course steering chain
([#2910](https://github.com/melodic-software/claude-code-plugins/issues/2910); chain contract:
`docs/topics/pocock-course-lanes/PLAN.md` on branch `claude/plan-mode-discussion-55kszx`, steering
addendum `docs/upstream/aihero-steering-lanes.md`). Interview ledger:
rows now in `docs/upstream/aihero-course.md` — the interim steering record dissolved into it at
the lane 6 harvest). Interview ledger:
`.work/invocation-mode-doctrine/interview-checklist.md` (8/8 answered, register gate clean).

## Brief
Expand Down Expand Up @@ -32,9 +33,9 @@ question-bounded per ADR 0005.
- ADR 0005 binds the re-grade: rubric-first, question-bounded — never an unbounded 211-skill
sweep. The bounding question is fixed by Q7 (below); the 137 default-conformant skills get no
sweep.
- Decision rows accumulate in `docs/upstream/aihero-steering-lanes.md`; lane 6 (#2904)
harvests them into `docs/upstream/aihero-course.md` later — that file must not be created on
this branch.
- Decision rows accumulated in the interim `docs/upstream/aihero-steering-lanes.md`; lane 6
(#2904) harvested them into `docs/upstream/aihero-course.md` (2026-08-18), which is now the
durable record.
- Cross-skill invocation *phrasing* stays lane 6's candidate (#2904); this lane owns invocation
*doctrine* only.

Expand Down
Loading