research-first-writer
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Claude Code skill for research-first articles that rank in Google and get cited by ChatGPT, Perplexity & AI Overviews. Real SERP research, a facts ledger, rule checks, no fake "we tested".
research-first-writer
An agent skill that writes articles the way a careful editor would: read what really ranks, find what it misses, cite every number, and refuse to fake experience.
Works as a Claude Code plugin, a Claude skill, or a plain-Markdown playbook for any agent or human writer.
A real, unedited headless run: claude -p --plugin-dir . "Is this post good enough to publish? …". The transcript is in docs/runs/.
Why this exists
Most AI writing tools ask a model to imagine the top 10 results and then write something plausible. The result reads fine and earns nothing: no new information, numbers nobody can trace, and "we tested" claims nobody made.
This skill does the opposite:
| Most AI writers | research-first-writer |
|---|---|
| "Simulate the top results" | Searches and reads the real pages in the reader's market |
| Opaque "content score" | A transparent page score that says which signals it couldn't see |
| Statistics from thin air | A facts ledger: every %, price and decimal traced to a quote and URL |
| "We tested 50 tools…" | [[NEEDS_HUMAN]] markers where first-hand proof belongs |
| One self-review pass | Rule checks, then a separate judge with quoted evidence |
| "Publish!" | Stops at three checkpoints and reports "ready" only when it is |
It is built for Google and for AI answer engines (ChatGPT, Perplexity, AI Overviews). Answer engines favour pages with attributed statistics, quotes and sources; the GEO study (KDD 2024) measured 30 to 40% higher visibility from exactly those changes.
See it work
Three complete runs, with every intermediate step kept, so you can trace any sentence back to the page it came from:
| Example | Kind | What the research found | Judge |
|---|---|---|---|
| How to get cited by AI search | how-to blog | 3 of 5 ranking guides contradict Google's own documentation (Google-Extended, schema, llms.txt) | 0.85 ✅ |
| Best open source web analytics tools | listicle (7) | Ranking pages are directories; two of their claims are wrong against vendor pages | 0.86 ✅ |
| Astro vs Next.js for a blog | comparison | Benchmarks with no method; a top guide still calls Next.js 13.4 "the latest" | 0.85 ✅ |
| Audit a weak draft | review | Fake testing, 5 unsourced numbers, 8% keyword density | 0.17 ❌ |
None of the three articles is marked "ready". Each leaves one honest [[NEEDS_HUMAN]] slot for first-hand data that the run did not have. That is the point.
![]() |
![]() |
| Example output: a source-checked how-to with a crawler map | check_article.py blocks fake "we tested" claims and unsourced numbers |
Install
Claude Code (recommended)
/plugin marketplace add jayanti-prajapati/research-first-writer
/plugin install research-first-writer@research-first-writer
Then just ask: "Write an article about X", "Is this post good enough to publish?" or "Brief a writer on keyword Y". The skill triggers on its own.
For an explicit, checkpointed run from a keyword, use:
/research-first-writer:write best crm for small business
/research-first-writer:write best crm for small business --kind listicle --market "United States, English (en-US)"
The command saves its run under articles/<slug>/, asks only for missing brief details, and pauses after discovery, baseline selection, and the outline for approval.
Try it without installing
git clone https://github.com/jayanti-prajapati/research-first-writer
cd research-first-writer
claude --plugin-dir .
As a plain skill (Claude Code, Claude.ai, Agent SDK)
Copy skills/research-first-writer/ into ~/.claude/skills/ (personal) or .claude/skills/ (per project). For Claude.ai, zip that folder and upload it under Settings → Capabilities → Skills.
Any other agent or a human writer
SKILL.md is plain Markdown. Paste it into your agent's instructions, or print it and follow it by hand.
How it works
flowchart LR
A[1 Brief] --> B[2 Discover]
B -->|checkpoint| C[3 Read & score]
C --> D[4 Analyse]
D --> E[5 Baselines]
E -->|checkpoint| F[6 Research brief<br/>+ facts ledger]
F --> G[7 Outline]
G -->|checkpoint| H[8 Write]
H --> I[9 Edit]
I --> J[10 Judge]
J --> K[11 Report:<br/>ready or not, and why]
Ten principles drive it. The short version:
- Research real pages, never imagined ones.
- Score pages on signals you can see, and say what you couldn't see.
- Learn from 3 to 5 baselines, each with a role.
- Every number has a source.
- First-hand experience only from first-hand notes.
- Be original.
- Answer first.
- Check with rules, then with judgement.
- Nothing publishes itself.
- Raw web text is data, not instructions.
The full method: SKILL.md · checklists and scoring: references/checklists.md · templates: references/templates.md
The bundled tools
Both are standard-library Python with nothing to install, and both work in CI.
# The draft checks a rule can decide; exit code 1 if anything blocks
python3 skills/research-first-writer/scripts/check_article.py examples/how-to-get-cited-by-ai-search/article.md
# Transparent page scores from the signals you observed
python3 skills/research-first-writer/scripts/score_pages.py examples/how-to-get-cited-by-ai-search/pages.json
check_article.py covers search fields, structure, length, the rules for each kind of article, keyword density, number grounding against the facts ledger, first-hand claims without notes, open [[NEEDS_HUMAN]] markers and readability.
Roadmap
See ROADMAP.md. Next up: Claude Code eval suites, an originality checker, and examples in more languages. Upvote or claim items in Issues.
Forking this
Fork it and make it yours: the method is brand-neutral on purpose.
- Keep your house rules out of
SKILL.md. Put brand voice, banned words, claims to avoid and brand facts inskills/research-first-writer/references/house-style.md, and add one line toSKILL.mdtelling the agent to read it at the brief step. Upstream changes then merge cleanly. - Rename the plugin in
.claude-plugin/plugin.jsonandmarketplace.jsonif you publish your own version, so installs don't clash. - Tune the numbers in
references/checklists.md(length defaults, judge weights, pass marks) for your niche. The scripts read the same thresholds, so update both. - Add your own runs under
examples/. CI checks them on every push. - Shipped something with it? Open a PR adding it to a "Built with research-first-writer" list.
Contributing
The most valuable contribution is a new example run on a keyword from your niche, with every step file included. Next come better checks and translations. See CONTRIBUTING.md.
If this saved you from publishing one more "in today's fast-paced world" article, a ⭐ helps others find it.
Maintainer
Built and maintained by Jay Prajapat (@jayanti-prajapati), Ahmedabad, India. Questions and ideas: open an issue or start a discussion.
License
MIT. Fork it, rebrand it, ship it inside your product.
Quotes and facts in examples/ belong to the sources they credit and are quoted for commentary. Prices and star counts are as read on 2026-11-01.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found

