技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
paper-skills-distiller【数据与研究】Orchestrate a paper-to-skills distillation loop for AI research papers supplied as local files, URLs, arXiv ids, or titles, optionally with a local or remote repository, by resolving sources, modularizing the paper, creating module skills, preparing recovery runtime, recovering a paper result without the source repo, analyzing gaps, and iterating unt…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill as the top-level controller when a user provides a research paper source, with or without an implementation repository source, and wants the paper converted into reusable Agent Skills. The paper source may already be local, or it may be a direct PDF URL, arXiv URL/id, or paper title that must be resolved before the run starts.
All generated skill content must be written in English. Keep user-facing status in the user's language if appropriate, but artifact names, schemas, SKILL.md files, scripts, and validation reports should be English.
The default refinement budget is 10 refine cycles after the first recovery. Use the user's supplied iteration_budget when present; otherwise record iteration_budget: 10 in run_manifest.json. The user may set any non-negative integer. Stop before starting a refine cycle that would exceed this budget, and summarize the remaining feedback instead of continuing silently.
The default recovery mode is hard. In hard mode, the run must not accept reduced, proxy, toy, smaller-model, or fallback recovery as success; if the full requested standard cannot run, record a concrete blocker or return refine. In soft mode, a reduced or proxy recovery may be accepted only when it is explicitly declared, justified, executable, and passes the recovery experiment gate.
Prefer a TOML run config when the user provides one. Use
../create-paper-skills/assets/distiller-run-config-template.toml as the
fill-in template and validate it with scripts/read_run_config.py before
resolving sources or initializing runs. A config may contain one or more
[[runs]] entries for batch distillation.
Default outputs use one run directory with two main children:
<workspace_root>/<paper_slug>/distillation/ for process artifacts and
<workspace_root>/<paper_slug>/skills/ for generated reusable skills. Do not
create numbered attempt directories unless the user explicitly supplies a
custom attempt_dir for that purpose.
Use the paper or tutorial source as anchor z for task-agnostic distillation
unless the user supplies a concrete downstream replication task. For a concrete
task, record the task anchor as tau = (q, D, E, g) and use task-oriented
distillation; do not create a synthetic task tuple for a paper-only run.
The run follows four stages:
Q, module boundaries, non-goals, and
verification targets.Q in paper and permitted source evidence X, recording
provenance, revisions, exclusions, conflicts, and assumptions.G_tilde from module skills, references,
scripts, and links.G_tilde into accepted graph G and construction record
R through executable recovery, validation, refinement, deployment review,
and Researcher handoff. Task-agnostic runs use representative operating
checks when no downstream task-level outcome is defined.none, or unknown. Use it only during modularization and module skill creation. Treat it as implementation evidence, not as a substitute for paper understanding. If it is unknown, follow repo_discovery_mode: ask records candidates/blockers and asks before searching or selecting, auto may run bounded GitHub discovery and clone the top candidate, and disabled proceeds paper-only.scripts/read_run_config.py; otherwise collect the same fields from the user's prompt. For batch configs, process each normalized run independently and keep separate source-resolution, attempt, and summary artifacts. Use read_run_config.py --slug <paper_slug> --run-only to write the selected normalized run JSON passed to init_run.py --run-config.scripts/resolve_sources.py or an equivalent bounded, logged procedure. The resolver covers local paths, direct URLs, arXiv URLs/ids, arXiv title search, Git repo URLs, and repo_discovery_mode=auto GitHub repo discovery. If a title is not found there, use web search for official or scholarly sources and record the chosen URL. If title or repo discovery is ambiguous, ask the user to choose before proceeding.scripts/init_run.py using the resolved local paper path, optional resolved repo path, configured iteration_budget, configured recovery_mode, configured generated_skills_root, optional exact attempt_dir, and --run-config when a normalized config JSON exists.plan-paper-skill-modules and create:
paper_profile.mdmodule_plan.jsonmodules/plan-paper-skill-modules/scripts/validate_module_plan.py.create-paper-module-skill and create the module skill under the configured output skill root.create-paper-module-skill/scripts/validate_skill_tree.py and run its tests or smoke checks.prepare-paper-recovery-env and create environment/runtime_handoff.json from bounded package, model, GPU, benchmark, and dataset preparation. If required packages, datasets, or model caches are missing, run the active preparation path first: create/reuse an isolated recovery environment under $DISCO_CODING_AGENT_DIR/envs/ or ~/.disco/agent/envs/, install the smallest missing package set, and attempt permitted bounded model/data acquisition before treating the item as blocked.recover-paper-result and reproduce one fast, meaningful paper result without reading the original repo, using the runtime handoff as recovery input.analyze-paper-recovery and compare the recovery result with the paper target or an explicitly declared proxy target.refine, update the relevant workflow guidance, module documents, module skills, environment handoff usage, and recovery harness, then rerun steps 7-10. Stop when status is accept or the configured refinement budget is exhausted.<project-dir>/.agents/skills/. Use managed scope at ~/.disco/agent/skills/ only with evidence that the graph is self-contained, provenance-backed, independent of transient run state, representative-use verified, and reusable across projects or research tasks. Keep every module in the same scope.distill-ml-knowledge/scripts/import_operating_skill_graph.mjs once with every top-level module root and the selected scope. Overwrite requires separate approval. Write researcher-handoff.md with the selected scope and exact imported paths, then suggest /researcher; if import is declined, record that the graph remains staged.paper_profile.md, module_plan.json, or modules/*.md while searching for models, package caches, datasets, or GPUs.repo_discovery_mode or user confirmation permits it. Do not treat source acquisition as recovery evidence for reading the original repo.find /share/project ... or recursive searches across NFS roots. Search only the workspace, user-supplied paths, known cache roots, or a short explicit allowlist, and use timeouts for cache probes.hard recovery mode, do not count fallback, proxy, reduced training, subset-only evaluation, or smaller-model execution as accepted recovery. Such artifacts may be logged as diagnostics, but analysis must return refine or blocked unless the full requested standard ran.soft recovery mode, reduced or proxy recovery is allowed only as a declared target with executable evidence, generated-skill invocation logs, and recovery/experiment_validation.json passing.recover-paper-result should not repeat broad environment discovery or silently invent fallback state; it should consume environment/runtime_handoff.json and add that handoff to recovery/source_manifest.json.Each distillation directory should contain:
run_manifest.json
run_config.normalized.json # optional but preferred when a config was used
source_resolution.json # optional, when paper/repo source acquisition was needed
paper_profile.md
module_plan.json
modules/
<module_id>.md
generated_skills_validation/
<module_id>.json
environment/
runtime_handoff.json
logs/
command_log.json
recovery/
experiment_plan.md
experiment_validation.json
source_manifest.json
recovery_result.json
logs/
experiment_command_log.json
generated_skill_invocations.json
analysis/
analysis_report.json
feedback.md
final_validation.json
reports/
generated-skills/
verification/
final/
final_report.json
final_report.md
Use additional files when useful, but do not omit the core contract. Record failures as artifacts instead of relying on terminal output.
A generated module skill is acceptable only if it has:
ok is true and whose tests.attempted is
true. Prose-only inspection is not enough for either hard or soft mode.The whole paper distillation is acceptable only if:
environment/runtime_handoff.json records package availability, GPU status, model readiness or blockers, benchmark acquisition/reuse, environment mutation status, and allowed recovery sources.environment/logs/command_log.json records subprocess commands run during environment preparation, including timed-out or failed commands.recovery/logs/experiment_command_log.json.recovery/experiment_plan.md explains full/reduced/toy options and why the chosen target is the strongest feasible experiment.recovery/logs/generated_skill_invocations.json proves generated module skills were called, imported, or cross-checked.recovery/experiment_validation.json with ok: true.mechanism_checks that demonstrate the core paper mechanism ran. Do not accept a proxy solely because EM/F1 or another task metric is high.final_validation.json.reports/final/final_report.md and
reports/final/final_report.json, and the reported validation stage passes.researcher-handoff.md.run_manifest.json and run_config.normalized.json record recovery_mode, and hard-mode runs are not accepted if recovery_result.json marks is_proxy: true or mechanism_checks.reduced_training_executed: true.source/source_resolution.json or reports/final/final_report.md.$DISCO_CODING_AGENT_DIR/envs/ or ~/.disco/agent/envs/, then record the choice in source_manifest.json.Favor small, composable module skills over one monolithic "paper skill". A good split usually separates protocol/data formatting, retrieval/tool adapters, core algorithm loop, scoring/evaluation, and experiment recovery. Keep the number of modules below five by merging thin utility modules into the nearest substantive module.
If the full paper result requires heavy training or unavailable models, check recovery_mode before lowering the target. In hard mode, record the blocker and do not accept a proxy as success. In soft mode, recover a declared proxy result that preserves the paper's mechanism. The proxy must identify the dataset, sample size, metric, paper target, and why the proxy is the fastest faithful test.
scripts/read_run_config.py: validate and normalize a TOML config with one or more Distiller runs.scripts/resolve_sources.py: resolve local or remote paper/repo sources into local paths before distillation initialization, including optional bounded repo discovery.scripts/init_run.py: create the distillation directory and manifest, optionally copying a selected normalized run config into the run.scripts/validate_distillation_run.py: validate that required artifacts exist at each stage.scripts/write_final_report.py: write reports/final/final_report.json and
reports/final/final_report.md from the distillation artifacts.