Clinical Trials Database
google-deepmind/science-skills
Query ClinicalTrials.gov via APIv2. An agent skill from google-deepmind/science-skills.
Write FHIR ValueSet Compose Language (VCL), a compact URL-friendly syntax for ValueSet.compose.
$ npx skills add aehrc/pathling --skill vcl -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aehrc/pathling vcl --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/vcl .claude/skills/vcl && rm -rf skills-srcUse ~/.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/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .claude/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
$skill-installer install https://github.com/aehrc/pathling/tree/main/.agents/skills/vclType 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.
$ npx skills add aehrc/pathling --skill vcl -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aehrc/pathling vcl --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/vcl .agents/skills/vcl && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .agents/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
$ npx skills add aehrc/pathling --skill vcl -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aehrc/pathling vcl --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/vcl .cursor/skills/vcl && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .cursor/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
$ gemini skills install https://github.com/aehrc/pathling.git --path .agents/skills/vcl--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aehrc/pathling --skill vcl -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aehrc/pathling vcl --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/vcl .gemini/skills/vcl && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .gemini/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
$ gh skill install aehrc/pathling vclInstalls 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).
$ npx skills add aehrc/pathling --skill vcl -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/vcl .github/skills/vcl && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .github/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
$ npx skills add aehrc/pathling --skill vcl -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aehrc/pathling vcl --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aehrc/pathling.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/vcl .opencode/skills/vcl && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vcl" agent skill from https://github.com/aehrc/pathling/tree/main/.agents/skills/vcl into .opencode/skills/vcl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vcl", 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.
vclWrite FHIR ValueSet Compose Language (VCL), a compact URL-friendly syntax for ValueSet.compose.
Vcl is an agent skill from aehrc/pathling. Write FHIR ValueSet Compose Language (VCL), a compact URL-friendly syntax for ValueSet.compose. Use when writing or interpreting a VCL expression, building a VCL implicit ValueSet URL (http://fhir.org/VCL?v1=...), or expressing inclusion/exclusion rules in compact form. Trigger keywords include VCL, ValueSet Compose Language, VCL expression, implicit value set, VCL URL, fhir.org/VCL, compact value set, and operators <<, ~<<, <!, ^ in a ValueSet context.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/grammar.md`).
It sits in Research & Science, covering Clinical and healthcare research. 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.
Read from SKILL.md and the folder at commit 56a3b4a. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
loinc.orgsnomed.infofhir.orghl7.orgacme.comama-assn.orgAlso links to:
build.fhir.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vcl loads about 2.9k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,027 words of instructions outside code blocks.
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.
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.
The full file from aehrc/pathling at commit 56a3b4a, republished under its Apache-2.0 licence (© aehrc). 1,027 words, ~2,877 tokens.
.claude/skills/vcl/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are an expert in the FHIR ValueSet Compose Language (VCL), a domain-specific language for expressing ValueSet.compose content as a compact, URL-safe string. VCL is inspired by SNOMED CT's Expression Constraint Language and is defined in the FHIR IG Guidance.
Use VCL when the goal is to convey a ValueSet.compose rule in a single string, typically inside a URL passed to $expand or $validate-code. VCL covers everything compose can express: code system selection, enumerated codes, filters, included sub-ValueSets, exclusions, and property navigation - across one or many code systems.
Choose VCL over alternatives when:
ValueSet resource would be heavyweight.Prefer SNOMED CT ECL (see the snomed-ecl skill) when working purely within SNOMED CT and the existing http://snomed.info/sct?fhir_vs=ecl/... syntax is sufficient. ECL is richer for SNOMED-specific concept-model navigation; VCL is broader but simpler.
SCODE) when they consist only of alphanumerics, hyphens, and underscores starting with an alphanumeric. Anything else (periods, slashes, colons, spaces) requires double quotes." and \ are escapable, written as \" and \\.%28, %29) because brackets delimit the systemUri.|, e.g. http://loinc.org|2.74.| Expression | Meaning |
|---|---|
B | Single code B |
"B.123" | Single code B.123 |
* | All codes in the system |
| Operator | Symbol | Notes |
|---|---|---|
| Conjunction | , | AND - intersection of subexpressions |
| Disjunction | ; | OR - union of subexpressions |
| Exclusion | - | Removes the right-hand subset |
| Grouping | ( ) | Disambiguates mixed , and ; |
There is no operator precedence between , and ;. Always use brackets when mixing them.
(A;B),C // (A or B) and C
A;(B,C) // A or (B and C)
(A;B)-C // (A or B) minus CFilters are written as property OP value. They map directly to ValueSet.compose.include.filter triples (property, op, value).
| Operator | Symbol | Right-hand side | Example |
|---|---|---|---|
| equals | = | code | parent = 73211009 |
| is-a | << | code | concept << 73211009 |
| is-not-a | ~<< | code | concept ~<< 46635009 |
| descendent-of | < | code | concept < 73211009 |
| child-of | <! | code | concept <! 404684003 |
| descendent-leaf | !!< | code | concept !!< 64572001 |
| generalizes | >> | code | concept >> 44054006 |
| regex | / | quoted string | code / "A[0-9]*\\.9" |
| in (value set) | ^ | code list, URI, or filter list | ^http://acme/VS/x |
| not-in | ~^ | code list, URI, or filter list | ~^{A,B,C} |
| exists | ? | code (property name) | ingredient ? true |
The ^ operator inside a filter checks property values against an enumerated set, an external ValueSet, or a nested filter. As a top-level expression, ^URI includes all codes from another ValueSet.
A code system is selected by prefixing a systemUri in round brackets:
(http://loinc.org)4548-4
(http://snomed.info/sct)73211009
(http://snomed.info/sct|http://snomed.info/sct/32506021000036107/version/20230831)73211009The system applies to the immediately following expression. Combine multiple systems with ;, , or -:
(http://loinc.org)(41995-2;4548-4) - (http://loinc.org)29557-6The . operator (read as "of") flips a filter so the property is taken from a left-hand set of codes:
B.codeprop // values of `codeprop` on code B
{concept < B}.codeprop // values of `codeprop` over all descendants of B
{B.codeprop1}.codeprop2 // chained navigationThis is the inverse of the ordinary property = code form and is useful for "give me everything pointed to by these codes".
^http://hl7.org/fhir/ValueSet/payeetypeMaps to a compose.include.valueSet entry. Combine with codes, filters or other ValueSets through the usual set operators.
VCL is most often used inside an implicit ValueSet URL passed to $expand:
http://fhir.org/VCL?v1=[percent-encoded-expression]Rules:
http://fhir.org/VCL. The query parameter is v1 (the version of the VCL syntax).v1 before parsing.%28 and %29; curly braces as %7B and %7D; the caret ^ as %5E.Example - all LOINC codes whose parent is one of two codes:
http://fhir.org/VCL?v1=(http://loinc.org)(parent%5E%7BLP46821-2,LP259418-4%7D)Decoded expression:
(http://loinc.org)(parent^{LP46821-2,LP259418-4})A useful mental model is that a VCL expression compiles down to one or more compose.include (and possibly compose.exclude) entries.
| VCL element | ValueSet.compose element |
|---|---|
(systemUri) prefix | include.system (with optional version after |) |
Bare code B | include.concept[].code |
Filter prop OP value | include.filter triple {property, op, value} |
^http://.../ValueSet/... | include.valueSet |
Conjunction , | Multiple filters within the same include (AND) |
Disjunction ; | Multiple include entries (OR) |
Exclusion - | Right-hand side becomes a compose.exclude entry |
Grouping ( ) | Determines which include or exclude an element belongs to |
Example - this VCL:
(http://loinc.org)(41995-2;4548-4) - (http://loinc.org)29557-6corresponds to this compose:
{
"compose": {
"include": [
{
"system": "http://loinc.org",
"concept": [{ "code": "41995-2" }, { "code": "4548-4" }]
}
],
"exclude": [
{
"system": "http://loinc.org",
"concept": [{ "code": "29557-6" }]
}
]
}
}(http://snomed.info/sct)concept << 73211009All diabetes mellitus concepts (self plus descendants).
(http://loinc.org)(41995-2;4548-4;4549-2);
(http://snomed.info/sct)(365845005;165679005);
(http://www.ama-assn.org/go/cpt)(83036;83037)Three code systems unioned together, each with its own enumerated codes.
((http://snomed.info/sct)concept << 17311000168105) - ((http://loinc.org)76573-5)All descendants of the SNOMED concept, minus a single LOINC code.
(http://loinc.org)COMPONENT = LP212516-1, PROPERTY = LP6817-3, TIME_ASPCT = LP6960-1LOINC codes that match all three property filters (AND).
(http://loinc.org)COMPONENT / ".*Dichloroethane.*"LOINC codes whose COMPONENT term matches the regex.
(http://loinc.org){concept < LP12345}.parentThe parent property values for every descendant of LP12345.
(http://acme.com/cs)consists_of ^ { has_ingredient ^ { has_tradename = 2201670 } }Codes that consist of something which has an ingredient with a particular tradename.
(http://loinc.org)10007-3 ; ^http://loinc.org/vs/LP257682-7Direct LOINC code plus everything in the named ValueSet.
(http://snomed.info/sct)inactive = trueAll inactive SNOMED codes.
(http://acme.com/cs)ingredient ? trueAll codes that have an ingredient property defined.
B.123 is parsed as property navigation, not as a code. Write "B.123".(, ), {, }, ^, ,, ; and # all need encoding when the expression is the value of v1., and ; without brackets. There is no precedence; the parser may accept it but the meaning is ambiguous to readers. Always group.(systemUri) only applies to the immediately following expression, not the whole document. To apply it to a group, wrap the group: (http://loinc.org)(A;B;C).^ operators. As a top-level operator, ^URI means "include this ValueSet". As a filter operator (property ^ {...}), it means "in this set of values".For most authoring tasks the operator and example tables above are sufficient. Load references/grammar.md when:
snomed-ecl skill$expand operation: https://hl7.org/fhir/valueset-operation-expand.html© 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
SKILL.md and 1 other file (references) in .agents/skills/vcl of aehrc/pathling.
Open the folder on GitHubat commit 56a3b4a
Vcl 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vcl this skillaehrc/pathling | 137 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Clinical Trials Databasegoogle-deepmind/science-skills | 3.2k | 2 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| CHARLS Paper Reproduction Guidexjtulyc/MedgeClaw | 617 | 1 repos | ~1.8k | Automated safety check: Pass | None | |
| Biomedical Analysis Dispatchxjtulyc/MedgeClaw | 617 | 1 repos | ~2k | Automated safety check: Pass | None | |
| Research Proposalluwill/research-skills | 858 | — | ~4.4k | Automated safety check: Notes | None | |
| Medical Imaging ReviewLeonChaoX/qinyan-academic-skills | 943 | 3 repos | ~1.1k | Automated safety check: Notes | MIT |
google-deepmind/science-skills
Query ClinicalTrials.gov via APIv2. An agent skill from google-deepmind/science-skills.
xjtulyc/MedgeClaw
Guides an agent through reproducing papers built on the CHARLS health and retirement survey, from variable mapping to cognition, depression and isolation scores.
xjtulyc/MedgeClaw
Routes bioinformatics, drug discovery, clinical and multi-omics tasks from a chat interface to Claude Code sessions running K-Dense scientific skills, with a live dashboard per task.
luwill/research-skills
A skill your agent uses when the user asks to write or draft a PhD / doctoral research proposal, research plan, 研究计划书, or 开题报告 — a forward-looking plan of background, gap, research questions…
LeonChaoX/qinyan-academic-skills
Write comprehensive literature reviews for medical imaging AI research.
lamm-mit/scienceclaw
Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections.
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…
aehrc/pathling
Expert guidance for implementing FHIR RESTful API servers and clients following the HL7 FHIR specification.
aehrc/pathling
Expert guidance for implementing FHIR Bulk Data Access (Flat FHIR) following the HL7 specification.
aehrc/pathling
FHIR RESTful search specification expert with access to the official HL7 search specification text and the formal SearchParameter registry.
aehrc/pathling
Design and generate comprehensive FHIRPath test suites using input domain partitioning and Pathling's DSL test framework.
aehrc/pathling
Expert guidance for implementing FHIR servers using HAPI FHIR Plain Server framework.
Categories
Write FHIR ValueSet Compose Language (VCL), a compact URL-friendly syntax for ValueSet.compose. Vcl is an agent skill from aehrc/pathling.compose.
Vcl fits situations like: interpreting a VCL expression; building a VCL implicit ValueSet URL (http://fhir.org/VCL?v1=...); expressing inclusion/exclusion rules in compact form; keywords include VCL.
Run `npx skills add aehrc/pathling --skill vcl -a claude-code`. Or copy the skill folder (.agents/skills/vcl in aehrc/pathling) into .claude/skills/vcl in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aehrc/pathling --skill vcl -a codex`. Or copy the skill folder (.agents/skills/vcl in aehrc/pathling) into .agents/skills/vcl in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aehrc/pathling --skill vcl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vcl, .gemini/skills/vcl, .github/skills/vcl and .opencode/skills/vcl in your project.
SKILL.md names no scripts, command-line tools or credentials: Vcl is instructions for the agent only.
SKILL.md names 7 domains. In commands or code: loinc.org, snomed.info, fhir.org, hl7.org, acme.com and ama-assn.org; the agent is likely to contact these when it follows the instructions. As links in the text: build.fhir.org. This is read from the text; nothing was executed.
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.
Vcl 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.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 997 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Vcl: Clinical Trials Database (google-deepmind/science-skills, 3.2k stars), CHARLS Paper Reproduction Guide (xjtulyc/MedgeClaw, 617 stars), Biomedical Analysis Dispatch (xjtulyc/MedgeClaw, 617 stars) and Research Proposal (luwill/research-skills, 858 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.