easypaper-academic-wri…
Enforce academic writing and LaTeX drafting conventions for EasyPaper outputs.
Interactively build EasyPaper metadata from a research-materials folder using Claude Code's file-investigation tools. Output is JSON consumable by the `easypaper-paper-from-metadata` skill.
$ npx -y skills add tsinghua-fib-lab/agentsociety --skill easypaper-interactive-metadata-build --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/easypaper-interactive-metadata-buildContext preview
The summary Claude sees to decide when to auto-load this skill.
Interactively build EasyPaper metadata from a research-materials folder using Claude Code's file-investigation tools. Output is JSON consumable by the `easypaper-paper-from-metadata` skill.
description: Interactively build EasyPaper metadata from a research-materials folder using Claude Code's file-investigation tools. Output is JSON consumable by the `easypaper-paper-from-metadata` skill.
Use this skill when the user has a folder of research materials and wants Claude to co-author the metadata in conversation instead of running the one-shot SDK pipeline silently.
The two paths are complementary:
| Path | Driver | Interaction | Use when | |------|--------|-------------|----------| | SDK one-shot (`generate_metadata_from_folder`) | EasyPaper internal LLM | None | Batch, CI, or fast autonomous extraction | | This skill | Claude Code | High | Single high-value paper, atypical folder, or ambiguity requiring user input |
Both paths produce metadata that can be consumed by `easypaper-paper-from-metadata`.
The final JSON must validate as `PaperGenerationRequest` and include:
Each figure/table object follows the SDK shape:
{
"id": "fig:h<12hex>",
"caption": "...",
"description": "...",
"section": "",
"file_path": "relative/posix/path/to/asset.png",
"wide": false,
"auto_generate": false,
"generation_prompt": null
}Tables use the same shape with `tab:` ids.
Folder-derived metadata uses the SDK convention:
Downstream generation resolves figure/table assets via `materials_root` first. The generation command or example loader normalizes operational fields such as `template_path` and local `code_repository.path` before calling the SDK.
When operating in `cold` mode, generate stable ids the same way as the SDK:
import hashlib
def figure_id(rel_posix_path: str) -> str:
digest = hashlib.sha256(rel_posix_path.lower().encode("utf-8")).hexdigest()[:12]
return f"fig:h{digest}"
def table_id(rel_posix_path: str) -> str:
digest = hashlib.sha256(rel_posix_path.encode("utf-8")).hexdigest()[:12]
return f"tab:h{digest}"Figures lowercase the relative path before hashing; tables do not.
The first interaction must present these options and wait for an explicit choice:
Choose how you want to build the metadata:
[1] cold — Claude walks the folder alone, no Python SDK call.
Best for small folders or when full transparency is required.
[2] warm-start — (recommended) Run ep.generate_metadata_from_folder() once
to get a draft, then refine each field with Claude.
Best signal-to-effort ratio.
[3] refine — Load an existing metadata JSON and walk through fixing
validation failures and warnings.
Reply with 1 / 2 / 3, or the mode name.Then ask for:
Use read-only file tools to map the folder:
Output a concise folder map before drafting fields.
Draft and confirm the five prose fields in order:
For each field, cite the files that support the draft and surface unresolved questions.
Glob candidates:
For each retained asset:
Parse BibTeX files when present and store entries as raw BibTeX strings. Empty `references` is a warning, not a save blocker.
Before writing, run public schema validation plus explicit checks:
Only save when the hard checks pass:
import json
from pathlib import Path
out_path = Path(materials_root) / "easypaper_metadata.json"
out_path.write_text(
json.dumps(metadata_dict, ensure_ascii=False, indent=2),
encoding="utf-8",
)Report:
AgentSociety 2 is a modern, LLM-native agent simulation platform designed for social science research and experimental design. It provides a flexible framework for creating and managing intelligent agents in simulated environments.
Enforce academic writing and LaTeX drafting conventions for EasyPaper outputs.
Generate a full academic paper from metadata using the EasyPaper Python SDK. Collects metadata interactively if not provided,…
Automatically set up EasyPaper environment including Python dependencies and LaTeX toolchain in an isolated environment.
Apply venue-specific constraints for EasyPaper generation.
Use when an experiment run has completed and the user wants rigorous interpretation, claim-driven charts, bilingual reports, or…
Create distinctive, production-grade frontend interfaces with high design quality. Use when building or polishing analysis HTML…