视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
prepare-paper-recovery-env【文档与办公】Inspect, prepare, and document an isolated runtime environment for Paper2Skills recovery experiments, including package probes, model/cache checks, GPU status, bounded benchmark acquisition, and a runtime handoff for recover-paper-result.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill after create-paper-module-skill validation and before recover-paper-result whenever recovery needs models, packages, datasets, GPUs, API keys, benchmark code, or any nontrivial runtime setup. It adapts the environment-inspection discipline from repo-skill creation to Paper2Skills recovery, where the goal is an auditable recovery runtime rather than a public repo skill.
All artifacts must be in English.
Create a current-attempt runtime handoff that tells recover-paper-result exactly what is usable, what was prepared, what failed, and what fallback is allowed. This is an active environment-preparation stage, not a passive inventory. Missing packages, datasets, model caches, or benchmark files are setup tasks to attempt within the user's constraints before they become blockers. Do not spend recovery time guessing package state, performing broad filesystem scans, or mutating shared environments without permission.
attempt_dir containing run_manifest.json.module_plan.json and generated skills root.Write these files under the attempt directory:
environment/
runtime_handoff.json
logs/
package_probe.json
gpu_probe.json
model_cache_probe.json
benchmark_probe.json
command_log.json
Also update run_manifest.json.stages.prepare_environment to complete or blocked.
Recovery validation treats a missing or still-pending prepare stage as a
contract failure.
run_manifest.json and runtime constraints. If constraints are missing, infer only low-risk defaults and record them.nvidia-smi if available.$HF_HOME, $TRANSFORMERS_CACHE, ~/.cache/huggingface, and the workspace only./share/project recursively. Search only explicit allowlists, known cache roots, and the workspace with timeouts.prepare-repo-skill-env.prepare-repo-skill-env: when the user
does not provide a prefix, put recovery environments under
$DISCO_CODING_AGENT_DIR/envs/; if that variable is unset, use
~/.disco/agent/envs/. Name the environment
paper-recovery-<run_name>. Do not install into conda base, a shared
conda env, or the active environment unless the user explicitly authorized
that exact mutation. If runtime constraints say isolated env only, use this
private environment even when the active Python already has the requested
imports.--pip-package sklearn=scikit-learn..git is not a usable benchmark source.environment/runtime_handoff.json with a concise decision:
runtime_ready: true only when the requested runtime is genuinely ready.reduced_recovery_recommended: true only when full runtime is blocked and the user permits reduced recovery.blockers: exact actionable blockers.allowed_sources_for_recovery: paths/URLs recover-paper-result may use.environment_modified: whether any environment was changed.environment/logs/command_log.json with every subprocess command executed by the environment probe, including GPU probes, benchmark clone attempts, version/commit checks, environment creation, installs, downloads, or killed commands. Commands that are only in terminal output are not auditable. If the probe is rerun, append to the existing command log instead of overwriting it.recover-paper-result. Recovery must include it in recovery/source_manifest.json.{
"schema_version": 1,
"attempt_dir": "...",
"python": {"executable": "...", "version": "..."},
"packages": {"torch": false, "transformers": false},
"environment": {
"manager": "venv",
"prefix": "~/.disco/agent/envs/paper-recovery-search_o1",
"python": ".../bin/python",
"setup": {"actions": [], "blockers": []}
},
"gpu": {"nvidia_smi_available": true, "visible_devices": []},
"models": {
"preferred": "Qwen/Qwen3-4B-Instruct-2507",
"preferred_ready": false,
"cache_hits": [],
"blockers": []
},
"benchmarks": {
"alfworld": {
"fresh_attempted": true,
"fresh_ok": false,
"reused_local_source": "",
"snapshot_dir": "",
"resource_files": []
}
},
"datasets": {},
"runtime_ready": false,
"reduced_recovery_recommended": true,
"environment_modified": false,
"allowed_sources_for_recovery": [],
"blockers": []
}
environment/runtime_handoff.json exists and is valid JSON.environment/logs/command_log.json exists, is valid JSON, and contains a commands list.run_manifest.json.stages.prepare_environment is complete when the
requested runtime is ready, or blocked when exact blockers are recorded.python.executable points to the private recovery environment Python, not the
host/shared conda Python, unless private environment creation failed and the
failure is logged as a blocker.recover-paper-result enough information to choose between full recovery and an honest reduced fallback without repeating expensive discovery.Use scripts/probe_runtime.py for deterministic probes, bounded repair, and handoff generation. It can create/reuse an isolated conda env or venv at the DisCo-private default prefix, install explicitly requested missing packages, try bounded dataset/model downloads when flags permit them, inspect GPU/model cache hints, and validate benchmark source state. It must not perform unbounded downloads or broad scans.
Example for a Paper2Skills recovery that may need torch/transformers/vLLM/nltk, a QwQ/Qwen model, and a public benchmark:
python <skills_root>/prepare-paper-recovery-env/scripts/probe_runtime.py \
--attempt-dir <attempt_dir> \
--preferred-model Qwen/QwQ-32B \
--package torch --package transformers --package vllm --package nltk \
--env-manager auto \
--pip-package torch \
--pip-package transformers \
--pip-package vllm \
--pip-package nltk \
--allow-env-mutation \
--use-isolated-env \
--attempt-model-download \
--dataset-name AIME2024 \
--dataset-url <direct-public-or-user-supplied-url> \
--attempt-dataset-download \
--network-timeout 300 \
--install-timeout 900