review_writing
Writing Agent review of ANY text or public URL — Pro plan; deterministic, no credits, no brief needed. Returns a slop index (0–100, lower is better), five component scores (correctness, redundancy, genericness, evidence, structure, cadence) and findings with exact spans and fixes: filler phrases, paragraphs with no specifics, numbers/percentages/studies with no source in the paragraph, superlatives with no basis, placeholders left in copy, repeated sentences and openers, headings whose section opens with preamble or does not answer its question, dense sentences. A leading YAML front-matter block (title, meta_description, slug, target_keyword, internal_links, faq, schema) is parsed as the SEO head and scored separately (seo_score 0–100, seo.* findings, never blockers); pass site_domain for same-site link checks and expect_front_matter=true for a draft meant to publish. BLOCKERS are what publish_content_brief refuses. It measures the writing, never who wrote it. Run it before you show a draft to the user and after every revision; read the writing_guardrails prompt before drafting. On error=plan_required, tell the user it is a Pro feature (/pricing).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Or a public page URL to fetch and review (main text only) | |
| text | No | Markdown or plain text to review (≥ 40 chars, ≤ 200k) | |
| shape | No | true also returns `shape`: the same text after the deterministic SHAPE PASS — paragraph rhythm (a one-line paragraph where a short sentence closes a long one; two short neighbours joined), bold lead sentences un-bolded — with the word sequence unchanged (asserted), plus slop_index_after. Free. Apply `shape.text` when `changed` is true; it is the fix for cadence.uniform_paragraphs and bold_lead_paragraphs without rewriting a word. | |
| site_id | No | Apply the brand's voice profile (create_voice_profile): the response gains a `voice` block — the draft's distance from the author's own writing, feature by feature, in the author's numbers. Also defaults site_domain. | |
| original | No | The text this is a REVISION of (the version before your edit, a paraphraser pass, or the live page). The response gains a `fidelity` block and fidelity.* findings: figures that changed or appeared in the author's sentences and flipped negations are BLOCKERS; dropped figures, weakened/strengthened hedges (show→suggest), quotes that lost their marks and dropped names are review. Pass it after every revision pass. | |
| page_type | No | Override the detected page type: comparison | roundup | howto | glossary | local | pricing | service | casestudy | article. Health/money/legal topics add a YMYL overlay automatically. The response reports the profile used. | |
| site_domain | No | Optional site domain (e.g. qapilot.io) so listed internal_links are checked to be same-site | |
| target_keyword | No | Optional target keyword (checks the H1 carries it) | |
| expect_front_matter | No | true for a publishable draft: a missing YAML SEO head becomes a finding (default false) |