Summary
skills/gnhf/SKILL.md hard-codes the --agent roster in two places. The roster is already maintained in two other places (gnhf --help and the README Agents table), so the skill is a third copy that has to be updated by hand every time an agent is added or its spec changes.
It has already drifted.
Evidence
Checked against gnhf@0.1.41.
gnhf --help:
--agent <agent> Agent to use (claude, codex, rovodev, opencode,
copilot, pi, or acp:<target-or-command>)
README Agents table:
| ACP target | `--agent acp:<target-or-command>` | ... |
skills/gnhf/SKILL.md, Launch section:
gnhf \
--agent <claude|codex|rovodev|opencode|copilot|pi|acp:<target>> \
and the Agent section:
- `acp:<target>`: explicit ACP target request, or when the user wants to drive a custom ACP-compatible agent through GNHF.
The skill says acp:<target>; --help and the README both say acp:<target-or-command>. An agent reading only the skill will not learn that a quoted custom ACP server command is accepted, which is exactly the capability #110 added.
This is the predictable failure mode of a third hand-maintained copy, not a one-off typo.
Proposed change
Have the skill point at the two surfaces that are already authoritative, and tell the reading agent not to hard-code the roster.
In Launch, make the placeholder generic:
In the Agent section, replace the enumerated list with a pointer plus the selection heuristics that are genuinely skill-level advice:
The supported `--agent` roster comes from `gnhf --help`; the [Agents table](https://github.com/kunchenguid/gnhf#agents) in the README owns per-agent requirements. Do not hard-code the roster.
- Default to the agent the user explicitly requested, or the one already configured and authenticated locally.
- `codex`: repo-aware code work or review-heavy tasks.
- `claude`: reasoning-heavy implementation or prose-heavy planning when configured.
- `acp:<target>`: when the user wants to drive a custom ACP-compatible agent through GNHF.
This keeps the part of that section that is actual routing judgement (which agent suits which kind of task) and drops the part that is a duplicated inventory. The skill's own Launch section already instructs the agent to run gnhf --help before relying on flags, so the pointer is consistent with how the skill already tells agents to behave.
Why I am filing this
We run this skill downstream and made exactly this edit locally. Carrying a permanently diverging copy of your skill is the outcome I would rather avoid, so I would prefer the change live here. Happy to open a PR if you want it as one; filing as an issue first in case you would rather solve the duplication a different way, for example generating the roster line at build time from the same source as --help.
Context: the skill was added in #98, and the acp:<target-or-command> spec came from #110.
Summary
skills/gnhf/SKILL.mdhard-codes the--agentroster in two places. The roster is already maintained in two other places (gnhf --helpand the README Agents table), so the skill is a third copy that has to be updated by hand every time an agent is added or its spec changes.It has already drifted.
Evidence
Checked against
gnhf@0.1.41.gnhf --help:README Agents table:
skills/gnhf/SKILL.md, Launch section:and the Agent section:
The skill says
acp:<target>;--helpand the README both sayacp:<target-or-command>. An agent reading only the skill will not learn that a quoted custom ACP server command is accepted, which is exactly the capability #110 added.This is the predictable failure mode of a third hand-maintained copy, not a one-off typo.
Proposed change
Have the skill point at the two surfaces that are already authoritative, and tell the reading agent not to hard-code the roster.
In Launch, make the placeholder generic:
In the Agent section, replace the enumerated list with a pointer plus the selection heuristics that are genuinely skill-level advice:
This keeps the part of that section that is actual routing judgement (which agent suits which kind of task) and drops the part that is a duplicated inventory. The skill's own Launch section already instructs the agent to run
gnhf --helpbefore relying on flags, so the pointer is consistent with how the skill already tells agents to behave.Why I am filing this
We run this skill downstream and made exactly this edit locally. Carrying a permanently diverging copy of your skill is the outcome I would rather avoid, so I would prefer the change live here. Happy to open a PR if you want it as one; filing as an issue first in case you would rather solve the duplication a different way, for example generating the roster line at build time from the same source as
--help.Context: the skill was added in #98, and the
acp:<target-or-command>spec came from #110.