skill-load-tips
- Repo stars 374
- Author repo skills
Skill Load Tips
Refactor pattern for SKILL.md files where the body is the only thing the agent ever reads. The references/ folder might as well not exist.
The Failure Mode
Large skills frequently ship with rich reference files (references/*.md) that contain the load-bearing detail — full ARIA patterns, banned-vocab lists, before/after examples, archetypes — and a SKILL.md body that summarizes them. The agent reads the body, feels it has "enough," and never fans out. The reference files become dead weight.
This is the inline-substitutes-for-reference antipattern. It is the single most common reason a well-organized skill underperforms.
Symptoms (how to spot it)
A SKILL.md likely has this problem if two or more apply:
- Body is over 250 lines and inlines checklists, tables, or banned-word lists that also live in a referenced file.
- The "Reference Index" / "Files" section is at the bottom, after the operating loop.
- References are introduced with hedged phrases: "For depth, read X", "see X for details", "X has more".
- No upfront "router" mapping task → mandatory file.
- Reference files are linked from other reference files (deep nesting), not directly from SKILL.md.
- Reference files over 100 lines have no table of contents at the top.
The Four Fixes (apply in order)
Fix 1 — Add a Required Reading Router at the top
Insert a table immediately after the skill's opening paragraph (before any "Operating Loop" / "Steps" section). The table maps task type → file(s) that MUST be read for that task.
Template:
## Required Reading Router
Match your task to the row. Read the listed files **in full before** producing output. They are not appendices — they are load-bearing. Inline content in this SKILL.md is a pointer, not a substitute.
| Task | MUST read |
| --------------------------------------------- | ------------------------------------------------------------ |
| [Task type A] | `references/file-a.md` |
| [Task type B] | `references/file-b.md` + `references/file-c.md` |
| [Task type C] | `references/file-d.md` |
Pair the router with a Reference Index directly below it: one-line descriptions of what each file contains, so the router tells the agent when to load and the index tells what they get.
Fix 2 — Use hard STOP directives in operating steps
Every step that has a corresponding reference file gets a forced-read directive at the end. Replace soft phrasing with imperative.
Before:
For ARIA component patterns and verification recipes, read `references/accessibility-floor.md`.
After:
**STOP. Read `references/accessibility-floor.md` in full before implementing or reviewing any interactive widget.** That file contains the complete ARIA patterns (dialog, combobox, menu, tabs, slider, listbox) and the verification recipes. The inline summary above is a tripwire, not the contract.
Three rules for STOP directives:
- Bold the word STOP. It is a visual interrupt.
- Name the trigger condition ("when implementing an interactive widget", "when extending tokens"). Not just "if you want depth."
- State that the inline content is a tripwire, not the source of truth.
Fix 3 — Trim duplicated inline content to gist tripwires
When a SKILL.md step contains a 10-bullet checklist that is also in a reference file, the agent reads the checklist and skips the reference. Cut the inline to a 2-3 line "tripwire" — enough for the agent to detect violations during scanning, but obviously incomplete.
Before (inline 10-bullet WCAG checklist):
- Text contrast ≥ 4.5:1 (≥ 3:1 for large text)
- Non-text indicators contrast ≥ 3:1
- Focus visible (2px minimum)
- Keyboard reachable
- Target size ≥ 24×24
- prefers-reduced-motion honored
- Semantic landmarks
- Headings in order
- Form controls labeled
- Errors associated via aria-describedby
After (3-line tripwire + forced read):
Gist tripwires — the floor items that catch most slop:
- Text contrast ≥ 4.5:1; focus-visible ≥ 2px on every interactive element.
- Full keyboard reachability; `prefers-reduced-motion` honored.
- Semantic landmarks + heading order; form controls programmatically labeled.
**STOP. Read `references/accessibility-floor.md` in full before implementing or reviewing any interactive widget.** The three bullets above are tripwires, not the contract.
Trim aggressively. If the inline list and the reference cover the same ground, the reference always wins.
Fix 4 — Flatten reference depth to one level
Per Anthropic's docs: when references link to references, the agent uses partial reads (head -100) and misses content. All references/*.md files must be linked directly from SKILL.md, not from each other.
Bad:
SKILL.md → references/advanced.md → references/details.md
Good:
SKILL.md → references/advanced.md
SKILL.md → references/details.md
Also: any reference file over 100 lines needs a ## Contents section at the top, so partial reads still surface the scope.
Anti-Patterns
Things that look like fixes but aren't:
- Adding "(important)" or emoji to existing trigger lines. The agent reads tone, not decoration. Mandatory phrasing requires verbs (
STOP. Read…), not adjectives. - Making references shorter so the body can stay inline. The opposite of the goal. References should grow as the body shrinks.
- Adding a "TL;DR" at the top of every reference file. The agent reads the TL;DR and skips the body. Use a Contents TOC instead — names of sections, not summaries.
- Renaming references to suggest urgency (
URGENT-read-this.md,MUST-READ.md). The filename does not change the read decision; the trigger phrasing in SKILL.md does. - Splitting SKILL.md into many small files at the same level. SKILL.md is the single entry point. Multiple top-level skill files break discovery.
Refactor Checklist
Before declaring a refactor done, verify against the rewritten SKILL.md:
- Required Reading Router exists in the first 50 lines (after intro/philosophy).
- Reference Index sits next to the Router.
- Every operating step that has a corresponding reference file ends with a
**STOP. Read references/X.md …**directive. - Inline checklists that duplicate reference content have been trimmed to ≤ 3 bullets, labeled as "tripwires" or "gist."
- No reference file links to another reference file (one level deep only).
- Reference files > 100 lines have a
## ContentsTOC at the top. - SKILL.md body is under 500 lines (Anthropic's recommended ceiling).
- No
For depth, see XorRead X for morephrasing remains — every reference mention is either router/index (descriptive) or a STOP directive (mandatory).
How To Run a Refactor Pass
- Open SKILL.md and the
references/directory side by side. - Inventory: list every reference file and what it covers.
- Diagnose: walk the Symptoms list above; mark each hit.
- Apply Fix 1 (Router + Index), then Fix 2 (STOPs), then Fix 3 (trim inline), then Fix 4 (flatten depth + add TOCs).
- Run the checklist. If any item is unchecked, the refactor is not done.
- Test by asking a fresh agent instance to perform a task that requires a reference file. Observe whether it actually reads the file. If it doesn't, the STOP directive for that file is too weak — strengthen the trigger condition.
When NOT To Use
- Authoring a new skill from scratch — use
skill-best-practices. - Editing reference files themselves without touching SKILL.md.
- Skills under 150 lines with no reference files (nothing to route).
- AGENTS.md / CLAUDE.md refactors — those follow different rules; use
agent-md-refactor.
Bottom Line
A reference file the agent never loads is a reference file that does not exist.
The body of SKILL.md is a dispatcher, not an encyclopedia.
Trim the inline. Force the load. Flatten the depth.- Fluxly category
- Other
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @pedronauck · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. Large skills frequently ship with rich reference files (references/.md) that contain the load-bearing detail — full ARIA patterns, banned-vocab lists, before/after examples, archetypes — and a SKILL.md body that summarizes them. The agent reads the body, feels…
A SKILL.md likely has this problem if two or more apply: Body is over 250 lines and inlines checklists, tables, or banned-word lists that also live in a referenced file. The "Reference Index" / "Files" section is at the bottom, after the operating loop.
The Four Fixes (apply in order)
Insert a table immediately after the skill's opening paragraph (before any "Operating Loop" / "Steps" section). The table maps task type → file(s) that MUST be read for that task. Template:
Match your task to the row. Read the listed files in full before producing output. They are not appendices — they are load-bearing. Inline content in this SKILL.md is a pointer, not a substitute. Task · MUST read [Task type A] · references/file-a.md
Every step that has a corresponding reference file gets a forced-read directive at the end. Replace soft phrasing with imperative. Before: After:
# Skill Load Tips
Refactor pattern for SKILL.md files where the body is the only thing the agent ever reads. The references/ folder might as well not exist.
## The Failure Mode
Large skills frequently ship with rich reference files (`references/*.md`) that contain the load-bearing detail — full ARIA patterns, banned-vocab lists, before/after examples, archetypes — and a SKILL.md body that summarizes them. The agent reads the body, feels it has "enough," and never fans out. The reference files become dead weight.
This is the **inline-substitutes-for-reference antipattern**. It is the single most common reason a well-organized skill underperforms.
## Symptoms (how to spot it)
A SKILL.md likely has this problem if **two or more** apply:
- Body is over 250 lines and inlines checklists, tables, or banned-word lists that also live in a referenced file.
- The "Reference Index" / "Files" section is at the bottom, after the operating loop.
- References are introduced with hedged phrases: *"For depth, read X"*, *"see X for details"*, *"X has more"*.
- No upfront "router" mapping task → mandatory file.
- Reference files are linked from other reference files (deep nesting), not directly from SKILL.md.
- Reference files over 100 lines have no table of contents at the top.
## The Four Fixes (apply in order)
### Fix 1 — Add a Required Reading Router at the top
Insert a table immediately after the skill's opening paragraph (before any "Operating Loop" / "Steps" section). The table maps task type → file(s) that **MUST** be read for that task.
**Template:**
```markdown
## Required Reading Router
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> The Failure Mode → Symptoms (how to spot it) → The Four Fixes (apply in order) → Fix 1 — Add a Required Reading Router at the top → Required Reading Router → Fix 2 — Use hard STOP directives in operating steps
terms -> inline-substitutes-for-reference antipattern · two or more · MUST · Template · in full before · Reference Index · Before · After
files/cmd -> references/.md · references/file-a.md · references/file-b.md · references/file-c.md · references/file-d.md · references/accessibility-floor.md · prefers-reduced-motion · head -100
body sha256 -> d1d293cc1d87
Decide Fit First
Design Intent
How To Use It
Boundaries And Review