Agent skill

Pathling YAML Exclusions

by aehrc in aehrc/pathling

Manage the YAML conformance-test exclusion baselines at fhirpath/src/test/resources/fhirpath-js/config.yaml and fhirpath-ptl/config.yaml.

Apache-2.0Auto-check passed

Install Pathling YAML Exclusions

skills CLI
$ npx skills add aehrc/pathling --skill pathling-yaml-exclusions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aehrc/pathling pathling-yaml-exclusions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/pathling-yaml-exclusions .claude/skills/pathling-yaml-exclusions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

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.

  1. Find the rules in scope
  2. Decide, per rule
  3. Verify
  4. Report

What it can do on your machine

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.

SKILL.md

The full file from aehrc/pathling at commit 56a3b4a, republished under its Apache-2.0 licence (© aehrc). 1,121 words, ~2,348 tokens.

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 classConfigCorpus
YamlReferenceImplTestfhirpath-js/config.yamlThe fhirpath.js reference test corpus
YamlFhirPathTestfhirpath-ptl/config.yamlPathling'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.

outcomeMeaningBuild fails when
error (default)The case throws an exceptionIt passes, or fails an assertion instead of throwing
failureThe case runs but produces the wrong resultIt passes, or throws instead of failing
passThe case passes, but is excluded for another reasonIt fails or throws
explicitly null (outcome:)The case is not run at allNever — 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.

MatcherSemantics
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:

typeCountMeaning
feature23Capability not yet implemented
new-feature9Synonym for feature — being retired
bug5Pathling defect; the case should pass
wontfix23Pathling 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:

bash
cd fhirpath/src/test/resources
rg -n 'toQuantity' fhirpath-js/config.yaml fhirpath-ptl/config.yaml
rg -n '#2391' fhirpath-js/config.yaml fhirpath-ptl/config.yaml

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
DecisionWhen
REMOVEEvery case the rule matches now passes
NARROWThe 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
RECLASSIFYThe 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)
KEEPThe 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).

© aehrc, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/pathling-yaml-exclusions of aehrc/pathling.

Open the folder on GitHubat commit 56a3b4a

Compare with similar skills

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
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pathling YAML Exclusions this skillaehrc/pathling137—~2.3kAutomated safety check: PassApache-2.0
Implementing Network Traffic Baseliningmukul975/Anthropic-Cybersecurity-Skills34k—~652Automated safety check: PassApache-2.0
Type Check Baselinesredis/RedisInsight8.9k—~1.5kAutomated safety check: PassCustom licence
Resolve Conformsamuelgursky/davinci-resolve-mcp3.4k—~2.1kAutomated safety check: PassMIT
Placement Exclusion Manageraaron-he-zhu/aaron-marketing-skills2.9k2 repos~2.4kAutomated safety check: PassApache-2.0
Author Baseline Dgdai-dynamo/dynamo8.3k—~1.7kAutomated safety check: PassApache-2.0

Similar skills

  • Implementing Network Traffic Baselining

    mukul975/Anthropic-Cybersecurity-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…

    34k GitHub stars~652 tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Type Check Baselines

    redis/RedisInsight

    Official

    Run, refresh, or recover from RedisInsight's per-project TypeScript error baselines (.tscheck.rec.json).

    8.9k GitHub stars~1.5k tokensUpdated 4 days ago
    DatabasesAuto-check passed
  • Resolve Conform

    samuelgursky/davinci-resolve-mcp

    Conforming, relinking, and finishing prep in the DaVinci Resolve MCP.

    3.4k GitHub stars~2.1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Placement Exclusion Manager

    aaron-he-zhu/aaron-marketing-skills

    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…

    2.9k GitHub starsUsed in 2 repos~2.4k tokens
    Marketing & SEOAuto-check passed
  • Author Baseline Dgd

    ai-dynamo/dynamo

    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…

    8.3k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Baseline UI

    ibelick/ui-skills

    Applies a fixed set of UI rules for stack, components, interaction, animation, typography and layout, or reviews a file against them with concrete fixes.

    9.5k GitHub starsUsed in 8 repos~855 tokens
    Frontend & DesignAuto-check passed

More from aehrc/pathling

All 25 skills in this repo
  • Databricks CLI

    aehrc/pathling

    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…

    137 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Fhir API

    aehrc/pathling

    Expert guidance for implementing FHIR RESTful API servers and clients following the HL7 FHIR specification.

    137 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Fhir Bulk Data

    aehrc/pathling

    Expert guidance for implementing FHIR Bulk Data Access (Flat FHIR) following the HL7 specification.

    137 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Fhir Search Spec

    aehrc/pathling

    FHIR RESTful search specification expert with access to the official HL7 search specification text and the formal SearchParameter registry.

    137 GitHub stars~649 tokensUpdated yesterday
    Auto-check passed
  • Design and generate comprehensive FHIRPath test suites using input domain partitioning and Pathling's DSL test framework.

    137 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Hapi Fhir Server

    aehrc/pathling

    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.