Install any skill in seconds. Free to start, no credit card required.
Get Started Free →tsinghua-fib-lab/easypaper-paper-from-metadata
Generate a full academic paper from metadata using the EasyPaper Python SDK. Collects metadata interactively if not provided, then generates the paper directly.
Passed 15 of 20 test cases with the skill, and 3 of 20 without it.
and 16 more in the full report
13 fixed3 passed either way6 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
If `easypaper_config.yaml` is missing during setup, what configuration file template does the setup environment tool synchronize from?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies config.example.yaml as the bundled configuration template. | Missed | Passed |
The instructions your model reads when the skill loads.
Use this skill when the user wants to generate an academic paper from metadata. It handles both metadata collection and paper generation in one workflow.
Have the user prepare a metadata JSON file that follows examples/meta.json. Treat that file as a schema/template reference, not as a runnable paper. For a runnable project-local sample, use examples/template/meta.json.
Load JSON as PaperGenerationRequest, then convert it to SDK inputs:
import json
from pathlib import Path
from easypaper import EasyPaper, PaperGenerationRequest
metadata_path = Path("metadata.json").resolve()
raw = json.loads(metadata_path.read_text(encoding="utf-8"))
def metadata_relative_path(value: str) -> str:
candidate = Path(value).expanduser()
if candidate.is_absolute():
return str(candidate)
return str((metadata_path.parent / candidate).resolve())
if not raw.get("materials_root"):
raw["materials_root"] = str(metadata_path.parent)
if raw.get("template_path"):
raw["template_path"] = metadata_relative_path(raw["template_path"])
if (
isinstance(raw.get("code_repository"), dict)
and raw["code_repository"].get("type") == "local_dir"
and raw["code_repository"].get("path")
):
raw["code_repository"]["path"] = metadata_relative_path(raw["code_repository"]["path"])
request = PaperGenerationRequest.model_validate(raw)
paper_metadata = request.to_metadata()
options = {
"output_dir": request.output_dir,
"save_output": request.save_output,
"compile_pdf": request.compile_pdf,
"figures_source_dir": request.figures_source_dir,
test cases passed, vs 3 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.