Files
holocron/plugins/kyberforge/skills/skill-author/assets/templates/references
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
..

references/

Additional documentation agents load on demand. Files here extend SKILL.md without bloating its core context.

When to add a reference file

The SKILL.md body carries the decision procedure only. Everything else lives here: lookup tables, spec restatements, output schemas, templates, example blocks, rationale prose, and anything only one branch reaches.

Two triggers make a reference file mandatory rather than optional:

  • The body is over its 600-word target (900 is a hard failure), counting the body only — everything after the frontmatter's closing ---.
  • The skill has two or more mutually exclusive flows. The body then keeps only a dispatch table plus the gates common to every branch, and each flow gets its own self-contained file here (e.g. create.md, improve.md).

How to reference from SKILL.md

Load conditionally — tell the agent exactly when to read each file:

If the API returns a non-200 status, read `references/api-errors.md`.

Avoid generic "see references/ for details" — the agent loads context on demand, so give it a precise trigger condition.

File conventions

  • One topic per file — focused files mean less unnecessary context loaded
  • Kebab-case filenames (e.g. api-errors.md, output-formats.md)
  • Keep files under 200 lines where possible

If no reference files are needed

Delete this README and the references/ directory entirely.