Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .claude/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .agents/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .cursor/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .gemini/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .github/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "pathling-yaml-exclusions" agent skill from https://github.com/aehrc/pathling/tree/main/.claude/skills/pathling-yaml-exclusions into .opencode/skills/pathling-yaml-exclusions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pathling-yaml-exclusions", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
pathling-yaml-exclusions
GitHub stars
137
Token cost
~2.3k tokens
SKILL.md length
1,121 words
Files
1
Skills in repo
25
Repo updated
First seen
Licence
Apache-2.0
At a glance
Manage the YAML conformance-test exclusion baselines at fhirpath/src/test/resources/fhirpath-js/config.yaml and fhirpath-ptl/config.yaml.
Works in 4 steps: Find the rules in scope → Decide, per rule → Verify → …
A newly implemented FHIRPath feature makes previously-excluded conformance cases pass
SKILL.md covers The baseline polices itself, Rule anatomy, Type taxonomy and The sweep, plus 2 more sections
Calls mvn, rg and gh
What it does
Pathling YAML Exclusions is an agent skill from aehrc/pathling. Manage the YAML conformance-test exclusion baselines at fhirpath/src/test/resources/fhirpath-js/config.yaml and fhirpath-ptl/config.yaml. Use this skill when a newly implemented FHIRPath feature makes previously-excluded conformance cases pass, when the build fails with "Excluded test passed when expected outcome was ...", when auditing the baseline for stale or mislabelled entries, or when deciding how to record a case that Pathling cannot yet handle. Trigger on phrases like "exclusion", "excluded test"…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Tools that make it easier to use FHIR and clinical terminology within data analytics, built on Apache Spark. The licence is Apache-2.0.
When your agent uses it
A newly implemented FHIRPath feature makes previously-excluded conformance cases pass
The build fails with Excluded test passed when expected outcome was ...
Auditing the baseline for stale
Mislabelled entries
Example prompts
“Excluded test passed when expected outcome was ...”
“exclusion”
“excluded test”
“/pathling-yaml-exclusions”
Workflow steps
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 56a3b4a. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
mvn
rg
gh
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Pathling YAML Exclusions loads about 2.3k tokens when it runs. Until then it costs about 176 tokens; SKILL.md has 1,121 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~176
When it runs· the whole SKILL.md, loaded when a task matches
~2.3k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/pathling-yaml-exclusions/SKILL.md (or your agent's skills folder).
name
pathling-yaml-exclusions
description
Manage the YAML conformance-test exclusion baselines at fhirpath/src/test/resources/fhirpath-js/config.yaml and fhirpath-ptl/config.yaml. Use this skill when a newly implemented FHIRPath feature makes previously-excluded conformance cases pass, when the build fails with "Excluded test passed when expected outcome was ...", when auditing the baseline for stale or mislabelled entries, or when deciding how to record a case that Pathling cannot yet handle. Trigger on phrases like "exclusion", "excluded test", "config.yaml", "known failures", "conformance baseline", "YamlReferenceImplTest", "YamlFhirPathTest", or any request to remove, narrow, or reclassify a test exclusion.
Pathling YAML test exclusions
Pathling runs two YAML conformance suites, each with its own exclusion baseline:
Test class
Config
Corpus
YamlReferenceImplTest
fhirpath-js/config.yaml
The fhirpath.js reference test corpus
YamlFhirPathTest
fhirpath-ptl/config.yaml
Pathling's own cases
An exclusion is not a mute button. It is an assertion about how a case currently fails.
The baseline polices itself
Excluded cases are still executed. The runner asserts the case produces the recorded outcome,
and only then reports it as skipped. If an excluded case starts passing, the build fails with:
Excluded test passed when expected outcome was error
That is the machine-checkable done-signal for feature work: implement a feature, and every
exclusion it obsoletes turns the build red until it is cleaned up. You cannot silently leave a
stale exclusion behind.
outcome
Meaning
Build fails when
error (default)
The case throws an exception
It passes, or fails an assertion instead of throwing
failure
The case runs but produces the wrong result
It passes, or throws instead of failing
pass
The case passes, but is excluded for another reason
It fails or throws
explicitly null (outcome:)
The case is not run at all
Never — unverified
Prefer error or failure. An explicitly-null outcome opts the case out of verification
entirely, which is how baselines rot. Use it only when running the case is itself the problem
(a hang, an OOM), and say so in the comment.
UnsupportedFhirPathFeatureError is handled separately — such cases are skipped regardless of
outcome.
Rule anatomy
yaml
excludeSet:
- title: Global exclusions # required
comment: | # optional
Why this block exists.
exclude:
- title: Unsupported resources # required
type: feature # convention only — see taxonomy below
id: "#2418" # issue this is tracked under
outcome: failure # defaults to "error"
comment: | # why, and what would resolve it
...
expression: # matcher — see below
- "^StructureDefinition"
Matchers
A rule may carry several matchers; they are OR-ed. A case is excluded by the first rule
whose matchers match it.
Matcher
Semantics
any: [...]
Substring match against the case's expression or its description
expression: [...]
Regex, unanchored (find, not full match), against the expression only
function: [...]
Matches by function name
spel: [...]
SpEL predicate over the case
Prefer any with a complete expression string for surgical exclusions — it is the easiest to
verify and the hardest to over-match. Reach for expression regexes only when a genuine family
of cases shares a shape, and remember they are unanchored: "toQuantity" also matches
convertsToQuantity.
Fields that do not work
Two fields are parsed but never applied. Do not rely on them, and do not add new uses:
glob on an exclude block — documented as scoping a block to certain test files, but never
read. Every block applies to every case file. A rule you believe is scoped to one corpus
file will silently mask matching cases everywhere.
desc on a rule — declared as a matcher but never converted to a predicate. Use any,
which already matches descriptions.
Separately, the system property au.csiro.pathling.test.yaml.exclusionsOnly is read and logged
but never applied — it does not filter anything. Ignore it.
disabled: true on a rule, by contrast, does work: it suppresses the rule entirely, so the cases
it was masking run unexcluded. See §3 below for using it, and the disabledExclusions property,
to test whether a rule is still earning its place.
Type taxonomy
type is a free-form string with no validation. Current usage in fhirpath-js/config.yaml:
type
Count
Meaning
feature
23
Capability not yet implemented
new-feature
9
Synonym for feature — being retired
bug
5
Pathling defect; the case should pass
wontfix
23
Pathling deliberately diverges, or the case itself is invalid
Use feature, not new-feature. When you touch a block containing new-feature, migrate it.
wontfix deserves scrutiny. It currently absorbs two different things: genuinely invalid test
cases, and unimplemented capabilities mislabelled as invalid. For example a wontfix block titled
"Parse error — not valid FHIRPath syntax" contains ('a'|'b'|'c').join(','),
(1|2|3).sum() and (1|2|3).aggregate($this+$total, 0) — all valid FHIRPath, and all really
feature gaps. If a wontfix entry you encounter is actually a capability gap, reclassify it and
give it an issue id.
The sweep
Run this whenever a feature lands, and whenever the build reports an excluded test passing.
1. Find the rules in scope
Search by every handle the feature has — function name, operator, expression fragment, and the
issue number:
An empty result is not evidence the feature is fully working. Most open FHIRPath issues own no
exclusion at all — the corpus may simply not cover the feature. When nothing matches, say so
explicitly in your report rather than concluding there was nothing to do.
Show full SKILL.md (434 more words)Show less
2. Decide, per rule
Decision
When
REMOVE
Every case the rule matches now passes
NARROW
The matcher is over-broad — some cases pass now, others still legitimately fail. Rewrite it, preferring any with exact expressions, so it catches only the residual failures
RECLASSIFY
The residual failure is real but recorded under the wrong type, or the outcome changed (a case that used to throw now returns a wrong result → error becomes failure)
KEEP
The rule describes a real gap unrelated to this change
3. Verify
bash
mvn spotless:apply -pl fhirpath
mvn test -pl fhirpath -Dtest=YamlReferenceImplTest
mvn test -pl fhirpath -Dtest=YamlFhirPathTest
Both must be 0 failures, 0 errors. Two failure modes to read correctly:
"Excluded test passed when expected outcome was error" → the rule is now obsolete for that
case. REMOVE or NARROW it.
A plain failure on a case you just un-excluded → the feature does not actually cover it. Restore
the exclusion (NARROW it) and say which cases remain, or fix the implementation.
To check whether a specific rule is still needed without editing the file, disable it by id:
bash
mvn test -pl fhirpath -Dtest=YamlReferenceImplTest \
-Dau.csiro.pathling.test.yaml.disabledExclusions='#2391,#2418'
Cases the rule was masking now run for real. This is the cheapest way to answer "is this
exclusion still earning its place?"
4. Report
State per rule what changed and why: rule title, decision, and the evidence. Report the suite
output, not a claim that it is green. If the sweep found nothing in scope, report that too.
Hygiene for any rule you add or modify
feature / bug → carries id: "#NNNN" pointing at an open Pathling issue. Verify with
gh issue view NNNN --json state,title. Several ids in the baseline point at closed issues
(#2163, #2398, #2383) — fix those when you touch their block.
wontfix → needs a comment justifying the divergence or explaining why the case is invalid.
No id required, but confirm it is genuinely not a capability gap.
Every rule needs a title, and a comment whenever the title alone does not explain the
decision.
The matcher must match at least one real case. A rule matching nothing is dead weight; the
runner will not tell you, so check with rg against the case files under
fhirpath-js/cases/ or fhirpath-ptl/cases/.
No two rules should match the same case — the first wins, and the second becomes invisible.
Set outcome deliberately. Do not leave it null to make a stubborn case go away.
Do not
Add an exclusion to turn a red build green when the cause is a regression in your own change.
An exclusion records a pre-existing gap.
Widen an existing matcher to swallow a new failure. Add a separate, narrower rule instead, so
the two gaps stay independently trackable.
Rely on glob, desc, or exclusionsOnly (see above).
Pathling YAML Exclusions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Pathling YAML Exclusions compared with similar skills
Builds network traffic baselines from NetFlow/IPFIX CSV or JSON exports using Python pandas, computing hourly/daily volume distributions, per-host and protocol/port statistics, and top-talker…
A skill your agent uses when the user asks to "build my brand-safety exclusion lists", "set placement / topic / content exclusions before launch", "add network and audience exclusions", or "prep the…
Drafts a candidate baseline DynamoGraphDeployment from interview requirements when no catalog recipe matches the user's model, hardware, and backend, presenting per-decision evidence for the user's…
Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.
Expert guidance for using the Databricks CLI to manage Databricks workspaces, clusters, jobs, pipelines, Unity Catalog, SQL warehouses, serving endpoints, secrets, bundles, and all other Databricks…
Expert guidance for implementing FHIR servers using HAPI FHIR Plain Server framework.
137 GitHub stars~2.6k tokensUpdated yesterday
Auto-check passed
Questions about Pathling YAML Exclusions
What does Pathling YAML Exclusions do?
Manage the YAML conformance-test exclusion baselines at fhirpath/src/test/resources/fhirpath-js/config.yaml and fhirpath-ptl/config.yaml. Pathling YAML Exclusions is an agent skill from aehrc/pathling.yaml.
When should I use Pathling YAML Exclusions?
Pathling YAML Exclusions fits situations like: A newly implemented FHIRPath feature makes previously-excluded conformance cases pass; the build fails with Excluded test passed when expected outcome was ..; auditing the baseline for stale; mislabelled entries.
How do I install Pathling YAML Exclusions in Claude Code?
Run `npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a claude-code`. Or copy the skill folder (.claude/skills/pathling-yaml-exclusions in aehrc/pathling) into .claude/skills/pathling-yaml-exclusions in your project. Claude Code loads it when a task matches its description.
How do I install Pathling YAML Exclusions in Codex?
Run `npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a codex`. Or copy the skill folder (.claude/skills/pathling-yaml-exclusions in aehrc/pathling) into .agents/skills/pathling-yaml-exclusions in your project. Codex loads it when a task matches its description.
Can I use Pathling YAML Exclusions in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pathling-yaml-exclusions, .gemini/skills/pathling-yaml-exclusions, .github/skills/pathling-yaml-exclusions and .opencode/skills/pathling-yaml-exclusions in your project.
What does Pathling YAML Exclusions need to run?
Going by SKILL.md and its folder, Pathling YAML Exclusions needs the command-line tools its instructions call (mvn, rg and gh).
Does Pathling YAML Exclusions access the network?
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Pathling YAML Exclusions safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Pathling YAML Exclusions use?
Pathling YAML Exclusions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Pathling YAML Exclusions use?
About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Pathling YAML Exclusions?
Skills that share tags, products or a category with Pathling YAML Exclusions: Implementing Network Traffic Baselining (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Type Check Baselines (redis/RedisInsight, 8.9k stars), Resolve Conform (samuelgursky/davinci-resolve-mcp, 3.4k stars) and Placement Exclusion Manager (aaron-he-zhu/aaron-marketing-skills, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Pathling YAML Exclusions?
aehrc (a GitHub organization) maintains it in aehrc/pathling, which has 137 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 8, 2026.
Source: aehrc/pathling on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.