Files
msd-core/.changeset/2505-3-agent-skills-fallback.md
Tom Boucher 936a345381 feat(#2505): Phase 3 — agent-skills fallback for non-dispatchable runtimes (#2521)
* feat(#2454): PR 2 — cmdAgentSkills fallback reads installed agent prompt

When no agent_skills config entry exists for a given agent type (the common
case on AGENTS-native runtimes), cmdAgentSkills previously returned empty
output. Workflows that inject ${AGENT_SKILLS_*} into subagent dispatch
prompts then carried nothing — the persona was lost.

The fallback: resolve the runtime's agents directory via checkAgentsInstalled
and read <agentsDir>/<agentType>.md. The installed agent prompt content
(now present for kimi-code via the flat-skills install layout) flows into
the dispatch prompt so the persona survives even without explicit config
opt-in. This is the reporter's suggested fix #2 from #2454.

The fallback triggers for ALL runtimes (not just kimi-code) when no config
entry exists — it is strictly additive (returns content the previous empty
path could not). If the agent file is not found on disk, the block stays
empty (same as before).

* docs(changeset): Phase 3 agent-skills fallback Added (#2510)

* docs(changeset): backfill PR #2521 for Phase 3 (#2510)
2026-07-22 01:25:41 -04:00

945 B

type, pr
type pr
Added 2521

gsd-tools query agent-skills <name> returns the installed agent's prompt content on non-Claude runtimes — previously, when a non-Claude runtime (kimi, kimi-code, opencode, kilo, etc.) had no explicit agent_skills config entry, buildAgentSkillsBlock returned empty and the ${AGENT_SKILLS_*} workflow injection carried no persona. Phase 3 adds a fallback in cmdAgentSkills: on non-Claude runtimes, when the configured block is empty, resolve the runtime's agents directory via checkAgentsInstalled(runtime) and read <agentsDir>/<agentType>.md as the block. Gated to runtime !== 'claude' (Claude supports named dispatch and its ${AGENT_SKILLS_*} contract is a skills-injection path, not a persona fallback). (#2510)