Why use it: There is a paper to reproduce, and you want the result to be a verified modularized skill rather than a summary.
What it produces: <workspace_root>/<paper_slug>/skills/ (the generated skill, still staging until import is approved) and <workspace_root>/<paper_slug>/distillation/reports/final/ (final report).
1. Prepare the config file
There are two TOML files in the repo, with the same schema:
| File | Role |
|---|---|
examples/creator/paper-to-skills/distiller-run-config.toml |
Starter is heavily commented — use this one |
cli/packages/coding-agent/src/disco/skills/create-paper-skills/assets/distiller-run-config-template.toml |
Canonical template kept by the skill |
From the root of the AREX-Skill checkout:
cp examples/creator/paper-to-skills/distiller-run-config.toml \
/absolute/path/to/distiller-run-config.toml
2. Fill in at least 3 fields
schema_version = 1
[defaults]
workspace_root = "/absolute/path/to/paper2skills-workspace" # ① BẮT BUỘC sửa
[[runs]]
paper_slug = "my_paper_slug" # ② BẮT BUỘC sửa
paper_source = "/path/to/paper.pdf" # ③ BẮT BUỘC sửa
original_repo_source = "unknown"
paper_source accepts: local PDF/text path · direct PDF URL · arXiv URL or ID · paper title.
original_repo_source accepts: local repo path · Git/GitHub URL · "none" · "unknown".
Adding a second paper = adding another [[runs]] block.
3. Knobs to understand before running (not every default is harmless)
| Field | Default | Meaning |
|---|---|---|
recovery_mode |
"hard" |
hard: reduced/proxy/toy/fallback runs are only recorded as diagnostics, not counted as successful recovery. To accept them you must choose soft explicitly |
ask_before_expensive_recovery |
true |
Stop and ask before burning resources |
repo_discovery_mode |
"ask" |
ask stop and ask before going to find the install repo · auto automatically find GitHub and clone the first candidate · disabled never search automatically |
allow_title_top_hit |
false |
Do not accept the first result on your own when searching by paper title |
iteration_budget |
10 |
Maximum number of refine rounds |
network_timeout_seconds |
120 |
|
command_timeout_seconds |
20 |
|
runtime_constraints |
(string) | The starter default forbids touching the shared conda env, requiring use of an isolated env |
test_root / skills_root / generated_skills_root / distiller_skills_root / attempt_dir |
"" |
Leave empty to use the default layout under workspace_root |
Every field in [defaults] can be overridden per [[runs]]; leaving an empty string "" means inherit. Numeric/bool overrides must be uncommented to take effect.
4. Run
disco --creator -p "/skill:create-paper-skills Use Distiller to generate and verify paper-replication skills for each run in this config. config_path: /absolute/path/to/distiller-run-config.toml"
Short form (Creator chooses the entry itself):
disco --creator -p "Use Distiller to generate and verify paper-replication skills for each run in this config. config_path: /absolute/path/to/distiller_run_config.toml"
5. What the Distiller does (don't call each step by hand)
create-paper-skills delegates everything to paper-skills-distiller, and this chain automatically loads the supporting skills:
- Resolve the paper source (
plan-paper-skill-modulesbuilds the profile + module plan + module docs); - Generate & validate module-level skills (
create-paper-module-skill); - Prepare bounded runtime evidence (
prepare-paper-recovery-env: package, model, data, runtime); - Run the most feasible recovery experiment strongest feasible, without reading the original installation repo (
recover-paper-result); - Analyze the gap versus the paper's target → accept / refine / blocker (
analyze-paper-recovery); - Refine in
iteration_budgetif needed; - Log artifacts for each attempt + final report.
6. Where the output goes
<workspace_root>/<paper_slug>/skills/ # skill sinh ra — STAGING
<workspace_root>/<paper_slug>/distillation/reports/final/ # báo cáo cuối
The tree skills/ remains staging until approved and imported. After final validation, the Creator proposes a deployment scope for the entire graph, import only after you approve, then write the handoff for the Researcher.
7. Pitfalls
recovery_mode = "hard"is intentionally the default. If you see the report say "diagnostic" rather than "recovered", that is correct behavior, not a bug.- Do not manually invoke each paper skill. A normal run only needs one command
create-paper-skills. workspace_rootmust be an absolute path and writable — all evidence, skills, and artifacts go there.- The config path passed to DisCo must be absolute.
Next step
07-tich-hop-ci.md if you want to pin the library version in the CI of your project.