| Write `output/DRAFT.md` (or `output/SNAPSHOT.md`) from an approved outline and evidence packs, using only verified citation keys from `citations/ref.bib`.
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill prose-writer
Goal: produce a survey draft that reads like a real paper because it is driven by evidence packs, not by outline placeholders.
This skill should behave like a synthesis engine:
Mission: write each subsection as an argument (not a paper list) under citation-scope constraints.
Do:
Avoid:
This subsection...) and slide navigation (Next, we...).mechanism/architecture, data/training) into prose.survey comparisons should...) instead of literature-facing claims.Mission: prevent hollow writing by refusing to pad when evidence is thin or underspecified.
Do:
Avoid:
Mission: make the paper read as a single argument across sections.
Do:
Avoid:
Taken together, In summary, etc.).Use this as your internal framing while drafting output/DRAFT.md. It is guidance, not a sentence template.
You are writing a technical survey draft from evidence packs.
Your job is to execute argument moves under evidence and citation constraints:
- tension -> contrast -> evaluation anchor -> limitation
- keep every claim attached to citations inside the sentence that needs them
- synthesize across papers (>=2 citations in at least one paragraph per H3)
Style:
- calm, academic, content-bearing
- no outline narration ("This subsection...") and no slide navigation ("Next, we...")
- no pipeline jargon (workspace/unit/stage/evidence pack/quality gate)
Constraints:
- do not invent facts or citations
- only use citation keys present in citations/ref.bib
- if you cannot write a contrast or evaluation anchor without guessing, stop and route upstream
Approve C2 in DECISIONS.md.citations/ref.bib.This skill is successful only if the draft reads like an evidence-backed survey, not an outline expansion.
For each H3 subsection, ensure the prose contains all of the following *moves* (not necessarily as headings):
citations/ref.bib.Bad:
Many systems adopt tool schemas. [@a; @b; @c]Better:
Systems such as X [@a] and Y [@b] formalize tool schemas to reduce action ambiguity, whereas Z [@c] keeps the interface looser and shifts the burden to validation.This subsection surveys ..., In this subsection ...).Next, we move ..., We now turn to ...).Taken together, ...).For each H3, do a short preflight (kept out of the final prose):
If you cannot do this without guessing, stop and fix upstream evidence instead of writing filler.
outline/outline.ymloutline/subsection_briefs.jsonloutline/transitions.mdoutline/evidence_drafts.jsonloutline/tables_index.md, outline/tables_appendix.md, outline/timeline.md, outline/figures.mdoutline/claim_evidence_matrix.mdcitations/ref.bibDECISIONS.mdoutput/DRAFT.md and/or output/SNAPSHOT.mdparagraph_plan and uses paragraph-level citations.Before writing, load the structural and coherence inputs: outline/outline.yml (section order) and outline/transitions.md (transition map). Optionally consult outline/claim_evidence_matrix.md as an evidence index.
DECISIONS.md.Approve C2 is not ticked, write a short request block (what you plan to write + which evidence packs you will rely on), then stop.outline/subsection_briefs.jsonl and confirm every H3 has a brief and the following fields are *filled and non-placeholder*: scope_rule, rq, axes, clusters, paragraph_plan.outline/evidence_drafts.jsonl and confirm every H3 has an evidence pack with:blocking_missing empty,evidence_snippets non-empty,concrete_comparisons >= 3.failures_limitations or snippet provenance.paragraph_plan (survey-quality default).this run .... Do *not* create a dedicated “Evidence note” heading by default, and do *not* repeat the same evidence-mode disclaimer sentence in every H3; only mention verification needs when they are subsection-specific.scope_rule strictly to prevent silent drift; if you include an out-of-scope paper as a bridge, justify it once and keep it secondary.outline/tables_appendix.md exists, place its contents into the draft as an Appendix block (recommended: after Conclusion). Do not paste outline/tables_index.md into the paper; it is an internal index.outline/timeline.md and outline/figures.md remain optional/intermediate by default: weave them into relevant prose (or a short appendix) only if they add real reader value...., unicode ellipsis …, scaffold phrases (e.g., “enumerate 2-4 …”), or repeated boilerplate sentences, treat it as a pipeline failure signal and rewrite.These phrase families are a strong “generator voice” signal. If they appear, rewrite them into content claims (or delete) without adding new facts/citations:
survey synthesis/comparisons should ...Taken together, ... at the start of many paragraphs)Key takeaway:)…, TODO, (placeholder), or <!-- SCAFFOLD --> remains in output/DRAFT.md.citations/ref.bib).GOAL.md and scope_rule.The helper script is a gate wrapper: it blocks until approvals + prerequisites are satisfied and a real output/DRAFT.md exists (no scaffold markers). Writing itself is LLM-driven.
uv run python .codex/skills/prose-writer/scripts/run.py --helpuv run python .codex/skills/prose-writer/scripts/run.py --workspace <workspace>--help.output/DRAFT.md is written):Approve C2 in DECISIONS.md then run:uv run python .codex/skills/prose-writer/scripts/run.py --workspace <workspace>Symptom: output/DRAFT.md contains …, enumerate 2-4 ..., or repeats the same paragraph template.
Causes:
outline/subsection_briefs.jsonl is missing or generic.outline/evidence_drafts.jsonl has blocking_missing or scaffold markers.Solutions:
Symptom: subsections cite many out-of-scope papers without justification.
Solutions:
scope_rule in subsection briefs and rerun evidence packs.queries.md excludes and rerun retrieval/dedupe/mapping.Systematically evaluate scholarly work using the ScholarEval framework, providing structured assessment across research quality dimensions including problem formulation, methodology, analysis, and writing with quantitative scoring and actionable feedback.
Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Invokes the researcher agent.
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), for research papers and journal submissions.
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), for research papers and journal submissions.
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process: (1) create section outlines with key points using research-lookup, (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), for research papers and journal submissions.
Workflow 3: Full paper writing pipeline. Orchestrates paper-plan \u2192 paper-figure \u2192 paper-write \u2192 paper-compile \u2192 auto-paper-improvement-loop to go from a narrative report to a polished, submission-ready PDF. Use when user says \\\"\u5199\u8bba\u6587\u5168\u6d41\u7a0b\\\", \\\"write paper pipeline\\\", \\\"\u4ece\u62a5\u544a\u5230PDF\\\", \\\"paper writing\\\", or wants the complete paper generation workflow.
Workflow 3: Full paper writing pipeline that goes from a narrative report to a polished, submission-ready PDF. Use when user says \"写论文全流程\", \"write paper pipeline\", \"从报告到PDF\", \"paper writing\", or wants the complete paper generation workflow.
Paragraph-level structural blueprint for 10-12 page systems papers targeting OSDI, SOSP, ASPLOS, NSDI, and EuroSys. Provides page allocation, paragraph templates, and writing patterns. Use when user says \"写系统论文\", \"systems paper structure\", \"OSDI paper\", \"SOSP paper\", or wants fine-grained structural guidance for a systems conference submission.
Take willoscar/prose-writer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.