Product Decisions This Supports
- Content refresh as a program, not a project. Content to revisit turns “our site is stale” into a ranked, filterable backlog across every collection Ghostwriter writes for, scored by free deterministic checks (past years written as current, expired closing dates, broken links, missing alt text, empty fields, SEO length/missing description, internal-link gaps, heading levels, age). This directly supports decisions about whether to fund an ongoing content-maintenance cadence versus periodic rewrites — and gives you a metric (count of flagged pages, snoozed vs. reviewed) to justify it.
- Editorial QA at the point of editing rather than in review. Suggest edits lives beside the draft, keeps only candidates that are real problems in their paragraph, adds voice/clarity suggestions, and runs a second verification call before a human sees anything. It supports a build-vs-buy decision: replicating candidate detection + verification + accept/edit/undo workflow + shared decision memory in-house is a multi-quarter effort for a non-differentiating capability.
- Reducing publish-time risk. Facts-to-add and counts-to-check block publishing like a required field, and “our team of 6”-style claims get flagged. That supports decisions about whether to hard-gate on unresolved claims in regulated or trust-sensitive content, and where to draw the line between a soft nudge and a hard block.
- Cost-governed AI adoption. Every paid path shows a confirm stating what the review costs before anything is sent, and the free checks are explicitly no-AI. This supports pricing/packaging decisions (who gets AI checks, what triggers a spend) and lets you ship AI features without an open-ended inference budget.
- Preview-driven quality and fewer rollbacks. The Preview tab renders the unsaved draft through your own templates at desktop/phone width, with per-block outlines, private/non-indexed headers, and third-party scripts blocked. Template failures are surfaced with a fallback. This supports decisions about whether to keep a separate staging environment for editorial review, and reduces “looked fine in the editor, broke in production” incidents.
- Layout and structure as a first-class choice. Up to two alternative layouts ranked against your collection’s own pages, marked Suggested, with a diff-style explanation of what moves (“Quote moved up · Text blocks joined”) and shared selection. Supports decisions about template/blueprint investment: the more consistent your block vocabulary, the better these rankings get.
- On-page collaboration without a second tool. Block- and text-anchored comments that stay local until Apply, revise only commented blocks, report per-comment outcomes (Changed / Replied / Not applied / Skipped due to concurrent edit), and survive layout changes. Supports decisions about whether to buy a separate annotation/review tool for editorial sign-off.
- SEO and internal linking defaults. Search title, description, and slug generated from the page, editable with live character counts, only written into empty fields (“never over text someone wrote”), plus 2–5 verified internal links per first draft and a Suggest links step on existing pages. Supports decisions about whether to keep SEO as a manual checklist or a template-level default.
- Structured-content completeness. Extras (stats, FAQs, pull quotes) are generated only for block types your blueprint actually has and only from supplied facts, each with provenance and full editability. Supports decisions about blueprint scope — the feature is a forcing function to rationalize block types.
- Roadmap signals to watch. Requirements moved to
1994/ghostwriter-core ^1.10, Statamic 6.30+, PHP 8.3+. New config surface (suggest.claims, revisit.external_links, revisit.age_in_full, preview.enabled, preview.script_hosts, preview.timeout) plus a scheduled command (ghostwriter:revisit, daily 03:00, full pass weekly) and an opt-in external link checker (Sundays 04:00, ≤1 req/sec/site, broken after two consecutive failures). These are the levers to plan around for governance and infrastructure (queue/scheduler capacity, outbound request policy).
When to Consider This Package
Consider it when:
- You are on Statamic 6.30+ / PHP 8.3+ and your editorial content lives in Bard fields with a reasonably stable blueprint. The heading, layout, and extras features all read your templates and block vocabulary; they degrade on inconsistent schemas.
- You have a content estate large enough to decay — enough published entries that “which pages are stale?” is a real question and a manual audit is quarterly-at-best. The revisit list only pays off past a certain page count.
- Stale claims are a real risk, not a cosmetic one: dated statements, headcounts, coverage areas, pricing-adjacent numbers, expired promotions. The claims/counts check and the publish-blocking count step are the highest-value part of the release.
- You want AI assistance with a spending ceiling and a human accept step. The cost-confirm-before-send and second-verification-call design is aimed at teams who cannot let a model write straight to production.
- Editorial review is a bottleneck and you want comments, previews, and layout comparison inside the authoring surface rather than a separate staging URL and a shared doc.
- You need SEO hygiene enforced by default — descriptions, titles, slugs, alt text, internal links — without asking writers to remember a checklist.
- You are willing to own the operational surface: a daily scheduled command, a weekly full pass, an opt-in external link checker making outbound requests, and a preview renderer that executes your templates. That is real infrastructure and needs an owner.
Look elsewhere when:
- You are not on Statamic, or you are on an older Statamic/PHP line. The
ghostwriter-core ^1.10 and Statamic 6.30 / PHP 8.3 floors are hard requirements, and the whole value proposition is template- and blueprint-aware — it does not port to WordPress, a headless CMS, or a hand-rolled Laravel app without rebuilding the integration.
- Your content is mostly freeform prose or page-builder output rather than Bard blocks in routable collections. Layouts, block outlines, extras, and heading-level conformance all assume structured blocks.
- You have no tolerance for outbound AI calls, no vendor review process for a model provider, or a policy that forbids sending draft content externally. The free checks still work, but that is a fraction of the release.
- Volume is too low to justify it. Under a few hundred pages, a spreadsheet and a quarterly read-through is cheaper than the addon, the AI spend, and the scheduler ownership.
- You need enterprise-grade translation/localization workflow, DAM, or rights management. This is an authoring and refresh layer, not a content operations platform.
- Your templates are unstable or unmaintained. Preview failures are surfaced gracefully, but a template that prints no H1 or multiple H1s will generate recurring Overview warnings and unreliable layout ranking until fixed.
- You need deterministic, auditable output with no model variance. “Another version,” ranked layouts, and generated extras are probabilistic by design; the accept/edit/undo affordances mitigate but do not eliminate that.
- Concurrent editing is common and central. Comment Apply correctly skips blocks someone else changed, but shared layout selection and shared decision memory assume a low-contention editing model.
How to Pitch It (Stakeholders)
For executives (30 seconds): Our site has a decay problem — old dates, expired offers, dead links, missing alt text, thin SEO, pages that never link to each other. This release turns that from an occasional cleanup into a standing, ranked worklist with no AI cost to produce, and puts a cost-confirmed, human-approved AI editor next to the draft for the cases that need judgment. Writers see the page as readers will see it before publishing, review changes sentence-by-sentence with undo, and cannot publish past an unresolved claim or count. Net: less stale and non-compliant content, fewer publish-and-rollback cycles, and AI spend that is previewed and capped rather than open-ended.
For engineering: This is a Statamic addon release, not a rewrite. Requirements are 1994/ghostwriter-core ^1.10, Statamic 6.30+, PHP 8.3+ — check those before anything else. New operational surface to plan for: php please ghostwriter:revisit on the scheduler (daily 03:00, full pass weekly), an opt-in external link checker (Sundays 04:00, throttled to 1 req/sec per site, needs outbound egress and an allowlist decision), and a preview renderer that executes our templates with private/noindex headers and third-party scripts blocked. Configuration is available in config/ghostwriter.php (suggest.claims, revisit.external_links, revisit.age_in_full, preview.enabled, preview.script_hosts, preview.timeout) so we can ship with defaults and tune. Templates can opt out of previews with {{ live_preview:ghostwriter }}. Expect to fix template H1s — the Overview flags missing and multiple H1s. Preview timeouts are a config knob, not a bug.
For content and SEO leads: Free checks run first and cost nothing: current-year dates on old pages, expired closing dates, broken links, missing alt text, empty fields, unfinished markers, SEO over limit, missing meta description, missing internal links, heading levels, and age — all filterable, with snooze and per-collection scoping. Paid review only runs after a confirm that states the price, keeps only real in-paragraph problems, and re-checks every suggestion before showing it. You get Accept / Edit / Another version / It’s still right / Dismiss with Undo, category filters, and bulk “accept all wording fixes.” Alt text is the only thing saved without an explicit form action, and it warns how many pages share the image. Accepted words land in the form, not the database. New drafts now arrive with search title, description, and slug, plus 2–5 verified internal links marked as Ghostwriter-added and removable. Nothing overwrites text a human wrote.
For risk and compliance: Claims and counts are checked by default and unresolved ones block publishing. Comments stay in the author’s browser until explicitly applied, and applied revisions report per-item outcomes including “Skipped because someone else changed the block.” Preview pages are kept private, kept out of search engines, and blocked from third-party scripts. Decisions are shared and remembered, so there is an audit trail of what was accepted and what was dismissed. The open questions to settle before rollout are the external-link checker (off by default; turning it on means outbound requests to third-party sites) and whether draft content may leave our environment for AI review at all.