skills/ersilia-model-test/SKILL.md
Tests an Ersilia Model Hub model before hub incorporation. Runs `ersilia test --shallow` on a locally cloned model repository, reads the results, identifies failing checks, and proposes a debugging strategy to the user — but does not apply fixes automatically. Use this skill whenever a user wants to test, validate, or debug an Ersilia model before submitting it to the hub, mentions test failures, says "the test is failing", or is preparing a model for hub incorporation. Trigger even if the user just says "test the model" or "run ersilia test" in any Ersilia context.
npx skillsauth add ersilia-os/claude-ersilia-skills ersilia-model-testInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Your job is to run the Ersilia shallow test on a locally cloned model, read the results, and tell the user what is failing and how to fix it. You propose fixes — you do not apply them unless the user explicitly asks you to.
eos + 4 alphanumeric characters, e.g. eos4ywv)/home/user/eos4ywv)If either is missing, ask the user before proceeding.
Always run inside the ersilia conda environment, from the model directory:
cd <model_path>
conda run -n ersilia ersilia test <model_id> --shallow --from_dir <model_path>
This produces a JSON report <model_id>-test.json in the current directory. Capture the terminal output too — it often contains error tracebacks that explain why a check failed.
Important: Never delete, remove, or modify any directories or folders. Never touch run.sh. Never touch run_output.csv.
Read <model_id>-test.json. It contains boolean results for each check.
Ignore — these are auto-populated after hub merge and not your concern:
"not present" (S3 URL, DockerHub, model size, incorporation date, computational performance, release version, etc.)Focus on everything that is false. Group them:
simple_model_run: false) — the model crashes on execution. This is the most critical. All other checks below it will also be false as a side effect — focus on fixing the run first.model_description, model_task, etc.For each failing check, read the relevant files to understand the root cause. Do not guess — look at the actual code and config. Relevant files to read:
| Failing check | Files to read |
|---------------|--------------|
| simple_model_run | model/framework/code/main.py, terminal error output |
| model_description | metadata.yml (check Description field length — max 600 characters) |
| metadata_* | metadata.yml |
| columns / metadata_dim_and_run_column_file_dim_check | model/framework/columns/run_columns.csv, metadata.yml |
| install_yaml_check | install.yml |
| check_consistency_of_model_output / rmse_mean | model/framework/code/main.py (look for random seeds, stochastic operations) |
See references/troubleshooting.md for specific causes and fixes for each check type.
After diagnosing, give the user a clear summary structured like this:
Test result: X checks failing (ignoring "not present" fields)
For each failing check:
Then ask: "Would you like me to apply these fixes?"
Only apply fixes if the user says yes. If the user asks you to apply, make the changes and then re-run the test to confirm.
<model_id>/
├── model/
│ ├── framework/
│ │ ├── run.sh ← NEVER modify
│ │ ├── code/
│ │ │ └── main.py
│ │ ├── examples/
│ │ │ ├── run_input.csv
│ │ │ └── run_output.csv ← NEVER modify
│ │ └── columns/
│ │ └── run_columns.csv
│ └── checkpoints/ ← do not modify
├── metadata.yml
└── install.yml
testing
Produce the weekly Ersilia literature digest covering AI/ML for drug discovery, antibiotic and antimicrobial discovery, NTDs and AMR, and open science for global health — through an explicit LMIC and decolonisation lens. Use this skill whenever the user asks to prepare, run, or refresh the literature digest. Triggers include: "weekly literature digest", "literature digest for Ersilia", "/literature-digest", "lit digest this week", "what did we miss last week", "digest the literature". Always use this skill for digest requests even if the ask seems simple.
testing
A minimal test skill to verify that the ersilia-skills repository and local setup (symlinks, git hook) are working correctly. Use this skill to confirm that skill loading, slash commands, and the setup.sh workflow are functioning as expected. Trigger on phrases like "run test skill", "check skill setup", or "verify ersilia skills".
development
How to create Python plots using the stylia package — Ersilia's matplotlib wrapper for publication-ready figures. ALWAYS use this skill when the user says anything like "make a plot", "plot this", "plot the results", "visualize", "prepare a plotting function", "show me a chart", "can you plot", "add a figure", or any similar phrasing during a coding session. This includes scatter plots, line plots, bar charts, heatmaps, histograms, ROC curves, and any other chart type. Also trigger on requests to visualize data, compare values, show distributions, or create any kind of figure — even if the user does not mention stylia or matplotlib explicitly. Never generate matplotlib figures without stylia — always use stylia.create_figure() instead of plt.figure() or plt.subplots().
documentation
Create LinkedIn post drafts and end-of-month newsletter content for Ersilia Open Source Initiative. Use this skill whenever the user asks to plan LinkedIn posts, draft a monthly content schedule, write a weekly post, or create the monthly newsletter digest. Triggers include: "start of month", "end of month", "write a LinkedIn post", "prepare this month's posts", "draft the newsletter", "monthly update", "weekly post", or any request to create content for Ersilia's LinkedIn or newsletter. Also triggers when the user uploads a content calendar (PDF or text) and asks for posts for a given month. Always use this skill for any Ersilia content creation request, even if the ask seems simple.