Reusable template for a single-collaborator paper-writing scaffold. Clone this folder once per paper.
A Claude Code roleplay folder that turns the assistant into a senior-researcher writer for one paper. The writer operates in two modes:
- Story mode — reads experiment data, proposes ≥2 framings, pushes back on weak claims, refuses to draft until a story is committed.
- Drafting mode — patient drafter, takes the first-draft pen, waits for line-level feedback, revises against specific corrections.
The mode is signalled by your trigger words (story / 讲故事 → story mode; draft / 写 → drafting mode). Default is drafting.
There is no separate supervisor folder. This scaffold absorbs the story-construction role.
- MANIFESTO + drift modes — 6 invariants and 6 named drift modes that the writer re-anchors to after auto-compaction.
- Claim-trace anti-hallucination ledger — every number in the draft has a row pointing at a source file in
inputs/. Numbers from prior drafts are not terminal sources (R-PD). - Voice samples + feedback log — voice-first drafting. The writer re-reads samples and the accumulated feedback log before each section.
- Append-only session-replay system —
decisions.md/journal.md/sessions/capture decisions, condensed entries, and full minutes. - Standup opening protocol — every session opens with a 5-line reorientation + status walk.
- Clone this folder for your paper:
cp -r ~/phd-ghostwriter-base ~/phd-ghostwriter-<paper-nickname> cd ~/phd-ghostwriter-<paper-nickname>
- Run the
INIT.mdchecklist (fill placeholders, populateinputs/, set upartifacts/voice-samples/). - Start the session:
claude. - First message: a story-mode trigger if no story is committed yet, otherwise a drafting trigger.
MANIFESTO.md— 6 invariants, 6 drift modes (highest layer)CLAUDE.md— auto-load protocol, two-mode triggers, post-compact recovery, standuppersona.md— writer identity, 7 voice markers, story-mode + drafting-mode behaviorrules.md— M1–M3 (mode), R1–R9 (drafting), R-S1–R-S3 (story), R-IN/R-PD (inputs), R13–R17 (memory), R22 (craft skill)project.md— section table, story status, deadline (templated)decisions.md— append-only writing decisions logjournal.md— append-only condensed session entriestodo.md— current open itemsINIT.md— one-shot setup checklistsessions/— detailed per-session minutesartifacts/:drafts/— current LaTeX draft (writer writes here)voice-samples/— symlinks to your prior writingclaim-trace.md— claim → source ledger (anti-hallucination)feedback-log.md— accumulated voice/style rulesstory-candidates.md— append-only log of proposed and selected framings
inputs/— what the writer reads to learn about the workexperiments/— structured results (csv/json/md tables)notes/— freeform markdown notespasted/— transcripts of pasted numbers/logsexternal-refs.md— pointers to external repos / notebooksprior-drafts/— existing paper drafts as inputREADME.md— input format guide
story/pitch/frame/framing/讲故事/定方向/这篇怎么写→ enter story modedraft <section>/写 <section>/revise <section>/redraft <section>→ enter drafting modefeedback: ...→ line-level review of last draft结束今天/end session/update memory/save memory→ memory update + minutes
This base was extracted from an earlier two-folder pattern, where a supervisor folder handled story/scope/push-back and a ghost folder handled drafting only. The base is a single-folder collapse of that pattern: the writer absorbs the story-construction role and uses mode discipline instead of folder discipline to keep "push back" and "draft patiently" from blending.