# shidi ยท ๅธๅผ โ Your Junior Lab Mate in an Agent Skill ๐งโ๐ฌ
*Research workflow skill for AI coding agents: literature review ยท experiment design ยท scientific figures ยท paper reading ยท data organization*
### *You bring the ideas, shidi does the legwork.*
[](LICENSE)
[](https://github.com/IcyCreamDAS/shidi-skill/releases)
[](https://github.com/IcyCreamDAS/shidi-skill/stargazers)
[](README.md)
[](README.md)
[](https://github.com/IcyCreamDAS/shidi-skill/pulls)
[ไธญๆ](./README.md) | English
**Start with an interest, identify gaps in cross-field evidence, and form a testable research question.** Shidi organizes search, source retrieval, candidate comparison and validation plans into reusable files.
> shidi (*"junior lab mate"* in Chinese) is a complete research workflow that lives inside your AI IDE โ not a prompt template. Hand it an idea (literature research / experiment design / figures / paper reading / data chores), and it returns **real deliverable files**. Deliverables are saved in your working directory. No platform or model lock-in.
>
> It's not fire-and-forget, either โ shidi is meant to be bossed around while you do something else. Say "shidi, help me with โฆ", and it asks when it must, runs the rest, and hands you the files.
> **Built for AI for Science workflows, grad students and researchers using agentic AI** โ literature review, experiment design, figures and paper reading become deliverable, cross-verifiable files instead of chat answers.
What's New ยท
Deliverables ยท
Why shidi ยท
Quick Start ยท
Demo ยท
Guardrails ยท
AI4S
---
## ๐ Demo
> Screenshots below are **illustrative** (content redacted) โ real runs produce fresh files for your own topic.
---
## โจ What's New
- **2026-10-28: v0.4.1 file delivery fixes** โ preserve the previous PDF until a fresh export succeeds, reject duplicate paper IDs, and keep separate PDF input paths with hash-checked caches. Pro/Flash helpers are updated together; historical competition snapshots stay frozen.
- **2026-10-27: Pro / Flash modes** โ One installation includes both workflows. Pro is the default; request โquick researchโ or โflash modeโ for Flash. Released to the default `main` branch through a pull request.
- **2026-10** โ ๐ก **Release self-check loop**: GitHub Actions CI + `validate.py` (version, links, script compilation, required files) + offline `tests/` ยท published `verify_refs.py` (DOI resolution, retraction detection, style lint) ยท fixed the `render_report.py` timeout bug and added cross-platform browser discovery ยท `fetch_pdfs.py` no longer hardcodes an email and now backs off on 429/5xx
- **2026-10** โ ๐ฌ **Deterministic scoring + data schema + AI4S demo upgrade**: `score_papers.py` seven-dim scoring (caps, veto and ranking computed by script; v2 lowers journal/network weight) ยท literature โ formulation/property extraction schema (test standard, conditions, n, error, three claim labels) ยท demo upgrade (mass closure, ARD length scales, ECI acquisition, 1-2 benchmark-run calibration, Pareto front, literature-prior bounds)
- **2026-08** โ ๐ฅ Batch PDF download (OpenAlex/Unpaywall OA lookup; failures classified and reported, never silently skipped)
- **2026-08** โ ๐ Multi-format reports (Markdown โ HTML โ PDF via headless Edge printing, zero deps)
- **2026-08** โ ๐ PDF extraction layer (text-based โ Markdown to save context; scans auto-tagged `needs_vision` for the vision route)
- **2026-08** โ ๐ Per-angle intermediate reports (parallel multi-agent research: one file per angle, merge by reading files only โ main context never overflows)
## ๐ค Deliverables
Every job ends in **real files** โ not chat text.
๐ Final Report๏ผ`~/shidi-output/`๏ผ
Markdown / Word ยท full report or experiment plan
shidi_<topic>_v3_20260814.md
โโโ 1. Background & chosen approach
โโโ 2. Principle (literature-anchored)
โโโ 3. Steps & details
โโโ 4. Precautions
โโโ 5. Flaw list (unvarnished)
โโโ 6. Literature summary (by angle)
โโโ 7. References (reading depth โ
/โ /โ)
โโโ 8. Changelog (v1โv2โv3)
|
โ
Cross-Verification Brief๏ผ`~/shidi-verify/`๏ผ
A task sheet for another LLM โ also your self-check list
shidi-verify_<topic>_v3_20260814.md
โโโ 1. Task description
โโโ 2. Original question (verbatim)
โโโ 3. Full output (with reading depth)
โโโ 4. Verification checklist
โโโ 5. Required output format
|
> Every delivery looks like this. Take the brief to **another LLM** for independent verification โ every comment gets an adopt/reject + reason, loop until you're satisfied.
## โจ Why shidi
| Chatting with a raw model | shidi |
|:--|:--|
| Answers live in the chat log | Delivers **files**: reports, briefs, figures, CSVs โ archivable, citable, shareable |
| You nudge it step by step | Built-in workflow (search โ score โ read โ report โ verify); answer 3 parameters and it runs |
| Hallucinations on your conscience | Seven-dim scoring (computed by script), DOI/retraction verification, DOI triple-dedup, no-fabrication rule, honest reading-depth labels, mandatory verification brief |
| Behavior changes with the model | Pure SKILL.md + Markdown โ works in Claude Code / Codex / OpenClaw / any SKILL.md agent |
## ๐ Capabilities
| Capability | Description |
|:--|:--|
| ๐ **Literature research** | 3 parameters up front โ 3ร3=9 angles โ top-journal targeted search + fallback chain โ seven-dim scoring (v2, script-checked) โ graded reading โ batch PDF download โ file report |
| ๐งช **Experiment design** | Free-form approach brainstorm โ literature-backed โ principle / steps / precautions / **unvarnished flaw list** |
| ๐ **Figures** | CSV/TXT/Excel โ clean โ compute (numpy/scipy/sympy) โ publication-grade rendering, with Origin-ready data export |
| ๐ฌ **Paper reading** | source-map six-step deep read โ 16-section paper cards โ glossary |
| ๐ **Cross-verification (the soul)** | Always emits a verification brief โ another LLM checks independently โ iterate in loops |
| ๐ **Lab notes** | Standardized experiment/batch IDs, YAML frontmatter archiving |
## ๐งช AI4S Evidence
[`examples/materials_small_data/`](examples/materials_small_data/) is a **synthetic-only**, small-data formulation โ property demo that shows the claim discipline shidi uses for AI4S data work:
- **Grouped validation** (leave-one-project-out) โ sibling samples from the same project never leak into training, so scores stay honest
- **GP predictions with uncertainty** โ empirical coverage of ยฑ1ฯ / ยฑ2ฯ on held-out projects, compared with the 68% / 95% targets
- **Batch calibration test** โ zero-shot vs adding 1โ2 benchmark runs from the new project; coverage barely moves, and the negative result is reported instead of hidden
- **ARD feature relevance** โ per-feature GP length scales (smaller = more influential; at the upper bound = the data cannot identify a dependence)
- **Constrained search with ECI** โ `ECI = EI ร P(MFR โฅ 28)` instead of a hard feasibility cutoff, plus a feasibility-only shortlist
- **Multi-objective Pareto front** โ tensile strength vs MFR posterior means
- **Mass-fraction closure** โ filler + additive_a + additive_b + matrix = 100 wt%; candidates keep `matrix โฅ 40 wt%`
- **Literature-prior interface** โ `priors_template.csv` feeds survey bounds into the search space (bounds only, no prior mean)
- **Separated evidence labels** โ `measured` / `predicted` / `exploratory`; only `measured` may be reported as a result
- **Hard rule: an exploration screening range is NOT a statistical confidence interval**
```bash
cd examples/materials_small_data
pip install -r requirements.txt && python run_demo.py
python run_demo.py --priors priors_template.csv # constrain the search space with survey bounds
```
**What it does not claim:** the data is synthetic, so it predicts no property of any real material; the GP scores do not transfer to any real formulation dataset; the shortlist is not proven better than an experienced engineer's DOE intuition; independent single-output GPs ignore output correlation (tensile โ flexural โ 0.9); 1โ2 benchmark runs do not calibrate a batch offset (that needs a mixed-effects GP). Real industrial formulations stay under NDA โ what is published here is the **method**, not data.
## ๐งญ Flow
```mermaid
flowchart TD
A["Decide topics"] --> B["Research"]
B --> C["3 parameters
{count, domain, requirements}"]
C --> D["Search (T1โT2โT3)"]
D --> H["Merge & score"]
H --> E["Read (โ
/โ /โ)"]
E -->|out| F["Lit summary โ "]
E -->|out| G["References โกโข
PDF or DOI+GB/T 7714"]
F --> I{"More full-texts?"}
G --> I
I -->|yes| J["User uploads PDF"]
J -->|supplement| H
I -->|no| K["Final report"]
I -->|no| L["Verify brief (always)"]
K --> M{"Cross-verify?"}
L --> M
M -->|yes| N["Another LLM checks"]
N -->|revise| D
M -->|no| O["Done โ"]
```
## ๐ Quick Start
```bash
git clone https://github.com/IcyCreamDAS/shidi-skill.git
mkdir -p ~/.claude/skills
cp -r shidi-skill/skills/shidi ~/.claude/skills/
```
Then just say:
```text
ๅธๅผ๏ผๅธฎๆ่ฏฆ็ป่ฐ็ ไธไธ XXX # Pro
ๅธๅผ๏ผ่ฏทไฝ ็จ pro ๆจกๅผ็ปๆ่ฐ็ ไธไธ XXX # Pro
ๅธๅผ๏ผๅธฎๆๅฟซ้่ฐ็ ไธไธ XXX # Flash
ๅธๅผ๏ผ่ฏทไฝ ็จ flash ๆจกๅผ็ปๆ่ฐ็ ไธไธ XXX # Flash
```
**One download includes the complete Pro and Flash modes.** If the request does not specify โ่ฏฆ็ปโ, โๅฟซ้โ, โproโ, or โflashโ, it defaults to **Pro**: structured searching, interactive clarification, and deep deliverables. Flash minimizes confirmation and starts quickly. Modes change the workflow and use the models supported by the host.
Other examples:
```text
shidi, design an experiment for XX
shidi, plot this data
shidi, read this paper in depth for me
```
Just "shidi" works too โ it confirms the task type before starting. Compatible with any agent that follows the SKILL.md spec (Claude Code / Codex / OpenClaw / OpenCodeโฆ).
> [!IMPORTANT]
> ### An executor, not a genie
> `harness + model = agent` โ shidi owns the workflow, the model sets the ceiling. Pro returns angle selection and parameter confirmation to you; Flash proposes defaults and reduces formal confirmation. It takes the grunt work; the ideas and judgment stay yours.
## ๐ค Persona
- Calls you "senior" (or "senior sister" if you say so)
- A humble, slightly cheeky junior: *"here's what I made, what do you think?"*
- Praises you when corrected ("good catch, senior"), never bends on science
- Persona activates only on the trigger word โ other conversations unaffected
*Yes, it asks a lot of questions โ that's how you know it's really shidi.*
## โ๏ธ Dependencies
- **Zero core deps**: pure SKILL.md + Markdown, nothing to install
- Report rendering: `markdown` (HTML/PDF), plus a local Edge / Chrome / Chromium for PDF (auto-discovered cross-platform; override with `SHIDI_BROWSER`)
- Optional: numpy/scipy/matplotlib/pandas/sympy (figures; pyvista for 3D), pdf-inspector (PDF extraction layer)
- Scoring / citation scripts (`score_papers.py`, `verify_refs.py`): stdlib only
- Search fallback chain: WebSearch โ open scholarly APIs (OpenAlex/Crossref/arXiv, no keys needed); the Unpaywall fallback in PDF download needs `UNPAYWALL_EMAIL`
## ๐ก Guardrails
1. Capped seven-dim scoring; totals and ranking computed by `score_papers.py`, never by the model
2. Topic-match <10 โ veto
3. DOI / arXiv ID / URL triple dedup
4. **No fabrication** โ unverifiable claims are labeled "unverified"; every report passes `verify_refs.py` (DOI resolution / retractions / style) before rendering
5. Honest reading-depth labels: full text โ
/ abstract โ / unavailable โ
6. Every verification comment gets adopt/reject + reason โ never blind agreement
## ๐ Credits
Design ideas borrowed from [nature-skills](https://github.com/Yuan1z0825/nature-skills) (Yuan1z0825 team): routing, scoring dimensions (v1 six-dim โ v2 seven-dim), search fallback chain, paper cards.
## ๐ License
[MIT License](LICENSE) โ free to use; just buy shidi a bubble tea ๐ง
[ๅ
ฌๅผ่ตๆบไธๅๅฒ่ๅด / Public resources and historical scope](PRIVACY.md)