fix(skills): four description boundary clauses route to targets that do not exist #100
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while measuring the preload tax for ADR-0020. Four skills route users to targets that cannot resolve. ADR-0020 adds a deterministic resolvable-target check that will fail on all four, but the defects are live now and are worth fixing independently of the retrofit.
skill-audit→/skill-improve— no such skill exists underplugins/*/.apm/skills/. The capability lives inskill-author, whose own description explicitly covers "improve this skill" and "apply these audit findings". Appears twice in the description (handoff clause and boundary clause) and again atplugins/kyberforge/.apm/skills/skill-audit/README.md:10.research→neuledge-context— the string "use neuledge-context" names a skill that exists nowhere in the repo.agent-author— "Do not use for read-only review — examine agent files manually or run a grill session". This routes away fromagent-audit, which is the correct sibling and exists. Actively wrong, not merely wasteful.gitea-issues— the description contains the literal stringgitea-labels- milestones(stray space). Introduced by YAML folded-scalar wrapping mid-token, so the skill name is broken in preloaded text.Reference:
docs/adr/0020-skill-description-and-body-context-contract.md(committed on branchrefactor/trim-skills-agents-context).One of the four is fixed on
refactor/trim-skills-agents-context, as a forced consequence rather than a deliberate scope grab: the new resolvable-target check FAILs on an unresolvable routing target, soskill-auditcould not pass its own gate while pointing at/skill-improve.Fixed:
skill-audit→/skill-improve. Both occurrences in the description and the Step 4 handoff line now point atskill-author.README.md:10updated too.tests/test-skill-size-check.shcarries a SKIP branch asserting the name no longer appears.Still open — all three now detected automatically by the resolvable-target check in
scripts/skill-size-check.shandskill-audit/scripts/validate.sh:research→neuledge-context(no such skill anywhere in the repo)agent-author→ the misroute is fixed on this branch as part of its rewrite ("Not read-only review →agent-audit"), so verify before re-fixinggitea-issues→ the literal stringgitea-labels- milestones, a stray space from YAML folding; the checker reports it as an unresolvable target namedgitea-labelsThe check reports 3 findings across all 43 artifacts with zero false positives, so this issue is now self-verifying:
pre-commit run skill-size-check --all-fileslists exactly what remains.Closing — folded into #99. See #99 (comment) for the full residue.
Two of the four are already fixed on
main:skill-audit→/skill-improveandagent-author→ "examine agent files manually", both as forced consequences of the ADR-0020 gate landing.The remaining two are not separable bugs.
skill-size-checkisstages: ['pre-commit']withpass_filenames: true, so it fires on exactly the files you touch — and both offenders are already FAILs on description length (research583 chars,gitea-issues827). There is no edit to either file that does not pull the #99 retrofit in first, which makes this issue a line item on that one rather than independent work.For
gitea-issuesthere is nothing left to decide:gitea-labels- milestonesis a fold artifact inside a composition note that #99 step 2 already says to move toREADME.mdand thatKyberforge.CompositionNotealready flags. The retrofit deletes it.researchdoes need a decision, recorded on #99: its target is a deleted skill (commit6146120, 2026-06-23), not a typo — recommendation is to drop the clause outright, since nothing in the repo owns MCP-server installation.Both remain self-verifying while open:
pre-commit run skill-size-check --all-filesreports exactly what is left.