Clearscope and Surfer grade a draft against the live SERP and tell the writer which terms, headings, and entities to add. They are the scoring engines. What they do not retain is the trail of who changed the H2, which agent rewrote the intro on the third pass, what the score was before and after, and whether the editor signed off. Dock holds that trail. The agent opens the draft in Clearscope or Surfer, makes the edit, then writes the diff, the new content grade, and its reasoning into a Dock row that the editor reviews before publish.
Google Search Console, Ahrefs, Semrush, Screaming Frog, and Clearscope or Surfer remain the system of record for the raw SEO data: rankings, backlinks, crawl results, the keyword corpus, the live content grade. Dock is the system of record for what the agent interprets from that data, the prioritized fix list, the redirect map, the keyword brief, the optimization decision. Each Dock row carries a pointer back to the platform record (clearscope_report_id, surfer_audit_id, gsc_query_id), the agent identity, the decision, the reviewer, and the timestamp. When the agent needs current state it re-fetches via a fresh API read. Dock holds the persistent interpretive layer that survives across sessions, which is the same pattern that the keyword research workflow uses for Ahrefs.
The content-optimization Dock table
| row_id | url | clearscope_report_id | grade_before | grade_after | terms_added | agent | reviewer | status |
|---|---|---|---|---|---|---|---|---|
| opt-411 | /guides/inventory-forecasting | cs_8821 | C+ | A | demand variance, safety stock, reorder point | mei | govind | approved |
| opt-412 | /blog/seo-aeo-optimization | cs_8847 | B | A- | answer engine, citation graph, entity coverage | mei | pending | in_review |
| opt-413 | /docs/webhook-retries | surfer_3392 | D | B+ | exponential backoff, idempotency key, DLQ | scout | govind | approved |
Each row points back at the source report. The reviewer can click through to the live Clearscope or Surfer grade rather than trust a cached number.
A worked pass
The agent picks up row opt-412. It re-fetches the Clearscope report by clearscope_report_id and sees the draft is scoring B with thin coverage on "entity coverage" and "citation graph." It rewrites two paragraphs, adds an entity table, and re-grades the draft against Clearscope. The new grade is A-. The agent writes the diff, the term deltas, and a one-line rationale to row opt-412 and flips status to in_review. The editor sees the row in the approval queue, reads the diff inline, checks the new grade in Clearscope directly, and approves. Publish runs through the same render-and-approve gate used for the rest of the site, with the agent identity attached to the commit so the audit log lines up.
Why the attribution layer matters
Content optimization is iterative and multi-pass. A single page may move through five edits across two agents and one human editor before publish. Without a Dock row per pass, the editor sees a final grade with no provenance: which edit drove the grade lift, which one regressed, which agent made the call. With the row, every score delta has an author and a reason, and the editor's approval is a recorded event rather than a verbal nod.
The audit story is the second reason. When a published page later drops in rankings, the team needs to ask whether a specific optimization pass caused it. Dock surfaces that history because every edit is attributed under agent identity and lifecycle rules and every approval is logged the same way as other agent actions. The platform-side data (Clearscope grade, Search Console ranking) is still pulled live, so the analysis is not stale.
The third reason is the SEO editor's daily-driver experience. The editor does not want to live in five tools. With Dock as the interpretive layer they get one approval queue with diffs, grades, and agent reasoning inline, and they jump out to the scoring tool only when they want to verify.
Read the full pattern in the Dock-for-SEO pillar.
FAQ
Does Dock replace Clearscope or Surfer? No. Clearscope and Surfer remain the scoring engines and keyword corpus. Dock stores the interpretive layer: the edit trail, score progression, agent reasoning, and reviewer approval per pass.
How does the agent know the current Clearscope grade?
It re-fetches via the Clearscope API using the stored clearscope_report_id. Dock holds the decision and the grade at the time of the edit, not a cached live score.
Can two agents work on the same page? Yes. Each pass is its own row with its own agent identity, so attribution stays clean across handoffs. The reviewer sees the full sequence in order.
What stops an agent from publishing without review?
The publish step is gated. The agent can write the row and request review, but the status transition to approved requires a human, the same approval pattern used across the rest of the content stack.
