Pattern

Reference files in SharePoint Skills: the orchestration pattern

Skills can load reference files for portable, reusable components. Keep SKILL.md as the orchestration layer and call references when you need them.

Daniel Anderson6 min read

A SKILL.md file can do everything itself. Instructions, steps, standards, every rule baked into one Markdown file. That works for the first one or two Skills you write, then it stops working. The file gets unwieldy. Standards that apply to several Skills get duplicated. A change in one place needs ten edits to keep the rest in sync.

The fix is reference files. SKILL.md becomes the orchestration layer. References hold the standards. The Skill loads them only when needed.

This piece walks through how I structure Skills with references, where the files live, and a real example from a proposal reviewer Skill.

If Skills are new, read what SharePoint AI Skills are and the pillar on extending SharePoint AI with Skills first. This piece assumes you have shipped at least one Skill and want to take the next step.

Why split content out of SKILL.md

Two reasons.

The first is reuse. A standards file for proposals can serve a proposal review Skill, a proposal QA Skill, and a proposal-writing assistant. If those standards live inline in three different SKILL.md files, an update means three edits and the chance that one falls out of sync. If the standards live in one reference file, every Skill that calls it picks up the change automatically.

The second is readability. A SKILL.md file with every guideline inline becomes a wall of text. Hard to review, hard to debug. Pulling content out of SKILL.md keeps the orchestration layer focused on what the Skill does and when, and pushes the supporting detail somewhere it can be read on its own terms.

Where reference files live

References live in a subfolder under the Skill folder. The convention I follow is references/.

/Agent Assets/Skills/Proposal Reviewer/
  ├─ SKILL.md
  └─ references/
      └─ proposal-standards.md

The path matters because SKILL.md needs to reference it when loading. The folder name does not have to be references strictly, but the convention helps anyone reading the Skill later.

For details on how Skills are stored and governed, see Microsoft Learn on extending AI in SharePoint with Skills.

How SKILL.md loads a reference

AI in SharePoint exposes a tool called load skills that lets a Skill load other Skills or files from the Agent Assets library. SKILL.md describes when to use it and which file to load.

A simplified example from the proposal reviewer Skill:

## When invoked
When a user shares a proposal or paste it.

## Steps
1. Use the load skills tool with skill name "Proposal Reviewer"
   and file path "references/proposal-standards.md" to get
   the current review criteria.
2. Read the proposal the user provided.
3. Compare against the standards. Flag every issue against
   the must-fix and should-fix categories.
4. Return a structured review with each flagged item, the
   standard it violates, and a recommended fix.

When the Skill runs, it loads the standards file, reads the proposal, applies the rules, and produces the review. The standards live where they belong: in a file dedicated to standards, editable on its own, reusable across Skills.

A real example: the proposal reviewer Skill

The proposal reviewer Skill on a client site I work on does exactly this. SKILL.md is short. References do the heavy lifting.

SKILL.md describes the trigger ("review proposal" or "run proposal review"), the inputs (a selected proposal file), and the steps (load standards, read proposal, compare, return). It is around 40 lines.

references/proposal-standards.md holds the actual review criteria. Positioning rules. Guardrails for language to avoid. Mandatory inclusions every proposal must have. Commitments the firm never makes. Engagement size minimums. Payment terms. The file is much longer than SKILL.md, and every line is content rather than orchestration.

When the Skill runs against a proposal, the output is a structured review with three categories: must fix, should fix, and observations. Each flagged item maps back to a specific line in the standards file, so the reviewer (and the proposal author) can see exactly which rule was triggered.

The same proposal-standards.md reference is also called by a separate proposal-drafting Skill that another team uses. Both Skills load the same file. When the standards change (new clause language, updated minimums), one file gets edited and both Skills pick up the change.

When references earn their keep

References are not free. They add a level of indirection. The trade-off is worth it when:

If a piece of content is unique to one Skill and small, leave it in SKILL.md. The convention is there to be broken when the situation calls for it.

Where to take this next

Look at your existing Skills. Find the content in any SKILL.md that is duplicated in another, or that is large enough to be hard to read. Pull it into a reference file. Update the calling SKILL.md to load the reference instead.

The Skill behaviour stays the same. The maintenance gets significantly easier. The next Skill you write starts cleaner because the standards file is already there.

Get the first wave of Skills when the directory opens.

Production-ready Skill Markdown files, tested in real client tenants. Free for the first wave of subscribers.

Frequently asked questions

Answers to the questions we hear most

What is a reference file in a SharePoint AI Skill?

A reference file is a Markdown file the Skill loads on demand to get specific content like standards, guidelines, or criteria. It lives alongside the SKILL.md file in a references subfolder and keeps the orchestration layer separate from the content layer.

Why not put everything in SKILL.md?

Two reasons. First, SKILL.md becomes hard to read when it carries every standard and rule inline. Second, reference files are portable. The same proposal-standards file can serve a proposal review Skill, a proposal QA Skill, and a proposal-writing assistant. Edit the standards once and every Skill picks up the change.

Where do reference files live?

In a references subfolder under the Skill folder. For example: /Agent Assets/Skills/Proposal Reviewer/references/proposal-standards.md. The path is referenced from SKILL.md when the Skill needs to load it.

How does SKILL.md load a reference file?

SKILL.md uses the load skills tool exposed by AI in SharePoint. The Skill tells the tool which Skill name and file path to load, and the file's content is brought into context for the rest of the run.

Can multiple Skills share the same reference file?

Yes, that is the main reason to split content out. Standards, frameworks, and criteria that apply to several Skills are written once and called from each. Update the reference and every Skill that uses it benefits.

When should I keep content in SKILL.md instead?

If the content is specific to one Skill and unlikely to be reused elsewhere, keep it in SKILL.md. References add overhead. They earn their place when the same content is shared across more than one Skill, or when the content is large enough that pulling it into a separate file makes SKILL.md easier to read.

Daniel Anderson

Founder, ShiftF5.ai · Microsoft Partner

Microsoft 365 consultant with twenty years in SharePoint, Copilot, and M365 AI enablement. Publisher of sharepointaiskills.com. I write about what actually ships in client tenants.

Connect on LinkedIn →