Screaming Frog runs the crawl. Dock holds the queue. After the SEO Spider finishes a site audit, the agent reads the export, classifies every issue (broken canonicals, 5xx clusters, orphaned pages, meta collisions, redirect chains), and writes a prioritized fix list into a Dock table. Each row carries the original crawl ID, the proposed change, the blast radius, and a consent-gate field. Sitewide rules do not ship until a second reviewer co-signs the row. The crawl stays in Screaming Frog. The decision lives in Dock.
That split matters. The Screaming Frog SEO Spider and the rest of the technical-SEO stack (GSC, Ahrefs, Semrush) stay the system of record for raw crawl data: status codes, response headers, canonical chains, hreflang clusters, render diffs. Dock is the system of record for what the agent interprets from that data: the prioritized fix list, the redirect map, the canonical override, the noindex sweep. Each Dock row holds a pointer back to the source crawl (screaming_frog_url_id, gsc_query_id), the acting agent's identity, the decision rendered, the reviewer who approved it, and the timestamp it shipped. When the agent needs current state, it re-runs the spider or re-pulls GSC. Dock holds the persistent interpretive layer that survives across sessions and across agents, the same pattern described in the Dock-for-SEO overview and the broader SEO technical ops walkthrough.
The fix-queue table
| row_id | sf_url_id | issue_type | proposed_fix | blast_radius | priority | agent | reviewer | status |
|---|---|---|---|---|---|---|---|---|
| FX-0411 | sf_88231 | Redirect chain (4 hops) | Collapse to single 301 | 1 URL | P2 | argus | flint | shipped |
| FX-0412 | sf_88404 | Canonical mismatch on /products/* | Rewrite canonical rule | ~2,800 URLs | P0 | argus | pending | gated |
| FX-0413 | sf_88517 | 12 orphaned pillar pages | Add internal links from hub | 12 URLs | P1 | mei | flint | in review |
Row FX-0412 is the interesting one. A sitewide canonical rewrite touches thousands of URLs and cannot be undone with a single button. The row sits in a gated state until a second human or agent co-signs. That handshake is the contract described in the dangerous-ops contract post and the two-key handshake pattern.
One worked example
Argus runs the Spider against staging. Export shows 2,800 product URLs canonicalizing to themselves instead of the parent collection, which has been quietly bleeding equity for six weeks. Argus opens FX-0412 in Dock, attaches the crawl segment, drafts the new canonical rule, and computes blast radius from the URL count. The row's status flips to gated. Flint reviews the proposed rule, checks the affected URL list against the content audit register, and co-signs. Only then does Argus push the rule to the CDN edge config. The row records both signatures, the diff, and the deploy timestamp. If rankings move next week, the row is the receipt.
Why this matters
Attribution. Sitewide SEO changes get blamed for traffic swings months later. A Dock row says exactly which agent proposed the rule, who approved it, what the crawl looked like at the time, and which URLs were in scope. No more archaeology through Slack threads.
Audit. Compliance and brand teams can read the queue without learning Screaming Frog. The row is the artifact. The same surface feeds the agent audit and compliance log that legal and security already watch.
Daily driver. SEO teams stop living in spreadsheet exports. The agent triages overnight, the queue is ranked by morning, and humans spend their hours on the P0 rows that actually need judgment. Technical SEO benchmarks from Search Engine Journal's technical SEO library consistently put crawl-issue triage and redirect-chain cleanup in the top recurring tasks. Those are exactly the rows Dock holds.
Start with the Dock-for-SEO pillar for the full surface map.
FAQ
Does Dock replace Screaming Frog? No. Screaming Frog stays the crawler and the source of truth for raw URL data. Dock holds the agent's interpretation: which issues to fix, in what order, with which reviewer co-signed.
What stops an agent from shipping a bad sitewide rule?
The consent gate on the row. A canonical rewrite or noindex sweep with blast radius above a configured threshold sits in gated status until a second principal co-signs. The handshake is enforced at the surface, not as a convention.
How does the row reference the original crawl?
Each row carries a sf_url_id (or equivalent pointer) back to the Screaming Frog export. The agent re-fetches the crawl when it needs current state. Dock does not duplicate the crawl, it indexes the decision.
Who can see the fix queue? Anyone on the workspace. SEO, engineering, compliance, and brand read the same table. That shared view is what makes the queue an audit artifact instead of a private agent log.
