Files
holocron/plugins/kyberforge/skills/agent-author/assets/README.md
Defame1297 4a5c3c0cff feat(kyberforge): enforce the ADR-0020 context contract for skills and agents
Skill name+description pairs are preloaded into every session, costing
~6,200 tokens across 39 skills before any skill is invoked. The authoring
rules mandated that growth: skill-author:104 and description-quality.md:21
both required padding, while skill-author:102 (the deflating rule) had no
FAIL condition behind it.

Gates (blocking, no baseline file):
- description 250 chars SUGGESTION / 400 FAIL, measured on the folded
  YAML value
- body-only 600 words SUGGESTION / 900 FAIL, independent of the unchanged
  whole-file 2770-word / 500-line spec backstop
- every boundary-clause routing target must resolve to a real skill or
  agent; catches skill-improve, neuledge-context and gitea-labels
- agents take the description gates but deliberately no body gate; a test
  pins that absence

Vale: DescriptionOpener widened to ^This\b, new CompositionNote rule
banning architecture notes from descriptions. 10 hits, 0 false positives.

Kyberforge's own four skills retrofitted: descriptions 3,364 -> 938 chars
(-72%), bodies 8,306 -> 2,487 words (-70%), all via the apm-workflow
dispatch pattern. Fixes the skill-improve dangling route and the
agent-author misroute to manual review.

Also fixes a pre-existing false positive where any line-initial 'read '
was flagged as interactive input, which had already caused two scripts to
be rewritten around it.

Refs: ADR-0020
2026-08-14 21:13:13 +00:00

1.5 KiB

assets/

templates/

Annotated agent definition templates copied by scripts/new-agent.sh when scaffolding a new agent. All three scaffold the description in the three-part ADR-0020 shape — a Use when trigger clause, at most one capability clause, and a boundary clause — rather than the deleted action-verb opener, and each carries a delegate-don't-restate note in the body.

  • claude-code.md — Claude Code agent definition template (project/user scope). Includes all supported frontmatter fields (required and optional) with inline guidance comments and FILL IN: placeholders.
  • copilot.agent.md.template — Copilot CLI agent definition template (CLI format, project/user scope). Excludes cloud/IDE-only fields (target, user-invocable, disable-model-invocation, mcp-servers) and Claude Code-only fields. Uses Copilot tool aliases (execute, read, edit, search, agent, web).
  • apm-agent.md — Vendor-neutral APM agent definition template (plugin/APM scope). Frontmatter is limited to the apm-agent-allowlist section of agent-audit's references/field-inventory.md — the authoritative list, read from there as data by agent-audit's validate.sh; this file deliberately does not restate it. No tools and no Claude-only knobs, since apm compile copies frontmatter verbatim to both the Claude Code and Copilot CLI targets with no per-target integrator; disallowedTools is scaffolded as an opt-in comment because a denylist, unlike the tools allowlist, survives that copy (ADR-0016 and its 2026-08-14 amendment).