{
 "steps": [
  {
   "id": "ai-visibility-audit.citation-map",
   "name": "Map cited sources and trace errors to them",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.citation-map.json"
  },
  {
   "id": "ai-visibility-audit.foundation",
   "name": "Audit AI crawler access, rendering and entity consistency",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.foundation.json"
  },
  {
   "id": "ai-visibility-audit.prompt-set",
   "name": "Build and weight the prompt set from real demand",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.prompt-set.json"
  },
  {
   "id": "ai-visibility-audit.sample",
   "name": "Sample answers repeatedly across platforms, markets and modes",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.sample.json"
  },
  {
   "id": "ai-visibility-audit.score",
   "name": "Score presence, share of voice, position, accuracy and sentiment",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.score.json"
  },
  {
   "id": "ai-visibility-audit.tracking",
   "name": "Set up the tracked prompt set and AI referral measurement",
   "kind": "specify",
   "tier": "automate",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/ai-visibility-audit.tracking.json"
  },
  {
   "id": "algorithm-update-analysis.decompose",
   "name": "Split the change into ranking, click-through and demand",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/algorithm-update-analysis.decompose.json"
  },
  {
   "id": "algorithm-update-analysis.page-review",
   "name": "Review losing pages against the pages that replaced them",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/algorithm-update-analysis.page-review.json"
  },
  {
   "id": "algorithm-update-analysis.response",
   "name": "Decide the response, what to avoid and review dates",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/algorithm-update-analysis.response.json"
  },
  {
   "id": "algorithm-update-analysis.segment-pattern",
   "name": "Segment winners and losers to find the pattern",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/algorithm-update-analysis.segment-pattern.json"
  },
  {
   "id": "algorithm-update-analysis.timeline",
   "name": "Build the update timeline and rule out other causes",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/algorithm-update-analysis.timeline.json"
  },
  {
   "id": "analyze.baseline",
   "name": "Set the baseline and comparison points",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/analyze.baseline.json"
  },
  {
   "id": "analyze.validate",
   "name": "Validate findings against first-party data",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/analyze.validate.json"
  },
  {
   "id": "backlink-audit.benchmark",
   "name": "Benchmark the profile against ranking competitors",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.benchmark.json"
  },
  {
   "id": "backlink-audit.distribution",
   "name": "Analyze link distribution, anchors and internal flow",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.distribution.json"
  },
  {
   "id": "backlink-audit.gap",
   "name": "Run the referring domain gap and build the target list",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.gap.json"
  },
  {
   "id": "backlink-audit.merge",
   "name": "Merge and dedupe backlink sources",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.merge.json"
  },
  {
   "id": "backlink-audit.reclaim",
   "name": "Find reclamation opportunities and write the redirect map",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.reclaim.json"
  },
  {
   "id": "backlink-audit.risk",
   "name": "Review risk patterns and decide on remediation",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/backlink-audit.risk.json"
  },
  {
   "id": "business-case-forecast.define-initiatives",
   "name": "Define each initiative by pages, clusters, cost and timing",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/business-case-forecast.define-initiatives.json"
  },
  {
   "id": "business-case-forecast.finance-pressure-test",
   "name": "Pressure test the model with finance and analytics",
   "kind": "verify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/business-case-forecast.finance-pressure-test.json"
  },
  {
   "id": "business-case-forecast.nonbrand-baseline",
   "name": "Build a seasonally adjusted non-brand baseline",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/business-case-forecast.nonbrand-baseline.json"
  },
  {
   "id": "business-case-forecast.rank-to-revenue",
   "name": "Convert rank change ranges to clicks, revenue and margin",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/business-case-forecast.rank-to-revenue.json"
  },
  {
   "id": "business-case-forecast.sensitivity",
   "name": "Run sensitivity and payback analysis",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/business-case-forecast.sensitivity.json"
  },
  {
   "id": "competitive-analysis.classify-gaps",
   "name": "Classify gaps as structural or executional",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/competitive-analysis.classify-gaps.json"
  },
  {
   "id": "competitive-analysis.draft-plays",
   "name": "Draft attack, defend and concede plays",
   "kind": "specify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/competitive-analysis.draft-plays.json"
  },
  {
   "id": "competitive-analysis.share-of-voice",
   "name": "Calculate weighted share of voice and trend it",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/competitive-analysis.share-of-voice.json"
  },
  {
   "id": "competitive-analysis.weighted-set",
   "name": "Build the weighted keyword set",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/competitive-analysis.weighted-set.json"
  },
  {
   "id": "competitive-analysis.winner-teardown",
   "name": "Tear down winning templates and authority profiles",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/competitive-analysis.winner-teardown.json"
  },
  {
   "id": "content-audit.classify",
   "name": "Classify URLs and find cannibalization",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.classify.json"
  },
  {
   "id": "content-audit.inventory",
   "name": "Build the master URL inventory with joined data",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.inventory.json"
  },
  {
   "id": "content-audit.redirect-spec",
   "name": "Write the redirect and removal specification",
   "kind": "specify",
   "tier": "automate",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.redirect-spec.json"
  },
  {
   "id": "content-audit.refresh-briefs",
   "name": "Write refresh briefs for wave one",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.refresh-briefs.json"
  },
  {
   "id": "content-audit.sample-review",
   "name": "Sample-read pages and every risky removal",
   "kind": "verify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.sample-review.json"
  },
  {
   "id": "content-audit.score-actions",
   "name": "Score each URL and assign one action from fixed rules",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:04:15.762827+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-audit.score-actions.json"
  },
  {
   "id": "content-brief.acceptance",
   "name": "Write the acceptance checklist and approve the brief",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-brief.acceptance.json"
  },
  {
   "id": "content-brief.angle",
   "name": "Define the page job, reader and angle",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-brief.angle.json"
  },
  {
   "id": "content-brief.page-decision",
   "name": "Decide create, update or consolidate",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-brief.page-decision.json"
  },
  {
   "id": "content-brief.serp-read",
   "name": "Read the SERP and AI answers",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-brief.serp-read.json"
  },
  {
   "id": "content-brief.structure",
   "name": "Draft the structure, evidence and on-page requirements",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-brief.structure.json"
  },
  {
   "id": "content-gap-analysis.capacity-review",
   "name": "Review the shortlist against content capacity",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-gap-analysis.capacity-review.json"
  },
  {
   "id": "content-gap-analysis.filter-classify",
   "name": "Filter for right to win and classify gap type",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-gap-analysis.filter-classify.json"
  },
  {
   "id": "content-gap-analysis.overlap-pull",
   "name": "Pull ranking overlap and first-party question sources",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-gap-analysis.overlap-pull.json"
  },
  {
   "id": "content-gap-analysis.serp-page-type",
   "name": "Review SERPs to set page type and depth",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-gap-analysis.serp-page-type.json"
  },
  {
   "id": "content-gap-analysis.themes",
   "name": "Group sized gaps into themes with an action",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-gap-analysis.themes.json"
  },
  {
   "id": "content-strategy.audiences-jobs",
   "name": "Define audiences, jobs and commercial next steps",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-strategy.audiences-jobs.json"
  },
  {
   "id": "content-strategy.pillars",
   "name": "Select topic pillars and map clusters",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-strategy.pillars.json"
  },
  {
   "id": "content-strategy.production-calendar",
   "name": "Design the production model and two quarter calendar",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-strategy.production-calendar.json"
  },
  {
   "id": "content-strategy.stakeholder-interviews",
   "name": "Interview content, brand, product and sales stakeholders",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-strategy.stakeholder-interviews.json"
  },
  {
   "id": "content-strategy.types-standards",
   "name": "Set content types and quality standards",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/content-strategy.types-standards.json"
  },
  {
   "id": "cwv-audit.budgets",
   "name": "Set performance budgets, CI checks and RUM alerts",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.budgets.json"
  },
  {
   "id": "cwv-audit.conversion",
   "name": "Correlate speed with conversion on the client's own data",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.conversion.json"
  },
  {
   "id": "cwv-audit.field-data",
   "name": "Pull field data by template and device",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.field-data.json"
  },
  {
   "id": "cwv-audit.fixes",
   "name": "Write fixes with expected gain and verification",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.fixes.json"
  },
  {
   "id": "cwv-audit.lab-decompose",
   "name": "Run lab tests and decompose metrics into sub-parts",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.lab-decompose.json"
  },
  {
   "id": "cwv-audit.third-party",
   "name": "Attribute main thread cost to first and third party scripts",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/cwv-audit.third-party.json"
  },
  {
   "id": "decide.owners",
   "name": "Assign owners and acceptance criteria",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/decide.owners.json"
  },
  {
   "id": "decide.prioritize",
   "name": "Score impact, effort and confidence, then commit to an order",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/decide.prioritize.json"
  },
  {
   "id": "decide.size-impact",
   "name": "Size the upside as a range",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/decide.size-impact.json"
  },
  {
   "id": "deliver.handoff",
   "name": "Log the decision, hand off, and schedule the check",
   "kind": "deliver",
   "tier": "automate",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/deliver.handoff.json"
  },
  {
   "id": "deliver.preview",
   "name": "Preview priorities with the client lead",
   "kind": "deliver",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/deliver.preview.json"
  },
  {
   "id": "deliver.readout",
   "name": "Run the readout and secure the decision",
   "kind": "deliver",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/deliver.readout.json"
  },
  {
   "id": "dev-ticket-spec.acceptance-tests",
   "name": "Write acceptance criteria, test steps and rollback",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/dev-ticket-spec.acceptance-tests.json"
  },
  {
   "id": "dev-ticket-spec.behavior",
   "name": "Write the story, business reason and behaviors",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/dev-ticket-spec.behavior.json"
  },
  {
   "id": "dev-ticket-spec.conventions",
   "name": "Confirm ticket conventions with the engineering lead",
   "kind": "frame",
   "tier": "automate",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/dev-ticket-spec.conventions.json"
  },
  {
   "id": "dev-ticket-spec.refine-verify",
   "name": "Refine with the team and verify in production",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/dev-ticket-spec.refine-verify.json"
  },
  {
   "id": "dev-ticket-spec.reproduce",
   "name": "Reproduce the issue and capture evidence",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/dev-ticket-spec.reproduce.json"
  },
  {
   "id": "digital-pr-plan.asset-audit",
   "name": "Audit data, experts and assets for story potential",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.asset-audit.json"
  },
  {
   "id": "digital-pr-plan.authority-gap",
   "name": "Diagnose the authority gap by topic",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.authority-gap.json"
  },
  {
   "id": "digital-pr-plan.calendar-kpis",
   "name": "Set targets, calendar and reporting",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.calendar-kpis.json"
  },
  {
   "id": "digital-pr-plan.campaign-concepts",
   "name": "Develop and test campaign concepts",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.campaign-concepts.json"
  },
  {
   "id": "digital-pr-plan.operating-model",
   "name": "Define the PR and SEO operating model and link routing",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.operating-model.json"
  },
  {
   "id": "digital-pr-plan.target-sources",
   "name": "Build the target source list by topic",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:08:36.757504+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/digital-pr-plan.target-sources.json"
  },
  {
   "id": "frame.access",
   "name": "Secure data access and fix the analysis window",
   "kind": "frame",
   "tier": "automate",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/frame.access.json"
  },
  {
   "id": "frame.kickoff",
   "name": "Confirm the decision, owner and scope",
   "kind": "frame",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/frame.kickoff.json"
  },
  {
   "id": "gather.analytics",
   "name": "Export landing page sessions, conversions and revenue",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/gather.analytics.json"
  },
  {
   "id": "gather.competitors",
   "name": "Define the true search competitor set",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/gather.competitors.json"
  },
  {
   "id": "gather.crawl",
   "name": "Crawl the site, raw and rendered",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/gather.crawl.json"
  },
  {
   "id": "gather.search-console",
   "name": "Export Search Console performance and indexing data",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/gather.search-console.json"
  },
  {
   "id": "gather.template-map",
   "name": "Map URLs to templates and business value",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/gather.template-map.json"
  },
  {
   "id": "information-architecture.demand-model",
   "name": "Cluster demand into entities, attributes and modifiers",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.demand-model.json"
  },
  {
   "id": "information-architecture.facet-rules",
   "name": "Define facet indexation rules and qualifying combinations",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.facet-rules.json"
  },
  {
   "id": "information-architecture.gap-map",
   "name": "Map current URLs to clusters and find gaps, overlaps and waste",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.gap-map.json"
  },
  {
   "id": "information-architecture.target-tree",
   "name": "Draft the target tree and page type inventory",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.target-tree.json"
  },
  {
   "id": "information-architecture.tree-test",
   "name": "Validate the tree with users",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.tree-test.json"
  },
  {
   "id": "information-architecture.url-map-governance",
   "name": "Write the URL map, phasing and governance",
   "kind": "package",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/information-architecture.url-map-governance.json"
  },
  {
   "id": "internal-linking-strategy.leaks",
   "name": "Identify link leaks and bloat",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.leaks.json"
  },
  {
   "id": "internal-linking-strategy.link-graph",
   "name": "Measure the current link graph and crawl attention",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.link-graph.json"
  },
  {
   "id": "internal-linking-strategy.priority-set",
   "name": "Agree the priority page set",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:09:39.245466+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.priority-set.json"
  },
  {
   "id": "internal-linking-strategy.specs-guide",
   "name": "Write implementation specs and the editorial linking guide",
   "kind": "package",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.specs-guide.json"
  },
  {
   "id": "internal-linking-strategy.system-design",
   "name": "Design linking modules, rules and anchors per template",
   "kind": "specify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.system-design.json"
  },
  {
   "id": "internal-linking-strategy.test-plan",
   "name": "Model the lift and plan a controlled test",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/internal-linking-strategy.test-plan.json"
  },
  {
   "id": "international-strategy.current-audit",
   "name": "Audit the current international setup",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.current-audit.json"
  },
  {
   "id": "international-strategy.localization",
   "name": "Build local demand models and localization tiers",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.localization.json"
  },
  {
   "id": "international-strategy.market-scoring",
   "name": "Score and rank markets",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.market-scoring.json"
  },
  {
   "id": "international-strategy.stakeholders",
   "name": "Interview central and local stakeholders",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.stakeholders.json"
  },
  {
   "id": "international-strategy.structure-decision",
   "name": "Recommend the URL structure with tradeoffs",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.structure-decision.json"
  },
  {
   "id": "international-strategy.tech-spec-governance",
   "name": "Specify technical signals, governance and rollout",
   "kind": "package",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/international-strategy.tech-spec-governance.json"
  },
  {
   "id": "keyword-research.calibrate-score",
   "name": "Calibrate demand and score priority",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/keyword-research.calibrate-score.json"
  },
  {
   "id": "keyword-research.expand-clean",
   "name": "Expand with tools and remove unusable terms",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/keyword-research.expand-clean.json"
  },
  {
   "id": "keyword-research.seed-lists",
   "name": "Build seed lists from first-party sources",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/keyword-research.seed-lists.json"
  },
  {
   "id": "keyword-research.serp-cluster",
   "name": "Cluster by SERP overlap and label intent",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/keyword-research.serp-cluster.json"
  },
  {
   "id": "keyword-research.url-mapping",
   "name": "Map every cluster to one owning URL or a gap",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:07:30.215777+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/keyword-research.url-mapping.json"
  },
  {
   "id": "local-seo-strategy.geo-grid",
   "name": "Run geo-grid tracking and cluster locations",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/local-seo-strategy.geo-grid.json"
  },
  {
   "id": "local-seo-strategy.profile-page-audit",
   "name": "Audit profiles, location pages and locator",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/local-seo-strategy.profile-page-audit.json"
  },
  {
   "id": "local-seo-strategy.reconcile-data",
   "name": "Reconcile location data across sources",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:10:42.778595+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/local-seo-strategy.reconcile-data.json"
  },
  {
   "id": "local-seo-strategy.reviews-benchmark",
   "name": "Benchmark reviews and design the review process",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/local-seo-strategy.reviews-benchmark.json"
  },
  {
   "id": "local-seo-strategy.standards-authority",
   "name": "Set profile and page standards, source of truth and local authority plan",
   "kind": "specify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/local-seo-strategy.standards-authority.json"
  },
  {
   "id": "log-file-analysis.ai-policy",
   "name": "Assess AI crawler access and draft policy options",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.ai-policy.json"
  },
  {
   "id": "log-file-analysis.collect",
   "name": "Collect, normalize and strip personal data from logs",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.collect.json"
  },
  {
   "id": "log-file-analysis.crawl-distribution",
   "name": "Map crawl to templates, status and response time",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.crawl-distribution.json"
  },
  {
   "id": "log-file-analysis.gaps-waste",
   "name": "Overlay crawl, sitemaps and indexing to quantify gaps and waste",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.gaps-waste.json"
  },
  {
   "id": "log-file-analysis.monitoring",
   "name": "Design the log pipeline, dashboards and alerts",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.monitoring.json"
  },
  {
   "id": "log-file-analysis.verify-bots",
   "name": "Verify bots and segment by type",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/log-file-analysis.verify-bots.json"
  },
  {
   "id": "migration-plan.inventory",
   "name": "Build the weighted URL inventory from four or more sources",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.inventory.json"
  },
  {
   "id": "migration-plan.launch-runbook",
   "name": "Write go criteria, launch runbook and monitoring plan",
   "kind": "deliver",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.launch-runbook.json"
  },
  {
   "id": "migration-plan.redirect-map",
   "name": "Build the one to one redirect map",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.redirect-map.json"
  },
  {
   "id": "migration-plan.requirements",
   "name": "Write SEO requirements as build criteria",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.requirements.json"
  },
  {
   "id": "migration-plan.risk-assess",
   "name": "Inventory the planned changes and rate their risk",
   "kind": "frame",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.risk-assess.json"
  },
  {
   "id": "migration-plan.staging-audit",
   "name": "Audit staging for parity and test redirects",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:12:53.454155+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/migration-plan.staging-audit.json"
  },
  {
   "id": "monitoring-alerts.failure-modes",
   "name": "Map failure modes to checks and data sources",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.failure-modes.json"
  },
  {
   "id": "monitoring-alerts.pre-release",
   "name": "Add pre-release SEO checks to CI or QA",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.pre-release.json"
  },
  {
   "id": "monitoring-alerts.runbooks",
   "name": "Write runbooks for each alert type",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.runbooks.json"
  },
  {
   "id": "monitoring-alerts.select-tools",
   "name": "Select and configure monitoring tools",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.select-tools.json"
  },
  {
   "id": "monitoring-alerts.test-launch",
   "name": "Test with simulated failures, train responders and launch",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.test-launch.json"
  },
  {
   "id": "monitoring-alerts.thresholds",
   "name": "Set severity tiers, thresholds, baselines and routing",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monitoring-alerts.thresholds.json"
  },
  {
   "id": "monthly-report.explain-movement",
   "name": "Investigate segments outside their normal range",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monthly-report.explain-movement.json"
  },
  {
   "id": "monthly-report.next-month",
   "name": "Set next month's priorities, blockers and decisions",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monthly-report.next-month.json"
  },
  {
   "id": "monthly-report.refresh-pulls",
   "name": "Refresh the templated data pulls and reconcile",
   "kind": "gather",
   "tier": "automate",
   "updated_at": "2026-09-15T20:16:04.358564+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monthly-report.refresh-pulls.json"
  },
  {
   "id": "monthly-report.send",
   "name": "Send the report ahead of the call",
   "kind": "deliver",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monthly-report.send.json"
  },
  {
   "id": "monthly-report.shipped-work",
   "name": "Annotate shipped work and read early impact",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/monthly-report.shipped-work.json"
  },
  {
   "id": "on-page-optimization.query-map",
   "name": "Map every query each page ranks for",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.query-map.json"
  },
  {
   "id": "on-page-optimization.rollout",
   "name": "Plan rollout, change log and measurement",
   "kind": "deliver",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.rollout.json"
  },
  {
   "id": "on-page-optimization.select-pages",
   "name": "Select pages by upside",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.select-pages.json"
  },
  {
   "id": "on-page-optimization.serp-gap",
   "name": "Diagnose each page against its SERP",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.serp-gap.json"
  },
  {
   "id": "on-page-optimization.split-template",
   "name": "Separate template fixes from page fixes",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.split-template.json"
  },
  {
   "id": "on-page-optimization.write-changes",
   "name": "Write exact page changes and design notes",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:13:58.200488+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/on-page-optimization.write-changes.json"
  },
  {
   "id": "package.layer",
   "name": "Assemble the document in reader layers",
   "kind": "package",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/package.layer.json"
  },
  {
   "id": "package.thesis",
   "name": "Write the thesis and executive summary",
   "kind": "package",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:02:06.926219+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/package.thesis.json"
  },
  {
   "id": "quarterly-business-review.business-value",
   "name": "Build the business view of organic search",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/quarterly-business-review.business-value.json"
  },
  {
   "id": "quarterly-business-review.grade-commitments",
   "name": "Grade last quarter's commitments",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/quarterly-business-review.grade-commitments.json"
  },
  {
   "id": "quarterly-business-review.learnings",
   "name": "Summarize tests, wins and misses",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/quarterly-business-review.learnings.json"
  },
  {
   "id": "quarterly-business-review.market-view",
   "name": "Analyze share of voice, competitors and AI search",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/quarterly-business-review.market-view.json"
  },
  {
   "id": "quarterly-business-review.options",
   "name": "Draft next quarter options with sized impact",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/quarterly-business-review.options.json"
  },
  {
   "id": "seo-playbook.design-gates",
   "name": "Build the RACI, review gates and escalation path",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.design-gates.json"
  },
  {
   "id": "seo-playbook.draft-standards",
   "name": "Draft the standards by area",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.draft-standards.json"
  },
  {
   "id": "seo-playbook.embed-checklists",
   "name": "Embed checklists and templates in existing tools",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.embed-checklists.json"
  },
  {
   "id": "seo-playbook.interview-workflows",
   "name": "Map how work reaches production today",
   "kind": "gather",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.interview-workflows.json"
  },
  {
   "id": "seo-playbook.trace-incidents",
   "name": "Trace past SEO incidents to the missing gate",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.trace-incidents.json"
  },
  {
   "id": "seo-playbook.workshop",
   "name": "Workshop the draft and resolve conflicts",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-playbook.workshop.json"
  },
  {
   "id": "seo-strategy-roadmap.bets",
   "name": "Draft strategic bets and explicit exclusions",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.bets.json"
  },
  {
   "id": "seo-strategy-roadmap.constraint",
   "name": "Synthesize diagnostics into the binding constraint",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.constraint.json"
  },
  {
   "id": "seo-strategy-roadmap.governance",
   "name": "Define KPIs, checkpoints and kill criteria",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.governance.json"
  },
  {
   "id": "seo-strategy-roadmap.interviews",
   "name": "Interview stakeholders and capture capacity",
   "kind": "gather",
   "tier": "assist",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.interviews.json"
  },
  {
   "id": "seo-strategy-roadmap.sequence",
   "name": "Sequence initiatives by dependency and quarter",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.sequence.json"
  },
  {
   "id": "seo-strategy-roadmap.workshop",
   "name": "Run the prioritization workshop with the decision owner",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:11:47.177766+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/seo-strategy-roadmap.workshop.json"
  },
  {
   "id": "structured-data-spec.audit-markup",
   "name": "Extract and audit existing markup by template",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.audit-markup.json"
  },
  {
   "id": "structured-data-spec.entity-model",
   "name": "Define the entity model and @id conventions",
   "kind": "specify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.entity-model.json"
  },
  {
   "id": "structured-data-spec.map-properties",
   "name": "Specify types and map every property to a data source",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.map-properties.json"
  },
  {
   "id": "structured-data-spec.serp-features",
   "name": "Identify the search features worth earning",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.serp-features.json"
  },
  {
   "id": "structured-data-spec.validation-plan",
   "name": "Specify validation tests and monitoring",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.validation-plan.json"
  },
  {
   "id": "structured-data-spec.write-examples",
   "name": "Write annotated JSON-LD examples per template",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:15:02.622877+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/structured-data-spec.write-examples.json"
  },
  {
   "id": "technical-audit.diagnose",
   "name": "Diagnose issues along the discovery to ranking pipeline",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/technical-audit.diagnose.json"
  },
  {
   "id": "technical-audit.measurement-plan",
   "name": "Define the measurement plan per fix",
   "kind": "decide",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/technical-audit.measurement-plan.json"
  },
  {
   "id": "technical-audit.render-diff",
   "name": "Compare raw and rendered HTML by template",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:05:24.575883+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/technical-audit.render-diff.json"
  },
  {
   "id": "technical-audit.write-tickets",
   "name": "Write ticket-ready recommendations",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:06:29.154803+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/technical-audit.write-tickets.json"
  },
  {
   "id": "test-readout.balance-check",
   "name": "Check bucket balance and pre-period fit",
   "kind": "analyze",
   "tier": "automate",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.balance-check.json"
  },
  {
   "id": "test-readout.classify-call",
   "name": "Classify the result and make the call",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.classify-call.json"
  },
  {
   "id": "test-readout.log-learnings",
   "name": "Log the test and define follow-up hypotheses",
   "kind": "package",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.log-learnings.json"
  },
  {
   "id": "test-readout.run-model",
   "name": "Run the agreed model on the primary metric",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.run-model.json"
  },
  {
   "id": "test-readout.threats",
   "name": "Check what could have faked the result",
   "kind": "analyze",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:07.812778+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.threats.json"
  },
  {
   "id": "test-readout.verify-deployment",
   "name": "Verify the change shipped and was crawled on variant pages only",
   "kind": "verify",
   "tier": "automate",
   "updated_at": "2026-09-15T20:17:06.444873+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/test-readout.verify-deployment.json"
  },
  {
   "id": "training-program.build-sessions",
   "name": "Build session materials from the client's own site",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.build-sessions.json"
  },
  {
   "id": "training-program.define-curriculum",
   "name": "Write learning outcomes as behaviors and build the curriculum by role",
   "kind": "decide",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.define-curriculum.json"
  },
  {
   "id": "training-program.deliver-sessions",
   "name": "Deliver, record and collect exercise results",
   "kind": "deliver",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.deliver-sessions.json"
  },
  {
   "id": "training-program.job-aids",
   "name": "Create job aids people will use the next day",
   "kind": "specify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.job-aids.json"
  },
  {
   "id": "training-program.measure-behavior",
   "name": "Set behavior baselines and the 30 and 90 day checks",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.measure-behavior.json"
  },
  {
   "id": "training-program.needs-assessment",
   "name": "Assess needs: map recurring issues to roles and survey knowledge",
   "kind": "analyze",
   "tier": "assist",
   "updated_at": "2026-09-15T20:18:47.260959+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/training-program.needs-assessment.json"
  },
  {
   "id": "verify.peer-review",
   "name": "Peer review by a second practitioner",
   "kind": "verify",
   "tier": "reserve",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/verify.peer-review.json"
  },
  {
   "id": "verify.quality",
   "name": "Check the draft against the quality bar",
   "kind": "verify",
   "tier": "assist",
   "updated_at": "2026-09-15T20:03:09.23532+00:00",
   "url": "https://syzygy-workflows.jakelabate.com/api/steps/verify.quality.json"
  }
 ],
 "procedures": [
  {
   "id": "ai-visibility-audit",
   "deliverable": "ai-visibility-audit",
   "name": "AI search visibility audit",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/ai-visibility-audit.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/ai-visibility-audit/SKILL.md"
  },
  {
   "id": "backlink-audit",
   "deliverable": "backlink-audit",
   "name": "Backlink and authority audit",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/backlink-audit.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/backlink-audit/SKILL.md"
  },
  {
   "id": "content-audit",
   "deliverable": "content-audit",
   "name": "Content audit",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/content-audit.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/content-audit/SKILL.md"
  },
  {
   "id": "log-file-analysis",
   "deliverable": "log-file-analysis",
   "name": "Log file analysis",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/log-file-analysis.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/log-file-analysis/SKILL.md"
  },
  {
   "id": "cwv-audit",
   "deliverable": "cwv-audit",
   "name": "Page experience and Core Web Vitals audit",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/cwv-audit.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/cwv-audit/SKILL.md"
  },
  {
   "id": "technical-audit",
   "deliverable": "technical-audit",
   "name": "Technical SEO audit",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/technical-audit.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/technical-audit/SKILL.md"
  },
  {
   "id": "competitive-analysis",
   "deliverable": "competitive-analysis",
   "name": "Competitive search landscape",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/competitive-analysis.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/competitive-analysis/SKILL.md"
  },
  {
   "id": "content-gap-analysis",
   "deliverable": "content-gap-analysis",
   "name": "Content gap analysis",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/content-gap-analysis.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/content-gap-analysis/SKILL.md"
  },
  {
   "id": "keyword-research",
   "deliverable": "keyword-research",
   "name": "Keyword and demand research",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/keyword-research.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/keyword-research/SKILL.md"
  },
  {
   "id": "business-case-forecast",
   "deliverable": "business-case-forecast",
   "name": "SEO business case and forecast",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/business-case-forecast.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/business-case-forecast/SKILL.md"
  },
  {
   "id": "content-strategy",
   "deliverable": "content-strategy",
   "name": "Content strategy",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/content-strategy.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/content-strategy/SKILL.md"
  },
  {
   "id": "digital-pr-plan",
   "deliverable": "digital-pr-plan",
   "name": "Digital PR and authority plan",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/digital-pr-plan.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/digital-pr-plan/SKILL.md"
  },
  {
   "id": "information-architecture",
   "deliverable": "information-architecture",
   "name": "Information architecture and taxonomy",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/information-architecture.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/information-architecture/SKILL.md"
  },
  {
   "id": "internal-linking-strategy",
   "deliverable": "internal-linking-strategy",
   "name": "Internal linking strategy",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/internal-linking-strategy.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/internal-linking-strategy/SKILL.md"
  },
  {
   "id": "international-strategy",
   "deliverable": "international-strategy",
   "name": "International SEO strategy",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/international-strategy.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/international-strategy/SKILL.md"
  },
  {
   "id": "local-seo-strategy",
   "deliverable": "local-seo-strategy",
   "name": "Local SEO strategy",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/local-seo-strategy.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/local-seo-strategy/SKILL.md"
  },
  {
   "id": "seo-strategy-roadmap",
   "deliverable": "seo-strategy-roadmap",
   "name": "SEO strategy and roadmap",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/seo-strategy-roadmap.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/seo-strategy-roadmap/SKILL.md"
  },
  {
   "id": "migration-plan",
   "deliverable": "migration-plan",
   "name": "Site migration plan",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/migration-plan.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/migration-plan/SKILL.md"
  },
  {
   "id": "content-brief",
   "deliverable": "content-brief",
   "name": "Content brief",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/content-brief.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/content-brief/SKILL.md"
  },
  {
   "id": "dev-ticket-spec",
   "deliverable": "dev-ticket-spec",
   "name": "Engineering ticket and implementation spec",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/dev-ticket-spec.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/dev-ticket-spec/SKILL.md"
  },
  {
   "id": "on-page-optimization",
   "deliverable": "on-page-optimization",
   "name": "Page-level optimization recommendations",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/on-page-optimization.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/on-page-optimization/SKILL.md"
  },
  {
   "id": "structured-data-spec",
   "deliverable": "structured-data-spec",
   "name": "Structured data specification",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/structured-data-spec.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/structured-data-spec/SKILL.md"
  },
  {
   "id": "algorithm-update-analysis",
   "deliverable": "algorithm-update-analysis",
   "name": "Algorithm update impact analysis",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/algorithm-update-analysis.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/algorithm-update-analysis/SKILL.md"
  },
  {
   "id": "monitoring-alerts",
   "deliverable": "monitoring-alerts",
   "name": "SEO monitoring and alerting setup",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/monitoring-alerts.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/monitoring-alerts/SKILL.md"
  },
  {
   "id": "monthly-report",
   "deliverable": "monthly-report",
   "name": "Monthly performance report",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/monthly-report.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/monthly-report/SKILL.md"
  },
  {
   "id": "quarterly-business-review",
   "deliverable": "quarterly-business-review",
   "name": "Quarterly business review",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/quarterly-business-review.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/quarterly-business-review/SKILL.md"
  },
  {
   "id": "test-readout",
   "deliverable": "test-readout",
   "name": "SEO test readout (split tests and controlled experiments)",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/test-readout.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/test-readout/SKILL.md"
  },
  {
   "id": "seo-playbook",
   "deliverable": "seo-playbook",
   "name": "SEO playbook and governance guidelines",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/seo-playbook.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/seo-playbook/SKILL.md"
  },
  {
   "id": "training-program",
   "deliverable": "training-program",
   "name": "SEO training program",
   "url": "https://syzygy-workflows.jakelabate.com/api/procedures/training-program.json",
   "skill": "https://syzygy-workflows.jakelabate.com/skills/training-program/SKILL.md"
  }
 ]
}