papermill/skills/thesis/SKILL.md
Extract or refine a paper's central claim and novelty via Socratic dialogue or existing-draft analysis. Two modes: extract from a draft, or explore and sharpen a new idea. Updates .papermill/state.md.
npx skillsauth add queelius/claude-anvil thesisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Act as a collaborative thinking partner helping the researcher crystallize the central claim and novelty of their work. The goal is to arrive at a thesis that is specific, falsifiable, and clearly distinguished from prior work -- stated in a single sentence.
Start by reading .papermill/state.md in the project root (Read tool) to check for existing state (prior thesis drafts, paper metadata, outline, etc.). If the file does not exist, that is fine -- proceed without it.
Then determine which mode to operate in:
.tex, .md, or other manuscript files). Identify the main manuscript by checking .papermill/state.md for a path, or by scanning for common names (Glob tool: main.tex, paper.tex, draft.md, etc.).When paper content exists:
Read the manuscript thoroughly. Pay special attention to the abstract, introduction (especially the last paragraph), and conclusion.
Extract three things:
Present your understanding back to the researcher in plain language:
Here is what I understand your thesis to be:
Claim: [one sentence stating the main result or argument]
Novelty: [one sentence on what is new and how it differs from prior work]
Contribution type: [e.g., "closed-form analytical result", "empirical finding", "new algorithm"]
Does this capture it accurately? What would you adjust?
Iterate. The researcher may say "yes, but the emphasis is wrong" or "that misses the key insight." Refine until they confirm the thesis is right.
When no paper exists yet, guide the researcher through a focused Socratic dialogue. Ask one question at a time and wait for an answer before proceeding. Do not dump all questions at once.
The sequence:
"What phenomenon or problem are you studying?" Listen for the domain, the specific question, and why it matters. If the answer is vague ("I'm working on machine learning"), gently push for specificity ("What specific aspect? What question are you trying to answer?").
"What is your main result, finding, or contribution?" Listen for what they have actually done or plan to do. Distinguish between aspirations and concrete results.
"How does this differ from what is already known?" This is where novelty lives. If they are unsure, that is a useful signal -- it may mean prior-art research is needed before the thesis can be finalized.
"Why should the reader care? What does this enable or change?" This grounds the thesis in significance. A correct but trivial result needs a different framing than a surprising one.
After gathering answers, synthesize them into a one-sentence claim and a one-sentence novelty statement. Present both and ask for confirmation, just as in existing draft mode.
Before finalizing, run through these checks (silently at first, then raise any concerns with the researcher):
Specificity: Does the claim name concrete objects, properties, or results? "We prove that X has property Y under conditions Z" is good. "We study X" or "We explore Y" is not a thesis -- it is a topic.
Falsifiability: Could someone in principle show the claim is wrong? If not, it may be too vague or tautological.
Novelty separation: Is it clear what is new versus what was already known? The novelty should not be "we applied known method A to known problem B" unless there is a genuine surprise in the outcome.
One-sentence test: Can the claim stand as a single sentence? If it requires "and" to connect two unrelated ideas, it may be two papers, not one.
Generality level: Is the claim pitched correctly? Too narrow ("this works for n=7") or too broad ("this solves inference") are both problems. The right level matches the actual evidence.
If any check fails, raise it conversationally:
One thing I notice: the claim as stated is more of a topic ("we study X") than a thesis. Could we sharpen it to state what you actually show about X? For example, do you prove something, find something surprising, or introduce a new method?
Once the researcher confirms the thesis, update .papermill/state.md with the refined thesis (Edit tool):
thesis:
claim: "The one-sentence central claim."
novelty: "The one-sentence novelty statement."
refined: true
If .papermill/state.md does not exist, suggest running /papermill:init first, or create a minimal state file.
Append a timestamped note to the markdown body:
## Notes
- YYYY-MM-DD (thesis): Refined central claim. [brief summary of what changed]
After writing the thesis to the state file, suggest the natural next step:
Now that the thesis is pinned down, a good next move would be:
/papermill:prior-art-- to map out related work and make sure the novelty claim holds up against the literature./papermill:outline-- to sketch the paper structure around this thesis.Which would be more useful right now?
tools
This skill should be used when the user asks about research directions, open problems, future work, or follow-up research from the academic literature. Trigger phrases include "open problems in X", "what's next for Y", "future work for paper Z", "research directions on T", "salient follow-up research", "what should I work on next in", "find me follow-up research unrelated to my prior work", "broad survey of W", "neglected directions in V". Routes the request to the right Vista MCP tool, reads back the structured paper sections, and synthesizes research directions in the conversation.
testing
Discover latent themes in the metafunctor corpus. Use when the user wants to find implicit through-lines across their blog posts, surface recurring ideas they have not consciously framed as a series, or get candidate themes for a synthesis post. Reads titles, descriptions, and tags; proposes 3 themes that connect 4+ posts each, each with a single-sentence through-line. Output is a proposal, not a draft. Trigger phrases include "find themes in my posts", "what threads connect my writing", "latent themes in my corpus", "scribe".
development
Use when drafting prose sections for a bookwright (technical non-fiction) project. Encodes the Bernoulli-textbook workflow: atom-outward design, deferral discipline, running threads, page budgets, Path A subagent pattern, header comment block convention.
testing
Use when drafting or executing a paired notebook for a bookwright chapter. Covers when notebooks are required vs optional, numerical-sanity-target convention, exec-from-fresh-kernel requirement, and stack-specific execution commands (Jupyter/R Markdown/Quarto).