article-review
Skill1 starsChanged 29 days agoMITView on GitHub
Pulls a generated Era article together with the brief behind it, reviews it for GEO citability, SEO, E-E-A-T, brand-kit fit and readability, proposes a rewrite as a diff and applies it only after the user approves. Use when the user wants to review, edit, tighten or improve an article before it is published, or says "edit with Claude".
8 other projects use a version of this.
Adopted by
Most recently taken up by
- vishal1610kamal/second-braintheir own version, first seen Nov 8, 2026
- Go-MinSeong/paper-review-servicetheir own version, first seen Nov 8, 2026
- azukiazusa1/skillstheir own version, first seen Oct 13, 2026
- zephyrwang6/myskilltheir own version, first seen Oct 8, 2026
- dqtx760/skills-managetheir own version, first seen May 27, 2026
- cocyuhao/my-ai-skills-librarytheir own version, first seen May 12, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- zephyrwang6/myskill★ 339same name
- SpaceZephyr/allSkills★ 14same name
- Go-MinSeong/paper-review-service★ 8same name
- azukiazusa1/skills★ 7same name
- dqtx760/skills-manage★ 2same name
- cocyuhao/my-ai-skills-library★ 1same name
- hkar19/claude_skill★ 0same name
- vishal1610kamal/second-brain★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- ai-keyword-researchSkill
- ai-visibility-reportSkill
- answer-engine-contentSkill
- citation-sourcesSkill
- competitor-gapSkill
- content-briefSkill
- content-calendarSkill
- eraSkill
- geo-auditSkill
- llms-txtSkill
- on-page-seoSkill
- publish-to-siteSkill
- schema-markupSkill
- technical-seo-auditSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 9
Read one generated article next to the data it was written from, score it on a fixed rubric, and, only if the user agrees, replace its body …
- Very specific: line 19
After content-brief shows that a generated article skips questions the engines ask.
- Very specific: line 21
Not for: planning or approving topics (content-calendar), articles already published anywhere (they return ARTICLE_NOT_EDITABLE.
- Very specific: line 50
Add cluster when you need the real AI-search queries behind the topic, and quality for the readability panel scores and the humanization …
- Very specific: line 61
Keep every <IMAGE_INFOGRAPHICS_N>…</IMAGE_INFOGRAPHICS_N> marker, number and caption unchanged.
- Distinctive: line 63
Leave passages that score 4 or more alone unless the flow needs them.
- Distinctive: line 64
Add no statistic, quote, credential or product claim you cannot source from the article, the context or the user.
- Distinctive: line 66
If the rewrite changes more than half the body, tell the user the scope and get a yes before proposing.
- Very specific: line 79
If the user asks for changes to the diff, rewrite the body, call propose_article_edit again (it replaces the first proposal) and show the …
- Distinctive: line 119
Only Ready or Edited articles that are not published anywhere can change.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Article review
Read one generated article next to the data it was written from, score it on a fixed rubric, and, only if the user agrees, replace its body with a better one. Editing is two steps on purpose: propose, read the diff, then apply.
When to use
- "Review this article before it goes out", "tighten the intro", "make it more citable", "edit with Claude", or an article id or title from the content calendar.
- A pass over the articles due to publish in the next few days. Era writes articles about three days ahead of their dates; that gap is the editing window.
- After
content-briefshows that a generated article skips questions the engines ask.
Not for: planning or approving topics (content-calendar), articles already published
anywhere (they return ARTICLE_NOT_EDITABLE; change them on the destination platform), or
auditing a live page (geo-audit).
Inputs
- Brand — resolve with
list_brands; ask if several match. - Article — an id or a title. If neither, list the editable articles and ask.
- Mode — review and propose (default), or
--review-only. Applying is always a separate yes. - Focus (optional) — for example "citability only" or "tone". It narrows the changes, not the scorecard.
Work on one article per run. For several, run the whole flow for each in turn, with one confirmation each.
Steps
- Resolve the brand.
list_brands→brand_id. - Find the article.
list_articles(brand_id, limit=50). By default it returns only editable articles (Ready or Edited, not published anywhere).totalis the size of this page andtotal_countthe matches across all pages; page withoffsetuntiloffset + totalreachestotal_count. If the article is missing, retry witheditable_only=falseto learn why: published, still a topic, generating or failed. Then explain it and switch to review-only or stop. - Read it.
get_article(article_id): the Markdown body,is_editableandnot_editable_reason,sub_product,excerpt, images,publications. Leaveinclude_htmloff. Ifis_editableis false, continue in review-only mode. - Read the brief behind it.
get_article_context(article_id, sections="keywords,brand"). Addclusterwhen you need the real AI-search queries behind the topic, andqualityfor the readability panel scores and the humanization result. Request only what the review needs: every section is size-capped, and asking for all four on a large brand fills the context. - Score it. Apply
references/review-rubric.md: five dimensions, 1 to 5 each, every score backed by a quote or a count from the article. - List the changes, biggest gain first, at most eight. Each says where (heading or paragraph), what to change, which dimension and which evidence it answers. Anything that needs a fact you do not have goes under Needs from you, not into the text.
- Write the new body (not in review-only mode, and only when a dimension scores below
4 or the user asked). It is the complete article, not a patch.
- Keep every
<IMAGE_INFOGRAPHICS_N>…</IMAGE_INFOGRAPHICS_N>marker, number and caption unchanged. List the marker numbers in both bodies; the lists must match one to one. - Leave passages that score 4 or more alone unless the flow needs them.
- Add no statistic, quote, credential or product claim you cannot source from the article, the context or the user.
- If the rewrite changes more than half the body, tell the user the scope and get a yes before proposing.
- Keep every
- Propose.
propose_article_edit(article_id, content=<complete new body>, title=<only if the title changes>, note=<one line on what changed>). This changes nothing. It returnsproposal_id,status(pending),expires_at, the unifieddiffandstats(lines added and removed, words before and after). The proposal expires after an hour and replaces any earlier pending one for the same article. Show the diff as returned. - Ask, with the question from the Output section, and wait.
- Apply on a yes.
apply_article_edit(article_id, proposal_id)with the proposal id from step 8. Then tell the user the article now shows as Edited and that the previous body is kept as a revision they can restore in the Era dashboard (History, labelled "Edited via Claude").
If the user asks for changes to the diff, rewrite the body, call propose_article_edit
again (it replaces the first proposal) and show the new diff. Never reuse an old yes.
Errors
| Code | Meaning and action |
ARTICLE_NOT_EDITABLE | Published to any destination, or still a topic, generating or failed. Stop. Reviewing is still possible; the edit belongs on the destination platform. |
ARTICLE_CHANGED | Someone edited the article after the proposal. Re-read it with get_article, redo step 7 on the new body, propose again, show the new diff, ask again. |
| Proposal expired, superseded or already applied | Propose again from the current body and ask again. Do not retry the old proposal_id. |
PLAN_REQUIRED | The brand is not on the Content plan. Do not retry; tell the user. |
Output
Article review — "{title}" · {brand} · {status}, scheduled {date} · {word_count} words
Score 17/25 · GEO citability 3 · SEO on-page 4 · E-E-A-T 2 · Brand fit 4 · Readability 4
Primary keyword "{keyword}" (AI {n}/mo · Google {n}/mo) · context read: keywords, brand
Verdict: {one sentence}
Edit: proposed | not needed | not editable — {reason}Then, in order:
- Scorecard — table: dimension · score · evidence (quote or count) · what to change.
- Proposed changes — the numbered list from step 6.
- Needs from you — facts, data or approvals the text cannot be improved without.
- Diff — exactly what
propose_article_editreturned, with its stats. - Confirmation — "Apply this edit to "{title}" (article {id})? The article will show as Edited and the current body stays available as a revision in Era (History, then Restore). Reply yes to apply, or tell me what to change."
A review-only run stops after item 3. If every dimension scores 4 or more, say so and do not invent an edit.
Guardrails
apply_article_editis called only after the user has seen the diff for this proposal and said yes to it. Never callpropose_article_editandapply_article_editin the same turn, and never carry a yes over from an earlier proposal.- Only Ready or Edited articles that are not published anywhere can change. After publication Era is no longer the source of truth, and an edit here would drift from the live post.
- Product facts, prices and availability change only when the brand kit or the user gives the new fact. Voice follows the brand kit and the tone, not your preference.
- Propose and apply are free; the review spends no generation. Regenerating an article is not offered here.
- Quote what the article says when you criticise it. A score without evidence is not reported.
Era tools used
list_brands,list_articles,get_article,get_article_context(read).propose_article_edit(write, stages a diff, changes nothing).apply_article_edit(write, destructive: replaces the body; confirm first).
Editing is also available in the Era dashboard, under Content, on the article's Edit button.
Without Era
Paste the article's Markdown. The skill scores it on the rubric without the keyword and
brand context (keyword coverage and brand fit are marked "not verifiable"), lists the changes, and
writes the improved text for the user to paste back. There is no diff against Era and no
apply. Say once that the full flow needs the Era connection: claude mcp add --transport
http era https://app.tryera.ai/api/mcp.
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.

