Datasets
Arize-ai/phoenix
Understand what a Phoenix dataset is and reason well about its examples, outputs, splits, and how it feeds evaluators and experiments.
Derives ADaM Basic Data Structure (BDS) datasets using the {admiral} R package.
$ npx skills add RConsortium/pharma-skills --skill admiral-bds -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install RConsortium/pharma-skills admiral-bds --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/RConsortium/pharma-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/admiral/admiral-bds .claude/skills/admiral-bds && 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 "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .claude/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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/RConsortium/pharma-skills/tree/main/admiral/admiral-bdsType 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 RConsortium/pharma-skills --skill admiral-bds -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install RConsortium/pharma-skills admiral-bds --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RConsortium/pharma-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/admiral/admiral-bds .agents/skills/admiral-bds && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .agents/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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 RConsortium/pharma-skills --skill admiral-bds -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install RConsortium/pharma-skills admiral-bds --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RConsortium/pharma-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/admiral/admiral-bds .cursor/skills/admiral-bds && 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 "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .cursor/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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/RConsortium/pharma-skills.git --path admiral/admiral-bds--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 RConsortium/pharma-skills --skill admiral-bds -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install RConsortium/pharma-skills admiral-bds --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RConsortium/pharma-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/admiral/admiral-bds .gemini/skills/admiral-bds && 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 "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .gemini/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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 RConsortium/pharma-skills admiral-bdsInstalls 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 RConsortium/pharma-skills --skill admiral-bds -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/RConsortium/pharma-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/admiral/admiral-bds .github/skills/admiral-bds && 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 "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .github/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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 RConsortium/pharma-skills --skill admiral-bds -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install RConsortium/pharma-skills admiral-bds --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RConsortium/pharma-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/admiral/admiral-bds .opencode/skills/admiral-bds && 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 "admiral-bds" agent skill from https://github.com/RConsortium/pharma-skills/tree/main/admiral/admiral-bds into .opencode/skills/admiral-bds/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "admiral-bds", 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.
admiral-bdsDerives ADaM Basic Data Structure (BDS) datasets using the {admiral} R package.
Admiral Bds is an agent skill from RConsortium/pharma-skills. Derives ADaM Basic Data Structure (BDS) datasets using the {admiral} R package. Initial scope covers ADVS (vital signs) and ADLB (laboratory values). Use when a user needs to create a BDS findings dataset from SDTM domains, derive parameter assignments, baseline values, change from baseline, visit windowing, or analysis flags, following CDISC ADaM conventions. Requires SDTM input data, an ADaM BDS specification, and a completed ADSL.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `DESIGN.md`, `README.md` and `benchmarks/README.md`). Compatibility notes: Requires R with admiral, dplyr, lubridate, and pharmaversesdtm installed. Requires a completed ADSL dataset. Designed for use in a GxP-compliant environment…
The repository describes itself as: A collection of agent skills for BioPharma use cases GSDBench Intake https://rconsortium.github.io/pharma-skills/gsdbench-intake/. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ae5d83b. 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 r).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Requires R with admiral, dplyr, lubridate, and pharmaversesdtm installed. Requires a completed ADSL dataset. Designed for use in a GxP-compliant environment with access to SDTM datasets and an ADaM BDS specification.
From compatibility in the SKILL.md frontmatter.
Admiral Bds loads about 3.6k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 998 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 RConsortium/pharma-skills at commit ae5d83b, republished under its MIT licence (© RConsortium). 998 words, ~3,639 tokens.
.claude/skills/admiral-bds/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Shared conventions (library setup, pipe style, date rules, flag convention,
# REVIEW:annotations,stopifnot()patterns) are defined in the parent../SKILL.md. The workflow below is BDS-specific.
Derives CDISC-conformant BDS findings datasets using {admiral}. Outputs executable, QC-ready R code for ADVS and ADLB with full derivation traceability.
See bds-conventions reference for BDS variable
conventions and record structure. See
../admiral-adsl/references/admiral-functions.md
for function selection guidance shared across the admiral family.
Before generating code, confirm the following are available or explicitly noted as absent:
| Input | Required | Notes |
|---|---|---|
| VS or LB | Yes | Source SDTM domain for ADVS or ADLB respectively |
| ADSL | Yes | Provides TRTSDT, TRTEDT, treatment variables, and population flags |
| ADaM BDS spec | Yes | Parameter list, derivation rules, visit windows, baseline definition |
| Study context | Yes | Baseline window, analysis flag definitions, visit map |
If ADSL is absent, stop and request it. ADSL variables are required before baseline flagging and analysis flags can be derived.
Follow these steps in order. Generate code section by section, not as a single block.
library(admiral)
library(dplyr)
library(lubridate)
library(pharmaversesdtm)
# Load source domain — replace with vs/lb per dataset being derived
vs <- pharmaversesdtm::vs
adsl <- <loaded ADSL dataset>
# Remove DOMAIN to avoid conflicts in derive_vars_merged() calls
vs <- select(vs, -DOMAIN)Bring required ADSL variables into the source dataset before any derivations. At minimum: TRTSDT, TRTEDT, population flags used as analysis set criteria.
# REVIEW: Confirm which population flags and ADSL variables are required by
# the ADaM spec for this dataset. Add or remove from new_vars accordingly.
advs <- vs |>
derive_vars_merged(
dataset_add = adsl,
by_vars = exprs(STUDYID, USUBJID),
new_vars = exprs(TRTSDT, TRTEDT, TRT01P, TRT01PN, TRT01A, TRT01AN,
SAFFL, ITTFL)
)Map SDTM test codes to ADaM parameters. Use derive_vars_merged_lookup() with a
lookup table driven by the ADaM spec. Do not use derive_vars_merged() here —
it is not a lookup function and will not correctly handle unmatched records. Do not use case_when() or
hardcoded if_else() chains.
# REVIEW: PARAMCD mapping must match the ADaM spec parameter list exactly.
# Confirm VSTESTCD values in VS and align with ADaM PARAMCD conventions.
# Remove parameters not in scope for this study.
param_lookup <- tibble::tribble(
~VSTESTCD, ~PARAMCD, ~PARAM, ~PARAMN,
"SYSBP", "SYSBP", "Systolic Blood Pressure", 1L,
"DIABP", "DIABP", "Diastolic Blood Pressure", 2L,
"PULSE", "PULSE", "Pulse Rate", 3L,
"WEIGHT", "WEIGHT", "Weight", 4L,
"HEIGHT", "HEIGHT", "Height", 5L,
"TEMP", "TEMP", "Temperature", 6L
)
advs <- advs |>
derive_vars_merged_lookup(
dataset_add = param_lookup,
by_vars = exprs(VSTESTCD),
new_vars = exprs(PARAMCD, PARAM, PARAMN)
) |>
filter(!is.na(PARAMCD)) # drop records for out-of-scope testsFor ADLB, map from LBTESTCD. Include units in PARAM text per ADaM spec.
AVAL is the numeric analysis value. AVALC is the character analysis value. Derive from the SDTM result variables, applying unit conversions if required.
advs <- advs |>
mutate(
AVAL = VSSTRESN, # numeric result in standard units
AVALC = VSSTRESC, # character result (for non-numeric or verbatim)
AVALU = VSSTRESU # analysis value units
)For ADLB, use LBSTRESN and LBSTRESC. If unit standardisation is required
(e.g. converting mg/dL to mmol/L), apply before AVAL assignment and add a
# REVIEW: comment referencing the protocol-specified units.
advs <- advs |>
# ADT: analysis date from VSDTC
derive_vars_dt(
dtc = VSDTC,
new_vars_prefix = "A",
date_imputation = "first",
flag_imputation = "auto"
) |>
# ADY: study day relative to TRTSDT
derive_vars_dy(
reference_date = TRTSDT,
source_vars = exprs(ADT)
)For ADLB, replace VSDTC with LBDTC.
Map SDTM VISIT/VISITNUM to ADaM AVISIT/AVISITN. Use the visit map from the ADaM spec — do not pass VISIT through directly to AVISIT.
# REVIEW: Visit map must come from the ADaM spec. The example below is
# illustrative. Confirm VISIT names and AVISITN codes against the study CRF
# and ADaM spec before use.
visit_map <- tibble::tribble(
~VISIT, ~AVISIT, ~AVISITN,
"SCREENING 1", "Screening", -1L,
"BASELINE", "Baseline", 0L,
"WEEK 2", "Week 2", 2L,
"WEEK 4", "Week 4", 4L,
"WEEK 8", "Week 8", 8L,
"WEEK 16", "Week 16", 16L,
"WEEK 26", "Week 26", 26L
)
advs <- advs |>
derive_vars_merged_lookup(
dataset_add = visit_map,
by_vars = exprs(VISIT),
new_vars = exprs(AVISIT, AVISITN)
)For studies with date-driven visit windowing (ADT-based assignment), use
derive_vars_joined() with a window table that maps ADY ranges to analysis
visits instead of the direct VISIT lookup above.
The baseline record is the last non-missing, non-excluded record on or before
TRTSDT for each subject-parameter combination. Use restrict_derivation() +
derive_var_extreme_flag() — do not flag baseline with mutate() or filter().
# REVIEW: Baseline window definition is protocol-specific. Confirm whether
# the baseline is the last pre-dose record (ADT <= TRTSDT), last on-or-before
# treatment start, or a specific visit (e.g. DAY 1 only). Adjust filter below.
advs <- advs |>
restrict_derivation(
derivation = derive_var_extreme_flag,
args = params(
by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE),
order = exprs(ADT, AVISITN),
new_var = ABLFL,
mode = "last"
),
filter = ADT <= TRTSDT & !is.na(AVAL)
)If multiple baseline definitions apply (e.g. last pre-dose and last
pre-treatment), add a BASETYPE variable to distinguish them before flagging.
Derive BASE and BASEC from the flagged baseline records.
advs <- advs |>
derive_var_base(
by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE),
source_var = AVAL,
new_var = BASE
) |>
derive_var_base(
by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE),
source_var = AVALC,
new_var = BASEC
)Derive after BASE is present. CHG and PCHG are NA for the baseline record itself
and for any post-baseline record where BASE is NA.
advs <- advs |>
derive_var_chg() |> # CHG = AVAL - BASE
derive_var_pchg() # PCHG = CHG / BASE * 100; NA if BASE = 0 or NAIf CHG is not in scope per the ADaM spec (e.g. for categorical parameters), omit these calls and add a note in the code.
ANL01FL flags the records used in primary analysis. The definition is
protocol- and study-specific. Derive with restrict_derivation().
# REVIEW: ANL01FL definition is protocol-specific. The condition below
# (on-treatment, non-baseline) is a common starting point. Confirm against
# the SAP before use.
advs <- advs |>
restrict_derivation(
derivation = derive_var_extreme_flag,
args = params(
by_vars = exprs(STUDYID, USUBJID, PARAMCD),
order = exprs(ADT, AVISITN),
new_var = ANL01FL,
mode = "last"
),
filter = ADT >= TRTSDT & !is.na(AVAL) & is.na(DTYPE)
)Additional derivations specific to vital signs:
VSTEST mapping for PARAM units: Include units in PARAM text per spec (e.g.
"Systolic Blood Pressure (mmHg)"). Confirm unit conventions from VSSTRESU.
Position variable (VSPOS): If VSPOS is in scope, carry through from VS and include in uniqueness assertions — ADVS uniqueness is typically per USUBJID + PARAMCD + AVISIT + VSPOS.
# Uniqueness assertion — adjust key variables per spec
stopifnot(
advs |>
filter(is.na(DTYPE)) |>
count(STUDYID, USUBJID, PARAMCD, AVISITN, VSPOS) |>
filter(n > 1) |>
nrow() == 0
)Duplicate records: If multiple VS records exist for the same
subject-parameter-visit (e.g. triplicate BP measurements), decide with the
statistician whether to: (a) average them and add DTYPE = "AVERAGE", (b) flag
only one using ANL01FL, or (c) retain all. Add a # REVIEW: comment with
the chosen approach.
Additional derivations specific to laboratory values:
Normal ranges: Carry LBSTNRLO and LBSTNRHI from LB as ANRLO and ANRHI.
adlb <- adlb |>
derive_vars_merged(
dataset_add = lb |> select(-DOMAIN),
by_vars = exprs(STUDYID, USUBJID, LBTESTCD, VISIT),
new_vars = exprs(ANRLO = LBSTNRLO, ANRHI = LBSTNRHI)
)Reference range indicator (ANRIND): Map to controlled terminology values
("LOW", "NORMAL", "HIGH", "LOW LOW", "HIGH HIGH").
# REVIEW: ANRIND derivation rules may be protocol-specific if the study
# uses non-standard normal range definitions.
adlb <- adlb |>
mutate(
ANRIND = case_when(
AVAL < ANRLO ~ "LOW",
AVAL > ANRHI ~ "HIGH",
!is.na(AVAL) ~ "NORMAL"
)
)Baseline reference range indicator (BNRIND): Carry ANRIND where ABLFL == "Y".
adlb <- adlb |>
derive_var_base(
by_vars = exprs(STUDYID, USUBJID, PARAMCD, BASETYPE),
source_var = ANRIND,
new_var = BNRIND
)Toxicity grades: If CTCAE grading is in scope, derive ATOXGR from LB.LBTOXGR
using derive_vars_merged() and carry BTOXGR from baseline.
# Key uniqueness check — adjust by_vars per dataset and spec
key_vars <- c("STUDYID", "USUBJID", "PARAMCD", "AVISITN")
dup_check <- advs |>
filter(is.na(DTYPE)) |>
count(across(all_of(key_vars))) |>
filter(n > 1)
if (nrow(dup_check) > 0) {
stop("Duplicate records found: ", paste(key_vars, collapse = ", "))
}
# Check required BDS variables are present
required_vars <- c(
"STUDYID", "USUBJID", "PARAM", "PARAMCD", "PARAMN",
"ADT", "ADY", "AVISIT", "AVISITN",
"AVAL", "BASE", "CHG", "ABLFL", "ANL01FL"
)
missing_vars <- setdiff(required_vars, names(advs))
if (length(missing_vars) > 0) {
stop("Missing required BDS variables: ", paste(missing_vars, collapse = ", "))
}
# Apply variable labels and export via xportr — see adsl-conventions.md for patternfilter() + mutate() to flag baselines instead of
restrict_derivation() + derive_var_extreme_flag() — the admiral functions
are required for reproducibility and traceabilityBASETYPE before restrict_derivation() when multiple baseline
definitions exist — results in incorrect BASE values for subjects with more
than one baseline windowderive_var_chg() depends on BASE
being present; sequence mattersDTYPE != NA records from uniqueness checks (synthetic rows are intentional
duplicates by USUBJID + PARAMCD + AVISITN)derive_vars_merged() instead of derive_vars_merged_lookup() for
PARAMCD/PARAM/PARAMN assignment — derive_vars_merged() is primarily used for ADSL
backbone merges; parameter code mappings must use derive_vars_merged_lookup()
so that unmatched records are retained and filterable via filter(!is.na(PARAMCD))"N" for ABLFL or ANL01FL — flag convention is "Y" or NA only# REVIEW: comment — normal range logic
is almost always protocol-specificBefore returning code, verify:
derive_vars_merged() callsderive_vars_merged_lookup() — not derive_vars_merged(), not case_when()derive_vars_dt(), not as.Date() on VSDTC/LBDTCderive_vars_dy()restrict_derivation() + derive_var_extreme_flag()derive_var_base()derive_var_chg() / derive_var_pchg()# REVIEW: referencing SAP definition# REVIEW: comments placed at protocol-specific decision pointsflag_imputation = "auto" used for date derivations"Y" or NA, never "N"© RConsortium, MIT. 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 5 other files (references) in admiral/admiral-bds of RConsortium/pharma-skills.
Open the folder on GitHubat commit ae5d83b
Admiral Bds 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 |
|---|---|---|---|---|---|---|
| Admiral Bds this skillRConsortium/pharma-skills | 120 | — | ~3.6k | Automated safety check: Pass | MIT | |
| DatasetsArize-ai/phoenix | 12k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Longbridge Derivativessickn33/agentic-awesome-skills | 47k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Dataset Curationwshobson/agents | 40k | — | ~2k | Automated safety check: Pass | MIT | |
| Arize Datasetgithub/awesome-copilot | 40k | 1 repos | ~3.9k | Automated safety check: Notes | MIT | |
| Bigquery Basicsdavila7/claude-code-templates | 33k | — | ~1.1k | Automated safety check: Pass | MIT |
Arize-ai/phoenix
Understand what a Phoenix dataset is and reason well about its examples, outputs, splits, and how it feeds evaluators and experiments.
sickn33/agentic-awesome-skills
Curated upstream guidance for Longbridge Derivatives; use when the workflow matches the user goal.
wshobson/agents
Prepare, format, and validate datasets for supervised fine-tuning and preference training.
github/awesome-copilot
Creates, manages, and queries Arize datasets and examples. An agent skill from github/awesome-copilot.
davila7/claude-code-templates
Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights.
bergside/awesome-design-skills
Print-inspired visual language for books, magazines, and reports with editorial grids and expressive typography.
RConsortium/pharma-skills
Audit R code that prepares CSR/TLF statistics for SAS-compatible rounding compliance (ties away from zero, round-once-at-display, fixed trailing-zero precision).
RConsortium/pharma-skills
Converts one or more GitHub Issues into standardized benchmark data using automated scripts.
RConsortium/pharma-skills
Generate a concise weekly progress summary for the pharmaskills repository.
RConsortium/pharma-skills
Derives an ADaM Adverse Events Analysis Dataset (ADAE) using the {admiral} R package and pharmaverse ecosystem.
RConsortium/pharma-skills
Derives an ADaM Subject-Level Analysis Dataset (ADSL) using the {admiral} R package and pharmaverse ecosystem.
RConsortium/pharma-skills
Derives CDISC SDTM domains from raw clinical (EDC/eCRF) data using the {sdtm.oak} R package.
Derives ADaM Basic Data Structure (BDS) datasets using the {admiral} R package. Admiral Bds is an agent skill from RConsortium/pharma-skills. Derives ADaM Basic Data Structure (BDS) datasets using the {admiral} R package.
Admiral Bds fits situations like: A user needs to create a BDS findings dataset from SDTM domains; derive parameter assignments; baseline values; change from baseline.
Run `npx skills add RConsortium/pharma-skills --skill admiral-bds -a claude-code`. Or copy the skill folder (admiral/admiral-bds in RConsortium/pharma-skills) into .claude/skills/admiral-bds in your project. Claude Code loads it when a task matches its description.
Run `npx skills add RConsortium/pharma-skills --skill admiral-bds -a codex`. Or copy the skill folder (admiral/admiral-bds in RConsortium/pharma-skills) into .agents/skills/admiral-bds 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 RConsortium/pharma-skills --skill admiral-bds -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/admiral-bds, .gemini/skills/admiral-bds, .github/skills/admiral-bds and .opencode/skills/admiral-bds in your project.
SKILL.md names no scripts, command-line tools or credentials: Admiral Bds is instructions for the agent only. Compatibility (from SKILL.md): Requires R with admiral, dplyr, lubridate, and pharmaversesdtm installed. Requires a completed ADSL dataset. Designed for use in a GxP-compliant environment with access to SDTM datasets and an ADaM BDS specification. .
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Admiral Bds is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k 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 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Admiral Bds: Datasets (Arize-ai/phoenix, 12k stars), Longbridge Derivatives (sickn33/agentic-awesome-skills, 47k stars), Dataset Curation (wshobson/agents, 40k stars) and Arize Dataset (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
RConsortium (a GitHub organization) maintains it in RConsortium/pharma-skills, which has 120 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 4, 2026.
Source: RConsortium/pharma-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.