Releases: smallinaUCSD/growth-percentile-skill
Release list
v1.0.0 - First public release
v1.0.0 - First public release
Highlights since v0.2.0:
- Project renamed growth-percentile-skill (GitHub repo now matches the
name already used everywhere else: pyproject.toml, marketplace.json,
CITATION.cff). - README rewritten for end users only (install, first prompt, a "what it
can do" section, plain-language data handling). Contributor/clinical
detail moved to new TRUST_AND_LIMITATIONS.md and into CONTRIBUTING.md. - SKILL.md: agents now normalize messy, non-adapter-shaped data
themselves (flexible sex/gender columns, unit and age conversion)
instead of requiring the end user to reshape data or run a command. - Multi-agent install instructions added for Codex, OpenCode, Grok
Build, Hermes, and OpenClaw, alongside the existing Claude Code plugin
path. - Dropped the scipy dependency. The engine, adapters, and chart
generator are now pure Python standard library -- a bare python3 is
enough to run this skill, nothing to install. - Chart visuals improved (gridlines with real tick labels, centered
uppercase titles, uniform percentile-curve styling). Known limitation:
visual polish is still a work in progress; the underlying numbers are
already fully audited. - Several correctness fixes from an 8-angle code review: a silently
omitted percentile curve for a common case, a chart crash on
reference_unavailable results, unescaped patient_id HTML injection, a
CSV header-parsing bug in growth.py, and two adapters/flat.py bugs
(--map crash on malformed JSON, falsy-zero values treated as missing).
Full details: CHANGELOG.md
v0.2.0
v0.2.0
A v2 pass focused on making the skill actually easy to pick up and use
across any coding agent, plus two new capabilities.
Onboarding overhaul
- README rewritten human-first and agent-agnostic: install -> first
result (plain English, no terminal) -> bring-your-own-data -> how it
works -> limitations, instead of leading with terminal commands.
Works with Claude Code (plugin, tested end-to-end), Cursor, Codex, or
any agent that can read a markdown file and follow it. AGENTS.md(canonical repo-work instructions) +CLAUDE.md(one-line
@AGENTS.mdpointer),RELEASING.md, PR/issue templates, and a real
PR-process section inCONTRIBUTING.md.- A real, unedited screenshot of the new chart output as the README
hero image.
New: interactive growth charts
scripts/chart.py renders one self-contained HTML file per patient --
percentile curves plus the patient's own trajectory, for every age-based
indicator present. Pure SVG + vanilla JS, no charting library, no CDN,
no new Python dependency, fully offline.
New: flexible column mapping
adapters/flat.py now accepts an optional column map (--map colmap.json) so a spreadsheet with differently-named columns doesn't
need to be renamed first.
Fixed
A real bug, found while building the chart feature: cdc_lenageinf.csv
and cdc_bmiagerev.csv repeat their header row at the male/female
transition (how CDC actually publishes them) -- this crashed the CSV
parser on a code path nothing had exercised before. Fixed, with a new
golden test vector closing the coverage gap.
See CHANGELOG.md for the full list.
v0.1.0
v0.1.0
First public release of growth-percentile-skill: an open-source Agent
Skill that computes pediatric growth percentiles and z-scores against
CDC and WHO growth standards, from FHIR, Synthea, or flat-file patient
data — using a frozen, tested, deterministic engine instead of model
arithmetic.
Engine
- Cole's LMS method against real CDC 2000, CDC 2022 extended-BMI, and
WHO 2006 reference tables (checksummed, cited, downloaded from source). - Automatic WHO-vs-CDC reference selection at the 24-month boundary.
- CDC's extended-BMI method for severe obesity and modified-z-score
method for flagging biologically implausible values — both
independently verified against CDC's own published worked examples
(seereferences/METHODOLOGY.md). - Unit conversion, weight-for-length/stature pairing, derived-BMI,
prematurity flagging (flag-only in v1 — see scope notes).
Ingestion
- Three adapters: FHIR R4, Synthea CSV export, flat CSV/JSON.
- Tested against real Synthea-generated patient data (FHIR bundle and
CSV export), not hand-written fixtures — including the discovery that
Synthea (and much real-world data) uses an ambiguous LOINC code for
body length/height, resolved with a documented age-based heuristic.
Trust
- 68 unit/integration tests, all passing, including frozen golden test
vectors (tests/golden/) protected by CODEOWNERS and a checksum gate. - An agent-behavioral eval suite (
evals/,EVALUATION.md) — real
Claude subagents run against 5 scenarios. One failed on first run (an
agent hand-computed out-of-scope growth-velocity math despite a
caveat); theSKILL.mdguardrail was fixed and re-verified. Both the
failing and fixed responses are committed for auditability.
Distribution
- Installable as a Claude Code plugin (
.claude-plugin/plugin.json+
marketplace.json, verified against a live install/uninstall cycle)
or as a drop-in skill directory for any skill-compatible agent.
Scope (v1)
Weight/length/height/BMI/head-circumference-for-age, ages 0-20 years.
Does not correct for prematurity, apply condition-specific charts, or
compute growth velocity/trend — see references/METHODOLOGY.md §6-7.
Not a diagnostic tool or a substitute for clinical judgment; not FDA
cleared.
See CHANGELOG.md for the full file-by-file list.