research-to-post
Skill10 starsChanged 5 days agoMITView on GitHub
Turn a paper, PDF, arXiv/DOI, GitHub repo, or project page into 2-3 short, catchy X/Twitter hook posts in plain language, plus a simple copy-first HTML card. Use when the user wants a creative post about a paper or repo, not a technical summary. No claim ledger, no verification section; one best source image. Drafts for the human to publish; never posts and never scrapes X.
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- architecturalSkill
- artifact-readingSkill
- auditSkill
- civilSkill
- compareSkill
- design-alternativesSkill
- electricalSkill
- eli5Skill
- engineering-researchSkill
- evidence-rankingSkill
- fmea-brainstormSkill
- gap-analysisSkill
- habitSkill
- hypothesis-generationSkill
- mechanicalSkill
- peer-reviewSkill
- proposalSkill
- reviewSkill
- scholarly-researchSkill
- simplified-technical-englishSkill
- softwareSkill
- standards-lookupSkill
- summarizeSkill
- verifierSkill
- vitruvius-helpSkill
- vitruviusSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 10 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
Before writing, state: the source (PDF path/URL, arXiv/DOI, GitHub repo, project page, or "own idea"), the audience (curious engineers, not …
- Distinctive: line 32
If they have none, say so and continue.
- Distinctive: line 40
Read the source: Do not guess from the title.
- Distinctive: line 44
GitHub: read the README and the docs.
- Very specific: line 46
Project page: read it for the plain-language explanation and the demo.
- Distinctive: line 54
Find the one surprising idea: Not the whole paper. One of:
- Distinctive: line 60
If you cannot state it in one sentence, you have not found it yet.
- Distinctive: line 66
Write 2–3 hooks in plain language: Use the user's own thought and the chosen lens.
- Very specific: line 77
No emoji spam, and never an emoji instead of a word.
- Very specific: line 78
Use references/post-hooks.md for shapes.
- Distinctive: line 109
No invention: Do not make up a result, a quote, or a reaction.
- Distinctive: line 110
No jargon dump: If a sentence needs a glossary, rewrite it.
- Distinctive: line 114
No engagement bait: No fake urgency, no "you're doing X wrong" the source does not support.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- VITRUVIUS-COMPILED-SKILL:BEGIN v1 sha256=2279b0bd40dad14d4b06af2627afdb94d61fdaa7ef15d88bf6a5a2e8fb90437a -->Research to Post
Turn a source into 2–3 short, catchy hooks that make someone want to click the source. Plain language. No jargon dump. No claim ledger. No verification section. One best source image, not a gallery.
This skill produces a draft for the human to publish. It never posts, never calls a social-media API, and never scrapes X.
Input Gate
Before writing, state: the source (PDF path/URL, arXiv/DOI, GitHub repo, project page, or "own idea"), the audience (curious engineers, not specialists), and the voice (default: plain and direct). Ask for the user's own reaction in one line. If they have none, say so and continue. Ask ONE clarifying question only if the source is too vague, then proceed.
Workflow
Save the draft to outputs/<slug>-post.md and the card to
outputs/<slug>-post.html.
- Read the source. Do not guess from the title.
- PDF: convert to Markdown first with
pdftotext -layout; seereferences/source-reading.md. Read the Markdown, especially the intro, the result, and the conclusion. - GitHub: read the README and the docs. Follow the project page if the README links one.
- Project page: read it for the plain-language explanation and the demo.
A source you cannot open is
blocked: say so and do not invent its contents. Then pick one image that carries the hook. For a PDF, extract the figures withpdfimages -png -p(seereferences/source-reading.md), open them, and copy the best one tooutputs/<slug>-media.png. For a repo or project page, use the workflow screenshot, GIF, or video. Recordalt,caption,credit,license, andlicenseChecked: true. If the source has no usable image, omit it; the card is text-only.
- PDF: convert to Markdown first with
- Find the one surprising idea. Not the whole paper. One of:
- a question the paper answers,
- a thing everyone assumes that the paper contradicts,
- a number that sounds wrong until you see why,
- a before/after,
- "the fix is not what you think." If you cannot state it in one sentence, you have not found it yet.
- Pick a lens before writing. Offer 2–3 candidate angles, each with the source line it comes from. The user picks one, or says "no real connection" and you write a question/opinion post instead. Record the chosen lens in the markdown. Do not write the posts yet. The lens is one bounded call or one user choice; it is not a separate app and it is not Jev.
- Write 2–3 hooks in plain language. Use the user's own thought and the
chosen lens.
- Post 1: the question or surprise. No link.
- Post 2: the twist, the cost, or the "wait, why?"
- Post 3: the source link plus a closing hook. If you write 2 posts, the link
goes in post 2.
Short sentences. No equations. No "we propose a novel framework." No
"state-of-the-art" unless the source says it and it matters. Use the words a
smart friend would use at lunch.
Emojis: use 🌐 next to a repo/link in the last post, 📰 for a research paper.
Other emojis are optional: at most one emoji per post, only when it fits the tone.
No emoji spam, and never an emoji instead of a word.
Use
references/post-hooks.mdfor shapes.
- Keep the pieces separate. In the markdown, keep the source, the user's thought, the chosen lens, the model draft, and the final wording as separate sections. The card shows only the posts, the one image, and the source link.
- Make it creative, not technical. A good hook can be a question, a
contradiction, a small story, or a "what if" question. See
references/post-hooks.mdfor examples. The reader should feel curious, not lectured. - Self-check against
references/post-checklist.md: 2–3 posts, plain language, each post a hook, first post has no link, last post has the source link, the chosen lens is recorded, the user's thought is quoted not paraphrased, no ledger, no verification, one best image if the source has one. Render the card. Build the simple JSON in
references/post-card.mdand run:node skills/research-to-post/scripts/render-post-card.mjs \ --input outputs/.drafts/<slug>-post-card.json \ --output outputs/<slug>-post.htmlThe card shows the posts first, with a Copy button on each and a Copy all posts button, then the one best source image, then the source link. Nothing else.
- Deliver. Give the user the 2–3 ready-to-paste posts, the card path, and the source link.
Hard Boundaries
- No posting, no scraping X. The draft is for the human.
- No invention. Do not make up a result, a quote, or a reaction.
- No jargon dump. If a sentence needs a glossary, rewrite it.
- No 4+ post threads. Two or three hooks, then stop.
- No claim ledger and no verification section. By design. The source link is the provenance. One best image, not a gallery.
- No engagement bait. No fake urgency, no "you're doing X wrong" the source does not support.
Common Rationalizations
| Excuse | Counter-argument |
| "The paper needs 7 posts to explain." | It needs 2–3 hooks. The link carries the explanation. |
| "A claim ledger makes it credible." | The source link makes it checkable. The ledger is extra work the user did not ask for. |
| "More images would make this land." | One source image is enough. A gallery is clutter. |
| "Technical detail shows expertise." | Plain language travels. Jargon is a door closed. |
| "The first post can carry the link." | The first post earns the click; the last post gives the link. |
| "A summary paragraph is a hook." | A hook opens a gap; a summary closes it. Cut the resolution. |
| "The model can pick the angle and write in one pass." | Decide the lens first. A writer that ranks its own angle is the failure x-brief avoids. |
| "The user's thought can be paraphrased into the draft." | Quote it, or leave it out. Never rewrite the user's words as if they were the model's. |
Output
outputs/<slug>-post.md with the source, the user's thought (quoted), the chosen
lens, the 2–3 posts, and the source link. outputs/<slug>-post.html is the
simple copy-first card. No sidecar, no ledger, no verification. The image lives
at outputs/<slug>-media.png.
Scope and Boundaries
- This skill is creative dissemination of a source the user already chose, not a general marketing tool.
- It does not verify claims. It reads the source, writes hooks, and links it.
- It drafts and previews; it does not post, schedule, or measure analytics.
- Research-only, not for final engineering sign-off. A post is a hook, not a design or a compliance statement.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

