lab-edison
Skill1 starsChanged 14 days agoMITView on GitHub
Run Edison research platform work from a lab machine: literature search, precedent, molecules, data analysis, Kosmos, dataset upload, task history and recovering a lost run, and setting up the Edison API key. User-invoked only. Use when the user asks to search the literature with Edison, submit or follow up an Edison task, check or recover a run they already started, upload data to the platform, or set up their Edison API key. The platform is run by Edison Scientific; the skill reaches it through `edison-cli`, this plugin's command around the `edison-client` package. Covers the machine-local key file, its preflight, and the rule that the key never reaches the conversation, a command line, a cluster, or a job script.
In this repository36 other files it gives its agents.
- AGENTS.mdAGENTS.md
- broSkill
- codebase-designSkill
- code-reviewSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- hq-modeSkill
- implementSkill
- implement-specSkill
- improve-codebase-architectureSkill
- ketchupSkill
- lab-containersSkill
- lab-hpcSkill
- lab-jupyterSkill
- lab-setupSkill
- prototypeSkill
- prSkill
- researchSkill
- retroSkill
- setup-matt-pocock-skillsSkill
- tddSkill
- teachSkill
- technical-writingSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- triageSkill
- unslopSkill
- unslop-zhSkill
- wait-whatSkill
- wayfinderSkill
- writing-for-agentsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Every Edison command is edison-cli <args>, which this plugin's bin/ puts on PATH under Claude Code.
- Very specific: line 30
Run edison-cli preflight and relay what it prints: one verdict per condition, never the key, the command: line saying which spelling this …
- Very specific: line 43
Never transmit the key: Never copied to a cluster, never written into a job script, never on a command line, never an …
- Distinctive: line 78
Never end a turn having reported a background job id in place of a task id.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Edison platform
The Edison research platform — run by Edison Scientific — reached from a lab machine through
edison-cli, this plugin's command around the edison-client package. references/ holds the
procedures: jobs.md routes a question to a job and is read before the first submission,
tasks.md submits, polls, cancels, names things rather than remembering ids, and finds a lost
run, datasets.md uploads data and fetches what a run made, kosmos.md is Kosmos.
Step 0 — before any Edison command
Every Edison command is edison-cli <args>, which this plugin's bin/ puts on PATH under Claude
Code. Off PATH it is
pixi run --manifest-path <plugin root>/pyproject.toml edison-cli <args> instead. jobs.md
covers both and the first run's cost.
- Run
edison-cli preflightand relay what it prints: one verdict per condition, never the key, thecommand:line saying which spelling this machine takes, and on failure the tested remedy. It owns the key file; never restate its path, mode, placeholder or fix from here. pixi: command not found, or the environment will not build → refuse, and say what to run. Install pixi from https://pixi.sh, then re-run step 0. Never fall back touv, topip, or to a hand-written client call.- Exit 1 → refuse the task. Name the condition that failed, relay the remedy, offer to run its commands, and stop — the user pastes their own key into the file themselves. Do not run the client or improvise around it.
- Exit 0 → say which source it found;
~/.claude/lab/personal.mdoverrides this skill.
Hard rules
- Never transmit the key. Never copied to a cluster, never written into a job script, never
on a command line, never an
EdisonClient(api_key=...)argument, and never intopersonal.md— skills read that file into context, so a key there lands in every transcript. - Never print it — not in an echo, a log, or a preflight. Lengths only.
- Never ask the user to type or paste it into the conversation. If it turns up in a message anyway, stop, say so, and tell them to rotate it on the platform. Pass it by environment only.
Before you spend
Show before you spend. Name the job, write the exact query to a file, show it, then submit that file — a run the user never saw is a charge they cannot audit.
Ask, and wait for an answer, before a high-reasoning literature run, before an analysis run, and before any batch of more than three tasks — the expensive shapes. An analysis run also shows the exact path going up: a wrong directory is uploaded before anyone notices. A single literature, precedent or molecules run needs only the showing above.
Never start a Kosmos run unless the user asked for that run, in those words. One objective fans out into many ordinary tasks and each of them is charged, so a run has no flat price to quote — send the user to their own platform balance. "Ask Kosmos about X" asks you to help draft the objective, not to spend; drafting it, checking the dataset and reading a run they already started cost nothing, and are usually what they meant.
Never lose the run
Run everything through edison-cli, never a hand-written call. task submit takes the query
as a file and prints the task id first; kosmos start prints the project id, the session id and
the runnable stop command. Each subcommand runs the preflight itself, so a skipped step 0 refuses
rather than spends. --help prints the rest, group by group; there is no -h.
--project and --persona take a name or an id, so nobody has to hold a UUID in their head.
A name matching nothing, or several things, is refused rather than guessed, and a project name
needs --persona beside it. tasks.md has the rest, --no-cache included.
Print the task id, then poll. It is the receipt for the credit and outlives every shell. Never end a turn having reported a background job id in place of a task id.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

