{
 "trackerImport": {
  "state": "not_configured",
  "inputRows": 0,
  "matchedRows": 0
 },
 "stats": {
  "total": 276,
  "complete": 132,
  "reviewedInstructions": 275,
  "needsWork": 121,
  "gaps": 23,
  "articleHubs": 53,
  "definitiveArticles": 16,
  "verifiedMetaArticles": 90,
  "metaOrbitHubsWithEvidence": 15,
  "metaOrbitHubsUnknown": 38,
  "owners": 0,
  "categories": 13,
  "importance": {
   "1": 0,
   "2": 43,
   "3": 115,
   "4": 43,
   "5": 75
  },
  "fives": 75
 },
 "bundleUrl": "TaskLibrary-Skills-all.zip",
 "metaArticleUrl": "https://blitzmetrics.com/how-we-turned-239-tasks-into-an-ai-runnable-skill-library/",
 "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/",
 "metaOrbitUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
 "verificationQueueUrl": "verification-queue.html",
 "verificationSummary": {
  "tasks": 276,
  "fullyVerifiedTasks": 0,
  "proofSummary": {
   "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
   "recordedAcceptedOutputCount": 6,
   "recordedAcceptedReviewCount": 6,
   "acceptedRecordedOutputs": [
    {
     "version": 1,
     "reviewId": "publisher-completion-20260927-134412-acceptance-1",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-09-27T16:15:22Z",
     "reviewer": "Codex GPT-6 Sol independent source reviewer",
     "nextHandoff": "Existing Task Library maintenance worker uses the current verification queue and recorded run to resolve the owner, tracker and first-user gaps. This review covers the scoped repair under its old starting recipe only; a later use of the new recipe needs its own execution.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Publish one matching maintained skill, canonical task page and Task Library entry; make the complete guide available in the public library downloads.",
       "observedResult": "PR41 merged. The saved and anonymous article each embed the exact SHA609039d5 maintained skill. The public task entry is complete and maps to this page. All and ready ZIPs contain full generated guides plus onboarding; seven deployed archive checks passed.",
       "sourceUrl": null,
       "sourcePrivateEvidenceRecorded": true,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/41",
        "https://github.com/Local-Service-Spotlight/task-library/blob/111bca7fee201644aae9b7f7427ac4d6628c2fa6/reviews/publisher-completion-2026-09-27.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicReadback": {
       "state": "pass",
       "expectedResult": "Read back the saved and anonymous task page and public meta record; verify the lead diagram on desktop and phone.",
       "observedResult": "The task article returned 200 with exact embedded source text and equal media. The final meta page returned 200 with its whole new section and equal media at 16:06:17 UTC. Corrected phone and desktop captures show readable diagrams and opening text.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/making-task-guides-easier-to-use/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Record the scoped result and remaining owner, tracker and first-user gaps for the existing Task Library maintenance worker's next queue step.",
       "observedResult": "The published meta section and completed run record name the existing maintenance worker, current verification queue and open owner, tracker and novice gates. No separate person or new schedule was contacted or created.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/making-task-guides-easier-to-use/"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "publisher-completion-20260927-134412",
     "finishedAt": "2026-09-27T16:14:01.977704+00:00",
     "result": "Published matching maintained skill, canonical task page and library entry. Anonymous article and both download guides agree; seven deployed archive checks passed. Existing maintenance worker receives the recorded gaps and next queue step. Contributor instructions are complete; owner, novice setup, full article certification and a later accepted run of the revised recipe remain unknown."
    },
    {
     "version": 1,
     "reviewId": "revenue-path-repair-20261005-1855-acceptance-1",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-05T21:41:34Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Existing Task Library maintenance function: use the released guides and current verification queue for the next bounded maintenance step. Confirm the status-only meta closeout paragraph after cache refresh; it is excluded from this acceptance. Release 19 remains a separate pending batch.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Publish one matching maintained skill, canonical task page, and Task Library entry; make the complete guide available in public library downloads.",
       "observedResult": "Fresh anonymous library data matches the generated registry output for all three repaired guides. Full-library and Digital Plumbing archives returned 200 and contain byte-identical copies of each guide. Seven archive checks and public desktop/mobile guide and queue renders are recorded. The repaired guides remain needs-work; no client execution or income result is claimed.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/data.json",
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
        "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicReadback": {
       "state": "pass",
       "expectedResult": "Read back the public parent article and meta write-up for the released substantive outputs and confirm the corrected task copies are present.",
       "observedResult": "A fresh parent-page fetch returned 200 with all three task slugs. The ordinary meta URL receipt at 21:40:09Z reports 200 and matching full text, media, and scripts against the saved substantive meta source. Scope excludes the later status-only closeout paragraph saved at 21:40:44Z; its subsequent cache receipt says fullRenderedTextPresent=false, so that later paragraph is not certified here. My own normal-URL request returned 403; the successful contemporaneous receipt is separately retained as evidence.",
       "sourceUrl": "https://blitzmetrics.com/making-task-guides-easier-to-use/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/digital-plumbing/",
        "https://blitzmetrics.com/making-task-guides-easier-to-use/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "searchAndFirstOpen": {
       "state": "pass",
       "expectedResult": "A search entered before data load produces the intended match, and the published task opens with its copy control visible after settling on phone and desktop.",
       "observedResult": "The public preload-search receipt records 3 of 276 matches and one target row. The settled first-open receipt records the target guide and copy control within phone and desktop viewports after 1.2 seconds. Clipboard contents were not read back; this is not novice setup evidence.",
       "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/task-library-dashboard/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Leave the published task set and its next maintenance step findable by the existing Task Library maintenance function.",
       "observedResult": "The public library, exact archive links, current queue and published review expose the released guides and the next maintenance route. This is a handoff to the maintenance function through its durable records; no named person's acknowledgment is claimed. The separate release-19 batch remains pending and is outside this review.",
       "sourceUrl": "https://local-service-spotlight.github.io/task-library/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://local-service-spotlight.github.io/task-library/verification-queue.json",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": false
      }
     },
     "executionId": "revenue-path-repair-20261005-1855",
     "finishedAt": "2026-10-05T21:39:18Z",
     "result": "Published three corrected inquiry-path guides, business-value queue ordering and pre-load search repair. Anonymous parent/meta, exact public guide/ZIP bytes and phone/desktop normal-open checks passed. Independent publication review is retained separately. No client form/call attempt, novice setup or income result is claimed."
    },
    {
     "version": 1,
     "reviewId": "authority-guides-repair-20261005-independent-acceptance",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-05T23:58:49Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Task Library maintenance function: use the released verification queue and current written guidance to select the next actionable task batch; keep real execution, first-use setup, and business outcomes separate until their own evidence exists.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Three named guide pages and their two associated canonical article revisions are published with exact maintained guide bytes and readable public article bodies.",
       "observedResult": "The immutable bd032 release snapshot records exact parity for all three guides. Public review receipts record HTTP 200 and full rendered text for both canonical articles; the seven-archive receipt records the expected copies. This accepts written/publication delivery only; it does not certify task execution, novice setup, client outcomes, or revenue.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/68",
        "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "The released maintenance material is reachable by the Task Library maintenance function, with its verification queue available as the next-work record.",
       "observedResult": "The public Task Library release includes a 276-task verification queue. The captured public queue lists 0 fully verified tasks and preserves gate-level unknowns; this is an actionable maintenance handoff, not a claim that a human received or acted on it.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicGuideCopiesAndArchives": {
       "state": "pass",
       "expectedResult": "All three in-scope guide pages match the immutable source release and the seven archived copies pass parity checks.",
       "observedResult": "The public release receipt records exact source parity for the three target guides; the archive parity receipt records all seven copies matching. Current later RCF working-tree edits are outside this accepted release.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/68"
       ],
       "privateEvidenceRecorded": true
      },
      "publicGuideViews": {
       "state": "pass",
       "expectedResult": "The three published guide surfaces render on desktop and mobile, with the guide content and copy control visible and no reported queue overflow.",
       "observedResult": "The live render receipt records the three guides on phone and desktop, visible copy controls, and queue overflow false. It explicitly labels the check live and not novice setup; no media played.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "authority-guides-repair-20261005-2100",
     "finishedAt": "2026-10-05T23:45:19.414908+00:00",
     "result": "Three authority/site guides and both canonical article revisions published and checked. Obsolete never-started deployment cancelled after verified source inclusion; successor release succeeded. Exact public guides, seven archives and phone/desktop views pass. Publication acceptance remains separate from novice setup and client results."
    },
    {
     "version": 1,
     "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-06T02:07:43Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
       "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/70",
        "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
       "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicFirstOpen": {
       "state": "pass",
       "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
       "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
       "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "archiveAvailability": {
       "state": "pass",
       "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
       "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
        "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
        "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
        "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
        "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
        "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "first-use-rcf-20261005-2343",
     "finishedAt": "2026-10-06T02:06:05.871154+00:00",
     "result": "Published aligned web/ZIP starter inputs and clear catalog browsing labels. PR70 deployment succeeded; exact app source and all non-timestamp generated fields match, all seven public archives pass, phone/desktop standalone and embedded controls pass. Maintenance instructions and public RCA connect future work to existing business evidence. No novice setup, client execution or revenue result claimed."
    },
    {
     "version": 1,
     "reviewId": "proof-resolution-20261014-broken-links-independent-1",
     "taskSlug": "check-for-broken-links",
     "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
     "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
     "reviewedAt": "2026-10-14T16:39:00Z",
     "reviewer": "codex-independent-qa-20261014",
     "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
     "criteria": {
      "scopeAndCause": {
       "state": "pass",
       "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
       "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "result": {
       "state": "pass",
       "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
       "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "normalPublicDestinations": {
       "state": "pass",
       "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
       "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
        "https://localservicespotlight.com/content-factory/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
       "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "proof-resolution-20261014",
     "finishedAt": "2026-10-14T16:38:03.477390+00:00",
     "result": "Fixed five visible Content Factory links and matching copied guide in owned post109504; guarded native save and ordinary anonymous parity passed. Published accepted-proof summaries and corrected same historical source acceptance without creating a job. Public source/projections match; seven archives and phone/desktop entry checks pass; 224 tests and independent source review pass. Full task certification and novice-human setup remain unproven."
    },
    {
     "version": 1,
     "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
     "taskSlug": "place-content-on-seo-tree-with-proper-links",
     "canonicalURL": "https://blitzmetrics.com/seo-tree",
     "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
     "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
     "reviewer": "Codex independent site/link result-review function",
     "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
       "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "meaning": {
       "state": "pass",
       "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
       "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "sourcePreservation": {
       "state": "pass",
       "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
       "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "linkHealth": {
       "state": "pass",
       "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
       "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
       "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "site-guide-seo-placement-20261015",
     "finishedAt": "2026-10-14T18:01:10.697074+00:00",
     "result": "Placed the site-delivery guide under its Personal Branding topic home. One new parent body link and two existing child return links reach checked public pages; exact saved source and phone/desktop checks pass. Handed the placement record to independent checklist review. This is one owned SEO placement, not site delivery or beginner use."
    }
   ],
   "historicalVerifiedOutputCount": 6,
   "historicalAcceptedOutputCount": 3,
   "historicalIdentityOutputOnlyCount": 3,
   "historicalAcceptedHandoffPassCount": 2,
   "historicalAcceptedHandoffHoldCount": 1,
   "historicalAcceptedHandoffUnresolvedCount": 0,
   "historicalVerifiedEvidenceIds": [
    "historical-277118d625a087d83d91240c",
    "historical-67283f8934345f04d0bb68a6",
    "historical-676fc94d0a3360b42c6f30a0",
    "historical-84b2c95111073421c11227b6",
    "historical-a0e5c5670e6d4ce3ef327036",
    "historical-b47f6ecca9200b904c006ab7"
   ],
   "historicalAcceptedEvidenceIds": [
    "historical-277118d625a087d83d91240c",
    "historical-a0e5c5670e6d4ce3ef327036",
    "historical-b47f6ecca9200b904c006ab7"
   ]
  },
  "semanticHoldHubs": 3,
  "tasksWithHolds": 19,
  "tasksWithUnmetGates": 207,
  "tasksWithUnknownGates": 276,
  "gateCounts": {
   "instructionRevisionReviewed": {
    "pass": 275,
    "unmet": 1,
    "hold": 0,
    "unknown": 0
   },
   "instructionStandards": {
    "pass": 26,
    "unmet": 0,
    "hold": 0,
    "unknown": 250
   },
   "contributorComplete": {
    "pass": 132,
    "unmet": 144,
    "hold": 0,
    "unknown": 0
   },
   "articleMapped": {
    "pass": 234,
    "unmet": 42,
    "hold": 0,
    "unknown": 0
   },
   "articleCatalogGate": {
    "pass": 52,
    "unmet": 205,
    "hold": 19,
    "unknown": 0
   },
   "articleSemanticCertification": {
    "pass": 0,
    "unmet": 0,
    "hold": 19,
    "unknown": 257
   },
   "taskExampleEvidence": {
    "pass": 12,
    "unmet": 0,
    "hold": 0,
    "unknown": 264
   },
   "recordedExecution": {
    "pass": 5,
    "unmet": 0,
    "hold": 0,
    "unknown": 271
   },
   "acceptedExecution": {
    "pass": 0,
    "unmet": 1,
    "hold": 0,
    "unknown": 275
   },
   "setupSuccess": {
    "pass": 0,
    "unmet": 0,
    "hold": 0,
    "unknown": 276
   }
  }
 },
 "updated": "November 1, 2026",
 "factory": {
  "phases": [
   {
    "id": "Gate",
    "label": "Gate / Plumbing",
    "blurb": "Check the access, site setup and tracking that the next task actually needs.",
    "color": "#8b5cf6"
   },
   {
    "id": "Produce",
    "label": "1 · Produce (gather)",
    "blurb": "Record once. Topic Wheel questions, one-minute videos, conference clips, batch sessions.",
    "color": "#f59e0b"
   },
   {
    "id": "Process",
    "label": "2 · Process (edit)",
    "blurb": "Turn the source into useful articles, clips and images. Check the facts and the voice.",
    "color": "#f97316"
   },
   {
    "id": "Post",
    "label": "3 · Post",
    "blurb": "Publish the approved work on the right page or channel. Check the live result and links.",
    "color": "#3b82f6"
   },
   {
    "id": "Promote",
    "label": "4 · Promote (ads)",
    "blurb": "Share content that has earned a response. Use approved ad tests and measure the result.",
    "color": "#14b8a6"
   }
  ],
  "doctrine": "People with ONLY Grok or ONLY Claude can follow the same task methods. Check that the app has the tools and access each step needs. Using more than one model is optional. Share the actual source files, decisions and results so the next worker can pick up the job.",
  "lanes": {
   "script": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
   "local": "Local model for first drafts and bulk writing. Review its output before use; tools and access depend on the setup.",
   "any": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
   "judgment": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
   "computer": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access."
  },
  "scoring": "Importance is an estimate from 1–5. It uses the highest estimate for how often a task may recur, its role in earning revenue, or the work it may unblock. It does not measure actual runs or revenue."
 },
 "articleHubs": [
  {
   "key": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
   "url": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
   "state": "wip",
   "articleKind": "topic-hub",
   "taskCount": 10,
   "completeTaskCount": 10,
   "importance": 5,
   "importanceTotal": 33,
   "taskSlugs": [
    "content-strategy-90-greatest-hits-10-new",
    "funnel-levels-audience-engagement-conversion",
    "gct-goals-content-targeting",
    "kill-underperformers-scale-winners",
    "learn-do-teach-apprentice-model",
    "maa-cycle-metrics-analysis-action",
    "management-communicate-iterate-delegate",
    "personal-efficiency-do-delegate-delete",
    "systematization-content-checklists-software",
    "three-pillars-marketing-operations-finance"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2F9-triangles-framework-scalable-home-service-businesses%2F",
   "stateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
   "stateReviewed": "2026-08-22"
  },
  {
   "key": "blitzmetrics.com/access-content-factory-photos-videos",
   "url": "https://blitzmetrics.com/access-content-factory-photos-videos/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "access-content-factory-source-assets"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Faccess-content-factory-photos-videos%2F"
  },
  {
   "key": "blitzmetrics.com/agency-site-playbook",
   "url": "https://blitzmetrics.com/agency-site-playbook/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "build-agency-website-for-vertical"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fagency-site-playbook%2F"
  },
  {
   "key": "blitzmetrics.com/always-reply",
   "url": "https://blitzmetrics.com/always-reply/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "reply-with-task-status-in-origin-thread"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Falways-reply%2F"
  },
  {
   "key": "blitzmetrics.com/blog-card-thumbnails-standard",
   "url": "https://blitzmetrics.com/blog-card-thumbnails-standard/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "add-homepage-blog-card-thumbnails"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fblog-card-thumbnails-standard%2F"
  },
  {
   "key": "blitzmetrics.com/content-factory",
   "url": "https://blitzmetrics.com/content-factory",
   "state": "ready",
   "articleKind": "topic-hub",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 5,
   "importanceTotal": 5,
   "taskSlugs": [
    "run-content-factory-on-any-engine"
   ],
   "metaArticleCount": 10,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 3,
   "metaOrbitTier": "Strong",
   "metaArticles": [
    "https://blitzmetrics.com/fire-your-agency-book-ai-process/",
    "https://blitzmetrics.com/how-a-claude-agent-automated-paul-ryazanovs-content-pipeline/",
    "https://blitzmetrics.com/how-i-built-matt-bodnar-builds-his-personal-brand-by-co-creating-content/",
    "https://blitzmetrics.com/how-we-absorbed-the-repurposing-suite/",
    "https://blitzmetrics.com/how-we-built-three-articles-three-youtube-videos/",
    "https://blitzmetrics.com/how-we-optimized-the-harry-gold-article/",
    "https://blitzmetrics.com/how-we-repurposed-cody-jones-coach-yu-show-across-four-sites/",
    "https://blitzmetrics.com/how-we-tuned-up-ethan-van-de-heys-personal-brand-site/",
    "https://blitzmetrics.com/how-we-updated-youtube-descriptions-pinned-comments-35-videos/",
    "https://blitzmetrics.com/how-we-used-an-ai-agent-to-inventory-paul-ryazanovs-content/"
   ],
   "taskMetaCounts": {
    "run-content-factory-on-any-engine": 10
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fcontent-factory",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/dad",
   "url": "https://blitzmetrics.com/dad",
   "state": "wip",
   "articleKind": "unknown",
   "taskCount": 20,
   "completeTaskCount": 10,
   "importance": 5,
   "importanceTotal": 98,
   "taskSlugs": [
    "analyze-cost-per-result-and-engagement",
    "boost-one-minute-videos-for-personal-branding",
    "build-audience-layers",
    "create-facebook-instagram-campaigns-with-location-targeting",
    "create-youtube-campaigns-using-aducate-model",
    "execute-switch-boost-to-target-new-audiences",
    "execute-switch-boosts-to-new-audiences",
    "identify-signals-worth-amplifying",
    "kill-underperforming-ads",
    "run-dollar-a-day-campaign-on-winning-content",
    "run-multiple-simultaneous-tests",
    "scale-winners-by-increasing-budget-gradually",
    "sequence-content-cold-warm-conversion",
    "sequence-content-from-awareness-to-conversion",
    "set-1-day-budget-per-ad-set",
    "set-up-digital-plumbing-pixels-tracking",
    "set-up-meta-business-manager-and-public-figure-pages",
    "set-up-tiktok-campaigns",
    "use-dollar-a-day-to-influence-media-coverage",
    "verify-prerequisites-product-customers-content"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fdad"
  },
  {
   "key": "blitzmetrics.com/definitive-article-guide",
   "url": "https://blitzmetrics.com/definitive-article-guide/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "create-or-update-a-definitive-article"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fdefinitive-article-guide%2F"
  },
  {
   "key": "blitzmetrics.com/digital-plumbing",
   "url": "https://blitzmetrics.com/digital-plumbing",
   "state": "wip",
   "articleKind": "topic-hub",
   "taskCount": 18,
   "completeTaskCount": 3,
   "importance": 5,
   "importanceTotal": 69,
   "taskSlugs": [
    "add-click-to-call-links-for-mobile",
    "add-schema-markup-person-localbusiness",
    "claim-and-brand-facebook-page",
    "configure-https-with-no-mixed-content",
    "convert-instagram-to-professional-account",
    "create-clear-conversion-path",
    "create-linkedin-page-matching-business-entity",
    "ensure-nap-consistency-across-platforms",
    "ensure-site-loads-under-3-seconds-on-mobile",
    "ensure-working-contact-form-delivers-notifications",
    "set-correct-business-categories",
    "set-up-call-tracking-for-phone-conversions",
    "set-up-youtube-channel-with-proper-branding",
    "upload-real-photos-and-set-business-hours",
    "verify-domain-ownership-and-registrar-access",
    "verify-google-business-profile",
    "verify-google-search-console-and-connect-to-ga4",
    "write-proper-title-tags-and-meta-descriptions"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fdigital-plumbing"
  },
  {
   "key": "blitzmetrics.com/entity-linking",
   "url": "https://blitzmetrics.com/entity-linking/",
   "state": "wip",
   "articleKind": "reference",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "follow-entity-linking-decision-tree"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fentity-linking%2F",
   "stateReason": "Exact source and written instructions reviewed after a scoped repair. Full semantic certification remains held: canonical ownership, complete publication checks and accepted execution evidence are not all established. See reviews/entity-linking-2026-09-29.md.",
   "stateReviewed": "2026-09-29"
  },
  {
   "key": "blitzmetrics.com/from-one-email-to-a-live-personal-brand-site",
   "url": "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "deliver-personal-brand-site-from-request"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "partial",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://local-service-spotlight.github.io/task-library/maintenance/historical-site-handoff-2026-10-19.html"
   ],
   "taskMetaCounts": {
    "deliver-personal-brand-site-from-request": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Ffrom-one-email-to-a-live-personal-brand-site%2F",
   "metaOrbitAudited": "2026-10-19",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/group-website-request-intake",
   "url": "https://blitzmetrics.com/group-website-request-intake/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "manage-group-member-website-request"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fgroup-website-request-intake%2F"
  },
  {
   "key": "blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base",
   "url": "https://blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "build-and-maintain-ai-knowledge-base"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-build-use-publish-ai-knowledge-base%2F"
  },
  {
   "key": "blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority",
   "url": "https://blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "positive-mentions-harvester"
   ],
   "metaArticleCount": 4,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 2,
   "metaOrbitTier": "Supported",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-built-jonathan-mast-positive-mentions-tracker/",
    "https://blitzmetrics.com/how-we-built-justin-sonnenreich-positive-mentions-tracker/",
    "https://blitzmetrics.com/how-we-taught-magic-berry-by-example/",
    "https://blitzmetrics.com/how-we-turned-30-mentions-into-a-factory/"
   ],
   "taskMetaCounts": {
    "positive-mentions-harvester": 4
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-collect-organize-positive-mentions-to-build-authority%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/how-to-document-a-task",
   "url": "https://blitzmetrics.com/how-to-document-a-task/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "document-a-task"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-document-a-task%2F"
  },
  {
   "key": "blitzmetrics.com/how-to-inventory-a-podcast-on-youtube",
   "url": "https://blitzmetrics.com/how-to-inventory-a-podcast-on-youtube/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "how-to-inventory-a-podcast-on-youtube"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-built-dunk-talk-podcast-guest-list/"
   ],
   "taskMetaCounts": {
    "how-to-inventory-a-podcast-on-youtube": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-inventory-a-podcast-on-youtube%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do",
   "url": "https://blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-inventoried-700-podcast-appearances-across-5-platforms-and-what-we-learned/"
   ],
   "taskMetaCounts": {
    "how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients",
   "url": "https://blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "run-weekly-client-seo-audits"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-run-weekly-ai-agent-seo-audits-across-all-your-clients%2F"
  },
  {
   "key": "blitzmetrics.com/how-to-track-if-ai-cites-you",
   "url": "https://blitzmetrics.com/how-to-track-if-ai-cites-you/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "measure-ai-citations-for-brand"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-track-if-ai-cites-you%2F"
  },
  {
   "key": "blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses",
   "url": "https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "submit-weekly-maa-report-every-friday"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-to-write-weekly-maa-reports-for-local-service-businesses%2F"
  },
  {
   "key": "blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance",
   "url": "https://blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/george-leith-listen-notes-podcast-inventory/"
   ],
   "taskMetaCounts": {
    "how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content",
   "url": "https://blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-built-dan-leibrandts-podchaser-profile/"
   ],
   "taskMetaCounts": {
    "how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fhow-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/install-local-qwen",
   "url": "https://blitzmetrics.com/install-local-qwen/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "install-local-qwen"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Finstall-local-qwen%2F"
  },
  {
   "key": "blitzmetrics.com/internal-linking",
   "url": "https://blitzmetrics.com/internal-linking",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 7,
   "completeTaskCount": 7,
   "importance": 5,
   "importanceTotal": 24,
   "taskSlugs": [
    "step-1-inventory-content-and-establish-gct-per-page",
    "step-2-fix-categories-and-tags-in-wordpress",
    "step-3-identify-money-pages-and-orphan-pages",
    "step-4-create-links-with-proper-anchor-text-and-placement",
    "step-5-qa-links-against-google-guidelines",
    "step-6-measure-and-iterate-with-maa",
    "use-proper-anchor-text-3-6-words-descriptive"
   ],
   "metaArticleCount": 2,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/8-links-8-minutes-27-cents-ai-agent-cross-linking/",
    "https://blitzmetrics.com/how-an-ai-agent-audited-and-fixed-internal-linking-across-blitzmetrics/"
   ],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Finternal-linking",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/knowledge-panel",
   "url": "https://blitzmetrics.com/knowledge-panel",
   "state": "wip",
   "articleKind": "topic-hub",
   "taskCount": 6,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 18,
   "taskSlugs": [
    "build-third-party-validation",
    "claim-and-verify-knowledge-panel-when-it-appears",
    "classify-and-offer-knowledge-panel",
    "establish-entity-identity",
    "implement-technical-schema-markup",
    "measure-search-impressions-traffic-inbound-opportunities"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fknowledge-panel"
  },
  {
   "key": "blitzmetrics.com/knowledge-system-maintenance",
   "url": "https://blitzmetrics.com/knowledge-system-maintenance",
   "state": "wip",
   "articleKind": "topic-hub",
   "taskCount": 25,
   "completeTaskCount": 3,
   "importance": 2,
   "importanceTotal": 50,
   "taskSlugs": [
    "add-knowledge-capture-to-existing-workflows",
    "add-last-audited-column-to-definitive-article-guide-status-table",
    "apply-portability-discipline-to-meta-articles",
    "audit-this-maintenance-article-every-6-months",
    "check-information-currency-with-latest-data",
    "check-topic-coherence-for-each-definitive-article",
    "conduct-first-portability-review-of-blog-posting-guidelines",
    "create-knowledge-capture-note-template-and-distribute",
    "create-shared-location-for-sop-amendment-proposals",
    "create-sop-amendment-proposal-500-words",
    "generate-knowledge-capture-note-within-24-hours",
    "provide-knowledge-capture-note-template",
    "review-existing-sops-for-portability-compliance",
    "review-past-6-months-of-sop-amendment-proposals-for-patterns",
    "route-notes-to-sop-update-protocol-or-directly-to-articles",
    "schedule-and-assign-quarterly-auditors",
    "schedule-first-6-month-recursive-review",
    "schedule-first-quarterly-audit-cycle",
    "senior-team-member-reviews-weekly",
    "separate-methodology-layer-what-why-from-implementation-layer-how",
    "set-up-sop-amendment-proposal-tracking-system",
    "tag-proposal-with-affected-sop-and-queue-for-review",
    "update-status-table-in-definitive-article-guide",
    "validate-cross-reference-integrity-across-articles",
    "verify-structural-completeness-against-8-step-framework"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fknowledge-system-maintenance"
  },
  {
   "key": "blitzmetrics.com/link-building",
   "url": "https://blitzmetrics.com/link-building",
   "state": "wip",
   "articleKind": "reference",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "build-external-backlinks-from-authoritative-sources"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Flink-building"
  },
  {
   "key": "blitzmetrics.com/meta-article-prompt",
   "url": "https://blitzmetrics.com/meta-article-prompt/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 5,
   "importanceTotal": 5,
   "taskSlugs": [
    "write-meta-article-documenting-agent-work"
   ],
   "metaArticleCount": 59,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 4,
   "metaOrbitTier": "Deep",
   "metaArticles": [
    "https://blitzmetrics.com/ai-agent-audit-ben-forstie-durafoam/",
    "https://blitzmetrics.com/ai-agent-audit-garrett-mcclure-born-and-bred/",
    "https://blitzmetrics.com/ai-agent-audit-hunter-terpenny-humm-accounting/",
    "https://blitzmetrics.com/ai-agent-audit-naz-electric-flagstaff-electrician/",
    "https://blitzmetrics.com/ai-agent-audit-ryan-white-social-revelation/",
    "https://blitzmetrics.com/ai-agent-audit-terry-shintani-million-follower-doctor/",
    "https://blitzmetrics.com/audit-subscription-matt-bodnar/",
    "https://blitzmetrics.com/building-dennis-yu-speaker-reel-for-event-organizers/",
    "https://blitzmetrics.com/consent-scanner-blank-dashboard-token-links/",
    "https://blitzmetrics.com/content-factory-academy-free-course-migration/",
    "https://blitzmetrics.com/derive-dont-maintain/",
    "https://blitzmetrics.com/file-that-wouldnt-attach-boomerang-gmail-dom-fix/",
    "https://blitzmetrics.com/first-group-website-request-processed/",
    "https://blitzmetrics.com/give-your-ai-team-one-shared-brain/",
    "https://blitzmetrics.com/how-a-claude-agent-audited-blitzmetrics-gsc-cleared-404-monitor/",
    "https://blitzmetrics.com/how-a-claude-agent-collapsed-13-redirect-chains-on-blitzmetrics/",
    "https://blitzmetrics.com/how-a-claude-agent-fixed-blitzmetrics-404s/",
    "https://blitzmetrics.com/how-a-claude-agent-migrated-junks-above-off-godaddy/",
    "https://blitzmetrics.com/how-agents-qa-a-partner-local-audit/",
    "https://blitzmetrics.com/how-claude-agent-built-ensitefulmarketing-com/",
    "https://blitzmetrics.com/how-claude-built-keap-quiz-pass-fail-campaigns/",
    "https://blitzmetrics.com/how-i-built-bing-webmaster-import/",
    "https://blitzmetrics.com/how-we-automated-quick-audit-follow-ups-with-zapier/",
    "https://blitzmetrics.com/how-we-built-avery-young-authority-package/",
    "https://blitzmetrics.com/how-we-built-cam-hazzard-personal-brand-ai/",
    "https://blitzmetrics.com/how-we-built-carol-hasegawa-personal-brand-site/",
    "https://blitzmetrics.com/how-we-built-custom-wordpress-plugin-global-css-no-page-builder/",
    "https://blitzmetrics.com/how-we-built-geo-targeted-location-pages-florida-contractor/",
    "https://blitzmetrics.com/how-we-built-nathanielstevens-com-a-personal-brand-website-in-under-4-hours-using-ai/",
    "https://blitzmetrics.com/how-we-connected-basecamp-to-blitzbase-knowledge-base/",
    "https://blitzmetrics.com/how-we-embedded-google-reviews-faqs-home-services-wordpress/",
    "https://blitzmetrics.com/how-we-finished-the-knowledge-panel-book/",
    "https://blitzmetrics.com/how-we-harmonized-skills-and-routines/",
    "https://blitzmetrics.com/how-we-integrated-jobber-wordpress-home-services/",
    "https://blitzmetrics.com/how-we-launched-athlete-spotlight/",
    "https://blitzmetrics.com/how-we-made-definitive-article-strength-measurable/",
    "https://blitzmetrics.com/how-we-mapped-the-usage-buckets/",
    "https://blitzmetrics.com/how-we-migrated-cheetah-screens-squarespace-to-wordpress/",
    "https://blitzmetrics.com/how-we-propagated-dollar-a-day-across-the-fleet/",
    "https://blitzmetrics.com/how-we-published-the-client-tracker/",
    "https://blitzmetrics.com/how-we-rebuilt-financing-page-themed-enhancify-contractor/",
    "https://blitzmetrics.com/how-we-redesigned-cody-jones-funeral-home-exit-website/",
    "https://blitzmetrics.com/how-we-restructured-dennisyu-com-to-practice-what-we-preach/",
    "https://blitzmetrics.com/how-we-rewrote-the-agency-audit-page/",
    "https://blitzmetrics.com/how-we-set-up-rankmath-pro-local-service-business-wp-engine/",
    "https://blitzmetrics.com/how-we-stood-up-a-special-project-for-superseed/",
    "https://blitzmetrics.com/how-we-stopped-handing-agents-a-paste/",
    "https://blitzmetrics.com/how-we-turned-239-tasks-into-an-ai-runnable-skill-library/",
    "https://blitzmetrics.com/jim-klauck-radio-pitchman-brand-audit/",
    "https://blitzmetrics.com/josh-collier-brand-ecosystem-build/",
    "https://blitzmetrics.com/julian-david-entity-home-build/",
    "https://blitzmetrics.com/kimi-k3-vs-claude-content-factory-math/",
    "https://blitzmetrics.com/open-ai-knowledge-base-team-contributions/",
    "https://blitzmetrics.com/personal-brand-fleet-money-pages/",
    "https://blitzmetrics.com/spp-to-keap-migration/",
    "https://blitzmetrics.com/system-front-door/",
    "https://blitzmetrics.com/the-five-minute-brief-dennis-yu-dictated-before-the-ai-agent-did-anything/",
    "https://blitzmetrics.com/the-local-quick-audit-is-not-a-swapped-headline/",
    "https://blitzmetrics.com/video-schema-root-cause/"
   ],
   "taskMetaCounts": {
    "write-meta-article-documenting-agent-work": 59
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fmeta-article-prompt%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/money-tree",
   "url": "https://blitzmetrics.com/money-tree/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "build-money-tree-site-diagram"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fmoney-tree%2F"
  },
  {
   "key": "blitzmetrics.com/new-agents-start-here",
   "url": "https://blitzmetrics.com/new-agents-start-here/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "onboard-agent-for-first-scoped-task"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fnew-agents-start-here%2F"
  },
  {
   "key": "blitzmetrics.com/one-canonical-honor",
   "url": "https://blitzmetrics.com/one-canonical-honor/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "maintain-canonical-honor-and-story-leaves"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fone-canonical-honor%2F"
  },
  {
   "key": "blitzmetrics.com/one-minute-video-guide",
   "url": "https://blitzmetrics.com/one-minute-video-guide",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 5,
   "importanceTotal": 5,
   "taskSlugs": [
    "record-one-minute-videos"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-spent-6-on-youtube-ads-and-reached-real-hvac-owners-a-simple-one-hour-video-recipe/"
   ],
   "taskMetaCounts": {
    "record-one-minute-videos": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fone-minute-video-guide",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/overnight-content-worker",
   "url": "https://blitzmetrics.com/overnight-content-worker",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "run-overnight-local-writer"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-put-the-factory-on-night-shift/"
   ],
   "taskMetaCounts": {
    "run-overnight-local-writer": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fovernight-content-worker",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/persistent-agents",
   "url": "https://blitzmetrics.com/persistent-agents/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "configure-and-verify-recurring-agent-job"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fpersistent-agents%2F"
  },
  {
   "key": "blitzmetrics.com/personal-brand",
   "url": "https://blitzmetrics.com/personal-brand",
   "state": "wip",
   "articleKind": "topic-hub",
   "taskCount": 15,
   "completeTaskCount": 0,
   "importance": 5,
   "importanceTotal": 49,
   "taskSlugs": [
    "add-consistent-headshots-and-bios-across-profiles",
    "build-personal-brand-website",
    "create-collaborative-content-with-industry-peers",
    "create-dollar-a-day-ad-creatives-from-best-content",
    "create-social-content-from-video-clips",
    "generate-backlinks-and-entity-mentions",
    "get-featured-on-podcasts",
    "implement-person-schema-with-sameas-links",
    "link-all-content-back-to-personal-brand-site",
    "record-one-minute-videos-answering-customer-questions",
    "register-personal-name-domain",
    "repurpose-videos-into-blog-posts-via-content-factory",
    "secure-guest-appearances-and-speaking-engagements",
    "set-up-professional-social-profiles",
    "verify-google-business-profile--personal-brand"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fpersonal-brand"
  },
  {
   "key": "blitzmetrics.com/seo-tree",
   "url": "https://blitzmetrics.com/seo-tree",
   "state": "ready",
   "articleKind": "topic-hub",
   "taskCount": 8,
   "completeTaskCount": 8,
   "importance": 5,
   "importanceTotal": 26,
   "taskSlugs": [
    "enhance-existing-articles-before-creating-new-ones",
    "fit-every-new-piece-into-the-tree-structure",
    "identify-and-eliminate-orphan-standalone-articles",
    "link-leaves-to-branches-branches-to-trunk",
    "map-content-hierarchically-root-trunk-branches-leaves",
    "place-content-on-seo-tree-with-proper-links",
    "remove-duplicate-thin-pages",
    "replace-ai-looking-content-with-real-eeat"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "partial",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://local-service-spotlight.github.io/task-library/maintenance/site-guide-seo-placement-2026-10-15.html"
   ],
   "taskMetaCounts": {
    "place-content-on-seo-tree-with-proper-links": 1,
    "enhance-existing-articles-before-creating-new-ones": 0,
    "fit-every-new-piece-into-the-tree-structure": 0,
    "identify-and-eliminate-orphan-standalone-articles": 0,
    "link-leaves-to-branches-branches-to-trunk": 0,
    "map-content-hierarchically-root-trunk-branches-leaves": 0,
    "remove-duplicate-thin-pages": 0,
    "replace-ai-looking-content-with-real-eeat": 0
   },
   "tasksWithMeta": 1,
   "taskCoverage": 0.125,
   "priorityCoverage": 0.19230769230769232,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fseo-tree",
   "metaOrbitAudited": "2026-10-14",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/seo-tree-site-directory",
   "url": "https://blitzmetrics.com/seo-tree-site-directory/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "publish-seo-tree-site-directory"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fseo-tree-site-directory%2F"
  },
  {
   "key": "blitzmetrics.com/set-up-cross-agent-shared-memory",
   "url": "https://blitzmetrics.com/set-up-cross-agent-shared-memory/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "coordinate-agents-with-shared-memory"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fset-up-cross-agent-shared-memory%2F"
  },
  {
   "key": "blitzmetrics.com/skill-publishing-standard",
   "url": "https://blitzmetrics.com/skill-publishing-standard/",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "publish-skill-and-task-page"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fskill-publishing-standard%2F"
  },
  {
   "key": "blitzmetrics.com/social-amplification",
   "url": "https://blitzmetrics.com/social-amplification",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 16,
   "completeTaskCount": 12,
   "importance": 5,
   "importanceTotal": 71,
   "taskSlugs": [
    "apply-metrics-decomposition",
    "boost-top-3-5-facebook-posts",
    "compare-current-vs-last-period-performance",
    "create-a-3-minute-why-video",
    "create-a-3x3-video-grid",
    "create-new-saved-audiences-from-audience-insights",
    "list-top-3-5-recommendations-for-next-7-days",
    "review-budget-allocation-by-channel",
    "set-up-content-library",
    "set-up-remarketing-ads-for-landing-page-abandoners",
    "stage-1-plumbing-fb-ads-google-ads-analytics",
    "stage-2-goals-mission-90-day-goals-cpa-roas-budget",
    "stage-3-content-endorsements-why-video-3x3-grid-library",
    "stage-4-targeting-custom-audiences-lookalikes-remarketing",
    "stage-5-amplification-boost-posts-remarketing-ads",
    "stage-6-optimization-metrics-budget-review-recommendations"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fsocial-amplification"
  },
  {
   "key": "blitzmetrics.com/speaker-kit",
   "url": "https://blitzmetrics.com/speaker-kit",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 1,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "keep-speaker-bureau-profile-bookable"
   ],
   "metaArticleCount": 1,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 1,
   "metaOrbitTier": "Emerging",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-documented-the-speaker-kit-task/"
   ],
   "taskMetaCounts": {
    "keep-speaker-bureau-profile-bookable": 1
   },
   "tasksWithMeta": 1,
   "taskCoverage": 1.0,
   "priorityCoverage": 1.0,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fspeaker-kit",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/special-project",
   "url": "https://blitzmetrics.com/special-project/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "set-up-special-project-workspace"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fspecial-project%2F"
  },
  {
   "key": "blitzmetrics.com/start",
   "url": "https://blitzmetrics.com/start/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "set-up-business-ai-work-environment"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fstart%2F"
  },
  {
   "key": "blitzmetrics.com/thank-you-machine",
   "url": "https://blitzmetrics.com/thank-you-machine",
   "state": "wip",
   "articleKind": "unknown",
   "taskCount": 8,
   "completeTaskCount": 7,
   "importance": 5,
   "importanceTotal": 28,
   "taskSlugs": [
    "boost-with-dollar-a-day",
    "build-into-post-project-checklist-and-weekly-routine",
    "create-and-send-thank-you-machine-videos",
    "identify-thank-you-triggers",
    "process-through-content-factory",
    "record-one-minute-thank-you-video",
    "run-thank-you-machine-for-every-interaction",
    "tag-the-person-on-social-media"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fthank-you-machine",
   "stateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
   "stateReviewed": "2026-09-06"
  },
  {
   "key": "blitzmetrics.com/topic-wheel",
   "url": "https://blitzmetrics.com/topic-wheel",
   "state": "ready",
   "articleKind": "task-recipe",
   "taskCount": 5,
   "completeTaskCount": 5,
   "importance": 5,
   "importanceTotal": 17,
   "taskSlugs": [
    "map-how-ring-methods",
    "map-out-one-minute-video-topics-using-topic-wheel",
    "map-what-ring-specific-content",
    "map-why-ring-core-purpose",
    "use-for-content-planning-and-video-topics"
   ],
   "metaArticleCount": 3,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 2,
   "metaOrbitTier": "Supported",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-put-greatest-hits-on-every-topic-wheel-and-money-tree/",
    "https://blitzmetrics.com/topic-wheel-on-every-personal-brand-site/",
    "https://blitzmetrics.com/topic-wheel-strengthened-four-definitive-articles/"
   ],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Ftopic-wheel",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "blitzmetrics.com/website-audit-checklist",
   "url": "https://blitzmetrics.com/website-audit-checklist/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "audit-local-service-website"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fwebsite-audit-checklist%2F"
  },
  {
   "key": "blitzmetrics.com/website-qa-audit",
   "url": "https://blitzmetrics.com/website-qa-audit",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 36,
   "completeTaskCount": 33,
   "importance": 5,
   "importanceTotal": 119,
   "taskSlugs": [
    "audit-internal-links-between-all-blog-posts",
    "check-all-cta-buttons-lead-to-correct-destinations",
    "check-each-homepage-section-includes-relevant-image",
    "check-favicon-is-set",
    "check-for-broken-links",
    "check-lead-magnet-section-has-visual-mockup",
    "check-meta-description-under-160-chars",
    "check-schema-connects-to-all-verified-profiles",
    "check-seo-title-under-60-chars-with-focus-keyword",
    "check-social-profiles-linked-and-prominent",
    "ensure-no-stock-images-used",
    "ensure-no-text-only-sections-spanning-full-viewport",
    "ensure-robots-meta-not-blocking-indexing--qa-audit",
    "test-mobile-load-time-under-3-seconds",
    "verify-achievements-are-evidenced-not-just-claimed",
    "verify-all-images-have-descriptive-alt-text",
    "verify-all-pages-written-in-first-person",
    "verify-at-least-one-video-embed-on-homepage",
    "verify-email-opt-in-form-exists-and-works",
    "verify-entity-linking-follows-decision-tree",
    "verify-featured-images-unique-per-blog-post",
    "verify-footer-includes-social-links-and-secondary-nav",
    "verify-ga4-configured-with-internal-traffic-filtered",
    "verify-google-business-profile-is-verified",
    "verify-gtm-installed-and-firing-on-every-page",
    "verify-hero-section-contains-real-photo-of-person",
    "verify-https-with-no-mixed-content",
    "verify-meta-pixel-installed-with-lead-events",
    "verify-minimum-5-distinct-images-on-homepage",
    "verify-person-schema-with-sameas-links",
    "verify-rank-math-score-above-70-on-every-page",
    "verify-social-proof-photos-present",
    "verify-testimonials-include-headshots-with-attribution",
    "verify-testimonials-with-full-attribution",
    "verify-wordpress-author-set-to-site-owner-name",
    "verify-xml-sitemap-exists-and-in-robotstxt"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fwebsite-qa-audit"
  },
  {
   "key": "blitzmetrics.com/when-trust-ends-the-link-ends",
   "url": "https://blitzmetrics.com/when-trust-ends-the-link-ends/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "close-ended-relationship-endorsement-links"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fwhen-trust-ends-the-link-ends%2F"
  },
  {
   "key": "blitzmetrics.com/youtube-captions-on-by-default",
   "url": "https://blitzmetrics.com/youtube-captions-on-by-default/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 4,
   "importanceTotal": 4,
   "taskSlugs": [
    "enable-youtube-captions-by-default"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Fblitzmetrics.com%2Fyoutube-captions-on-by-default%2F"
  },
  {
   "key": "localservicespotlight.com/article-guidelines",
   "url": "https://localservicespotlight.com/article-guidelines/",
   "state": "ready",
   "articleKind": "reference",
   "taskCount": 20,
   "completeTaskCount": 20,
   "importance": 5,
   "importanceTotal": 86,
   "taskSlugs": [
    "email-and-dm-client-about-published-article",
    "share-in-44k-facebook-group",
    "step-1-upload-video-to-google-drive-and-descript",
    "step-10-embed-source-video",
    "step-11-proofread-with-grammarly-or-chatgpt",
    "step-12-post-article-on-wordpress",
    "step-13-categorize-post-and-add-tags",
    "step-14a-configure-rankmath-seo-plugin",
    "step-14b-run-linkwhisper-for-internal-links",
    "step-17-final-formatting-and-qa-checks",
    "step-2-transcribe-video-using-descript",
    "step-3-watch-video-and-identify-gct",
    "step-4-research-edit-add-timestamps-and-outline",
    "step-5-write-article-from-transcript",
    "step-6-write-title-and-headings",
    "step-7-write-hook-and-establish-context",
    "step-8-add-photos-and-featured-image",
    "step-9-add-internal-links-with-proper-anchor-text",
    "use-descript-underlord-to-remove-filler-words",
    "verify-all-items-on-blog-posting-checklist"
   ],
   "metaArticleCount": 3,
   "metaCountStatus": "verified",
   "metaOrbitStrength": 2,
   "metaOrbitTier": "Supported",
   "metaArticles": [
    "https://blitzmetrics.com/how-we-built-the-anthony-hilb-article-using-ai/",
    "https://blitzmetrics.com/how-we-created-an-article-honoring-nathaniel-stevens/",
    "https://blitzmetrics.com/how-we-wrote-the-please-and-thank-you-article-using-ai/"
   ],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Flocalservicespotlight.com%2Farticle-guidelines%2F",
   "metaOrbitAudited": "2026-09-10",
   "metaOrbitEvidenceUrl": "https://local-service-spotlight.github.io/task-library/meta-orbits.json",
   "metaOrbitEvidenceMethod": "One published post that documents a completed observable run whose main deliverable materially executes this hub, is explicitly classified by taxonomy or authored meta language, and links to the exact canonical hub in task-specific narrative or receipt. Shared maps, compliance tables, related-reading lists, indexes, instructions, archives, self-links and incidental cross-links do not count. Each post has one reviewed primary parent."
  },
  {
   "key": "localservicespotlight.com/install",
   "url": "https://localservicespotlight.com/install/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 2,
   "importanceTotal": 2,
   "taskSlugs": [
    "install-canonical-skill-packs"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Flocalservicespotlight.com%2Finstall%2F"
  },
  {
   "key": "localservicespotlight.com/skills-measurement-analytics",
   "url": "https://localservicespotlight.com/skills-measurement-analytics/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "collect-verified-weekly-measurements"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Flocalservicespotlight.com%2Fskills-measurement-analytics%2F"
  },
  {
   "key": "localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results",
   "url": "https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/",
   "state": "wip",
   "articleKind": "task-recipe",
   "taskCount": 1,
   "completeTaskCount": 0,
   "importance": 3,
   "importanceTotal": 3,
   "taskSlugs": [
    "update-client-success-tracker"
   ],
   "metaArticleCount": null,
   "metaCountStatus": "unknown",
   "metaOrbitStrength": null,
   "metaOrbitTier": "Unknown",
   "metaArticles": [],
   "taskMetaCounts": null,
   "tasksWithMeta": null,
   "taskCoverage": null,
   "priorityCoverage": null,
   "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?article=https%3A%2F%2Flocalservicespotlight.com%2Fthe-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results%2F"
  }
 ],
 "executionHistory": {
  "schemaVersion": 1,
  "asOf": "2026-11-01T13:00:25.313354+00:00",
  "proofSummary": {
   "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
   "recordedAcceptedOutputCount": 6,
   "recordedAcceptedReviewCount": 6,
   "acceptedRecordedOutputs": [
    {
     "version": 1,
     "reviewId": "publisher-completion-20260927-134412-acceptance-1",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-09-27T16:15:22Z",
     "reviewer": "Codex GPT-6 Sol independent source reviewer",
     "nextHandoff": "Existing Task Library maintenance worker uses the current verification queue and recorded run to resolve the owner, tracker and first-user gaps. This review covers the scoped repair under its old starting recipe only; a later use of the new recipe needs its own execution.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Publish one matching maintained skill, canonical task page and Task Library entry; make the complete guide available in the public library downloads.",
       "observedResult": "PR41 merged. The saved and anonymous article each embed the exact SHA609039d5 maintained skill. The public task entry is complete and maps to this page. All and ready ZIPs contain full generated guides plus onboarding; seven deployed archive checks passed.",
       "sourceUrl": null,
       "sourcePrivateEvidenceRecorded": true,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/41",
        "https://github.com/Local-Service-Spotlight/task-library/blob/111bca7fee201644aae9b7f7427ac4d6628c2fa6/reviews/publisher-completion-2026-09-27.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicReadback": {
       "state": "pass",
       "expectedResult": "Read back the saved and anonymous task page and public meta record; verify the lead diagram on desktop and phone.",
       "observedResult": "The task article returned 200 with exact embedded source text and equal media. The final meta page returned 200 with its whole new section and equal media at 16:06:17 UTC. Corrected phone and desktop captures show readable diagrams and opening text.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/making-task-guides-easier-to-use/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Record the scoped result and remaining owner, tracker and first-user gaps for the existing Task Library maintenance worker's next queue step.",
       "observedResult": "The published meta section and completed run record name the existing maintenance worker, current verification queue and open owner, tracker and novice gates. No separate person or new schedule was contacted or created.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/making-task-guides-easier-to-use/"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "publisher-completion-20260927-134412",
     "finishedAt": "2026-09-27T16:14:01.977704+00:00",
     "result": "Published matching maintained skill, canonical task page and library entry. Anonymous article and both download guides agree; seven deployed archive checks passed. Existing maintenance worker receives the recorded gaps and next queue step. Contributor instructions are complete; owner, novice setup, full article certification and a later accepted run of the revised recipe remain unknown."
    },
    {
     "version": 1,
     "reviewId": "revenue-path-repair-20261005-1855-acceptance-1",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-05T21:41:34Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Existing Task Library maintenance function: use the released guides and current verification queue for the next bounded maintenance step. Confirm the status-only meta closeout paragraph after cache refresh; it is excluded from this acceptance. Release 19 remains a separate pending batch.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Publish one matching maintained skill, canonical task page, and Task Library entry; make the complete guide available in public library downloads.",
       "observedResult": "Fresh anonymous library data matches the generated registry output for all three repaired guides. Full-library and Digital Plumbing archives returned 200 and contain byte-identical copies of each guide. Seven archive checks and public desktop/mobile guide and queue renders are recorded. The repaired guides remain needs-work; no client execution or income result is claimed.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/data.json",
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
        "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicReadback": {
       "state": "pass",
       "expectedResult": "Read back the public parent article and meta write-up for the released substantive outputs and confirm the corrected task copies are present.",
       "observedResult": "A fresh parent-page fetch returned 200 with all three task slugs. The ordinary meta URL receipt at 21:40:09Z reports 200 and matching full text, media, and scripts against the saved substantive meta source. Scope excludes the later status-only closeout paragraph saved at 21:40:44Z; its subsequent cache receipt says fullRenderedTextPresent=false, so that later paragraph is not certified here. My own normal-URL request returned 403; the successful contemporaneous receipt is separately retained as evidence.",
       "sourceUrl": "https://blitzmetrics.com/making-task-guides-easier-to-use/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/digital-plumbing/",
        "https://blitzmetrics.com/making-task-guides-easier-to-use/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "searchAndFirstOpen": {
       "state": "pass",
       "expectedResult": "A search entered before data load produces the intended match, and the published task opens with its copy control visible after settling on phone and desktop.",
       "observedResult": "The public preload-search receipt records 3 of 276 matches and one target row. The settled first-open receipt records the target guide and copy control within phone and desktop viewports after 1.2 seconds. Clipboard contents were not read back; this is not novice setup evidence.",
       "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/task-library-dashboard/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Leave the published task set and its next maintenance step findable by the existing Task Library maintenance function.",
       "observedResult": "The public library, exact archive links, current queue and published review expose the released guides and the next maintenance route. This is a handoff to the maintenance function through its durable records; no named person's acknowledgment is claimed. The separate release-19 batch remains pending and is outside this review.",
       "sourceUrl": "https://local-service-spotlight.github.io/task-library/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://local-service-spotlight.github.io/task-library/verification-queue.json",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
       ],
       "privateEvidenceRecorded": false
      }
     },
     "executionId": "revenue-path-repair-20261005-1855",
     "finishedAt": "2026-10-05T21:39:18Z",
     "result": "Published three corrected inquiry-path guides, business-value queue ordering and pre-load search repair. Anonymous parent/meta, exact public guide/ZIP bytes and phone/desktop normal-open checks passed. Independent publication review is retained separately. No client form/call attempt, novice setup or income result is claimed."
    },
    {
     "version": 1,
     "reviewId": "authority-guides-repair-20261005-independent-acceptance",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-05T23:58:49Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Task Library maintenance function: use the released verification queue and current written guidance to select the next actionable task batch; keep real execution, first-use setup, and business outcomes separate until their own evidence exists.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Three named guide pages and their two associated canonical article revisions are published with exact maintained guide bytes and readable public article bodies.",
       "observedResult": "The immutable bd032 release snapshot records exact parity for all three guides. Public review receipts record HTTP 200 and full rendered text for both canonical articles; the seven-archive receipt records the expected copies. This accepts written/publication delivery only; it does not certify task execution, novice setup, client outcomes, or revenue.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/68",
        "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "The released maintenance material is reachable by the Task Library maintenance function, with its verification queue available as the next-work record.",
       "observedResult": "The public Task Library release includes a 276-task verification queue. The captured public queue lists 0 fully verified tasks and preserves gate-level unknowns; this is an actionable maintenance handoff, not a claim that a human received or acted on it.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicGuideCopiesAndArchives": {
       "state": "pass",
       "expectedResult": "All three in-scope guide pages match the immutable source release and the seven archived copies pass parity checks.",
       "observedResult": "The public release receipt records exact source parity for the three target guides; the archive parity receipt records all seven copies matching. Current later RCF working-tree edits are outside this accepted release.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/68"
       ],
       "privateEvidenceRecorded": true
      },
      "publicGuideViews": {
       "state": "pass",
       "expectedResult": "The three published guide surfaces render on desktop and mobile, with the guide content and copy control visible and no reported queue overflow.",
       "observedResult": "The live render receipt records the three guides on phone and desktop, visible copy controls, and queue overflow false. It explicitly labels the check live and not novice setup; no media played.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "authority-guides-repair-20261005-2100",
     "finishedAt": "2026-10-05T23:45:19.414908+00:00",
     "result": "Three authority/site guides and both canonical article revisions published and checked. Obsolete never-started deployment cancelled after verified source inclusion; successor release succeeded. Exact public guides, seven archives and phone/desktop views pass. Publication acceptance remains separate from novice setup and client results."
    },
    {
     "version": 1,
     "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
     "taskSlug": "publish-skill-and-task-page",
     "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
     "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
     "reviewedAt": "2026-10-06T02:07:43Z",
     "reviewer": "Codex independent audit subagent",
     "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
       "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://github.com/Local-Service-Spotlight/task-library/pull/70",
        "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
       "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/",
        "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
       ],
       "privateEvidenceRecorded": true
      },
      "publicFirstOpen": {
       "state": "pass",
       "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
       "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
       "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "archiveAvailability": {
       "state": "pass",
       "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
       "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
       "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
        "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
        "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
        "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
        "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
        "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
        "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "first-use-rcf-20261005-2343",
     "finishedAt": "2026-10-06T02:06:05.871154+00:00",
     "result": "Published aligned web/ZIP starter inputs and clear catalog browsing labels. PR70 deployment succeeded; exact app source and all non-timestamp generated fields match, all seven public archives pass, phone/desktop standalone and embedded controls pass. Maintenance instructions and public RCA connect future work to existing business evidence. No novice setup, client execution or revenue result claimed."
    },
    {
     "version": 1,
     "reviewId": "proof-resolution-20261014-broken-links-independent-1",
     "taskSlug": "check-for-broken-links",
     "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
     "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
     "reviewedAt": "2026-10-14T16:39:00Z",
     "reviewer": "codex-independent-qa-20261014",
     "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
     "criteria": {
      "scopeAndCause": {
       "state": "pass",
       "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
       "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "result": {
       "state": "pass",
       "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
       "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "normalPublicDestinations": {
       "state": "pass",
       "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
       "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
        "https://localservicespotlight.com/content-factory/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
       "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
       "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "proof-resolution-20261014",
     "finishedAt": "2026-10-14T16:38:03.477390+00:00",
     "result": "Fixed five visible Content Factory links and matching copied guide in owned post109504; guarded native save and ordinary anonymous parity passed. Published accepted-proof summaries and corrected same historical source acceptance without creating a job. Public source/projections match; seven archives and phone/desktop entry checks pass; 224 tests and independent source review pass. Full task certification and novice-human setup remain unproven."
    },
    {
     "version": 1,
     "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
     "taskSlug": "place-content-on-seo-tree-with-proper-links",
     "canonicalURL": "https://blitzmetrics.com/seo-tree",
     "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
     "representation": "wordpress-content-html",
     "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
     "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
     "reviewer": "Codex independent site/link result-review function",
     "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
     "criteria": {
      "result": {
       "state": "pass",
       "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
       "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "meaning": {
       "state": "pass",
       "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
       "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "sourcePreservation": {
       "state": "pass",
       "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
       "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [],
       "privateEvidenceRecorded": true
      },
      "linkHealth": {
       "state": "pass",
       "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
       "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      },
      "handoff": {
       "state": "pass",
       "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
       "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
       "sourceUrl": "https://blitzmetrics.com/seo-tree",
       "sourcePrivateEvidenceRecorded": false,
       "evidenceUrls": [
        "https://blitzmetrics.com/personal-brand/",
        "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       ],
       "privateEvidenceRecorded": true
      }
     },
     "executionId": "site-guide-seo-placement-20261015",
     "finishedAt": "2026-10-14T18:01:10.697074+00:00",
     "result": "Placed the site-delivery guide under its Personal Branding topic home. One new parent body link and two existing child return links reach checked public pages; exact saved source and phone/desktop checks pass. Handed the placement record to independent checklist review. This is one owned SEO placement, not site delivery or beginner use."
    }
   ],
   "historicalVerifiedOutputCount": 6,
   "historicalAcceptedOutputCount": 3,
   "historicalIdentityOutputOnlyCount": 3,
   "historicalAcceptedHandoffPassCount": 2,
   "historicalAcceptedHandoffHoldCount": 1,
   "historicalAcceptedHandoffUnresolvedCount": 0,
   "historicalVerifiedEvidenceIds": [
    "historical-277118d625a087d83d91240c",
    "historical-67283f8934345f04d0bb68a6",
    "historical-676fc94d0a3360b42c6f30a0",
    "historical-84b2c95111073421c11227b6",
    "historical-a0e5c5670e6d4ce3ef327036",
    "historical-b47f6ecca9200b904c006ab7"
   ],
   "historicalAcceptedEvidenceIds": [
    "historical-277118d625a087d83d91240c",
    "historical-a0e5c5670e6d4ce3ef327036",
    "historical-b47f6ecca9200b904c006ab7"
   ]
  },
  "countDefinition": "Distinct recorded execution IDs, separate from meta-article URLs. History is partial; absent history is unknown, not zero. The last-30-day count is a documented lower bound, not total task frequency.",
  "recordedExecutions": 37,
  "completedExecutions": 24,
  "partialExecutions": 13,
  "executions": [
   {
    "executionId": "recipe-audit-20260905-080140",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-05T08:01:40Z",
    "status": "partial",
    "result": "Ended partial: 275 of 276 guide instructions reviewed. Published diagram and setup repairs, 72 checked image descriptions, three replacement diagrams and one duplicate removal. Added truthful progress labels and maintenance rules. The same public meta article records the work. One instruction source, shared video deployment approval, public font/rendering checks and evidence of real recipe use remain open. This is one maintenance attempt, not 275 completed business jobs.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "73c6c011d5fe83b152a2192b175f320b7a6470ca81b4f71672332ae899f10b9b"
     }
    },
    "finishedAt": "2026-09-10T17:01:27Z",
    "evidenceUrls": [
     "https://github.com/dennisyu/local-service-spotlight-skills/pull/39",
     "https://localservicespotlight.com/article-guidelines/",
     "https://blitzmetrics.com/cursor-and-local-qwen/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/8",
     "https://github.com/Local-Service-Spotlight/task-library/pull/10",
     "https://github.com/Local-Service-Spotlight/task-library/pull/11",
     "https://github.com/dennisyu/local-service-spotlight-skills/pull/44",
     "https://github.com/Local-Service-Spotlight/task-library/pull/15",
     "https://github.com/dennisyu/local-service-spotlight-skills/pull/46",
     "https://github.com/Local-Service-Spotlight/task-library/pull/16",
     "https://github.com/dennisyu/local-service-spotlight-skills/pull/47",
     "https://blitzmetrics.com/making-task-guides-easier-to-use/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/20",
     "https://github.com/Local-Service-Spotlight/task-library/pull/21",
     "https://github.com/Local-Service-Spotlight/task-library/pull/22",
     "https://blitzmetrics.com/seo-tree/"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/"
    }
   },
   {
    "executionId": "task-standards-20260915-215131",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-14T21:51:31Z",
    "status": "partial",
    "result": "Ended partial: published clearer article openings, the per-task verification queue and seven repaired ZIP downloads. Public source, archive and viewport checks passed. Reviewed the last unreviewed instruction source with failed requirements preserved. Full catalog certification still lacks exact article reviews, setup and accepted-result evidence. The canonical article hash was captured during final review, not at the start. This is one maintenance batch, not 276 business jobs.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "be544b8ad0d81921fe2cf865ebde323f58384bd6dfa88c0dd0d637f11f69f07f"
     }
    },
    "finishedAt": "2026-09-15T02:23:47.632018+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/26",
     "https://github.com/dennisyu/local-service-spotlight-skills/pull/51",
     "https://local-service-spotlight.github.io/task-library/verification-queue.html",
     "https://localservicespotlight.com/article-guidelines/",
     "https://blitzmetrics.com/content-factory/"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#task-standards-20260915-215131"
    }
   },
   {
    "executionId": "article-review-20260918-063904",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-18T06:39:04Z",
    "status": "partial",
    "result": "Prepared and independently reviewed a clearer definitive-guide opening and more compact lead diagram. Article remains staged after a browser connection failure interrupted final phone/link verification. Added exact-revision article review support; all 210 tests pass. No task certification or successful business run claimed.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "be544b8ad0d81921fe2cf865ebde323f58384bd6dfa88c0dd0d637f11f69f07f"
     }
    },
    "finishedAt": "2026-09-18T07:31:56.660109Z",
    "evidenceUrls": [],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "draft"
    }
   },
   {
    "executionId": "meta-guide-repair-20260922-035343",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-22T03:53:43Z",
    "status": "partial",
    "result": "Ended partial: published a clear linked opening, compact diagram and consistent start rules for the task-record guide. Corrected unsupported evidence claims and 37 worksheet cells. Exact source and ordinary public text/media passed; scoped rendered checks passed. A fresh-agent ZIP rehearsal with assistance drove onboarding fixes. Remaining article criteria, final meta phone rendering, novice setup and accepted task results are unknown. This is one authoring attempt, not 276 completed business jobs.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8"
     }
    },
    "finishedAt": "2026-09-22T04:40:02.094620+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/meta-article-prompt/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/34"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#meta-guide-repair-20260922-035343"
    }
   },
   {
    "executionId": "lss-meta-consistency-20260922-125016",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-22T12:50:16Z",
    "status": "partial",
    "result": "Ended partial: published a plain linked opening, compact diagram and consistent start-of-task work-record instructions on the LSS framework page. Exact saved source, ordinary public text/media and four first-screen states passed. Added independently reviewed manual-guide setup evidence support; 238 software tests pass. No novice-human trial or accepted business result was performed. Whole-page claims and full task certification remain unverified. This is one authoring attempt.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8"
     }
    },
    "finishedAt": "2026-09-22T13:16:53.277175+00:00",
    "evidenceUrls": [
     "https://localservicespotlight.com/meta-articles/"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#lss-meta-consistency-20260922-125016"
    }
   },
   {
    "executionId": "meta-guide-setup-20260923-000301",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-23T00:03:01.747166+00:00",
    "status": "partial",
    "result": "Ended partial: corrected the meta-article guide with first-use setup, maintained nine-step skill, record validation, ongoing/blocked prompt and capability-aware handoffs. Exact saved source, ordinary public text/media, phone and desktop checks passed. Independent step review passed. Whole-page ownership, historical sources, all links/media/publication standards, novice setup and accepted execution remain unverified. One authoring attempt; no completed business run.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8"
     }
    },
    "finishedAt": "2026-09-23T00:16:15.700977+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/meta-article-prompt/",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-guide-setup-2026-09-23.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#meta-guide-setup-20260923-000301"
    }
   },
   {
    "executionId": "meta-rubric-repair-20260924-000536",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-24T00:05:36.720543+00:00",
    "status": "partial",
    "result": "Ended partial: corrected the work-record checklist, prompt and public layout examples so private drafts retain dates/evidence and do not require invented publishing steps, media or numbers. Phone checklist cards improve reading. Independent wording review, exact saved source, anonymous public text/media and changed phone/desktop views passed. Full article ownership, links, sources, media/metadata, novice setup and accepted execution remain unknown. One authoring attempt; no completed business run.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8"
     }
    },
    "finishedAt": "2026-09-24T00:15:50.949038+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/meta-article-prompt/",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-rubric-repair-2026-09-24.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#meta-rubric-repair-20260924-000536"
    }
   },
   {
    "executionId": "meta-source-review-20260924-185131",
    "taskSlugs": [
     "create-or-update-a-definitive-article"
    ],
    "startedAt": "2026-09-24T18:51:31.024392+00:00",
    "status": "partial",
    "result": "Ended partial: resolved six source classifications: five retained, one related-only story excluded. Published59 examples and corpus88; corrected tracker URL/description. Exact saved/public source, scoped phone/desktop views and independent classification review passed. Owner, other54 examples, underlying outcome claims, whole-page checks, first-user setup and accepted result/handoff remain unverified. One authoring attempt; no completed business run.",
    "recipeRevisions": {
     "create-or-update-a-definitive-article": {
      "articleUrl": "https://blitzmetrics.com/definitive-article-guide/",
      "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8"
     }
    },
    "finishedAt": "2026-09-24T19:08:21.736959+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/meta-article-prompt/",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#meta-source-review-20260924-185131"
    }
   },
   {
    "executionId": "tracker-setup-20260925-000216",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-25T00:02:16.768661+00:00",
    "status": "partial",
    "result": "Ended partial: reconciled publishing route, existing authority and tracker-import checks across the page, embedded method, library skill and contributor guides. Added explicit missing/loaded/unknown import evidence and dashboard notice; invalid existing Source Repo now fails. Exact saves, scoped public phone/desktop views and source checks passed. Tracker connection remains unconfigured; owner, full article review, first-user setup and accepted result/handoff remain unverified. No completed business run.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "9705bf1a29c45961a6fb33404bfca3450bf280500ccdf6cb6ef67c00b6dd5cef"
     }
    },
    "finishedAt": "2026-09-25T00:19:54.369912+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/skill-publishing-standard/",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/tracker-setup-2026-09-25.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#tracker-setup-20260925-000216"
    }
   },
   {
    "executionId": "publisher-completion-20260927-134412",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-27T13:44:12.475179+00:00",
    "status": "completed",
    "result": "Published matching maintained skill, canonical task page and library entry. Anonymous article and both download guides agree; seven deployed archive checks passed. Existing maintenance worker receives the recorded gaps and next queue step. Contributor instructions are complete; owner, novice setup, full article certification and a later accepted run of the revised recipe remain unknown.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b"
     }
    },
    "finishedAt": "2026-09-27T16:14:01.977704+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/41",
     "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#publisher-completion-20260927-134412"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "publisher-completion-20260927-134412-acceptance-1",
      "taskSlug": "publish-skill-and-task-page",
      "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
      "recipeSourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
      "reviewedAt": "2026-09-27T16:15:22Z",
      "reviewer": "Codex GPT-6 Sol independent source reviewer",
      "nextHandoff": "Existing Task Library maintenance worker uses the current verification queue and recorded run to resolve the owner, tracker and first-user gaps. This review covers the scoped repair under its old starting recipe only; a later use of the new recipe needs its own execution.",
      "criteria": {
       "result": {
        "state": "pass",
        "expectedResult": "Publish one matching maintained skill, canonical task page and Task Library entry; make the complete guide available in the public library downloads.",
        "observedResult": "PR41 merged. The saved and anonymous article each embed the exact SHA609039d5 maintained skill. The public task entry is complete and maps to this page. All and ready ZIPs contain full generated guides plus onboarding; seven deployed archive checks passed.",
        "sourceUrl": null,
        "sourcePrivateEvidenceRecorded": true,
        "evidenceUrls": [
         "https://github.com/Local-Service-Spotlight/task-library/pull/41",
         "https://github.com/Local-Service-Spotlight/task-library/blob/111bca7fee201644aae9b7f7427ac4d6628c2fa6/reviews/publisher-completion-2026-09-27.md"
        ],
        "privateEvidenceRecorded": true
       },
       "publicReadback": {
        "state": "pass",
        "expectedResult": "Read back the saved and anonymous task page and public meta record; verify the lead diagram on desktop and phone.",
        "observedResult": "The task article returned 200 with exact embedded source text and equal media. The final meta page returned 200 with its whole new section and equal media at 16:06:17 UTC. Corrected phone and desktop captures show readable diagrams and opening text.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/making-task-guides-easier-to-use/"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "Record the scoped result and remaining owner, tracker and first-user gaps for the existing Task Library maintenance worker's next queue step.",
        "observedResult": "The published meta section and completed run record name the existing maintenance worker, current verification queue and open owner, tracker and novice gates. No separate person or new schedule was contacted or created.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/making-task-guides-easier-to-use/"
        ],
        "privateEvidenceRecorded": true
       }
      }
     }
    ]
   },
   {
    "executionId": "crossref-release-20260927-162402",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-27T16:24:02.098463+00:00",
    "status": "partial",
    "result": "Matched cross-reference instructions were published in the maintained source, article section and all-tasks ZIP; saved/anonymous full text and media match. Final public visual verification remains open because browser capture and control failed. No cross-reference audit execution or novice setup is claimed. Existing maintenance worker receives the capture failure and exact revision for follow-up.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "3e9f22977b023330140c0866b6db199f0cbd31e086370043dcadfc643e45f319"
     }
    },
    "finishedAt": "2026-09-27T17:18:54.853552+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/43",
     "https://github.com/Local-Service-Spotlight/task-library/blob/ccf0362a00ca38515e6137bcce486115136f3c14/reviews/cross-reference-guide-2026-09-27.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#crossref-release-20260927-162402"
    }
   },
   {
    "executionId": "lss-editorial-correction-20260927-190846",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-27T19:08:46.459712+00:00",
    "status": "partial",
    "result": "Published LSS naming and concept-link rules in three owned guides and matched the maintained link skill and ZIP. A later review found internal account information in public copies; a separate correction removes it. The static LSS article-guidelines amendment remains prepared, not deployed. Existing worker retains source/release ownership, full article certification and novice-setup gaps. No whole-library certification is claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "3e9f22977b023330140c0866b6db199f0cbd31e086370043dcadfc643e45f319"
     }
    },
    "finishedAt": "2026-09-27T19:35:44.435541+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/45",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/lss-editorial-correction-2026-09-27.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#lss-editorial-correction-20260927-190846"
    }
   },
   {
    "executionId": "roster-public-boundary-20260927-210848",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-27T21:08:48Z",
    "status": "partial",
    "result": "Corrected identified public article, skill, review, run-data and ZIP disclosures; installed and tested private canonical roster access and scope checks. Replaced the weekly guide’s misleading public-roster authority and neutralized its fictional scope example. The main static LSS Article Guidelines amendment is prepared but not deployed: maintained source and a supported existing-route release remain unresolved. Other agents must prove their own access. Maintenance owns that next release; no whole-library certification is claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-09-27T21:32:56.853190+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/47"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#roster-public-boundary-20260927-210848"
    }
   },
   {
    "executionId": "entity-linking-repair-20260930-0105",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-09-30T01:03:05.034622+00:00",
    "status": "completed",
    "result": "Completed one scoped entity-linking article and task-file repair: plain linked opening, corrected destination scope, privacy rule, measured handoff, exact embedded skill, public phone/desktop checks and generated archive parity. Full semantic certification, novice setup and accepted business-result evidence remain unverified. Maintenance owns parent-guideline setup and policy cleanup next.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-09-30T01:16:37.333349+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/49",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#entity-linking-repair-20260930-0105"
    }
   },
   {
    "executionId": "link-building-repair-20261001-1307",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-01T13:07:33.732838+00:00",
    "status": "completed",
    "result": "Completed one scoped parent link-building guide and task repair: plain explained SEO Tree opening, consistent destination/privacy rules, exact embedded task, manual start and direct task/source links, measured placement handoff. Source/public phone/desktop and generated ZIP checks passed. Full article certification, accepted backlink results and novice setup remain unverified. Maintenance owns adjacent internal-linking and static-guidelines source/publisher gaps.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-01T13:19:09.819308+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/51",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#link-building-repair-20261001-1307"
    }
   },
   {
    "executionId": "internal-linking-repair-20261001-1405",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-01T14:06:26.211013+00:00",
    "status": "completed",
    "result": "Published and verified one internal-linking parent repair and two task openings. All7existing copies exact;43HTMLdestinations respond; article/meta saved+anonymous text/media and phone/desktop checks pass;153build+89script tests,7local+7downloaded archive checks and4affected ZIPmember comparisons pass. PR53 deployed03edd26c. Written-instruction passes9; full verification0; no client audit or novice setup claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-01T14:23:43.133403+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/internal-linking/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/53"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#internal-linking-repair-20261001-1405"
    }
   },
   {
    "executionId": "task-direct-open-20261002-1404",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-02T14:04:50.931255+00:00",
    "status": "completed",
    "result": "Published and verified exact-task opening, clean guide rendering, corrected canonical setup/download instructions and embedded guide visibility. Public source/script parity, phone/desktop checks, 250 tests and seven archives passed. No novice setup, business-task acceptance or full certification is inferred.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-02T14:50:37.192050+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/task-direct-open-2026-10-02.md",
     "https://blitzmetrics.com/task-library-dashboard/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/56"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#task-direct-open-20261002-1404"
    }
   },
   {
    "executionId": "inventory-guide-repair-20261002-1610",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-02T16:11:44.260298+00:00",
    "status": "completed",
    "result": "Published and verified one inventory recipe repair: plain linked opening, GCT definition, measured source/crawl reconciliation, fictional CSV starter and receiving-task package. Saved/public copy, phone/desktop checks, 250 tests and seven archives passed. No real inventory, novice setup or full-task certification inferred.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-02T16:25:08.877432+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/58"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#inventory-guide-repair-20261002-1610"
    }
   },
   {
    "executionId": "taxonomy-guide-repair-20261003-1606",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-03T16:06:00.594126+00:00",
    "status": "completed",
    "result": "Published and verified one WordPress grouping recipe repair: plain linked opening, full-set preservation, fresh-read conflict handling, route/result checks and receiving-task package. Saved/public copies, phone/desktop views, 250 tests and seven archives passed. No real taxonomy job, novice setup or full-task certification inferred.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-03T16:24:46.626565+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/60"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#taxonomy-guide-repair-20261003-1606"
    }
   },
   {
    "executionId": "link-plan-guide-repair-20261004-1605",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-04T16:05:24.941122+00:00",
    "status": "completed",
    "result": "Published and verified one link-planning recipe repair: plain linked opening, scoped orphan evidence, reachable sources, exact reviewed edit rows and receiving-task package. Saved/public copies, phone/desktop views, 250 tests and seven archives passed. No real link-planning job, novice setup or full-task certification inferred.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-04T16:16:47.277363+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/62"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#link-plan-guide-repair-20261004-1605"
    }
   },
   {
    "executionId": "measurement-guide-repair-20261005-1607",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-05T16:04:57.028877+00:00",
    "status": "completed",
    "result": "Published and verified one measurement recipe repair: plain linked opening, reproducible comparisons, honest missing-data states, exact report and receiving-owner acceptance. Saved/public copies, phone/desktop views, 250 tests and seven archives passed. No real measurement job, novice setup or full-task certification inferred.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-05T16:16:01.836392+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/64"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#measurement-guide-repair-20261005-1607"
    }
   },
   {
    "executionId": "revenue-path-repair-20261005-1855",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-05T18:57:29.098918+00:00",
    "status": "completed",
    "result": "Published three corrected inquiry-path guides, business-value queue ordering and pre-load search repair. Anonymous parent/meta, exact public guide/ZIP bytes and phone/desktop normal-open checks passed. Independent publication review is retained separately. No client form/call attempt, novice setup or income result is claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-05T21:39:18Z",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/66",
     "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37372277713"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#revenue-path-repair-20261005-1855"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "revenue-path-repair-20261005-1855-acceptance-1",
      "taskSlug": "publish-skill-and-task-page",
      "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
      "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
      "reviewedAt": "2026-10-05T21:41:34Z",
      "reviewer": "Codex independent audit subagent",
      "nextHandoff": "Existing Task Library maintenance function: use the released guides and current verification queue for the next bounded maintenance step. Confirm the status-only meta closeout paragraph after cache refresh; it is excluded from this acceptance. Release 19 remains a separate pending batch.",
      "criteria": {
       "result": {
        "state": "pass",
        "expectedResult": "Publish one matching maintained skill, canonical task page, and Task Library entry; make the complete guide available in public library downloads.",
        "observedResult": "Fresh anonymous library data matches the generated registry output for all three repaired guides. Full-library and Digital Plumbing archives returned 200 and contain byte-identical copies of each guide. Seven archive checks and public desktop/mobile guide and queue renders are recorded. The repaired guides remain needs-work; no client execution or income result is claimed.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/data.json",
         "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
         "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
         "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        ],
        "privateEvidenceRecorded": true
       },
       "publicReadback": {
        "state": "pass",
        "expectedResult": "Read back the public parent article and meta write-up for the released substantive outputs and confirm the corrected task copies are present.",
        "observedResult": "A fresh parent-page fetch returned 200 with all three task slugs. The ordinary meta URL receipt at 21:40:09Z reports 200 and matching full text, media, and scripts against the saved substantive meta source. Scope excludes the later status-only closeout paragraph saved at 21:40:44Z; its subsequent cache receipt says fullRenderedTextPresent=false, so that later paragraph is not certified here. My own normal-URL request returned 403; the successful contemporaneous receipt is separately retained as evidence.",
        "sourceUrl": "https://blitzmetrics.com/making-task-guides-easier-to-use/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/digital-plumbing/",
         "https://blitzmetrics.com/making-task-guides-easier-to-use/",
         "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        ],
        "privateEvidenceRecorded": true
       },
       "searchAndFirstOpen": {
        "state": "pass",
        "expectedResult": "A search entered before data load produces the intended match, and the published task opens with its copy control visible after settling on phone and desktop.",
        "observedResult": "The public preload-search receipt records 3 of 276 matches and one target row. The settled first-open receipt records the target guide and copy control within phone and desktop viewports after 1.2 seconds. Clipboard contents were not read back; this is not novice setup evidence.",
        "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/task-library-dashboard/"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "Leave the published task set and its next maintenance step findable by the existing Task Library maintenance function.",
        "observedResult": "The public library, exact archive links, current queue and published review expose the released guides and the next maintenance route. This is a handoff to the maintenance function through its durable records; no named person's acknowledgment is claimed. The separate release-19 batch remains pending and is outside this review.",
        "sourceUrl": "https://local-service-spotlight.github.io/task-library/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/",
         "https://local-service-spotlight.github.io/task-library/verification-queue.json",
         "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        ],
        "privateEvidenceRecorded": false
       }
      }
     }
    ]
   },
   {
    "executionId": "authority-guides-repair-20261005-2100",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-05T21:01:41.079406+00:00",
    "status": "completed",
    "result": "Three authority/site guides and both canonical article revisions published and checked. Obsolete never-started deployment cancelled after verified source inclusion; successor release succeeded. Exact public guides, seven archives and phone/desktop views pass. Publication acceptance remains separate from novice setup and client results.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-05T23:45:19.414908+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/68",
     "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#authority-guides-repair-20261005-2100"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "authority-guides-repair-20261005-independent-acceptance",
      "taskSlug": "publish-skill-and-task-page",
      "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
      "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
      "reviewedAt": "2026-10-05T23:58:49Z",
      "reviewer": "Codex independent audit subagent",
      "nextHandoff": "Task Library maintenance function: use the released verification queue and current written guidance to select the next actionable task batch; keep real execution, first-use setup, and business outcomes separate until their own evidence exists.",
      "criteria": {
       "result": {
        "state": "pass",
        "expectedResult": "Three named guide pages and their two associated canonical article revisions are published with exact maintained guide bytes and readable public article bodies.",
        "observedResult": "The immutable bd032 release snapshot records exact parity for all three guides. Public review receipts record HTTP 200 and full rendered text for both canonical articles; the seven-archive receipt records the expected copies. This accepts written/publication delivery only; it does not certify task execution, novice setup, client outcomes, or revenue.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://github.com/Local-Service-Spotlight/task-library/pull/68",
         "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "The released maintenance material is reachable by the Task Library maintenance function, with its verification queue available as the next-work record.",
        "observedResult": "The public Task Library release includes a 276-task verification queue. The captured public queue lists 0 fully verified tasks and preserves gate-level unknowns; this is an actionable maintenance handoff, not a claim that a human received or acted on it.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/",
         "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        ],
        "privateEvidenceRecorded": true
       },
       "publicGuideCopiesAndArchives": {
        "state": "pass",
        "expectedResult": "All three in-scope guide pages match the immutable source release and the seven archived copies pass parity checks.",
        "observedResult": "The public release receipt records exact source parity for the three target guides; the archive parity receipt records all seven copies matching. Current later RCF working-tree edits are outside this accepted release.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://github.com/Local-Service-Spotlight/task-library/pull/68"
        ],
        "privateEvidenceRecorded": true
       },
       "publicGuideViews": {
        "state": "pass",
        "expectedResult": "The three published guide surfaces render on desktop and mobile, with the guide content and copy control visible and no reported queue overflow.",
        "observedResult": "The live render receipt records the three guides on phone and desktop, visible copy controls, and queue overflow false. It explicitly labels the check live and not novice setup; no media played.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       }
      }
     }
    ]
   },
   {
    "executionId": "first-use-rcf-20261005-2343",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-05T23:43:01Z",
    "status": "completed",
    "result": "Published aligned web/ZIP starter inputs and clear catalog browsing labels. PR70 deployment succeeded; exact app source and all non-timestamp generated fields match, all seven public archives pass, phone/desktop standalone and embedded controls pass. Maintenance instructions and public RCA connect future work to existing business evidence. No novice setup, client execution or revenue result claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-06T02:06:05.871154+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/70",
     "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
    ],
    "privateEvidenceRecorded": false,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#first-use-rcf-20261005-2343"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
      "taskSlug": "publish-skill-and-task-page",
      "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
      "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
      "reviewedAt": "2026-10-06T02:07:43Z",
      "reviewer": "Codex independent audit subagent",
      "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
      "criteria": {
       "result": {
        "state": "pass",
        "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
        "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://github.com/Local-Service-Spotlight/task-library/pull/70",
         "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
        "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/",
         "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
        ],
        "privateEvidenceRecorded": true
       },
       "publicFirstOpen": {
        "state": "pass",
        "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
        "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
        "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       },
       "archiveAvailability": {
        "state": "pass",
        "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
        "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
        "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
         "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
         "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
         "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
         "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
         "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
         "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
        ],
        "privateEvidenceRecorded": true
       }
      }
     }
    ]
   },
   {
    "executionId": "enhancement-guide-repair-20261008-1446",
    "taskSlugs": [
     "route-notes-to-sop-update-protocol-or-directly-to-articles"
    ],
    "startedAt": "2026-10-08T14:46:23.616591+00:00",
    "status": "completed",
    "result": "Published a clearer article-enhancement guide, replaced its obsolete SEO Tree copy and corrected related prose. Independent scoped publication acceptance passed; 176 tests, seven public archives and phone/desktop checks passed. Twenty written guides now pass; no full-task, production-use, setup or revenue certification.",
    "recipeRevisions": {
     "route-notes-to-sop-update-protocol-or-directly-to-articles": {
      "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance/",
      "sourceSha256": "f1f43f9328c4e4aa313c42b17271f7a245a36bada8c233f1284c0b99c34c6134"
     }
    },
    "finishedAt": "2026-10-08T15:37:19.306219+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/77",
     "https://blitzmetrics.com/seo-tree/"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#enhancement-guide-repair-20261008-1446"
    }
   },
   {
    "executionId": "booking-path-checks-20261009-1259",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-09T12:59:27.985957+00:00",
    "status": "completed",
    "result": "Published booking-promise, answer-consistency and receiving-owner checks in one maintained guide and its owned article copy. Exact source, six runtime projections, seven archives and phone/desktop views passed; independent scoped publication review accepted. One documentation maintenance run; no booking, sale, client execution or novice setup proof.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-09T13:15:59.120090+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/79"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#booking-path-checks-20261009-1259"
    }
   },
   {
    "executionId": "embedded-guide-repair-20261010",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-10T13:07:49.214927+00:00",
    "status": "completed",
    "result": "Published and independently accepted a shared embedded guide visibility repair. Exact public app and six projections, thirty browser gates, seven archives and the public maintenance lesson passed. One publishing maintenance execution; no subject-task execution, novice-human setup or gate promotion.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-10T13:24:23.020931+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/81",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/embedded-guide-visibility-2026-10-10.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#embedded-guide-repair-20261010"
    }
   },
   {
    "executionId": "weekly-maa-clarity-20261011",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-11T13:13:36.970278+00:00",
    "status": "completed",
    "result": "Published and independently accepted one weekly reporting recipe repair and selected matching article instructions. Exact public source, six dashboard projections, seven archives,176tests and phone/desktop checks pass.21written passes,0fully verified. No client report, new historical import, setup or task acceptance promotion.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-11T13:27:07.121253+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/83",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://blitzmetrics.com/making-task-guides-easier-to-use/#weekly-maa-clarity-20261011"
    }
   },
   {
    "executionId": "wordpress-runtime-routing-20261012",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-12T17:18:53.182126+00:00",
    "status": "completed",
    "result": "Published one WordPress routing repair: confirm current runtime and approved edit source before writing. Exact public guide/meta bytes, six projections, seven archives,176 tests and phone/desktop checks pass. Content Factory link returned403; written link gate remains unknown.21 written passes,0fully verified. No client job, new historical import or setup claim.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a"
     }
    },
    "finishedAt": "2026-10-12T18:24:42.880857+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/86",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/wordpress-runtime-routing-2026-10-12.html"
    }
   },
   {
    "executionId": "content-factory-link-repair-20261013",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-12T21:53:15.698067+00:00",
    "status": "completed",
    "result": "Published 293 Content Factory link repairs across271guides and three shared surfaces. All274remote source files, six public projections, sevenarchives,176tests and phone/desktop checks pass. One older site delivery and receiving handoff recovered without inventing recipe use;21written passes,0fully verified.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a"
     }
    },
    "finishedAt": "2026-10-12T22:02:47.701819+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/pull/88",
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/content-factory-link-2026-10-13.html"
    }
   },
   {
    "executionId": "site-build-proof-recipe-20261014",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-14T01:05:03.771394+00:00",
    "status": "completed",
    "result": "Published one site-build recipe with plain linked opening, measured result record, owner decision and receiving acknowledgment. Exact-source independent review,216tests,7public archives,6deployed projections and phone/desktop checks passed. Written passes22;fullyverified0. No client execution or new historical job.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "a5f8e0c27993597db9cdf606efb6bf3128c4ffbfe20f8ef72dbb4fe0f610a686"
     }
    },
    "finishedAt": "2026-10-14T01:24:58.852983+00:00",
    "evidenceUrls": [
     "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md",
     "https://github.com/Local-Service-Spotlight/task-library/pull/93"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/site-build-proof-2026-10-14.html"
    }
   },
   {
    "executionId": "proof-resolution-20261014",
    "taskSlugs": [
     "check-for-broken-links",
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-14T16:08:33.518776+00:00",
    "status": "completed",
    "result": "Fixed five visible Content Factory links and matching copied guide in owned post109504; guarded native save and ordinary anonymous parity passed. Published accepted-proof summaries and corrected same historical source acceptance without creating a job. Public source/projections match; seven archives and phone/desktop entry checks pass; 224 tests and independent source review pass. Full task certification and novice-human setup remain unproven.",
    "recipeRevisions": {
     "check-for-broken-links": {
      "articleUrl": "https://blitzmetrics.com/website-qa-audit",
      "sourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148"
     },
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-14T16:38:03.477390+00:00",
    "evidenceUrls": [
     "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
     "https://github.com/Local-Service-Spotlight/task-library/pull/96"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "proof-resolution-20261014-broken-links-independent-1",
      "taskSlug": "check-for-broken-links",
      "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
      "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
      "reviewedAt": "2026-10-14T16:39:00Z",
      "reviewer": "codex-independent-qa-20261014",
      "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
      "criteria": {
       "scopeAndCause": {
        "state": "pass",
        "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
        "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
        "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       },
       "result": {
        "state": "pass",
        "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
        "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
        "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
        ],
        "privateEvidenceRecorded": true
       },
       "normalPublicDestinations": {
        "state": "pass",
        "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
        "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
        "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
         "https://localservicespotlight.com/content-factory/"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
        "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
        "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
        ],
        "privateEvidenceRecorded": true
       }
      }
     }
    ]
   },
   {
    "executionId": "two-task-certification-20261015",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-14T17:10:41.497809+00:00",
    "status": "partial",
    "result": "Both owned guides and current instruction reviews are published; exact public release and seven archives pass. SEO placement has a separate completed and accepted child execution. Full two-task certification remains incomplete: real novice use, current-recipe site delivery, site short route and three shared SEO-hub task gaps remain. Operations has the existing human-test request; no participant acceptance or human attempt is claimed.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-14T18:21:20.969655+00:00",
    "evidenceUrls": [],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/two-task-certification-2026-10-15.html"
    }
   },
   {
    "executionId": "site-guide-seo-placement-20261015",
    "taskSlugs": [
     "place-content-on-seo-tree-with-proper-links"
    ],
    "startedAt": "2026-10-14T17:58:12.712239+00:00",
    "status": "completed",
    "result": "Placed the site-delivery guide under its Personal Branding topic home. One new parent body link and two existing child return links reach checked public pages; exact saved source and phone/desktop checks pass. Handed the placement record to independent checklist review. This is one owned SEO placement, not site delivery or beginner use.",
    "recipeRevisions": {
     "place-content-on-seo-tree-with-proper-links": {
      "articleUrl": "https://blitzmetrics.com/seo-tree",
      "sourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7"
     }
    },
    "finishedAt": "2026-10-14T18:01:10.697074+00:00",
    "parentExecutionId": "two-task-certification-20261015",
    "evidenceUrls": [
     "https://blitzmetrics.com/personal-brand/",
     "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/site-guide-seo-placement-2026-10-15.html"
    },
    "acceptanceReviews": [
     {
      "version": 1,
      "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
      "taskSlug": "place-content-on-seo-tree-with-proper-links",
      "canonicalURL": "https://blitzmetrics.com/seo-tree",
      "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
      "representation": "wordpress-content-html",
      "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
      "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
      "reviewer": "Codex independent site/link result-review function",
      "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
      "criteria": {
       "result": {
        "state": "pass",
        "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
        "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
        "sourceUrl": "https://blitzmetrics.com/seo-tree",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/personal-brand/",
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
        ],
        "privateEvidenceRecorded": true
       },
       "meaning": {
        "state": "pass",
        "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
        "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
        "sourceUrl": "https://blitzmetrics.com/seo-tree",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/personal-brand/",
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
        ],
        "privateEvidenceRecorded": true
       },
       "sourcePreservation": {
        "state": "pass",
        "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
        "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
        "sourceUrl": "https://blitzmetrics.com/seo-tree",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       },
       "linkHealth": {
        "state": "pass",
        "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
        "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
        "sourceUrl": "https://blitzmetrics.com/seo-tree",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/personal-brand/",
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
        ],
        "privateEvidenceRecorded": true
       },
       "handoff": {
        "state": "pass",
        "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
        "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
        "sourceUrl": "https://blitzmetrics.com/seo-tree",
        "sourcePrivateEvidenceRecorded": false,
        "evidenceUrls": [
         "https://blitzmetrics.com/personal-brand/",
         "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
        ],
        "privateEvidenceRecorded": true
       }
      }
     }
    ]
   },
   {
    "executionId": "seo-hub-supporting-guides-20261015",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-14T18:48:03.095058+00:00",
    "status": "completed",
    "result": "Published three independently reviewed existing SEO supporting guides. All five exact-revision written checks pass for each; maintained sources, anonymous public projections, guide layout and seven archives match. The shared SEO catalog gap is closed. This is one documentation-maintenance job, not client cleanup or novice use. SEO placement still needs its real beginner receipt; site-delivery gaps remain separate.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-14T19:09:46.819601+00:00",
    "evidenceUrls": [],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/seo-hub-supporting-guides-2026-10-15.html"
    }
   },
   {
    "executionId": "revenue-ready-download-20261017",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-17T01:12:44.970786+00:00",
    "status": "completed",
    "result": "Published two already-reviewed inquiry guides in the ready download after correcting contributor labels and clarifying their evidence note. Independent release acceptance,225 tests, phone/desktop public layout and seven archive member comparisons passed. Frozen beginner-test members are unchanged.26 written passes and0 fully verified tasks remain. This is one maintenance execution, not a form test, client result or novice success.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-17T01:34:13.359411+00:00",
    "evidenceUrls": [],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "published",
     "url": "https://local-service-spotlight.github.io/task-library/maintenance/revenue-ready-download-2026-10-17.html"
    }
   },
   {
    "executionId": "historical-site-case-20261019",
    "taskSlugs": [
     "publish-skill-and-task-page"
    ],
    "startedAt": "2026-10-19T01:10:05.819912+00:00",
    "status": "completed",
    "result": "Published a checked historical site-handoff case and mapped it only to the site-delivery example gate. Fixed reproduced subsecond queue timestamp rounding without weakening future checks.226 tests, independent review, public phone/desktop inspection and all seven archive member comparisons passed. Existing historical identities and every current-recipe, acceptance and novice setup gate remain unchanged.",
    "recipeRevisions": {
     "publish-skill-and-task-page": {
      "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/",
      "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537"
     }
    },
    "finishedAt": "2026-10-19T01:22:01.536676+00:00",
    "evidenceUrls": [
     "https://local-service-spotlight.github.io/task-library/maintenance/historical-site-handoff-2026-10-19.html"
    ],
    "privateEvidenceRecorded": true,
    "metaArticle": {
     "status": "withheld"
    }
   }
  ],
  "historicalDeliveryEvidence": {
   "count": 6,
   "candidateCount": 6,
   "records": [
    {
     "version": 1,
     "evidenceId": "historical-84b2c95111073421c11227b6",
     "taskSlugs": [
      "upload-processed-video-to-youtube",
      "step-10-embed-source-video"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "unknown",
       "value": null
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-06T02:58:28.783349+00:00",
     "outcome": "One Optimize Live delivery includes five web pages, a full talk and eight Shorts. Current anonymous checks found the intended video embeds on all five pages and matching metadata for all nine videos. This is one historical source job supporting two tasks.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "Original project job, delivery thread and output URLs match. Multiple outputs and repeated delivery comments belong to one source job."
      },
      "output": {
       "state": "pass",
       "notes": "Five page responses contain the intended video ID and expected start parameters; nine video metadata responses identify the expected titles and channel. Playback, visibility settings and full editing quality were not tested."
      },
      "acceptance": {
       "state": "unknown",
       "notes": "The delivery received acknowledgment. No independent review against the exact recipe used was recovered; gratitude and a completed checkbox do not establish that acceptance."
      },
      "handoff": {
       "state": "pass",
       "notes": "The completed output list reached the project thread and received acknowledgment. The next reporting request is recorded; its later completion remains unknown."
      }
     },
     "evidenceUrls": [
      "https://dennisyu.com/optimize/",
      "https://localservicespotlight.com/why-isaac-hall-has-an-edge-in-ai-marketing-for-plumbers/",
      "https://jack-allard.com/named-at-optimize-live/",
      "https://isaac-hall.com/named-at-optimize-live/",
      "https://markosipila.com/named-at-optimize-live/",
      "https://www.youtube.com/watch?v=dyJrGllGbn4",
      "https://www.youtube.com/watch?v=Ww6yDpbkyZA",
      "https://www.youtube.com/watch?v=oD0Te0_rips",
      "https://www.youtube.com/watch?v=cNBcEdr_hIY",
      "https://www.youtube.com/watch?v=oY_Kk5A4Zq8",
      "https://www.youtube.com/watch?v=bfNrXi_akr0",
      "https://www.youtube.com/watch?v=7gyOAfD5yTI",
      "https://www.youtube.com/watch?v=h0kSeES2erE",
      "https://www.youtube.com/watch?v=ERdAMUq5a8Q"
     ],
     "privateEvidenceRecorded": true
    },
    {
     "version": 1,
     "evidenceId": "historical-67283f8934345f04d0bb68a6",
     "taskSlugs": [
      "submit-weekly-maa-report-every-friday"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "unknown",
       "value": null
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-06T02:58:28.783349+00:00",
     "outcome": "A weekly business report was posted with Metrics, Analysis and Action, source exports, named owners and due dates. Nineteen selected aggregate checks matched the attached files, with one explicitly marked test submission excluded. Private customer details and figures are withheld.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "One dated weekly report and its exact attachment were recovered from the original project thread. Praise for a separate page delivery was not treated as report approval."
      },
      "output": {
       "state": "pass",
       "notes": "The report and its readable export archive exist. Selected totals reconcile with the stated date ranges and explicit test-row exclusion. This check does not certify every claim or source-system provenance."
      },
      "acceptance": {
       "state": "unknown",
       "notes": "No report-specific reviewer acceptance was found. A conclusion that direct traffic rules out ad influence is unsupported, so full accuracy acceptance remains open."
      },
      "handoff": {
       "state": "pass",
       "notes": "The report was posted to its project channel with named next actions and dates. Receipt by a particular reader and completion of those future actions remain unknown."
      }
     },
     "evidenceUrls": [],
     "privateEvidenceRecorded": true
    },
    {
     "version": 1,
     "evidenceId": "historical-a0e5c5670e6d4ce3ef327036",
     "taskSlugs": [
      "place-content-on-seo-tree-with-proper-links"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "unknown",
       "value": null
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-06T16:04:38.180428+00:00",
     "outcome": "One published guide directory connects readers to five topic guides and relevant shopping and selling pages. The client confirmed navigation and native content editability. This is partial historical proof of content placement; the current recipe and new-user setup remain unverified.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "One linked guide collection and its directory are one source job. Repeated acknowledgments and individual pages are not separate deliveries."
      },
      "output": {
       "state": "pass",
       "notes": "All six pages returned HTTP 200. The directory body links to five guides; each guide links to shopping and selling pages. The five guide bodies lack an upward directory link. This checks published link placement only, not all facts, all destinations or the current recipe."
      },
      "acceptance": {
       "state": "pass",
       "notes": "The client confirmed the live dropdown menus, clickable directory and editable text/links for this exact delivery. Acceptance is limited to those features, not every current recipe criterion. Editability is client-confirmed, not independently exercised by this checker."
      },
      "handoff": {
       "state": "pass",
       "notes": "The delivery reached the existing project conversation. The client acknowledged it and the delivery owner described the next guide batch and preview process. Completion of that future batch is not claimed."
      }
     },
     "evidenceUrls": [],
     "privateEvidenceRecorded": true
    },
    {
     "version": 1,
     "evidenceId": "historical-b47f6ecca9200b904c006ab7",
     "taskSlugs": [
      "enhance-existing-articles-before-creating-new-ones"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "timestamp",
       "value": "2026-10-06T15:31:30.640704+00:00"
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-07T16:03:04.339039+00:00",
     "outcome": "One existing story was enhanced with source-backed teaching, a captioned one-minute video and a linked program proof section. Independent publication checks accepted the released files. The story, video, poster and program proof section remain exact; the broader program page has since changed. Distribution receiver acceptance is still unconfirmed. This is one historical source job, not a new execution or a verified use of today's recipe.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "One original production job and frozen source commit identify all four release files. The story, proof card and media are outputs of that same job, not separate runs."
      },
      "output": {
       "state": "pass",
       "notes": "Scoped to the enhanced story and supporting proof card/media. Original independent checks passed; fresh story/video/poster hashes and the program proof section match. The rest of the program page changed and is not re-certified."
      },
      "acceptance": {
       "state": "pass",
       "notes": "Scoped independent publication acceptance: frozen files, source preservation, links and silent media checks. This does not establish current-recipe acceptance, reader comprehension, qualified applications or revenue."
      },
      "handoff": {
       "state": "hold",
       "notes": "The internal distribution request and receiving worker are recorded. Fresh original-thread readback has no reply. Receiver acceptance and public distribution remain open with the existing owner and follow-up clock."
      }
     },
     "evidenceUrls": [
      "https://localservicespotlight.com/bryce-clark-digital-marketing-freedom/",
      "https://localservicespotlight.com/ai-builder-program/#bryce-learning-example"
     ],
     "privateEvidenceRecorded": true
    },
    {
     "version": 1,
     "evidenceId": "historical-676fc94d0a3360b42c6f30a0",
     "taskSlugs": [
      "step-12-post-article-on-wordpress"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "unknown",
       "value": null
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-11T16:10:40.174635+00:00",
     "outcome": "One marketing-agent starter article was published with a three-page PDF and responsive diagrams. Checked public output supports the WordPress publishing task. This historical import is not a new execution, proof of use of the current recipe, or evidence that a reader set up an agent.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "One original WordPress publication, post 192300. Its PDF and two responsive diagrams are outputs of the same source job. Original requester authorization and source delivery were checked."
      },
      "output": {
       "state": "pass",
       "notes": "An independent reviewer opened the live article and PDF. Fresh anonymous checks found all approved article text and links; PDF and both diagrams match their reviewed source bytes exactly."
      },
      "acceptance": {
       "state": "unknown",
       "notes": "Independent content and delivery checks support the published output. Post-publication requester or host editorial acceptance, indexing, reader use and business results are not established."
      },
      "handoff": {
       "state": "pass",
       "notes": "Scoped to delivery of the public article and PDF links in the original requester conversation. The live article also links the PDF. Receiving acknowledgment, attendee use and any later promotion remain unknown."
      }
     },
     "evidenceUrls": [
      "https://digimarcon.com/ai-marketing-agent-starter-plan/",
      "https://digimarcon.com/wp-content/uploads/2026/10/marketing-agents-starter-guide-digimarcon.pdf"
     ],
     "privateEvidenceRecorded": true
    },
    {
     "version": 1,
     "evidenceId": "historical-277118d625a087d83d91240c",
     "taskSlugs": [
      "deliver-personal-brand-site-from-request"
     ],
     "occurrence": {
      "start": {
       "precision": "unknown",
       "value": null
      },
      "end": {
       "precision": "date",
       "value": "2026-08-22"
      }
     },
     "recipeRevision": {
      "state": "unknown",
      "canonicalURL": null
     },
     "observedAt": "2026-10-14T16:13:04.878652+00:00",
     "outcome": "One personal-brand website delivery is supported by its original delivery conversation, a current live output check and the recipient confirming access and taking over further refinement. The current page is a later version; original build timing and recipe use remain unknown.",
     "review": {
      "identity": {
       "state": "pass",
       "notes": "One original delivery conversation and one site; the follow-up acknowledgment belongs to the same job. Checked against existing ledger identities; no duplicate source job."
      },
      "output": {
       "state": "pass",
       "notes": "Original delivery names the live personal-brand site. Current normal public page returns200 with six navigation destinations. This proves a surviving site, not exact original page bytes."
      },
      "acceptance": {
       "state": "pass",
       "notes": "Recipient accepted site and companion-page setup, confirmed existing editing access, and took responsibility for continued building/refinement. This covers setup/access/transfer only, not all page/design criteria, original source-byte parity, current-recipe acceptance or novice setup."
      },
      "handoff": {
       "state": "pass",
       "notes": "The recipient explicitly confirms access and takes responsibility for further building and refinement; private exact response retained."
      }
     },
     "evidenceUrls": [
      "https://leithuwaydah.com/"
     ],
     "privateEvidenceRecorded": true
    }
   ]
  }
 },
 "categories": [
  {
   "folder": "content-factory-produce",
   "name": "Content Factory — Produce",
   "icon": "🎬",
   "color": "#f59e0b",
   "description": "Recording and capturing raw content: videos, photos, stories, presentations",
   "tasks": [
    {
     "title": "Batch record 50 raw clips in one session",
     "slug": "batch-record-50-raw-clips-in-one-session",
     "status": "needs-work",
     "stage": "Produce",
     "article": null,
     "articleKind": "unknown",
     "desc": "Plan and film 50 short answers in one session. Match each saved clip to its question.",
     "content": "---\nname: batch-record-50-raw-clips-in-one-session\ndescription: \"Plan and film 50 short answers in one session. Match each saved clip to its question.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Batch record 50 raw clips in one session\n\nA busy owner may not have time to film each day. This guide helps you plan one session for 50 short answers. Start with a list of real questions, then keep track of each clip as you go.\n\n**The path:** 50 real questions → Film in groups → Check 50 files → Editor.\n\n**Use this when:** The team has agreed to make a 50-clip batch and has enough real questions to fill it.\n\n## Inputs\n- A numbered list of 50 distinct questions, each with a real source and a topic. Use [the topic-planning task](https://local-service-spotlight.github.io/task-library/?task=map-out-one-minute-video-topics-using-topic-wheel#task-map-out-one-minute-video-topics-using-topic-wheel) first if the list is missing.\n- A willing speaker who knows the answers; a charged phone, stand, free storage, and a quiet place.\n- A planned 2–3 hour block from the source method. Treat this as a planning estimate, not a promise that 50 good answers will fit.\n- An approved raw folder, tracker, upload access, and named editor. Note permission and private-content limits before filming.\n\n## First-run prompt\n\n> Help me prepare and reconcile a 50-question filming batch. Use only the real questions and sources I provide. Group and number them, flag duplicates, then match saved takes to questions. Show usable distinct answers out of 50 and list any missing items. Do not treat an extra take as a new answer.\n\n## Steps\n1. Number the questions 01–50. Group related ones. Remove duplicates and questions the speaker cannot answer. Fill the gaps from real sources before calling the list ready.\n2. Build the tracker before filming: question number, exact question, source, topic, take name, file link, length, review state, next owner. A question number spoken aloud helps, but does not replace this log.\n3. Test the camera, storage, light, and microphone. Keep one setup while it works; fix it if light, noise, battery, or framing changes. Use silent checks for agents and record any sound-review gap.\n4. Film one answer per file. Say the question number, then follow [one-minute video guide](https://blitzmetrics.com/one-minute-video-guide/): question, answer, and one true example. Aim for 45–90 seconds. Keep simple notes nearby.\n5. Work in groups of 10–15, then take a short break. Check that those files saved and that the speaker still has clear answers. A rough word is fine; an incorrect answer or failed recording needs another take.\n6. Track each take as you go. Mark a replacement take clearly and keep the original until the editor has the safe copy. Do not invent filler questions or accept bad clips just to reach 50.\n7. Upload to a batch folder named YYYY-MM-DD-batch-NN-topic within the existing raw folder. Keep one final candidate per question and link any alternate take. Confirm uploads finished.\n8. Reconcile the question list against the tracker and saved files. Count distinct answered questions, not file count. Fifty files with three repeated questions is only 47 distinct answers.\n9. Hand the checked batch and the exception list to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). If only 47 pass, record 47 of 50 and the three missing items. The run is partial; make a new filming plan rather than claim completion.\n\n## Definition of done (QA checklist)\n\n- [ ] 50 distinct sourced questions have 50 usable mapped takes; duplicates and abandoned takes are excluded from the count.\n- [ ] Each selected take has a clear answer, usable picture and sound, and permission notes.\n- [ ] Every selected take is uploaded, linked in the tracker, and accessible to the editor.\n- [ ] Any shortfall is counted and named. One session and the planned batch size describe the goal, not permission to hide failed work.\n\n## Example(s)\n\n**Fictional teaching example — not a real batch.** Maple Cycle plans 50 answers: 20 about booking a visit, 15 about shop services, and 15 about buying a used bike. Each question has a sample source note.\n\nThe teaching checklist starts with:\n\n| Question | Topic | Selected take | Check |\n| --- | --- | --- | --- |\n| 01: Do I need a booking? | Visits | `q01-take1.mp4` | 58 seconds; clear answer |\n| 02: Can I send a photo first? | Visits | `q02-take2.mp4` | 65 seconds; replaces an interrupted take |\n| 03: When will I get a quote? | Quotes | No usable take | The answer gave an unsupported promise |\n\nIn this sample, 47 of 50 distinct questions pass. The useful result is a 47-item handoff plus three named gaps. It is not “50 done,” even if the folder holds 54 files. A real run needs the full 50-row list, real file links, and review evidence.\n\n## Handoff and Content Factory context\n\nThe editor gets the batch folder, 50-row question list, selected takes, rights notes, and exact pass/shortfall count. [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) starts processing the accepted footage; the speaker owns any agreed missing takes.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nThis is one planned session. Repeat only when the content plan calls for another batch. No fixed repeat rate is established by this task.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 3 (runs every factory cycle or weekly)\n- **Browse earlier task:** `map-out-one-minute-video-topics-using-topic-wheel`\n- **Browse later task:** `record-one-minute-videos`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in the current task source. Use the owned teaching references below while that article gap is reviewed.\n- Exact task: [Batch record 50 raw clips in one session](https://local-service-spotlight.github.io/task-library/?task=batch-record-50-raw-clips-in-one-session#task-batch-record-50-raw-clips-in-one-session)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- The source still has no dedicated canonical batch article; existing one-minute and Topic Wheel guides supply the teaching basis.\n- A real 50-question list and filming evidence are needed to validate an actual run.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 3,
     "phase": "Produce",
     "before": "map-out-one-minute-video-topics-using-topic-wheel",
     "after": "record-one-minute-videos",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "64f19ad8a95fd2661206dcc62eb10328a8feaa698600a34d86cd8046b99fd9f9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4e1bf704e84618823b4279b03c9ecd32f90e10ea810a345b9cf266500ef9d6bb",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "64f19ad8a95fd2661206dcc62eb10328a8feaa698600a34d86cd8046b99fd9f9",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "64f19ad8a95fd2661206dcc62eb10328a8feaa698600a34d86cd8046b99fd9f9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "64f19ad8a95fd2661206dcc62eb10328a8feaa698600a34d86cd8046b99fd9f9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 95,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Capture client stories on phone",
     "slug": "capture-client-stories-on-phone",
     "status": "needs-work",
     "stage": "Produce",
     "article": null,
     "articleKind": "unknown",
     "desc": "Film a client’s own story with clear permission. Save the facts, name, photo, and source files.",
     "content": "---\nname: capture-client-stories-on-phone\ndescription: \"Film a client’s own story with clear permission. Save the facts, name, photo, and source files.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Capture client stories on phone\n\nA happy client can explain your work in their own words. This guide helps you save that story with their name and clear permission. First, ask what changed and where they are happy for the story to appear.\n\n**The path:** Permission → Client’s own story → Facts and files → Review.\n\n**Use this when:** A real client has a specific result and agrees to tell the story on camera.\n\n## Inputs\n- A real client, a specific project or change, and evidence for any stated numbers.\n- Permission to record and a separate clear record of allowed use of the person’s name, face, words, and company or location. Capture limits and the date.\n- A phone, a quiet location, and permission to film the location and supporting shots.\n- The approved raw folder, upload access, tracker, and named reviewer who will check facts and permission.\n\n## First-run prompt\n\n> Help me capture a client story from the facts and permission I provide. Draft plain interview questions, an attribution line, and a shot list. Flag claims that lack proof and uses that are not agreed. After capture, check the file package and prepare a factual handoff for review.\n\n## Steps\n1. Ask what may be recorded and where it may be used. Explain the intended article or channel. Record the answer in the project’s permission log; do not infer public use from a person agreeing to a private call.\n2. Check the person’s full name and the right role, company, or city for the story. For a homeowner, do not invent a job title or company. Let the person confirm the attribution line.\n3. Frame the person at eye level in a real setting. Check light, framing, and microphone. Keep private papers, addresses, or other people out of the shot unless cleared.\n4. Ask four plain questions: What was the problem? What work was done? What changed? Who would this help? Let the client answer in their own words. Follow up on vague praise with “What is one example?”\n5. When the client gives a number, note its source and what period it covers. If it cannot be checked, keep it as a claim for review or omit it from the finished piece. Do not turn a guess into a proven result.\n6. Ask the client to confirm their name and attribution on camera when practical. Capture a still photo and about 30–60 seconds of supporting footage, called b-roll, such as the finished work. If consent or the setting prevents a shot, record that gap.\n7. Name the video, photo, and supporting footage YYYY-MM-DD-clientname-story with a type or take suffix. Upload to the approved folder and log the links, permission, attribution, result evidence, and reviewer.\n8. Send the raw package for review through [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). A missing name, usage permission, or unverified claim stays clearly flagged before any public use.\n\n## Definition of done (QA checklist)\n\n- [ ] The story describes a specific real change in the client’s own words.\n- [ ] Full attribution fits the person and is confirmed; permission covers the proposed use.\n- [ ] Claims have evidence or are marked unverified. A named quote alone does not prove a number.\n- [ ] Video, a still image, and supporting footage are saved, or the exact capture gap is recorded.\n- [ ] The reviewer can open the files and see all privacy or publication limits.\n\n## Example(s)\n\n**Fictional teaching example — invented people and shop, not a testimonial to publish.** Morgan, a made-up customer of Maple Cycle, says: “I did not know if the bike was worth fixing. They gave me a written quote before doing the work, so I could choose.”\n\nThe teaching attribution is “Morgan Lane, local customer.” The sample story makes no sales or safety claim. Its evidence would be the approved quote and the customer’s confirmation. A shot of the quote would hide contact details and the home address.\n\nThe teaching permission note says “website story and shop social posts; no paid ads agreed.” That means an editor could prepare those drafts after a real consent check, but an ad would need its own authority and usage check. Do not copy this invented quote into a real client page.\n\n## Handoff and Content Factory context\n\nThe editor receives the files and permission limits. The reviewer uses [Verify testimonials with full attribution](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-with-full-attribution#task-verify-testimonials-with-full-attribution) before public use. [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) is the source-file handoff; a story is not automatically cleared for ads.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun for each willing client story when a real result exists. This task sets no automatic outreach or recurring filming schedule.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `record-one-minute-videos`\n- **Browse later task:** `film-conference-presentations`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in the current task source. Use the owned teaching references below while that article gap is reviewed.\n- Exact task: [Capture client stories on phone](https://local-service-spotlight.github.io/task-library/?task=capture-client-stories-on-phone#task-capture-client-stories-on-phone)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- No dedicated canonical story-capture article is mapped in the source.\n- Actual consent, identity and outcome evidence can only come from a real capture.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": "record-one-minute-videos",
     "after": "film-conference-presentations",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "640eae1174aafa633c090cfb19f6b2fd992cab5eec477190a1857266c69d78bf",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ea67b5076e805bb72dc00b4a471d3cb700f1acd6f5685928e41b55123cee11b5",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "640eae1174aafa633c090cfb19f6b2fd992cab5eec477190a1857266c69d78bf",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "640eae1174aafa633c090cfb19f6b2fd992cab5eec477190a1857266c69d78bf"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "640eae1174aafa633c090cfb19f6b2fd992cab5eec477190a1857266c69d78bf"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 114,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Create a 3-minute WHY video",
     "slug": "create-a-3-minute-why-video",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Tell the true story behind your work in a short video. Help a new viewer see who you serve and why.",
     "content": "---\nname: create-a-3-minute-why-video\ndescription: \"Tell the true story behind your work in a short video. Help a new viewer see who you serve and why.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Create a 3-minute WHY video\n\nPeople may know what you sell but not why you care. This guide helps an owner tell the true story behind the work. Start with one event that shaped your choice, then explain what it means for the people you serve.\n\n**The path:** True origin story → Three speaking notes → Short video → Editor.\n\n**Use this when:** The owner’s purpose and business goals are clear but there is no useful video that explains them.\n\n## Inputs\n- The owner’s stated purpose, current offer, and agreed business goals. Use the real source document, not an agent’s guessed memory.\n- A true origin story the owner is willing to share and the facts needed to check it.\n- The owner, a phone, and a real place connected to the story, with permission to film there.\n- The approved raw folder, tracker access, and an editor. Record any people or details that must stay private.\n\n## First-run prompt\n\n> Help me shape my true origin story into three speaking notes for a three-minute video. Use my goals, offer, and facts. Flag anything you cannot verify. Give me a plain opening, a review checklist, and a file handoff; do not invent my biography or claim the video is ready for an ad.\n\n## Steps\n1. Read the agreed goals and offer with the owner. Write one plain sentence about who the business helps and why the owner does this work. If the purpose is not yet clear, draft that sentence for the owner to resolve before filming.\n2. Choose one true moment that shows the purpose. Identify what happened, what the owner learned, and what changed in the work. Remove facts that cannot be confirmed; do not add drama to make the story stronger.\n3. Make three speaking notes: the origin moment; who the owner serves and what they believe; what that means for a customer today. Practice saying the notes aloud without reading a script.\n4. Set the phone in a real location linked to the story. Check the picture and microphone input. Keep private details out of the frame. The person, rather than a logo or stock scene, carries this story.\n5. Record a take of about three minutes. Make the purpose clear in the first 30 seconds, then tell the example. This length is the source task’s format; it is not proof that the video fits a future ad placement.\n6. Review the facts and meaning. Can a new viewer explain who this helps and why the owner cares? Keep a natural take; redo a failed recording or false claim. Use silent agent checks and name any remaining sound-review need.\n7. Name the file YYYY-MM-DD-brandname-why-video with a take suffix if needed. Upload it, confirm the saved link, and log the source facts, purpose, length, rights, and next editor.\n8. Queue it for [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). In the [Topic Wheel](https://blitzmetrics.com/topic-wheel/), this story belongs in WHY on the outside; the offer remains WHAT at the center. An About-page or ad version is a later editorial choice.\n\n## Definition of done (QA checklist)\n\n- [ ] The purpose is plain within the first 30 seconds, and a true origin moment supports it.\n- [ ] The story names who the business serves and explains a useful customer meaning.\n- [ ] The take is roughly three minutes; any format exception is stated and accepted.\n- [ ] The raw file, facts, permissions, and review state are saved and handed to an editor.\n- [ ] No later ad eligibility, performance, or public use is assumed from making the video.\n\n## Example(s)\n\n**Fictional teaching example — not a founder biography.** Alex, the made-up owner of Maple Cycle, uses these notes for a sample three-minute story:\n\n| Part | Speaking note | What it teaches |\n| --- | --- | --- |\n| Opening | “I opened this shop so people can ask basic bike questions without feeling silly.” | Clear purpose |\n| Origin | “When I first rode to work, I did not know how to ask for help at a repair shop.” | One specific moment, not a slogan |\n| Customer meaning | “We explain the work and quote before you choose what to do.” | What the belief changes in the service |\n\nThe sample outline allows 30 seconds for the purpose, 90 for the story, and 60 for its meaning. Those are planning notes, not measured video times. A real recording must use the real owner’s story; never give Alex’s invented past to another person.\n\n## Handoff and Content Factory context\n\nThe editor receives the raw story and fact notes through [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). [Create a 3×3 video grid](https://local-service-spotlight.github.io/task-library/?task=create-a-3x3-video-grid#task-create-a-3x3-video-grid) can use the story as planning context, but an existing WHY video does not fill all nine grid cells.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nMake an initial version when the owner’s purpose is clear. Update when the true story, offer, or needed explanation changes. The source sets no routine replacement schedule.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** `film-casual-team-conversations`\n- **Browse later task:** `create-a-3x3-video-grid`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Create a 3-minute WHY video](https://local-service-spotlight.github.io/task-library/?task=create-a-3-minute-why-video#task-create-a-3-minute-why-video)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n- [Social Amplification operating context](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- The current Social Amplification operating hub explains phase 3 generally; the exact three-minute format comes from this existing task source.\n- A real owner’s story, recorded take and independent review remain required.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": "film-casual-team-conversations",
     "after": "create-a-3x3-video-grid",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "48a6956622a374d9cf5f8f632a2ed2362af87a8a3a5f919a9594a73d61e275bd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "91f7d6cc83a0b7a5bfb0e3fb1971dce1b4d26eb672ed0d77e35c084848d6b96f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-a-3-minute-why-video#task-create-a-3-minute-why-video",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "48a6956622a374d9cf5f8f632a2ed2362af87a8a3a5f919a9594a73d61e275bd",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "48a6956622a374d9cf5f8f632a2ed2362af87a8a3a5f919a9594a73d61e275bd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "48a6956622a374d9cf5f8f632a2ed2362af87a8a3a5f919a9594a73d61e275bd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 150,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Create a 3×3 video grid",
     "slug": "create-a-3x3-video-grid",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Plan nine videos across three topics. Give each one a clear purpose and a place in your content plan.",
     "content": "---\nname: create-a-3x3-video-grid\ndescription: \"Plan nine videos across three topics. Give each one a clear purpose and a place in your content plan.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Create a 3×3 video grid\n\nA list of random video ideas can leave gaps. This guide helps an owner plan nine clips on three useful topics. Start with what you sell, then choose stories, lessons, and offer answers that help the right people.\n\n**The path:** Three topics → Nine clear prompts → Nine saved takes → Editor.\n\n**Use this when:** The offer and purpose are clear and the team needs a planned set of nine source videos.\n\n## Inputs\n- The real offer, purpose, and existing WHY video or story notes. Use [the WHY-video task](https://local-service-spotlight.github.io/task-library/?task=create-a-3-minute-why-video#task-create-a-3-minute-why-video) if that source is missing.\n- Three HOW topics from the [Topic Wheel](https://blitzmetrics.com/topic-wheel/) that support the actual offer, plus real questions, stories, and proof for those topics.\n- The current [SEO Tree](https://blitzmetrics.com/seo-tree/) page map, so the editor knows which owned topic page each future piece should support.\n- The speaker, phone, approved raw folder, tracker access, and a named editor. Allow enough filming time; a fixed half-day is a planning choice, not a promise.\n\n## First-run prompt\n\n> Build a three-topic by three-purpose video grid from my actual offer, stories, questions, and page map. Label story, teaching, and offer cells. Keep source links with each prompt and flag any invented or missing proof. After filming, count distinct usable cells and make the editor’s handoff.\n\n## Steps\n1. Select three related HOW topics where the business has real knowledge. Check how each supports the WHAT offer at the center of the Topic Wheel. Keep WHY stories on the outside.\n2. Draw a table with three topic rows and three purpose columns: story/WHY, teaching/HOW, and offer or proof/WHAT. This is the purpose-based grid variant in this task source. The one-minute guide also describes concept/example/objection variations; label the chosen variant instead of mixing both systems mid-grid.\n3. Write one prompt in every cell. Use a real story for the story cell, a useful question for teaching, and a true offer answer or supported result for the final cell. Link each prompt to its source. Do not fill a proof cell with a made-up win.\n4. Give each cell a short ID such as A1. Add topic, purpose, question source, intended viewer, and the owned page that the later piece should support. Page-map neighbors are not automatic prerequisites.\n5. Record one clear answer per cell using [one-minute video guide](https://blitzmetrics.com/one-minute-video-guide/). Aim for 45–90 seconds. Keep the person’s own words, and record a new take when facts, sound, or picture fail.\n6. Save files as YYYY-MM-DD-topic-cellID-person. Use a take suffix for repeats. Upload into the existing raw folder and link the selected take for every cell in the tracker.\n7. Review nine distinct purposes and nine usable takes. Count a repeated file once. If one cell has no real proof, mark the gap and agree on a truthful offer explanation or another supported prompt before filming it.\n8. Hand the grid to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). The editor decides which clips need articles or other formats. Publishing and paid sequencing are separate tasks with their own scope and evidence.\n\n## Definition of done (QA checklist)\n\n- [ ] Three topics and three clearly labeled purposes produce nine distinct cells.\n- [ ] Each cell has a traceable prompt, a selected usable take, and rights notes.\n- [ ] Topics connect to the real offer and a reviewed owned-page plan; no reversed Topic Wheel labels remain.\n- [ ] All nine selected files open for the editor and match the tracker.\n- [ ] Any missing cell is named; nine planned ideas are not nine completed videos.\n\n## Example(s)\n\n**Fictional teaching example — a planning grid, not nine recorded videos.** Maple Cycle uses this sample purpose-based grid:\n\n| Topic | Story / WHY | Teaching / HOW | Offer / WHAT |\n| --- | --- | --- | --- |\n| Repair quotes | A1: Why Alex wants quotes to feel clear | A2: What information helps the shop prepare a quote | A3: What the shop’s quote visit includes |\n| Shop visits | B1: A lesson from feeling lost in a new shop | B2: How to plan a drop-off | B3: How to book a visit with this shop |\n| Used bikes | C1: Why the shop welcomes first-time riders | C2: What to ask a seller before a shop visit | C3: What a shop assessment does and does not include |\n\nThese sample prompts are invented. A real grid needs the owner’s actual stories, offer terms, and question sources. If only A1–C2 have usable takes, the measured result is 8 of 9. An unfilmed C3 remains open; it is not “covered” by a similar A3 clip.\n\n## Handoff and Content Factory context\n\nThe editor receives the nine-cell map and source files via [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). The map may inform later distribution, but it does not choose ad audiences, spend, or prove a funnel result.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun once for an agreed three-topic set. Expand or refresh when real questions, offers, or sources change. This guide creates no standing filming or ad schedule.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** `create-a-3-minute-why-video`\n- **Browse later task:** `step-1-upload-video-to-google-drive-and-descript`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Create a 3×3 video grid](https://local-service-spotlight.github.io/task-library/?task=create-a-3x3-video-grid#task-create-a-3x3-video-grid)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n- [Social Amplification operating context](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- Independent editorial review should confirm the preferred grid variant across the task and one-minute public guide.\n- Real source facts and nine reviewed takes are still execution requirements.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": "create-a-3-minute-why-video",
     "after": "step-1-upload-video-to-google-drive-and-descript",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "cc55e0b101c2afaab20d62c3d0bc8f6142ce7182f1a64c4a5d3bf785ef718b98",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "74f5e7a53b55c9f361312d411aa2b23ee7845660fd9cf62fe81f363434eb1a5b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-a-3x3-video-grid#task-create-a-3x3-video-grid",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cc55e0b101c2afaab20d62c3d0bc8f6142ce7182f1a64c4a5d3bf785ef718b98",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "cc55e0b101c2afaab20d62c3d0bc8f6142ce7182f1a64c4a5d3bf785ef718b98"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "cc55e0b101c2afaab20d62c3d0bc8f6142ce7182f1a64c4a5d3bf785ef718b98"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 151,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Film casual team conversations",
     "slug": "film-casual-team-conversations",
     "status": "needs-work",
     "stage": "Produce",
     "article": null,
     "articleKind": "unknown",
     "desc": "Film a real team talk that helps others learn. Mark parts to cut before you pass the file on.",
     "content": "---\nname: film-casual-team-conversations\ndescription: \"Film a real team talk that helps others learn. Mark parts to cut before you pass the file on.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Film casual team conversations\n\nYour team solves useful problems each day. A real talk can help others learn how you think. This guide shows you how to record the talk, mark private parts, and give the best moments to an editor.\n\n**The path:** Agree on limits → Record real work → Mark useful moments → Editor.\n\n**Use this when:** A real work discussion has a useful lesson and everyone involved agrees to the recording and planned use.\n\n## Inputs\n- A real planned team talk, such as a project review or a discussion of a problem.\n- Agreement from everyone recorded and a list of facts, names, or screens that must stay private.\n- A phone or the team’s approved recorder, enough storage, and a position that captures all speakers.\n- The raw folder, tracker access, and the editor who will review highlights and private sections.\n\n## First-run prompt\n\n> Use our real discussion brief to make a short recording plan. After the talk, turn my time notes into an editor’s cut list. Keep proposals separate from measured results. List the exact private sections, permission gaps, and the next owner. Do not stage the conversation or publish it.\n\n## Steps\n1. Explain why the talk may become content. Confirm who agrees and what stays private. If someone does not agree, leave them out of the recording or keep the discussion unrecorded.\n2. Set the camera where it can show the group and capture each voice. A wide shot may suit a table discussion. Run a short test; change the setup if a speaker is off-screen or the input is weak.\n3. Record the real talk. Start with a short statement of the problem so the editor has context. Do not stage disagreement, invent a client issue, or repeat a conversation as if it were the first event.\n4. Let each person finish their point. Keep the recording running through useful context, but pause when private material or a new person enters. Record the gap so later viewers are not misled by a cut.\n5. While the discussion is fresh, note the strongest two or three moments with time ranges. For each, write the question, the useful idea, and any decision. A lively clip without enough context may need a longer cut.\n6. Make a separate list of private sections with start/end times and what must be removed. Do not rely on “blur sensitive things” as the only instruction.\n7. Save the original unchanged. Name it YYYY-MM-DD-topic-team-convo. Upload it to the approved raw folder, then add the link, speaker names, permission state, highlights, and edit limits to the tracker.\n8. Hand off to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). Use “Raw — needs private-content review” if redactions remain; the source file being uploaded does not make it safe to post.\n\n## Definition of done (QA checklist)\n\n- [ ] The recording captures real work with agreement from the recorded people.\n- [ ] Each speaker can be identified and understood; any missing sound review is explicit.\n- [ ] Two or three useful moments have time ranges and enough context for an editor.\n- [ ] Private segments have specific edit instructions and a named reviewer.\n- [ ] The original and tracker row are saved and accessible to the editor.\n\n## Example(s)\n\n**Fictional teaching example — not a recorded meeting.** Maple Cycle’s team talks about missed repair pickups. The sample 12-minute conversation has these edit notes:\n\n| Time | What happens | Editor’s instruction |\n| --- | --- | --- |\n| 00:20–01:10 | The team defines the pickup problem | Keep as context |\n| 03:10–04:05 | A staff member suggests asking the customer to choose a pickup day | Candidate teaching clip; label it as a proposal |\n| 06:02–06:30 | A sample customer’s contact details appear | Remove the whole section before public use |\n| 09:00–10:10 | The team chooses a small test | Keep the decision; do not claim the test worked |\n\nThe sample handoff teaches the difference between an idea, a decision, and a measured result. It supplies no real permission, recording, or outcome evidence.\n\n## Handoff and Content Factory context\n\nThe editor receives the source and cut list through [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). [Extract short clips](https://local-service-spotlight.github.io/task-library/?task=extract-15-60-second-clips-from-long-form-video#task-extract-15-60-second-clips-from-long-form-video) may follow once the private-content review has cleared the candidate sections.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun when a suitable real discussion happens. Do not create meetings or automatic recordings just to fill a content quota.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** `record-screen-shares-of-real-audits`\n- **Browse later task:** `create-a-3-minute-why-video`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in the current task source. Use the owned teaching references below while that article gap is reviewed.\n- Exact task: [Film casual team conversations](https://local-service-spotlight.github.io/task-library/?task=film-casual-team-conversations#task-film-casual-team-conversations)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- No dedicated canonical team-conversation guide is mapped.\n- A real recording, participant permission, and reviewed cuts are required for an execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": "record-screen-shares-of-real-audits",
     "after": "create-a-3-minute-why-video",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f44e6b69058778eeb54631ce8956a6c88d70e6da6f1f3e725f6df9829407f7ca",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "eb9c07ffbf6b288544f94ef06d32c85fe5a60b23122c270dd33d5d33062d6e1a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f44e6b69058778eeb54631ce8956a6c88d70e6da6f1f3e725f6df9829407f7ca",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f44e6b69058778eeb54631ce8956a6c88d70e6da6f1f3e725f6df9829407f7ca"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f44e6b69058778eeb54631ce8956a6c88d70e6da6f1f3e725f6df9829407f7ca"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 120,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Film conference presentations",
     "slug": "film-conference-presentations",
     "status": "needs-work",
     "stage": "Produce",
     "article": null,
     "articleKind": "unknown",
     "desc": "Film a talk with the host’s go-ahead. Save the files and clear notes for the next person.",
     "content": "---\nname: film-conference-presentations\ndescription: \"Film a talk with the host’s go-ahead. Save the files and clear notes for the next person.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Film conference presentations\n\nA talk can hold lessons worth sharing after the event. This guide helps a speaker save the talk and the questions that follow. First, check what the event allows and who will run the camera.\n\n**The path:** Event permission → Talk and allowed Q&A → Files and notes → Editor.\n\n**Use this when:** You or a client has a confirmed speaking slot and permission to capture it.\n\n## Inputs\n- A confirmed event, speaker, session time, and the organizer’s recording and reuse terms.\n- A camera operator or agreed fixed setup, charged phone, stand, storage, and a clear view.\n- An audio plan. If a venue feed or official recording is available, ask how it may be received and used; do not assume it is included.\n- The raw folder, tracker access, and named speaker/editor contacts. Get the session title and any allowed slide source.\n\n## First-run prompt\n\n> Use the confirmed event and rights I provide to prepare a recording checklist. Then turn the actual files and time notes into an intake index. Identify missing ranges, allowed questions, and the next editor. Keep speaking evidence precise; do not invent an endorsement or claim a full recording if a part is missing.\n\n## Steps\n1. Confirm recording and later use with the organizer before the event. Ask about official footage and audience questions. Use a personal backup only if it is allowed; an official recording does not grant extra recording rights.\n2. Assign the operator and test the view and audio input before the room fills. Choose a stable position without blocking attendees. Check power and storage against the planned session length.\n3. Capture the host’s introduction if permitted. Save the wording and context as proof of that introduction; it does not by itself prove every expertise or endorsement claim.\n4. Record the talk from start to finish when allowed. If recording stops, write the missing time range. Do not label a partial recording as the full talk.\n5. Record the permitted questions and answers. If an audience member is not cleared to appear, follow the event’s method for keeping them out or omit that segment. Transcribe only the questions you may use.\n6. Capture approved stills and supporting shots of the speaker and event. Keep the source date and event name with each. Avoid badges, private screens, or attendees who are not cleared.\n7. Save the originals as YYYY-MM-DD-eventname-talk with part numbers where needed. Upload video, separate audio if any, and photos. Note the intro range, talk range, Q&A range, rights, and any gaps.\n8. Add useful audience questions to the [Topic Wheel](https://blitzmetrics.com/topic-wheel/) topic queue with their event source. They may support a HOW topic or a story; they are not automatically the WHAT offer.\n9. Send the indexed package to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). Let the editor choose supported teaching clips and keep the event rights attached to every derivative.\n\n## Definition of done (QA checklist)\n\n- [ ] The organizer’s allowed recording and reuse scope is recorded.\n- [ ] The talk’s coverage is measured against the actual session; gaps are visible.\n- [ ] Intro and allowed Q&A sections are indexed, without inflating an introduction into a wider endorsement.\n- [ ] Usable pictures, sound-review evidence, and approved supporting images are present, or missing items are named.\n- [ ] Files and allowed question notes are saved and handed to the editor.\n\n## Example(s)\n\n**Fictional teaching example — not a real event or speaking credit.** At the made-up Northside Shop Meetup, Alex gives a 20-minute talk called “Make Repair Quotes Clear.” The organizer allows the talk and host introduction to be reused, but asks that audience faces stay out of public clips.\n\nThe teaching index reads: introduction 00:00–00:45; talk 00:45–20:45; permitted speaker answers 20:45–24:30. The phone misses 11:10–11:40 after a battery change. The tracker therefore says “talk captured with a 30-second gap,” not “complete talk.”\n\nA sample question, “How do you explain a changed quote?”, goes into the quotes topic queue with the event and time noted. It is a topic idea, not proof that a quote system improved sales. All names, times, permissions, and footage in this example are invented for teaching.\n\n## Handoff and Content Factory context\n\nThe editor receives the event package through [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). Short clips can follow through [Extract short clips](https://local-service-spotlight.github.io/task-library/?task=extract-15-60-second-clips-from-long-form-video#task-extract-15-60-second-clips-from-long-form-video). The speaker or event contact resolves rights questions before use.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun for each confirmed, approved event. A recurring conference does not create permission to record or publish its next session.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 4/5 `●●●●○` — frequency 3, revenue 4, gating 2 (creates the asset ads amplify)\n- **Browse earlier task:** `capture-client-stories-on-phone`\n- **Browse later task:** `record-screen-shares-of-real-audits`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in the current task source. Use the owned teaching references below while that article gap is reviewed.\n- Exact task: [Film conference presentations](https://local-service-spotlight.github.io/task-library/?task=film-conference-presentations#task-film-conference-presentations)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- No dedicated canonical conference-capture article is mapped.\n- Event-specific rights, exact coverage and sound evidence need a real event.",
     "importance": 4,
     "freq": 3,
     "revenue": 4,
     "gating": 2,
     "phase": "Produce",
     "before": "capture-client-stories-on-phone",
     "after": "record-screen-shares-of-real-audits",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "2768ef46877075120724dad84bfcf5ee991a31f9bbe78f35b99fed4f51698d61",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f5b1512084e55753cceefd417bcc5678f7f839d2169f78a27fc5889b620dd4f4",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2768ef46877075120724dad84bfcf5ee991a31f9bbe78f35b99fed4f51698d61",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2768ef46877075120724dad84bfcf5ee991a31f9bbe78f35b99fed4f51698d61"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2768ef46877075120724dad84bfcf5ee991a31f9bbe78f35b99fed4f51698d61"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 82,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Map out one-minute video topics using Topic Wheel",
     "slug": "map-out-one-minute-video-topics-using-topic-wheel",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/topic-wheel",
     "articleKind": "task-recipe",
     "desc": "Pick what to film next. Use your offer, key topics, and true stories to make a short list.",
     "content": "---\nname: map-out-one-minute-video-topics-using-topic-wheel\ndescription: \"Pick what to film next. Use your offer, key topics, and true stories to make a short list.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: /topic-wheel\nstatus: complete\n---\n\n# Map out one-minute video topics using Topic Wheel\n\nIt is hard to film when you do not know what to say. This guide helps an owner turn real questions and stories into a short video list. Start with what you sell and who it helps, then choose useful topics.\n\n**The path:** Clear offer → Useful topics → True stories and questions → Video queue.\n\n**Use this when:** The recording queue is empty, off-topic, or hard to link to the business offer.\n\n## Inputs\n- The current offer, intended customer, and owner’s real purpose and goals.\n- Real source material: customer questions, call notes, comments, FAQs, allowed event questions, and true owner or partner stories.\n- The current [SEO Tree](https://blitzmetrics.com/seo-tree/) map of owned topic pages, or a record that the page map is still missing.\n- A sheet or drawing tool and edit access to the content tracker. Name the person who can approve the plan and the person who will record.\n\n## First-run prompt\n\n> Use my current offer, true stories, customer questions, and page map to build a Topic Wheel and recording queue. Put WHAT at the center, HOW topics in the middle, and WHY stories outside. Keep sources and permission notes. Do not invent people, relationships, demand counts, or page links.\n\n## Steps\n1. Use the current [Topic Wheel](https://blitzmetrics.com/topic-wheel/) definitions: WHAT is the product or service at the center; HOW is the middle ring of topics and expertise; WHY is the outer ring of people and true stories. The audience moves from stories toward the offer, but planning starts with the offer.\n2. Write one clear sentence for WHAT. State the actual product or service and who it is for. Do not replace the offer with a vague mission line.\n3. List about three to seven HOW topics that support the offer and match real expertise. Merge duplicates. Keep the owner’s plain words instead of invented framework names.\n4. For each topic, collect real WHY stories, people, and allowed collaborations. Record the source and permission state. A wish to work with someone is not an existing relationship.\n5. Add real customer questions under the matching topics. Preserve the question wording and source in the private tracker. Questions can produce teaching clips; they are not themselves the WHAT ring.\n6. Match topics to the owned page map. Use the topic hub for the main explanation and specific stories as supporting pages when appropriate. Mark a missing page as a gap instead of linking an unrelated page.\n7. Create one recording-queue row per useful prompt: question or story, source, topic, link to the offer, intended viewer, page home, speaker, and state. Rank by observed repeat questions and the agreed business need. If frequency was not measured, say so.\n8. Review the queue with the plan owner. Hand accepted prompts to [Record one-minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos) or an agreed [50-clip batch](https://local-service-spotlight.github.io/task-library/?task=batch-record-50-raw-clips-in-one-session#task-batch-record-50-raw-clips-in-one-session). Save the wheel, source list, and current queue together.\n9. The source calls for a monthly refresh. Keep answered items linked to their clips; do not erase history. Add new questions and mark replaced or stale prompts. A calendar job needs an agreed owner, timezone, access, and trigger before it can run.\n\n## Definition of done (QA checklist)\n\n- [ ] The wheel uses WHAT center, HOW middle, and WHY outside, with the actual offer stated.\n- [ ] Each selected topic relates to the offer; each story or question has a traceable source.\n- [ ] The queue has a clear prompt, topic, speaker, and owned-page destination or named page gap.\n- [ ] Priority is based on evidence or labeled judgment, with no fabricated demand counts.\n- [ ] Accepted prompts and prior answers remain findable for recording and later review.\n\n## Example(s)\n\n**Fictional teaching example — not a real business plan or customer research.** Maple Cycle’s sample wheel has WHAT at the center: “Bike repair quotes and service for local riders.” Its HOW topics are repair quotes, planning a shop visit, and used-bike questions. An outside WHY story is Alex’s wish to make basic questions feel welcome.\n\n| Prompt | Ring or topic use | Sample source | Recording choice |\n| --- | --- | --- | --- |\n| Why did Alex open the shop? | WHY story | Invented founder note | One origin story |\n| Can I send a photo before a visit? | HOW: planning a visit | Invented customer email | One teaching answer |\n| What does a quote visit include? | WHAT: current offer | Invented service sheet | One offer explanation |\n\nThe sample does not say “customers ask this 20 times a week,” because no real count exists. In a real queue, replace each invented source with the actual record and set the next speaker before filming.\n\n## Handoff and Content Factory context\n\nThe named speaker receives accepted prompts through [Record one-minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos). The editor receives the page map so later articles fit the [SEO Tree](https://blitzmetrics.com/seo-tree/). A missing page is planning work, not a reason to invent a page URL.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nCreate the first wheel once. The source proposes a monthly refresh and updates when new questions arrive. Treat monthly as a planned review until a real owner and schedule have been configured; no reminder is installed by this guide.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 4 (runs every factory cycle or weekly; gates a phase)\n- **Browse earlier task:** `create-clear-conversion-path`\n- **Browse later task:** `batch-record-50-raw-clips-in-one-session`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/topic-wheel\n- Exact task: [Map out one-minute video topics using Topic Wheel](https://local-service-spotlight.github.io/task-library/?task=map-out-one-minute-video-topics-using-topic-wheel#task-map-out-one-minute-video-topics-using-topic-wheel)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- The public Topic Wheel page still embeds an older skill with reversed rings; parent needs to synchronize that embedded source.\n- Real offer, story permission and question sources remain required for a real plan.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 4,
     "phase": "Produce",
     "before": "create-clear-conversion-path",
     "after": "batch-record-50-raw-clips-in-one-session",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; gates a phase",
     "instructionReview": {
      "source_sha256": "a60bdb3fe415d7b3ec535661d3a5f92add8e3a8925def8475c8bf2efcd2fb8dd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "94182b94f3916c6da4019ece2d6024979ccd1bafeb5886fdc359f377a8a0d75c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=map-out-one-minute-video-topics-using-topic-wheel#task-map-out-one-minute-video-topics-using-topic-wheel",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a60bdb3fe415d7b3ec535661d3a5f92add8e3a8925def8475c8bf2efcd2fb8dd",
      "articleKey": "blitzmetrics.com/topic-wheel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a60bdb3fe415d7b3ec535661d3a5f92add8e3a8925def8475c8bf2efcd2fb8dd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a60bdb3fe415d7b3ec535661d3a5f92add8e3a8925def8475c8bf2efcd2fb8dd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/topic-wheel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 233,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Record one-minute videos",
     "slug": "record-one-minute-videos",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/one-minute-video-guide",
     "articleKind": "task-recipe",
     "desc": "Use a phone to answer one real customer question. Save the clip so your team can use it.",
     "content": "---\nname: record-one-minute-videos\ndescription: \"Use a phone to answer one real customer question. Save the clip so your team can use it.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: /one-minute-video-guide\nstatus: complete\n---\n\n# Record one-minute videos\n\nYou know things your customers need to know. This guide helps a business owner turn one real question into a short video. Pick a question, give a clear answer, and save the file for your team.\n\n**The path:** Real question → One short answer → Saved clip → Editor.\n\n**Use this when:** You have a real customer question and need a new source clip.\n\n## Inputs\n- One question from a call, email, comment, or the topic queue. Keep a link or private note that shows where it came from.\n- The owner or team member who knows the answer, a charged phone, and a quiet place with good light.\n- Permission from anyone who will be shown. Keep private customer details out of the shot.\n- The brand’s approved raw-video folder and content tracker, plus access to add files and rows. Name the person who will edit the clip.\n\n## First-run prompt\n\n> Use the question and source I give you to help me plan one short video. Give me three speaking notes, a file name, and a tracker row. Ask only for facts you need. Do not write a fake customer story. Check the saved clip and list what is still unverified before handoff.\n\n## Steps\n1. Choose one question you can answer from real work. Note who needs the answer and what they should understand by the end. Use [Topic Wheel](https://blitzmetrics.com/topic-wheel/) to place it under the right topic; a question is not the WHAT ring. WHAT means the offer at the center.\n2. Place the phone at eye level. Keep the lens clear, your face lit, and the background simple. Choose framing that fits the planned use. A vertical phone shot is a useful starting point for a short answer.\n3. Make a short test. Check framing, the microphone input, and the saved file. For an agent review, use silent frames and available captions; mark sound quality unverified until someone has checked it under the allowed media rules.\n4. Use three notes, not a script: the question, one true example, and why the answer helps. Say the question, answer it in plain words, then give the example. Do not make up a customer story or a result.\n5. Aim for about one minute. The source guide accepts 45–90 seconds. Keep a useful take even if a word is rough. Record a new take if the answer is wrong, the sound fails, or the key point is missing; do not pass a broken take to save time.\n6. Name the file YYYY-MM-DD-topic-person. If there is more than one take, add a take number so you do not overwrite the first. Upload it to the approved raw folder and wait for the upload to finish.\n7. Open the saved file from its folder link without starting sound. Match its name and length to your local file. Add the source question, topic, length, permissions, file link, and editor to the tracker.\n8. Mark it “Raw — ready for Process” only when the checks below pass. If a check is missing, state what is missing and who can resolve it. Hand off to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript).\n\n## Definition of done (QA checklist)\n\n- [ ] One real question and its source are recorded; the answer stays on that question.\n- [ ] The speaker uses their own words and true facts. The saved take is 45–90 seconds, or a stated exception has been accepted.\n- [ ] The face and needed details are clear; sound quality has an actual check, not an assumption from the file existing.\n- [ ] The saved link opens for the editor, and the tracker includes the topic, permission state, and next owner.\n\n## Example(s)\n\n**Fictional teaching example — not a client result or completed run.** Maple Cycle is a made-up bike shop. Its owner, Alex, wants to answer this sample customer email: “Should I bring my bike in before asking for a repair quote?”\n\nAlex’s three notes are: “A photo can start the chat”; “We need to see the bike before we give a firm quote”; “Call first so we can set a time.” In a sample 62-second take, Alex explains that a photo of a loose part may help the shop plan the visit, but it cannot prove what work the bike needs.\n\nThe teaching tracker row reads: topic = repair quotes; source = sample email; file = `2026-09-06-repair-quote-alex-take1.mp4`; length = 62 seconds; next role = editor. In a real run, add the actual saved link and permission evidence. This sample has neither, so it cannot be logged as a completed clip.\n\n## Handoff and Content Factory context\n\nThe named editor receives the raw file, question, topic, rights notes, and tracker row. The next task is [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). Editing, posting, and ads are later work.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun once for each question or agreed batch. Repeat when the real topic queue needs more footage. This file does not create a daily job or a reminder.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 3 (runs every factory cycle or weekly)\n- **Browse earlier task:** `batch-record-50-raw-clips-in-one-session`\n- **Browse later task:** `capture-client-stories-on-phone`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/one-minute-video-guide\n- Exact task: [Record one-minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video method](https://blitzmetrics.com/one-minute-video-guide/)\n- [Topic Wheel: stories, topics, and offer](https://blitzmetrics.com/topic-wheel/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- A real clip, recipient access check, and sound review remain required for an actual execution.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 3,
     "phase": "Produce",
     "before": "batch-record-50-raw-clips-in-one-session",
     "after": "capture-client-stories-on-phone",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "032b26fb5c9f50d469833dc7afaecefb0f3d23766d8171986366b8e526825586",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7f922f63ec0246dafaba8f0274c0230ce9f695d55d0f9925f1fed2d5033a4027",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "032b26fb5c9f50d469833dc7afaecefb0f3d23766d8171986366b8e526825586",
      "articleKey": "blitzmetrics.com/one-minute-video-guide",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "032b26fb5c9f50d469833dc7afaecefb0f3d23766d8171986366b8e526825586"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "032b26fb5c9f50d469833dc7afaecefb0f3d23766d8171986366b8e526825586"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/one-minute-video-guide"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-spent-6-on-youtube-ads-and-reached-real-hvac-owners-a-simple-one-hour-video-recipe/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 234,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Record screen shares of real audits",
     "slug": "record-screen-shares-of-real-audits",
     "status": "needs-work",
     "stage": "Produce",
     "article": null,
     "articleKind": "unknown",
     "desc": "Record a real review of approved work. Show what you checked, what you found, and what needs to happen next.",
     "content": "---\nname: record-screen-shares-of-real-audits\ndescription: \"Record a real review of approved work. Show what you checked, what you found, and what needs to happen next.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Record screen shares of real audits\n\nA screen full of charts can be hard to understand. This guide helps an owner or reviewer explain a real check in plain words. Start with the goal, then show what you found and what should happen next.\n\n**The path:** Approved audit → Clear screen and narration → Findings and edit notes → Editor.\n\n**Use this when:** An approved real audit is about to happen and it may be recorded for teaching or review.\n\n## Inputs\n- The actual audit task and checklist, the property to review, and authorization for that read or work. This recording guide does not grant permission to test or change systems.\n- Permission to record and the agreed later uses. List private names, emails, account data, and other details to keep out.\n- An approved screen recorder with microphone and screen-capture access; enough local storage. For the Zoom method below, use the desktop app and a host role or host-granted recording privilege.\n- The approved raw folder, tracker, reviewer, and editor. Keep credentials out of the recording and all public evidence.\n\n## First-run prompt\n\n> Use the approved audit scope and checklist I provide to plan a clear screen recording. Give me a short goal statement, section prompts, and a privacy check. After capture, organize actual findings and time ranges. Do not run changes, assume a passed check, or expose private account details.\n\n## Steps\n1. Name the goal, what this recording will show, and who needs it. These are [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/). Link the exact audit checklist instead of improvising a new audit from this filming guide.\n2. Close private tabs, notifications, password tools, and unrelated windows. Share only the needed window when possible. Choose examples and views the client has allowed. Keep a private list of any remaining redaction risks.\n3. For an approved Zoom recording, start the meeting as host or get host permission to record. Select the intended screen or window and check that the needed text is readable. Check microphone input without playing sound through speakers.\n4. Use Record, then Record on this Computer if offered. Confirm the recording indicator before beginning. If the approved recorder is Descript instead, use its current recording controls and verify the same screen, microphone, and file checks; do not assume Zoom’s controls apply.\n5. For each real checklist item, say what you are checking, why it matters, what the screen shows, and the next action. Keep observations separate from guesses. An inaccessible view is “not checked,” not a pass.\n6. Pause between sections and when private content may appear. Note time ranges for useful findings and sections that must be removed. A recording is not permission to click a live change or run an intrusive test.\n7. For Zoom, stop recording, then end the meeting to begin local conversion. Wait for conversion to finish before moving or renaming the file; keep it on a local drive during conversion. For Descript or another approved recorder, verify its processing has finished before copying the saved file to the approved raw folder.\n8. Name it YYYY-MM-DD-clientname-audit-topic. Save checklist results, evidence references, time ranges, and privacy notes with the tracker row. Review a redacted copy before public use; keep the original in its approved restricted location.\n9. Hand the source and findings to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). The actual audit’s own acceptance checks determine whether the audit passed. This task checks the recording package.\n\n## Definition of done (QA checklist)\n\n- [ ] The audit property, checklist, scope, and permitted recording use are stated.\n- [ ] The saved recording shows readable evidence and explains observation, meaning, and next action.\n- [ ] Missing checks are visible; the narration does not claim a result from a screen it could not inspect.\n- [ ] The file has finished processing, is saved, and has time-based privacy and highlight notes.\n- [ ] The named editor can access the allowed package; public-use clearance and sound review are explicit.\n\n## Example(s)\n\n**Fictional teaching example — not an audit of a real site.** In a sample page review for Maple Cycle, a reviewer checks whether the “Book a visit” link reaches the intended booking page.\n\nThe narration is: “The goal is to help a rider book a visit. At 02:10, this button opens an old page. I checked the new page separately and it loads. The site editor should update the button and test it again.”\n\nThe sample result is one failed link check and one proposed fix. It is not “the site passed” or “bookings increased.” The cut list marks 04:15–04:25 for removal because a private email appears. A real handoff needs the actual page references, recording, permission, and retest evidence.\n\n## Handoff and Content Factory context\n\nThe editor takes the recording through [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). The audit owner keeps the findings and any repair tasks; they are not complete merely because a teaching clip was made.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun when an authorized audit needs a recording. A recurring audit may use this task for each actual session, but this guide does not schedule audits or start automatic recording.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** `film-conference-presentations`\n- **Browse later task:** `film-casual-team-conversations`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in the current task source. Use the owned teaching references below while that article gap is reviewed.\n- Exact task: [Record screen shares of real audits](https://local-service-spotlight.github.io/task-library/?task=record-screen-shares-of-real-audits#task-record-screen-shares-of-real-audits)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Zoom’s current local-recording controls](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0076922)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- No dedicated recording guide is mapped in the source.\n- Descript UI details are not specified or claimed verified here; the full concrete provider route uses current official Zoom documentation.\n- Real audit scope, sound check and redacted-copy review are still required.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": "film-conference-presentations",
     "after": "film-casual-team-conversations",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "9a40d42de3e7340e8f02fda27d85042bd36efacac80ee01c2cd2a516e4117b7a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "dfc866956901289a2a4d8103bd8cbcd29d8b3d74754359de52116adb79627dce",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9a40d42de3e7340e8f02fda27d85042bd36efacac80ee01c2cd2a516e4117b7a",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9a40d42de3e7340e8f02fda27d85042bd36efacac80ee01c2cd2a516e4117b7a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9a40d42de3e7340e8f02fda27d85042bd36efacac80ee01c2cd2a516e4117b7a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 124,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set up Content Library",
     "slug": "set-up-content-library",
     "status": "needs-work",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Put your source files and finished work in one clear home. Build a log so the next person can find and use them.",
     "content": "---\nname: set-up-content-library\ndescription: \"Put your source files and finished work in one clear home. Build a log so the next person can find and use them.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: /social-amplification\nstatus: needs-work\n---\n\n# Set up Content Library\n\nGood files are hard to use when they sit in phones and chat threads. This guide helps a business owner put them in one clear home. Start with an approved folder, then make a log that shows each file and its next step.\n\n**The path:** Approved home → Four clear stages → File log → Tested handoff.\n\n**Use this when:** The brand needs its first content library or an agreed set of existing files needs to be organized.\n\n## Inputs\n- A brand-controlled Google Drive location and a person authorized to set its folders and sharing. Check whether it is My Drive or a Workspace shared drive.\n- A bounded list of assets to organize, with their present locations, owners, permissions, and known duplicates. “All files” needs a stated scope.\n- The current [Topic Wheel](https://blitzmetrics.com/topic-wheel/) topics, the raw-file intake location, and any existing library layout that must be preserved.\n- Edit access for the folder and tracker, plus the names of the intake owner, editor, and person who controls access. Do not grant everyone full edit rights by default.\n\n## First-run prompt\n\n> Help me build or clean up the agreed content library from the locations and file list I provide. Preserve the existing approved structure and source trail. Draft the README and tracker, check ownership and access, and reconcile only the stated scope. Report exact gaps; do not delete originals, grant extra access, or schedule a job without authority.\n\n## Steps\n1. Confirm the library home with the brand owner. Use the existing approved structure if there is one. Record the location, access owner, scope of files, and limits before moving anything.\n2. Check ownership, not just the name of the parent folder. In My Drive, a brand-owned folder does not make each uploaded file brand-owned. Where the brand has an approved Workspace shared drive, files belong to the organization. If using My Drive, record file owners and resolve the actual ownership plan with the access owner.\n3. Create or map four stage folders: 01-Raw, 02-In-Process, 03-Published, and 04-Promote-Creatives. These reflect the [Content Factory](https://localservicespotlight.com/content-factory/) stages: make source material, edit it, publish it, and then distribute it. Do not mark content published just because it is placed in 03-Published.\n4. Write a short root README. State who owns the library, where new files arrive, how to name them, where the tracker lives, and who takes the next step. Use YYYY-MM-DD-topic-person plus type or take suffix when needed. Keep original names in the tracker to preserve the source trail. Preserve each file extension unless you separately convert the file and verify the result.\n5. Create a tracker with one row per source asset: asset ID, original name, current name, date, source link, topic, [GCT](https://blitzmetrics.com/gct-business-strategy/) notes, owner/permission state, stage, next person, and links to derived work. GCT means the goal, what this file shows, and who it is for.\n6. Inventory the agreed assets before moving them. Copy or move only within the approved scope; do not delete originals or merge duplicate-looking files without checking them. Rename the working copy, file it in the right stage, and log each item. Keep unmatched or inaccessible files on an exception list.\n7. Open the raw folder in Drive and use New → File upload or Folder upload, or drag the allowed files into it. Wait for completion. If a filename already exists, inspect the choice before overwriting a version; preserve distinct takes.\n8. Check sharing with the access owner. Give the team only the roles needed for intake, editing, or review. Parent folder sharing can affect its contents. Use an approved restricted location for files that need tighter limits.\n9. Test the handoff with one actual source file. Confirm the editor can open it and find its tracker row. Point [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) at the agreed intake. An existing worker may require a specific source path; record that path rather than assume it reads these folder names.\n10. Reconcile files and rows within the agreed scope. Count found, logged, inaccessible, and unresolved assets. Save the README and exception list. The source proposes a weekly backlog review; configure that separately only when an owner, time, and access are agreed.\n\n## Definition of done (QA checklist)\n\n- [ ] The library location and actual file ownership model are recorded.\n- [ ] The four stage folders are created or mapped to the existing layout, with a clear raw intake.\n- [ ] The README and tracker explain naming, topic, stage, rights, and handoff.\n- [ ] Every asset in the stated scope has a tracker row or a named exception; source copies and original names remain traceable.\n- [ ] An actual recipient has checked access to a test file; missing access is not reported as ready.\n- [ ] The backlog review is described without falsely claiming a scheduled job exists.\n\n## Example(s)\n\n**Fictional teaching example — no Drive folders or client files were created.** Maple Cycle’s sample scope is 12 phone clips and 4 photos. The teaching folder plan is:\n\n```text\nMaple Cycle Content\n  README\n  Content tracker\n  01-Raw\n  02-In-Process\n  03-Published\n  04-Promote-Creatives\n```\n\nOne sample row maps original `IMG_0421.mov` to `2026-09-06-repair-quote-alex.mov`, topic “repair quotes,” stage “Raw,” next role “editor.” Its output links stay blank until real outputs exist.\n\nIf the sample intake finds 15 of the 16 planned assets and one phone is unavailable, the result is “15 logged; one photo still needed.” If the parent folder is brand-owned but this clip belongs to another person in My Drive, ownership is still unresolved. A neat folder tree is not proof that the brand controls every file.\n\n## Handoff and Content Factory context\n\nThe intake owner receives the README, file log, and exceptions. The editor tests one source file and starts [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). The existing worker or upload task must use the verified intake path; this guide does not install or activate it.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nThe initial setup is a one-time task for the agreed scope. Normal intake happens as new assets arrive. A weekly raw-backlog review is the source recommendation, with items older than a week flagged for review; it becomes a real schedule only after configuration and a checked first run.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `configure-https-with-no-mixed-content`\n- **Browse later task:** `install-google-tag-manager-container`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Set up Content Library](https://local-service-spotlight.github.io/task-library/?task=set-up-content-library#task-set-up-content-library)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Google’s current upload controls](https://support.google.com/drive/answer/2424368?hl=en)\n- [Google’s current folder-sharing rules](https://support.google.com/drive/answer/7166529?hl=en)\n- [Google’s explanation of file ownership](https://support.google.com/a/users/answer/7212025?hl=en)\n- [Social Amplification operating context](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- Real Drive ownership, storage, permission and recipient-access checks still require the actual account.\n- The existing worker’s concrete intake path must be confirmed before wiring it to the library.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 5,
     "phase": "Gate",
     "before": "configure-https-with-no-mixed-content",
     "after": "install-google-tag-manager-container",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "b5bf7af51199ee0686a8c764fefd4d0fa1514ad6416a0f91e181670a7409dffa",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0be7bf7981ce624c355f56ddb80501c4c296bd64bce43a2a88f6089391acb3aa",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-content-library#task-set-up-content-library",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b5bf7af51199ee0686a8c764fefd4d0fa1514ad6416a0f91e181670a7409dffa",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b5bf7af51199ee0686a8c764fefd4d0fa1514ad6416a0f91e181670a7409dffa"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b5bf7af51199ee0686a8c764fefd4d0fa1514ad6416a0f91e181670a7409dffa"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 84,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Access Content Factory source assets",
     "slug": "access-content-factory-source-assets",
     "status": "needs-work",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/access-content-factory-photos-videos/",
     "articleKind": "task-recipe",
     "desc": "Get the right access to the photos and videos for your task. Check that you can open the actual files.",
     "content": "---\nname: access-content-factory-source-assets\ndescription: \"Get the right access to the photos and videos for your task. Check that you can open the actual files.\"\ncategory: Content Factory — Produce\nstage: Produce\ndefinitive_article: https://blitzmetrics.com/access-content-factory-photos-videos/\nstatus: needs-work\n---\n\n# Access Content Factory source assets\n\nYou need the right files before you can start a job. This guide helps you find the photos and clips your team needs. Start with the job name and file list, then check that each file will open.\n\n**The path:** Known task and files → Approved access → Open real sources → Handoff.\n\n**Use this when:** An assigned content task needs specific photos, videos, or project files that are not yet accessible.\n\n## Inputs\n- The assigned project and task, your work email, the files or dates you need, and the intended use.\n- The project’s current access contact and approved invitation or credential-sharing method. The public guide names an operations contact and LastPass; confirm that this is still the approved route for this project.\n- The exact Basecamp project and known asset locations. The source names Google Photos, Drive, and Dropbox, but this task grants no access to unrelated libraries.\n- A way to record safe file references, access results, and blockers without copying passwords, recovery codes, or private customer content.\n\n## First-run prompt\n\n> Use my assigned project, file list, and approved access method to build an access checklist. Prepare a narrow request if needed, but do not send without authority. Check each actual file and separate viewing, downloading, editing, and publication rights. Report exact blockers without storing or exposing secrets.\n\n## Steps\n1. Write the access scope before asking: project, task, work email, specific source files, intended use, and the role you need. Ask the project’s known access owner to confirm the current method. Do not use a public article’s historical shared-login email as a credential instruction.\n2. Prepare the request for the approved operations contact. Send it only within the authority of the actual job. A draft request is not an invitation, and an invitation is not working access.\n3. Accept the genuine project invitation. If the access owner confirms LastPass is still used, accept that invitation into the approved account and use the shared item for this project. If the project uses direct account access instead, follow that invitation. Do not create a second credential store or put secrets in the tracker.\n4. Open the assigned Basecamp project through the confirmed link. Check the task, source-file instructions, and allowed uses. Use [Basecamp Basics](https://localservicespotlight.com/basecamp-basics-the-foundation-of-how-we-work/) for the team’s project workflow; it is a reference, not a grant of access.\n5. Open the confirmed source location. In Photos, search by the supplied person, date, place, or event; in Drive or Dropbox, follow the exact project folder. A search result with a similar name is only a candidate: compare the source date, subject, and task.\n6. Check the actual required files one by one. Confirm the photo or video is the intended source, the original or allowed copy is available, and your role permits the needed next action. Keep video muted at volume zero; use metadata, still frames, or captions if silence cannot be verified before playback.\n7. Log file reference, system, expected action, observed access, date, and any use limits. Distinguish “can view” from “can download,” “can edit,” or “may publish.” These are separate checks, not one yes/no permission.\n8. For missing access, record the exact denied location or missing file and send the smallest request through the current authorized project route. Do not widen sharing, seek another person’s login, or infer that every asset is cleared.\n9. Hand the verified source list to [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) or the specific assigned processing task. Report completion in the project thread only when sending is authorized. Keep inaccessible files as blockers, and write the run record even when access is incomplete.\n\n## Definition of done (QA checklist)\n\n- [ ] The project, task, files, intended use, and requested role are explicit.\n- [ ] The assigned project opens and the actual required source files have been checked.\n- [ ] View, download, edit, and publication rights are distinguished according to the task.\n- [ ] Missing files or access are recorded precisely; no historical login detail is treated as current proof.\n- [ ] The handoff contains safe file references and limits, with no secrets.\n\n## Example(s)\n\n**Fictional teaching example — no access was requested or granted.** A sample assignment asks an editor to use two Maple Cycle photos and one recorded shop tour.\n\n| Needed item | Sample observed state | Next action |\n| --- | --- | --- |\n| Shop front photo | Can open the intended file; use approved for the draft | Pass its private file reference to the editor |\n| Owner photo | Search finds two people with the same first name | Ask the project owner to confirm identity |\n| Shop tour | Folder opens, but the video cannot be downloaded | Ask for the role needed for the stated editing task |\n\nThe sample result is one verified source, one identity question, and one access blocker. “The folder opens” would hide two unfinished checks. No password, shared-login address, or private file URL belongs in a public meta article.\n\n## Handoff and Content Factory context\n\nThe assigned editor gets the verified source references and use limits. [Upload the source to Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) is the common next task; use another processing task only when the assignment names it. The project access owner resolves permissions, not the drafting agent.\n\nThis task serves **Produce** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce makes or prepares source material. Process edits it, Post puts approved work on a channel, and Promote helps it reach people. Only the steps and handoff above are part of this task.\n\n## When this runs\n\nRun for each new task or changed access need. Recheck required files when permissions change. The source establishes no automatic access-monitoring schedule.\n\n## Run with an agent\n\nThe agent can prepare the plan, organize allowed files, and check the evidence it can actually access. A person records real stories, supplies permission, or resolves an account step when needed. Save the current state in the project files and tracker. A model name does not create memory, access, a scheduler, or permission to act.\n\nFor all agent media checks, keep the player muted and its volume at zero before playback. If that cannot be checked, use captions, metadata, or still frames. Do not claim sound quality was heard when it was not.\n\n## Write up the real run\n\nFor every actual attempt, [write the run’s meta article](https://blitzmetrics.com/meta-article-prompt/). Link this exact task and its source revision. State the start, work done, evidence, result, gaps, and next owner. Keep failed, partial, and blocked work visible. Writing the record does not authorize publishing it.\n\nUse one stable execution ID for this task’s actual run. Internal retries, checks, and new versions do not add runs. A separately scoped child task may have its own ID linked to the parent. A teaching example has no real execution ID and must not enter the run count. Follow the [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) for that distinction.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/access-content-factory-photos-videos/\n- Exact task: [Access Content Factory source assets](https://local-service-spotlight.github.io/task-library/?task=access-content-factory-source-assets#task-access-content-factory-source-assets)\n- Publishing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n\n## Review and evidence still needed\n\nThe contributor status in the source header is preserved. It is not a claim that this draft has been independently accepted or that a real run has passed. The worked example above is for teaching only.\n- The current operations contact, credential method and account permissions require confirmation by the real project access owner.\n- No live account access or invitation was tested in this draft batch.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "42960dc11d70f8839cd7e6c5a2997d53a54a1bb4609bd91a3051e1a42d1056e2",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ab3e46e69cfa0db336c0acdefbaa7938d03b090ca4871c6dc6a34ee108b7f361",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=access-content-factory-source-assets#task-access-content-factory-source-assets",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "42960dc11d70f8839cd7e6c5a2997d53a54a1bb4609bd91a3051e1a42d1056e2",
      "articleKey": "blitzmetrics.com/access-content-factory-photos-videos",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "42960dc11d70f8839cd7e6c5a2997d53a54a1bb4609bd91a3051e1a42d1056e2"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "42960dc11d70f8839cd7e6c5a2997d53a54a1bb4609bd91a3051e1a42d1056e2"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/access-content-factory-photos-videos/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 126,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "content-factory-process",
   "name": "Content Factory — Process",
   "icon": "⚙️",
   "color": "#f59e0b",
   "description": "Transforming raw content into finished assets using AI tools and the Blog Posting Guidelines",
   "tasks": [
    {
     "title": "Create Dollar a Day ad creatives",
     "slug": "create-dollar-a-day-ad-creatives",
     "status": "needs-work",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Turn a useful post into an ad file. Keep its true message and show what test it is ready for.",
     "content": "---\nname: create-dollar-a-day-ad-creatives\ndescription: \"Turn a useful post into an ad file. Keep its true message and show what test it is ready for.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Create Dollar a Day ad creatives\n\nAn ad works best with a clear point worth sharing. This guide helps you turn a post with real response into files for a small test. Start with the source post and its measured results.\n\n**The path:** Measured source → Placement brief → Useful variants → Checked creative handoff.\n\n**Use this when:** The promotion owner requests creative files from content with documented organic signal.\n\n## Inputs\n- The real post/clip/article and its observed metrics, measurement date and comparison period.\n- The [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief and intended campaign/placement, audience and content rights.\n- Current specifications for those exact placements and access to an existing design/video editor.\n- The Content Library folder, requested variant count and named promotion owner. Creative preparation does not itself spend money.\n\n## First-run prompt\n\n> Prepare the requested ad files from this source and dated organic evidence. Keep the claim true, inspect current placement specs, and make clearly tracked variants. Return checked assets and a test hypothesis. Keep untested ideas labeled and do not spend or launch outside the separate campaign scope.\n\n## Steps\n1. Read the organic evidence and why this content was chosen under [Dollar a Day](https://blitzmetrics.com/dad/). A view, share or comment is a signal, not proof of sales. If no evidence exists, prepare a clearly untested concept only if requested, and route validation to Post rather than marking it a winner.\n2. Write a brief for each actual placement: purpose, asset type, ratio, duration, text fields, landing page and rights. Check current provider requirements; Facebook feed, Stories and YouTube formats do not share one universal size.\n3. Keep the source’s supported claim and context. Adapt it for sound-off understanding with readable text/captions. Do not add a new performance promise just because the asset is now an ad.\n4. Create the agreed variants, commonly two or three under the source method. Change one meaningful feature such as the opening crop or headline, and record the difference. Variant results are unknown until tested.\n5. Export for the selected placements and inspect visible safe areas so controls will not cover the speaker, caption or key point. Google supports different ratios by format; YouTube does not mean horizontal-only.\n6. Check copy lengths in the actual placement preview and verify the canonical landing URL. A provider preview passing does not certify the truth of a claim or approval of an ad.\n7. Name each file by date/source/platform/variant and store it in the actual creative folder, using 04-Promote-Creatives when that is the project convention. Record dimensions, duration, file path, source-post ID and metric receipt.\n8. Hand over the package with the hypothesis, difference between variants and unresolved eligibility checks. Launching, targeting and spend follow the separate already-authorized campaign task, not an automatic action caused by exporting files.\n\n## Definition of done (QA checklist)\n\n- [ ] Each selected winner has actual dated organic evidence, or is explicitly an untested requested concept.\n- [ ] Claims, rights, caption text and source context are preserved.\n- [ ] Each requested placement has a checked final export and clearly named variant.\n- [ ] The handoff records the test hypothesis and real readiness; no campaign or revenue result is invented.\n\n## Example(s)\n\n**Fictional teaching example — no ad or real metrics.** A sample shop post got six useful customer questions over seven days. That invented teaching signal suggests testing its photo checklist; it does not prove sales.\n\nVariant A opens with “Show the whole bike.” Variant B opens with “Help the shop see the issue.” Both use the same source demonstration and preserve the need for an inspection. The delivery sheet records which crop and line changed, the requested placement, and “test not launched.” It does not add a $1/day schedule or claim either version won.\n\n## Handoff and Content Factory context\n\nThe promotion owner receives the assets for [Run the scoped Dollar a Day campaign](https://local-service-spotlight.github.io/task-library/?task=run-dollar-a-day-campaign-on-winning-content#task-run-dollar-a-day-campaign-on-winning-content) when its own inputs and authority are ready.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nPer selected source and defined creative batch. New variants follow observed test evidence; this task creates no recurring ad spend.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `write-email-newsletter-from-video-key-insight`\n- **Browse later task:** `write-meta-article-documenting-agent-work`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Create Dollar a Day ad creatives](https://local-service-spotlight.github.io/task-library/?task=create-dollar-a-day-ad-creatives#task-create-dollar-a-day-ad-creatives)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Google video-ad specifications](https://support.google.com/google-ads/answer/13547298?hl=en-GB)\n- [Meta placement specifications](https://www.facebook.com/business/ads-guide)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated article is unmapped; real metrics, rights and placement/account eligibility require project evidence. Meta specification page required login in this review.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Process",
     "before": "write-email-newsletter-from-video-key-insight",
     "after": "write-meta-article-documenting-agent-work",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "4f3496a79465355b6e5cd4a26923f93d822ec81fbbd8e8b0194d9f1b6ba4a1ff",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "015deb3de7099c5ea7d3ffd76fd902ee3981ddbecfb14790166a3a1b2b992cdc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4f3496a79465355b6e5cd4a26923f93d822ec81fbbd8e8b0194d9f1b6ba4a1ff",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4f3496a79465355b6e5cd4a26923f93d822ec81fbbd8e8b0194d9f1b6ba4a1ff"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4f3496a79465355b6e5cd4a26923f93d822ec81fbbd8e8b0194d9f1b6ba4a1ff"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 34,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Create quote cards from strongest statements",
     "slug": "create-quote-cards-from-strongest-statements",
     "status": "needs-work",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Put a true quote on a clear card. Keep the speaker’s words and name easy to read.",
     "content": "---\nname: create-quote-cards-from-strongest-statements\ndescription: \"Put a true quote on a clear card. Keep the speaker’s words and name easy to read.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Create quote cards from strongest statements\n\nA short quote can help a reader remember a good point. This guide turns a real statement into a clear card. Start with the checked words and the person who said them.\n\n**The path:** Checked quote → Real attribution → Readable card → Source-linked export.\n\n**Use this when:** A source has concise, context-safe statements worth turning into attributed graphic assets.\n\n## Inputs\n- The verified transcript and original source times, with rights to quote and reuse the material.\n- The speaker’s verified full name and relevant company/role, plus a permitted real photo when available.\n- The brand’s design rules, actual destination sizes and existing design tool.\n- The source/asset tracker and requested number of cards.\n\n## First-run prompt\n\n> Find source-safe exact quotes and prepare the requested cards. Check surrounding context, attribution and image rights. Keep direct quotes verbatim, label summaries, inspect the final export at phone size, and save source timestamps. Do not invent a speaker, image, endorsement or publication.\n\n## Steps\n1. Find one- or two-sentence statements that make sense without hidden context. Check the surrounding source for a condition or limitation that must remain.\n2. Copy the quote exactly from the checked source and record its time. If it needs paraphrasing, label it a summary and design it without quotation marks; do not quietly rewrite a direct quote.\n3. Select the strongest usable set within the request. Three to five is a source planning suggestion, not a reason to invent weak or unsupported quotes.\n4. Confirm attribution and permissions. A first name, domain-only praise or unknown speaker is not a publishable testimonial. If the photo is missing, record that need or prepare a clearly identified text layout instead of using a stock face.\n5. Set the quote in large, high-contrast type with the real attribution nearby. Use the speaker’s permitted image where supplied and keep the design tied to the statement rather than implying an endorsement beyond it.\n6. Size the card for the actual destination and inspect it at phone/thumbnail scale. Keep text clear of crops and platform overlays. Add accessible post text describing the quote rather than relying only on pixels.\n7. Compare the final exported words with the transcript, including negatives, numbers and punctuation that changes meaning. Verify that the photo and attribution belong to this speaker.\n8. Save the actual file, source time, quote, design version and next use in the tracker. A finished graphic remains a prepared asset until a separate scoped posting task publishes it.\n\n## Definition of done (QA checklist)\n\n- [ ] Every direct quote is exact, source-anchored and context-safe.\n- [ ] Name, relevant attribution and photo identity/rights are verified.\n- [ ] The final card and accessible companion text are readable and faithful.\n- [ ] Actual cards and source links are logged; no fictional card is recorded as a client outcome.\n\n## Example(s)\n\n**Fictional teaching example — the person and quote are invented.** The sample source says, “A photo helps us prepare. It does not replace a close look at the bike.” A teaching card keeps both sentences and attributes them to “Alex, sample Maple Cycle mechanic.”\n\nThe shorter line “A photo replaces a close look” is rejected because it reverses the meaning. A sample text-only design is useful for this lesson, but cannot be passed off as a real quote card from a real client. In a real run, replace the fictional text and attribution with checked source evidence.\n\n## Handoff and Content Factory context\n\nThe content owner receives the cards for [Prepare platform posts](https://local-service-spotlight.github.io/task-library/?task=create-social-media-posts-per-platform#task-create-social-media-posts-per-platform) or [Add article visuals](https://local-service-spotlight.github.io/task-library/?task=step-8-add-photos-and-featured-image#task-step-8-add-photos-and-featured-image) when the image genuinely supports that page.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne card batch per selected source, with duplicate checks against prior assets. Repeat only for a new quote or requested correction.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `extract-15-60-second-clips-from-long-form-video`\n- **Browse later task:** `step-5-write-article-from-transcript`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Create quote cards from strongest statements](https://local-service-spotlight.github.io/task-library/?task=create-quote-cards-from-strongest-statements#task-create-quote-cards-from-strongest-statements)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated article is unmapped; real speaker/source/rights and final graphics require an actual run.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "extract-15-60-second-clips-from-long-form-video",
     "after": "step-5-write-article-from-transcript",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "1151f2a40916325e87a5711f54a941557bd148e9b66042382929f9693577b6dd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bf20dc950c4dbd923022429a826c09687604c9bd323a7e0a059ead3682fae666",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1151f2a40916325e87a5711f54a941557bd148e9b66042382929f9693577b6dd",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1151f2a40916325e87a5711f54a941557bd148e9b66042382929f9693577b6dd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1151f2a40916325e87a5711f54a941557bd148e9b66042382929f9693577b6dd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 115,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Create social media posts per platform",
     "slug": "create-social-media-posts-per-platform",
     "status": "needs-work",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Turn one useful idea into posts for the channels you use. Match the words and media to each place.",
     "content": "---\nname: create-social-media-posts-per-platform\ndescription: \"Turn one useful idea into posts for the channels you use. Match the words and media to each place.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Create social media posts per platform\n\nYour customers may see the same idea in more than one place. This guide helps you shape that idea for each channel you choose. Start with one true point and the accounts in your plan.\n\n**The path:** Source idea → Chosen channels → Clear copy and assets → Posting handoff.\n\n**Use this when:** Processed content needs ready-to-use social copy and assets for specified channels.\n\n## Inputs\n- The checked source article or draft, clips/cards and [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief.\n- The exact in-scope Facebook Page, LinkedIn profile/Page, Instagram or X account; do not assume all four are used.\n- Verified handles, voice, rights, canonical destination and current format/composer limits.\n- A tracker with draft/published state, posting owner and existing schedule if any.\n\n## First-run prompt\n\n> Adapt this checked content for the exact channels in my plan. Keep the real voice and facts, verify handles and link behavior, and return copy plus media for each account. Save true draft/scheduled/live states. Use existing posting authority where given, but do not invent channels, tags, results or a timer.\n\n## Steps\n1. Choose the platforms from the real audience and plan. The goal is useful content where readers are, not four mandatory rewrites for an absent account.\n2. Write the core insight in one sentence, then adapt its framing. Retain the same facts and source limit across every version; different wording must not become different claims.\n3. For Facebook, use clear conversational context and a real visual when appropriate. A Page and a restricted group have different readers and rules; do not address an assumed 44,000-person audience.\n4. For LinkedIn, frame the practical lesson for the actual profile or Page voice. For Instagram, make the visual understandable and support it with clear caption text. For X, make the single point or thread useful without arbitrary fragments. Check current composer limits rather than hardcoding every future limit.\n5. Use verified relevant mentions only when appropriate and allowed. Do not tag every named person automatically, invent handles or imply a relationship from a tag.\n6. Add the checked canonical article link where the chosen placement supports it. A draft URL remains a draft dependency. If a caption needs a bio/link route, verify that actual route instead of promising a clickable link that is not present.\n7. Proofread names, claims, captions, media crops and destination. The exact same concise sentence may be appropriate on two channels; distinct usefulness matters more than cosmetic rewriting.\n8. Save each platform’s final copy, asset, target account, publication state and next owner. Carry out scheduling/posting only if already part of this job, using the maintained Post task; then verify the actual scheduled or live state separately. A future schedule needs a named first-firing receiver and check.\n\n## Definition of done (QA checklist)\n\n- [ ] Only requested relevant channels are included, with correct account/voice.\n- [ ] Each version teaches the source-backed point and has working appropriate media/links.\n- [ ] Tags and claims match evidence and platform context.\n- [ ] Draft, scheduled and live states are explicit; no automatic schedule or engagement is claimed.\n\n## Example(s)\n\n**Fictional teaching example — no social posts were made.** The shared lesson is that clear photos help a bike shop prepare.\n\n**Facebook draft:** “Send a full view of the bike and a close-up of the issue. Add when it happens. Those details help us prepare for your visit.”\n\n**LinkedIn draft:** “A useful intake request tells the customer exactly what to send. Our sample bike checklist asks for two views and one short note, while keeping the inspection step clear.”\n\nThe Instagram card shows “Whole bike / Close-up / When it happens.” Its link route stays pending until the real account is known. No X draft is required if X is outside this job’s plan.\n\n## Handoff and Content Factory context\n\nThe posting owner receives each prepared package. Use [Post to the Facebook Page](https://local-service-spotlight.github.io/task-library/?task=post-to-facebook-page#task-post-to-facebook-page) and [Post to LinkedIn](https://local-service-spotlight.github.io/task-library/?task=post-to-linkedin#task-post-to-linkedin) for those selected channels. Other channels use their actual maintained account workflow.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nPer content package. Reuse the project’s real calendar if authorized; no universal recurring cross-post job is created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `grade-article-using-jennifer`\n- **Browse later task:** `write-email-newsletter-from-video-key-insight`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Create social media posts per platform](https://local-service-spotlight.github.io/task-library/?task=create-social-media-posts-per-platform#task-create-social-media-posts-per-platform)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated article is unmapped; real account IDs, other-channel workflows and current composer behavior need project-specific checks.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 2,
     "phase": "Process",
     "before": "grade-article-using-jennifer",
     "after": "write-email-newsletter-from-video-key-insight",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "996ea9a1840520a255359d28ebc963eba00317cc0053824741f35bb0eeef5c0b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a8833537ad1f8523764f266d82fb53b3b06af6cc061bbf03cc989e836627f7f7",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "996ea9a1840520a255359d28ebc963eba00317cc0053824741f35bb0eeef5c0b",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "996ea9a1840520a255359d28ebc963eba00317cc0053824741f35bb0eeef5c0b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "996ea9a1840520a255359d28ebc963eba00317cc0053824741f35bb0eeef5c0b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 71,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Extract 15–60 second clips from long-form video",
     "slug": "extract-15-60-second-clips-from-long-form-video",
     "status": "needs-work",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Cut one useful idea from a long video. Give it clear captions and a link to the source.",
     "content": "---\nname: extract-15-60-second-clips-from-long-form-video\ndescription: \"Cut one useful idea from a long video. Give it clear captions and a link to the source.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Extract 15–60 second clips from long-form video\n\nA long video may hold a short answer worth sharing. This guide helps you cut one clear point that can stand on its own. Start with the source and the place where the clip will be used.\n\n**The path:** Source moment → Complete short idea → Captioned export → Checked clip list.\n\n**Use this when:** A timestamped source has useful standalone moments for a defined short-clip deliverable.\n\n## Inputs\n- The source recording, verified timestamped transcript, GCT and rights to edit/reuse it.\n- The exact source version or cleaned cut, with a mapping to original time if editing changed its clock.\n- A working editor such as Descript, actual export access, and current requirements for the planned destination.\n- The clip tracker, intended count if agreed, named editor and posting/promotion owner.\n\n## First-run prompt\n\n> Find and prepare standalone 15–60-second clips for the specified channels from this real source. Check surrounding context, preserve source times, add accurate captions and verify actual exports. Record the real number made and pending audio checks. Do not invent highlights, guarantee reach, publish or launch ads outside the job’s scope.\n\n## Steps\n1. Read the full timestamped source and list candidate ideas with start/end times. Choose a point that helps the intended reader; do not promise ten or twenty clips from an hour regardless of its content.\n2. Check context before and after each candidate. Preserve conditions, speaker identity and meaning. A dramatic sentence that reverses the full discussion is not a good standalone clip.\n3. For this task, target 15–60 seconds as the house brief, not a universal platform limit. If a complete useful idea cannot fit, choose another moment or explicitly propose a longer asset instead of cutting away the necessary qualification.\n4. Create a separate composition for each selected clip. Trim near natural phrase boundaries and check the opening quickly states a useful point. The first few seconds matter editorially, but no three-second hook test guarantees views.\n5. Use any filler cleanup selectively. It is optional, not a prerequisite that must consume AI credits before every cut. Preserve the source version and avoid synthetic speech that misrepresents what was recorded.\n6. Frame for the actual destination: choose an agreed portrait, square or landscape layout, and keep the speaker, key action and readable captions inside it. Verify current destination requirements rather than assuming all feeds use the same dimensions.\n7. Add accurate visible captions or the requested subtitle track. Descript SRT/VTT export is a separate artifact; it does not by itself burn captions into the video. Check names, line breaks and the final exported frame.\n8. Export a local finished file or the specifically authorized share destination. Confirm duration, dimensions, complete idea, caption readability and file integrity. A plan-dependent export setting cannot create detail missing from the original.\n9. Save one row per actual clip with source ID/times, cut version, hook, duration, dimensions, output path and next use. Record actual count and any audio review still pending. Route suitable clips to posts or ad-creative preparation; exporting a clip does not publish it or authorize spend.\n\n## Definition of done (QA checklist)\n\n- [ ] Each clip is a complete source-faithful idea in the agreed 15–60-second brief or has an explicit exception.\n- [ ] Source/cut timestamps and rights are recorded.\n- [ ] Final exports have checked dimensions, duration and accurate readable captions.\n- [ ] Actual exported count, audio review state and next owner are logged without performance or publication claims.\n\n## Example(s)\n\n**Fictional teaching example — no clips were made.** A sample source has a useful passage from 03:10 to 03:42: “Tell us when the noise happens. A noise while braking gives us a different starting point from a noise while pedaling.” That is a 32-second candidate with one complete idea.\n\nThe clip title is “Say when the noise starts.” Its row records original source 03:10–03:42, the separate cut version, portrait layout if the planned channel calls for it, and “caption/export checks pending” until the file exists. A separate sentence saying “we can quote from a photo” is rejected if the next line limits that claim. One good clip is a truthful result; a template quota is not.\n\n## Handoff and Content Factory context\n\nThe content owner receives clip files and the source map for [Prepare platform posts](https://local-service-spotlight.github.io/task-library/?task=create-social-media-posts-per-platform#task-create-social-media-posts-per-platform) or [Prepare Dollar a Day creatives](https://local-service-spotlight.github.io/task-library/?task=create-dollar-a-day-ad-creatives#task-create-dollar-a-day-ad-creatives) when appropriate. These are separate scoped deliverables.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne extraction pass per source and agreed deliverable. A later run can add new moments after checking the existing clip ledger; it should not duplicate earlier exports.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 3 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `step-4-research-edit-add-timestamps-and-outline`\n- **Browse later task:** `create-quote-cards-from-strongest-statements`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Extract 15–60 second clips from long-form video](https://local-service-spotlight.github.io/task-library/?task=extract-15-60-second-clips-from-long-form-video#task-extract-15-60-second-clips-from-long-form-video)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Descript text edits and media](https://help.descript.com/hc/en-us/articles/10164808475149-Inline-notes)\n- [Descript subtitle exports](https://help.descript.com/hc/en-us/articles/10255811669773-Exporting-subtitles)\n- [Descript export quality](https://help.descript.com/hc/en-us/articles/28868035473421)\n- [Descript composition copies](https://help.descript.com/hc/en-us/articles/10612359826061-Duplicating-a-composition)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No dedicated canonical article is mapped; actual source moments, destination specs and sound review require a real run.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 3,
     "phase": "Process",
     "before": "step-4-research-edit-add-timestamps-and-outline",
     "after": "create-quote-cards-from-strongest-statements",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "56b3afdbe33067abb3075527215604723f4282ce5411aa072a6a7626873e2465",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4e5cfc35fe5f9ed4452831e1ceddaaac1432920ef4ba1bbe9db69e61942dce21",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "56b3afdbe33067abb3075527215604723f4282ce5411aa072a6a7626873e2465",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "56b3afdbe33067abb3075527215604723f4282ce5411aa072a6a7626873e2465"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "56b3afdbe33067abb3075527215604723f4282ce5411aa072a6a7626873e2465"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 69,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Grade article using Jennifer",
     "slug": "grade-article-using-jennifer",
     "status": "gap",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Check the words and proof in a draft. List what needs a fix.",
     "content": "---\nname: grade-article-using-jennifer\ndescription: \"Check the words and proof in a draft. List what needs a fix.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: gap\n---\n\n# Grade article using Jennifer\n\nA polished article can still have a wrong fact or weak proof. This guide helps you check it with a named set of rules. Start with the full draft, its source, and the rules you will use.\n\n**The path:** Exact draft and rubric → Evidence-based findings → Bounded fixes → Clear readiness decision.\n\n**Use this when:** A finished draft needs a bounded, recorded quality review before its next publishing step.\n\n## Inputs\n- The complete versioned article, GCT, page role, transcript/primary proof, visuals, links and author context.\n- The actual Jennifer rubric file/version and current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) plus task standard. Jennifer is the named review rubric, not proof of a running installed agent.\n- The requested review tier and revision budget, a writer for corrections, and a tracker for findings.\n- Rendered page evidence when available; draft-only checks stay separate from public checks.\n\n## First-run prompt\n\n> Review this exact article and source using the supplied Jennifer version plus current owned standards. First list rubric conflicts. Return quoted, located findings and hard-gate states; give a letter only when the rubric supports it. Keep fixes bounded, do not manufacture proof to meet quotas, and do not equate A- with publication authority.\n\n## Steps\n1. Record the exact draft and rubric versions. Check the rubric against current standards before grading. Check for version conflicts such as unconditional A- readiness, arbitrary ten-reference/three-link quotas or claims that every personal article proves a personal relationship. Newer revisions may have already fixed some clauses; cite the exact version you inspect. Preserve those conflicts as findings instead of inventing evidence to satisfy them.\n2. Use the maintained role-specific standard for hard decisions: truthful facts/relationships, attributed permitted praise, clear GCT, meaningful lead visual, correct voice, useful links, and complete task contract where applicable. A score never overrides a failed proof, relationship, attribution, or compliance gate. Apply the named credibility caps from the canonical source: a Trophy-name paragraph without a specific shared scene, reader lesson, and primary source is capped; a Relationship noun outruns the evidence when the article claims a stronger bond than its source proves; Repeated defensive caveats or verification theater are capped unless a legal, regulatory, or compliance disclosure materially requires them; Public copy exposes internal scoring or production metadata when it publishes internal proof IDs, scores, or repurposing instructions that are not the article's topic; and praise that is anonymous or attributed only to a domain/company remains `publish_ready: false` and HOLD until it has the required named source, exact quote, and permission. Do not silently call a revised rubric the unchanged legacy Jennifer.\n3. Review the full article, media/alt/caption context, source and available rendering. Quote each real defect and identify its location, violated rule, severity, evidence and requested fix. A count of names or links is not proof of quality.\n4. Return structured review fields: draft revision, rubric revision, rubric conflicts, grade if a consistent rubric supports one, publish_ready, hard-gate states and actionable findings. Use grade UNKNOWN when unresolved rubric conflicts prevent a defensible letter; do not mint a flattering substitute score.\n5. Keep publish_ready false while a hard gate fails or required evidence is untested. Under a reconciled Jennifer rubric, A- or A can end cosmetic iteration only after applicable hard checks pass. A letter never grants publication authority.\n6. Send exact defects to the writer. Preserve the source budget when used: STRONG up to three rounds, MODERATE two, LIGHT one; tier targets do not waive hard gates. At the budget limit, return the remaining list and next decision rather than looping indefinitely.\n7. Recheck the changed revision and affected sources. Do not regrade unchanged accepted copy to chase an A, but a substantive new change or newly failed hard gate requires a new check of the current revision.\n8. Save findings, fixes, unresolved conflicts, actual round count and readiness. If the installed rubric remains inconsistent, hand its exact source clauses to the standards owner and use the clearly labeled maintained article checklist for useful review meanwhile.\n\n## Opening meaning review\n\nKeep the opening to two or three short sentences at grade 5 or below. It must show the actual reader’s situation, why the subject matters, the useful result, and how this page helps. A source-backed moment or useful finding can lead. Keep its relevant visual in the first screen; check that the body delivers the opening’s promise.\n\nSave the exact opening and artifact revision in the existing run receipt. Have the reviewer quote the words that establish the situation, reason to care, result and method. Record PASS, FAIL or UNKNOWN with reasons and a readability diagnostic. A grade score, keyword, generic audience label or unsupported conversion promise cannot approve meaning. Follow [Step 7: write and review the opening](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and the [maintained opening standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/every-article-and-project-starts-with-specific-gct.md).\n\nA failed or untested opening-meaning gate keeps `publish_ready: false`. A meaningful loaded visual must also pass the [canonical rendered first-screen gate](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/visuals-above-the-fold.md) at 390x844 and 1280x800. The first two or three paragraphs, an image tag or a letter grade cannot replace actual first-screen screenshots and source-backed review.\n\n## Definition of done (QA checklist)\n\n- [ ] Exact article/rubric revisions and any conflicts are recorded.\n- [ ] Findings quote actual text and distinguish evidence gates from style preferences.\n- [ ] Readiness is never inferred solely from a grade or contributor status.\n- [ ] Revision budget and remaining owner/action are explicit; no fabricated grade or proof count is used.\n\n## Example(s)\n\n**Fictional teaching example — no article was scored by Jennifer.** A sample review finds: “exact price from one photo” conflicts with the source’s inspection requirement. It records a hard factual failure at the opening. The draft also lacks a meaningful lead visual.\n\nThe review output is `grade: UNKNOWN`, `publish_ready: false`, with the unresolved legacy rubric version conflict and those two precise issues. The writer fixes the promise and adds a relevant diagram. That improves the article, but does not retroactively prove the legacy grader ran or that a public page passed. A consistent reviewed rubric and current evidence are needed for a letter-grade claim.\n\n## Handoff and Content Factory context\n\nThe writer uses [Write from the checked source](https://local-service-spotlight.github.io/task-library/?task=step-5-write-article-from-transcript#task-step-5-write-article-from-transcript) for substantive fixes. The publisher gets the reviewed revision through [the maintained article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist) and [WordPress placement](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress) when applicable.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nPer substantive draft review, within the chosen round budget. Recheck after material changes, not indefinitely after an accepted unchanged draft.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 4 (runs every factory cycle or weekly; creates the asset ads amplify; gates a phase)\n- **Browse earlier task:** `step-11-proofread-with-grammarly-or-chatgpt`\n- **Browse later task:** `create-social-media-posts-per-platform`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Grade article using Jennifer](https://local-service-spotlight.github.io/task-library/?task=grade-article-using-jennifer#task-grade-article-using-jennifer)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Jennifer rubric source and conflict review](https://localservicespotlight.com/jennifer-our-article-grader-skill-file-for-claude/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The upstream Jennifer rubric needs reviewed synchronization with current standards before a consistent named grade is claimed. Dedicated canonical task article remains unmapped.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 4,
     "phase": "Process",
     "before": "step-11-proofread-with-grammarly-or-chatgpt",
     "after": "create-social-media-posts-per-platform",
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; gates a phase",
     "instructionReview": {
      "source_sha256": "60d5cf0b45e90bf906ce406230b182784acd78daef3e1660754d6b0343413efc",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "033672d450ae259e969fa2ae99dd431b557930fb71c4a35128d6793ce480d061",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "60d5cf0b45e90bf906ce406230b182784acd78daef3e1660754d6b0343413efc",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "60d5cf0b45e90bf906ce406230b182784acd78daef3e1660754d6b0343413efc"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "60d5cf0b45e90bf906ce406230b182784acd78daef3e1660754d6b0343413efc"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 67,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "How to inventory a podcast on YouTube",
     "slug": "how-to-inventory-a-podcast-on-youtube",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/how-to-inventory-a-podcast-on-youtube/",
     "articleKind": "task-recipe",
     "desc": "List the talks and interviews on a YouTube channel. Find the useful sources your team can use next.",
     "content": "---\nname: how-to-inventory-a-podcast-on-youtube\ndescription: \"List the talks and interviews on a YouTube channel. Find the useful sources your team can use next.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/how-to-inventory-a-podcast-on-youtube/\nstatus: complete\n---\n\n# How to inventory a podcast on YouTube\n\nGood interviews can get lost in a busy channel. This guide helps you list them, check who is in each one, and choose what to use next. Start with the exact channel and a shared sheet.\n\n**The path:** Channel and playlists → Unique episodes → Verified people → Ranked source queue.\n\n**Use this when:** A channel’s podcast-format videos need an evidence-backed inventory for reuse.\n\n## Inputs\n- The exact channel ID/URL, host names/variants, series names and existing inventory.\n- A client-owned sheet with Playlists, All Episodes, Cross-Platform, Guests and Summary tabs; use the linked guide’s template when available.\n- Read access to YouTube and primary episode/show pages, and authorized API quota if using the Data API.\n- The intended scope/date range, access limits, metric observation time and next content owner.\n\n## First-run prompt\n\n> Inventory this exact YouTube channel into the five-tab format. Reconcile playlists, videos, live items and searches by video ID; verify guests and public dates. Keep inaccessible rows and metric gaps visible. Calculate transparent summaries and a source-backed priority list without claiming every appearance worldwide was found.\n\n## Steps\n1. Create or update one dedicated inventory. Record channel ID, scope, date and search coverage. Keep source rows and summary formulas separate.\n2. Map playlists with title, URL, observed count and type. Treat long duration, guest names and “podcast” as discovery clues; inspect the content before classifying it as an interview.\n3. Capture each accessible episode with unique video ID, title, series, duration, public date, observed views, guest/host role and source URL. Follow all playlist pages/API nextPageToken values. Keep playlist memberships separately so one video in two playlists remains one episode.\n4. Search beyond playlists through Videos, Live and relevant channel queries. The source suggests at least ten targeted searches when useful; record terms and outcomes rather than calling ten queries proof of completeness. Include known names and series variants.\n5. Verify each guest from a primary title/description/show page or checked introduction. Use “Solo — host” only when supported. Keep unknown people and inaccessible/private/deleted slots as explicit exceptions rather than invented rows.\n6. Build one Guests row per verified person with relevant identity links and episode list. A missing LinkedIn URL is a documented exception, not permission to guess a profile.\n7. Cross-check Listen Notes, Podchaser, the host’s site and global YouTube results. Store outside-channel appearances in Cross-Platform and preserve source links. Discovery results and AI suggestions remain leads until verified.\n8. For comparable videos with known dates and views, calculate lifetime average views per day using the stated observation time and age rule. It is not recent velocity. Keep same-day/unknown-date rows unranked or explicitly use a disclosed one-day denominator; do not silently divide by zero.\n9. Build Summary totals from unique accessible verified rows, plus separate unresolved/unavailable counts. Rank within comparable groups. If using top 20%, state the eligible denominator and rounding rule; retrieve permitted transcripts for selected rows, retain timestamped originals and record actual word counts.\n10. Reconcile playlist memberships, unique episodes, exceptions, guest identity and summary formulas. Log a quoted-title search as a dated query/result observation, not guaranteed Google indexing. Hand over priority sources, coverage limits and measured time/cost only when recorded.\n\n## Definition of done (QA checklist)\n\n- [ ] All five tabs exist with exact channel/scope and a reproducible coverage log.\n- [ ] Unique video IDs are deduplicated while playlist membership and unavailable slots remain visible.\n- [ ] People, dates, metrics and transcripts are verified or labeled unknown with reasons.\n- [ ] Summary totals, priority denominator and formula choices reconcile to source rows.\n\n## Example(s)\n\n**Fictional teaching example — no channel was audited.** Playlist A lists five videos; Playlist B lists four, with two IDs shared. The inventory has seven unique listed videos, not nine. One is unavailable, leaving six accessible rows and one exception.\n\nFor a sample video with 600 observed views over 30 days, lifetime average is 20 views/day. That does not prove it got 20 views yesterday. If five rows have comparable valid metrics, the top 20% selection is one row. The summary shows the date and denominator rather than calling that row a sales winner.\n\n## Handoff and Content Factory context\n\nThe owner receives the sheet and coverage gaps. [Merge all podcast appearances](https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do#task-how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do) reconciles cross-platform sources; [Transcribe selected sources](https://local-service-spotlight.github.io/task-library/?task=step-2-transcribe-video-using-descript#task-step-2-transcribe-video-using-descript) starts only with permitted media.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nInitial inventory, then a dated delta when new channel content appears or the project requests a refresh. Reuse the same sheet and IDs.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/how-to-inventory-a-podcast-on-youtube/\n- Exact task: [How to inventory a podcast on YouTube](https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-a-podcast-on-youtube#task-how-to-inventory-a-podcast-on-youtube)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [YouTube video metadata fields](https://developers.google.com/youtube/v3/docs/videos)\n- [YouTube playlist pagination](https://developers.google.com/youtube/v3/docs/playlistItems/list)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Private/deleted content, source rights, exact metrics and any missing identities require real channel evidence.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "b6d2a5ea3862c37fd9dfff6854492cab9b3f38276d914a18276fee70ab327bcb",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a3578df092ec30bdb2f6311571a91140f037e521fe23ad2ad97b3aa007155cd7",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-a-podcast-on-youtube#task-how-to-inventory-a-podcast-on-youtube",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b6d2a5ea3862c37fd9dfff6854492cab9b3f38276d914a18276fee70ab327bcb",
      "articleKey": "blitzmetrics.com/how-to-inventory-a-podcast-on-youtube",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b6d2a5ea3862c37fd9dfff6854492cab9b3f38276d914a18276fee70ab327bcb"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b6d2a5ea3862c37fd9dfff6854492cab9b3f38276d914a18276fee70ab327bcb"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-inventory-a-podcast-on-youtube/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-built-dunk-talk-podcast-guest-list/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 239,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "How to inventory every podcast you've been on",
     "slug": "how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do/",
     "articleKind": "task-recipe",
     "desc": "Bring your podcast visits into one checked list. Keep one row for each real appearance.",
     "content": "---\nname: how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do\ndescription: \"Bring your podcast visits into one checked list. Keep one row for each real appearance.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do/\nstatus: complete\n---\n\n# How to inventory every podcast you've been on\n\nYour past interviews can help people learn what you know. This guide brings them into one list so your team can find and use them. Start with your name, known shows, and any list you already have.\n\n**The path:** Name variants → Discovery leads → Verified appearances → One master list.\n\n**Use this when:** A person needs a consolidated verified appearance inventory across podcast and video sources.\n\n## Inputs\n- The person’s verified name/variants, known shows, companies and public identity pages.\n- Existing inventory and authorized supplied internal records, with private details kept out of public exports.\n- Read access to Listen Notes, Podchaser, YouTube and show pages; account/profile changes have separate scope.\n- A master sheet, date/scope, verification statuses, content-use rights and next owner.\n\n## First-run prompt\n\n> Merge the supplied and discovered podcast leads into one source-backed appearance inventory. Verify this person’s role, combine mirrors of the same episode, and keep mentions and uncertain identities separate. Record coverage, rights and metric gaps. Prepare a useful reuse queue without inventing appearances, contact permission or ROI.\n\n## Steps\n1. Set up one master record per real appearance with title, show, host, date, role, canonical source, platform links, audio/video availability, verification evidence and next use.\n2. Search known names and variants in Listen Notes, Podchaser, YouTube, show websites and the person’s site. Record each source/query/date and any access or coverage limits.\n3. Use supplied private archives only within the task’s scope. AI search can suggest leads but must retain a real source URL for verification. Do not turn a claimed result count into a confirmed total.\n4. Verify that this person actually appeared and in what role. A mention, same-name person or quote repeated by the host is not a guest appearance. Keep uncertain leads in a review queue.\n5. Merge directory mirrors, audio/video copies and reuploads of the same episode into one appearance with multiple links. Use show/title/date/participants/content evidence, not title similarity alone. Separate genuinely different appearances even if they share a show.\n6. Record source media availability and permitted reuse separately from presence. A verified guest credit does not grant download, editing or advertising rights.\n7. Prioritize useful verified material with comparable observed evidence and the real GCT. Top 20% is a method option with an explicit eligible denominator; unavailable engagement is UNKNOWN, not zero and not a fabricated ranking.\n8. Keep hosts and collaborators in a sourced relationship list when useful, without inferring friendship or permission to contact them. Do not claim, edit a profile or send outreach merely because it was discovered.\n9. Return the deduplicated inventory, source coverage log, verified/rejected/unresolved totals and priority handoff. If monitoring is part of the job, reuse an authorized alert or named review cadence, with the first result checked before claiming it works.\n\n## Definition of done (QA checklist)\n\n- [ ] One master row represents each verified appearance, with preserved platform links.\n- [ ] Role/identity evidence separates appearances from mentions and same-name collisions.\n- [ ] Source coverage, rights and metric gaps are explicit.\n- [ ] Totals reconcile and monitoring/outreach states are truthful.\n\n## Example(s)\n\n**Fictional teaching example — no real appearances counted.** Listen Notes finds a sample “Alex on Shop Talk” episode. YouTube has the same conversation under a shorter title, and the host site links both. They become one appearance with three links.\n\nA different episode says “Alex once told me…” but has only the host speaking. That is a mention, not a second guest appearance. The sample sheet records one verified appearance and one rejected mention, with a third same-name lead awaiting review. It does not claim a complete lifetime total from those searches.\n\n## Handoff and Content Factory context\n\nThe content owner uses permitted priority sources for [Archive and prepare a work copy](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript). Platform-specific discovery can use [Listen Notes inventory](https://local-service-spotlight.github.io/task-library/?task=how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance#task-how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance) and [Podchaser credit review](https://local-service-spotlight.github.io/task-library/?task=how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content#task-how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content) without automatically editing public profiles.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nInitial consolidation, then an agreed delta review. Optional alerts need real setup, access, a receiver and verification; no automatic recurring contact list is implied.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do/\n- Exact task: [How to inventory every podcast you've been on](https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do#task-how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Podchaser credit meanings](https://support.podchaser.com/en/articles/6555701-what-is-a-credit)\n- [Listen Notes alerts and transcript limits](https://www.listennotes.help/article/106-how-to-track-podcast-mentions-with-listen-alerts-the-ultimate-podcast-social-listening-tool)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Complete lifetime coverage cannot be certified from directory search alone; missing records/rights remain explicit.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "6a0c34529714ea8163211b8737ba51eaed8a2554e43d8347ace3b5e4f8702ee2",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "563b7e346f48593900bcda466fff6026cc6926add7c9b8452ae569d64eaeeb0d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do#task-how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "6a0c34529714ea8163211b8737ba51eaed8a2554e43d8347ace3b5e4f8702ee2",
      "articleKey": "blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "6a0c34529714ea8163211b8737ba51eaed8a2554e43d8347ace3b5e4f8702ee2"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "6a0c34529714ea8163211b8737ba51eaed8a2554e43d8347ace3b5e4f8702ee2"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-inventoried-700-podcast-appearances-across-5-platforms-and-what-we-learned/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 247,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "How we use Listen Notes to find, track, and repurpose every podcast appearance",
     "slug": "how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance/",
     "articleKind": "task-recipe",
     "desc": "Use Listen Notes to find podcast leads. Check each match before it goes in your main list.",
     "content": "---\nname: how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance\ndescription: \"Use Listen Notes to find podcast leads. Check each match before it goes in your main list.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance/\nstatus: complete\n---\n\n# How we use Listen Notes to find, track, and repurpose every podcast appearance\n\nA search for your name can find old podcast visits. It can also find people who only mention you. This guide helps you tell the difference and save the useful results.\n\n**The path:** Name query → Search matches → Episode proof → Merged inventory.\n\n**Use this when:** The appearance inventory needs a reproducible Listen Notes discovery pass.\n\n## Inputs\n- Verified public name variants, known shows and identity context.\n- The master inventory with lead/verified/mention/rejected/unresolved states.\n- Listen Notes search access; exports and alerts may require existing paid access or separate purchase scope.\n- Search date/filters and a named inventory owner.\n\n## First-run prompt\n\n> Search the supplied name variants on Listen Notes and record query/filter/date coverage. Capture accessible results or use the already-authorized export. Verify actual episode presence, merge duplicates and keep mentions separate. Treat scores and alerts as their actual measured states; do not buy access or invent delivered notifications.\n\n## Steps\n1. Prepare each quoted name variant and known show query. Record query, date and filters so another reviewer can repeat the pass.\n2. Search Episodes and capture observed counts and accessible rows. Inspect Podcasts separately for hosted shows. A show match, episode match and verified appearance are different units.\n3. Save title, show, date, Listen Notes URL, primary episode link and matching context. Export only when the actual feature/access and cost are in scope; otherwise capture the bounded results manually and state any uncollected remainder.\n4. Use filters only when they fit the assignment and record them. Do not apply unique-podcast filtering if the goal is every episode, since that can hide multiple appearances on one show.\n5. Open source show notes or episode evidence to verify identity and role. Listen Notes does not transcribe or search all audio; available transcript matches are a limited discovery source. A name in one is still only a mention until presence is established.\n6. For priority verified rows, record any available Listen Score/percentile with its date as a show-level estimate. It does not prove guest presence, episode views, revenue or a comparable cross-platform rank.\n7. Merge verified rows into the master inventory using episode identity and preserve all source links. Reconcile duplicates and review uncertain matches against Podchaser, YouTube or the host page.\n8. If clipping is requested, use only a verified permitted source with actual start/end times and save the resulting state. Search completion does not require creating a clip or making a public playlist.\n9. If monitoring is authorized and available, create or reuse the exact Listen Alert query, filters and email/RSS receiver. Verify the saved setting and first actual delivery; keep it “configured, first delivery pending” until observed. Return the updated inventory and remaining coverage gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] Queries, filters, observed counts and captured rows are reproducible.\n- [ ] Every confirmed row has primary role/identity evidence.\n- [ ] Search/export/score counts are not substituted for verified appearances.\n- [ ] Master merge and optional alert state are recorded without hidden purchase or delivery claims.\n\n## Example(s)\n\n**Fictional teaching example — no search was run.** A sample quoted-name query shows eight results. Review finds three genuine episodes, two mirrors of those episodes, two mention-only items and one unresolved identity.\n\nThe master list adds three appearances, not eight. A show-level Listen Score may help choose which source to inspect first, but stays separate from the verified-appearance count. If an alert is saved today but no email has arrived, its record says “configured; first delivery pending.”\n\n## Handoff and Content Factory context\n\nThe inventory owner receives verified rows and unresolved leads for [the master appearance inventory](https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do#task-how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do). [Podchaser review](https://local-service-spotlight.github.io/task-library/?task=how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content#task-how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content) can use those leads while checking each credit independently.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nA bounded discovery pass, then optional authorized alerts or dated refreshes feeding the same inventory. Every new match still requires review.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance/\n- Exact task: [How we use Listen Notes to find, track, and repurpose every podcast appearance](https://local-service-spotlight.github.io/task-library/?task=how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance#task-how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Listen Notes export options](https://www.listennotes.help/article/108-podcast-datasets-quickstarts)\n- [Listen Notes alerts and transcript limits](https://www.listennotes.help/article/106-how-to-track-podcast-mentions-with-listen-alerts-the-ultimate-podcast-social-listening-tool)\n- [Listen Score definition](https://www.listennotes.com/listen-score/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Export/alert availability depends on actual access; uncaptured results and absent episode proof remain explicit.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "49be1dfe7b1d3106fcdf1829cddd3642d3ef2d637a43067804c76592983b17a6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "77b6cb011ee3811e38445a83d866e5ed373b6404a8b0d5b215dd450907668186",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance#task-how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "49be1dfe7b1d3106fcdf1829cddd3642d3ef2d637a43067804c76592983b17a6",
      "articleKey": "blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "49be1dfe7b1d3106fcdf1829cddd3642d3ef2d637a43067804c76592983b17a6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "49be1dfe7b1d3106fcdf1829cddd3642d3ef2d637a43067804c76592983b17a6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-we-use-listen-notes-to-find-track-and-repurpose-every-podcast-appearance/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/george-leith-listen-notes-podcast-inventory/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 248,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "How we use Podchaser to amplify authority and repurpose podcast content",
     "slug": "how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content/",
     "articleKind": "task-recipe",
     "desc": "Check the podcast credits listed for a person. Keep real roles and remove false matches from your work list.",
     "content": "---\nname: how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content\ndescription: \"Check the podcast credits listed for a person. Keep real roles and remove false matches from your work list.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content/\nstatus: complete\n---\n\n# How we use Podchaser to amplify authority and repurpose podcast content\n\nA podcast credit should show work a person really did. This guide helps you check the profile and each episode tied to it. Start with the right person and the proof for their role.\n\n**The path:** Correct creator → Evidence per credit → Submitted or confirmed state → Master inventory.\n\n**Use this when:** A Podchaser profile or suggested-credit list needs verified identity and episode-role review.\n\n## Inputs\n- Canonical identity details and the existing profile URL if any.\n- Episode/show evidence, known roles and companion inventory results.\n- Actual owner authorization/account access for profile or credit changes; read-only triage can proceed without a claim.\n- A triage sheet with old/new counts, decision, evidence, submission state and reviewer.\n\n## First-run prompt\n\n> Review this exact Podchaser creator and credit list against primary episode evidence. Keep one decision per credit and distinguish mentions, roles and same-name matches. Carry out profile/credit changes already authorized, then read back their true moderation state. Merge only verified appearances and do not infer media rights or contact authority.\n\n## Steps\n1. Find the existing creator before creating another. Check name, bio, links and actual work to avoid a same-name collision.\n2. If claiming is in scope, use the current Claim Profile process and record its verification request state. Current official help describes team verification; do not assume every user must connect X or substitute someone else’s identity.\n3. Create a missing profile only with the appropriate job scope and supplied identity evidence. Use the current My Creators/Add Creator flow and keep moderation pending until actually approved.\n4. Record confirmed and suggested counts as a dated baseline. For each suggestion, capture episode, show, date, proposed role and primary evidence. A suggested credit is not an appearance record yet.\n5. Judge each credit independently. Confirm host, guest, producer or another actual role only where evidence supports it. Reject same-name and mention-only matches in the work list; keep ambiguous items unresolved. Apply platform changes only through the in-scope route.\n6. Compare verified missing appearances with the platform. Submit supported missing credits using the correct episode and role, and save the submission reference. A moderation submission must not be counted as already public.\n7. Reopen relevant profiles/episode pages after changes. Reconcile actual accepted/removed/pending credits with the before count; distinguish a show-level recurring role from individually verified guest episodes.\n8. Sync confirmed appearances and their sources to the master inventory. Preserve pending submissions and unresolved identity separately. Credit visibility does not grant rights to reuse the media.\n9. Return the triage log, actual profile state and next owner. A future credit review needs a real agreed trigger; do not promise the profile will grow automatically or send outreach from this task.\n\n## Definition of done (QA checklist)\n\n- [ ] The correct creator is identified with no duplicate profile.\n- [ ] Each reviewed credit has individual role/identity evidence and a decision.\n- [ ] Submitted, pending moderation and confirmed public states remain distinct.\n- [ ] Before/after totals reconcile and the master inventory keeps rights/uncertainty visible.\n\n## Example(s)\n\n**Fictional teaching example — no credits were changed.** A sample profile has ten confirmed credits and three suggestions. One suggestion is a real guest appearance, one only mentions the name, and one belongs to a different person.\n\nThe reviewer submits the supported credit and rejects the other two in the work list. While moderation is pending, the public confirmed count remains ten. Only a later verified acceptance can make it eleven. The triage sheet preserves all three decisions instead of bulk-confirming them.\n\n## Handoff and Content Factory context\n\nThe inventory owner receives the reconciled log for [the master appearance inventory](https://local-service-spotlight.github.io/task-library/?task=how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do#task-how-to-inventory-every-podcast-youve-been-on-and-why-its-one-of-the-highest-roi-things-you-can-do). The content owner can later obtain permitted media for transcription; profile approval is not permission to edit a podcast.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nInitial profile/credit review, then an agreed new-credit check. A pending moderation request is monitored by the actual owner rather than resubmitted repeatedly.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content/\n- Exact task: [How we use Podchaser to amplify authority and repurpose podcast content](https://local-service-spotlight.github.io/task-library/?task=how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content#task-how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Claim an existing Podchaser creator](https://support.podchaser.com/en/articles/5090508-claiming-a-creator-profile)\n- [Create a Podchaser profile](https://support.podchaser.com/en/articles/5436512-adding-a-new-creator-profile)\n- [Podchaser credit meanings](https://support.podchaser.com/en/articles/6555701-what-is-a-credit)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual profile access, moderator decisions and source presence must be verified; no live credits were changed in this draft.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "6a174171745c42690f0c678e9bc63355386cc6e42a7ee6e471db2d8456816703",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "00977a8d30e92ae632be2db14bd37ea479eebefe73030a6d52641c8195157e31",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content#task-how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "6a174171745c42690f0c678e9bc63355386cc6e42a7ee6e471db2d8456816703",
      "articleKey": "blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "6a174171745c42690f0c678e9bc63355386cc6e42a7ee6e471db2d8456816703"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "6a174171745c42690f0c678e9bc63355386cc6e42a7ee6e471db2d8456816703"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-we-use-podchaser-to-amplify-authority-and-repurpose-podcast-content/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-built-dan-leibrandts-podchaser-profile/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 249,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Process videos via MarketScale",
     "slug": "process-videos-via-marketscale",
     "status": "gap",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Send a clear video brief to MarketScale. Check the returned cut and save the files your team needs.",
     "content": "---\nname: process-videos-via-marketscale\ndescription: \"Send a clear video brief to MarketScale. Check the returned cut and save the files your team needs.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: gap\n---\n\n# Process videos via MarketScale\n\nAn outside editor needs to know what you want the video to do. This guide helps you send a clear brief and check the finished cut. Start with the real source and the result you need.\n\n**The path:** Archived source → Clear edit brief → Reviewed cut → Saved master and handoff.\n\n**Use this when:** The project has chosen MarketScale for a specific video edit, with its account and service scope available.\n\n## Inputs\n- The original archived media, source transcript, rights and [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief.\n- The exact brand workspace, account role, included edit service and real approver. A brand-held account does not imply password sharing.\n- The requested length, orientation, destination, captions, branding and deliverable files.\n- The tracker, original-source link, review owner and actual publication/distribution scope.\n\n## First-run prompt\n\n> Prepare and carry out the scoped MarketScale edit request using this archive and brief. Confirm the actual workspace controls, avoid duplicate orders, and check the returned media against the source. Keep audio silent. Return the master/captions, request states and any real distribution URLs; do not equate auto-completion with quality review.\n\n## Steps\n1. Record why this source uses MarketScale and what is being requested. Keep the original in the project archive; the provider must not hold the only copy.\n2. Confirm current workspace controls and the edit service available. Official help currently documents both a brief-form route and a Request edit conversation. Use the interface actually present and record the chosen route rather than inventing buttons.\n3. Upload the correct source into its designated folder and select the actual approver. Complete the platform’s upload-approval step within existing authority. Approval into a workspace/feed is not proof of publication on every external channel.\n4. Open the media in Media Studio. Start the current Request edit flow and supply the goal, audience, desired cut length/orientation, source facts and exact caption/branding needs. Check supplied brand assets rather than assuming inherited settings are correct.\n5. Review the completed brief and submit once when in scope. Save the video/order reference and requested deliverables. If an active edit conversation already exists, continue it instead of making a duplicate order.\n6. When the cut returns, compare it with the source: meaning, names, quotes, captions, framing and agreed output. Keep agent playback silent and record any remaining audio-quality review. Use timestamped feedback and the current revision control for actual defects.\n7. Record actual state: uploaded, approved into workspace, in editing, edited, revision requested or complete. Provider auto-completion or elapsed time is not evidence that a human approved the quality. Do not promise the provider’s usual turnaround as this job’s guaranteed deadline.\n8. Save the finished master and available captions to the Content Library, with source mapping and checked file properties. If a required download or caption artifact is unavailable, keep that specific deliverable pending.\n9. Distribute only to the actual channels in the existing scope through their supported publishing tasks. Save real URLs and visibility. A field named Publishing destination in an edit brief is an instruction, not a public distribution receipt.\n10. Write the real run record, including the observed interface, service limits and fixes. The missing house-specific SOP can then be improved from evidence; writing this draft alone does not close its runtime gap.\n\n## Definition of done (QA checklist)\n\n- [ ] The source archive, routing reason and approved edit brief are recorded.\n- [ ] One actual request/order is tracked with true current state.\n- [ ] Returned files satisfy the source/branding/caption checks or have precise pending issues.\n- [ ] Archive return and any actual distribution are evidenced separately.\n\n## Example(s)\n\n**Fictional teaching example — no provider request was sent.** Maple Cycle asks for a 40-second portrait cut from a six-minute source: show the whole-bike photo, then the close-up, and retain the statement that an inspection may be needed.\n\nThe sample brief says “Use the existing shop branding; captions must preserve ‘may need an inspection.’ Return a master file and captions.” A returned cut drops “may,” so the reviewer leaves a timestamped correction. Even if the provider marks the order Complete automatically, the local record keeps “meaning correction pending.” No Facebook URL is logged until an actual post exists.\n\n## Handoff and Content Factory context\n\nThe content owner receives the master and review log. [Transcript review](https://local-service-spotlight.github.io/task-library/?task=step-2-transcribe-video-using-descript#task-step-2-transcribe-video-using-descript) or [WordPress placement](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress) follows only when its own required article/material is ready. Distribution is a separate Post handoff.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne bounded provider request per scoped video/edit order. Revision and status follow-up use the existing owner and provider state; no recurring uploads or extra orders are installed.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `write-meta-article-documenting-agent-work`\n- **Browse later task:** `step-12-post-article-on-wordpress`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Process videos via MarketScale](https://local-service-spotlight.github.io/task-library/?task=process-videos-via-marketscale#task-process-videos-via-marketscale)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [MarketScale current edit-request flow](https://help.marketscale.com/en/articles/16004078-how-to-request-a-video-edit-with-marketscale)\n- [MarketScale first upload and request](https://help.marketscale.com/en/articles/14537742-getting-started-submit-your-first-edit-request-on-marketscale)\n- [MarketScale edited/completed states](https://help.marketscale.com/en/articles/14603884-why-don-t-i-see-the-request-edit-now-button-on-my-video)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated article and a verified house run remain absent. Actual workspace version, plan, download/caption options and provider response need an authorized real request.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "write-meta-article-documenting-agent-work",
     "after": "step-12-post-article-on-wordpress",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "9f427834ac6182d9a26ec92b30c075d26c3a3b9f41b0868c8ae2e83de7642993",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bf3168ce3f7ebca90af942af95c993682dd054897b20430923ce59374af9ccdb",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9f427834ac6182d9a26ec92b30c075d26c3a3b9f41b0868c8ae2e83de7642993",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9f427834ac6182d9a26ec92b30c075d26c3a3b9f41b0868c8ae2e83de7642993"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9f427834ac6182d9a26ec92b30c075d26c3a3b9f41b0868c8ae2e83de7642993"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 113,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Step 1: Upload video to Google Drive and Descript",
     "slug": "step-1-upload-video-to-google-drive-and-descript",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Put your source video in a safe shared folder. Set up a work copy so the editor can start.",
     "content": "---\nname: step-1-upload-video-to-google-drive-and-descript\ndescription: \"Put your source video in a safe shared folder. Set up a work copy so the editor can start.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 1: Upload video to Google Drive and Descript\n\nYour best video is hard to use if no one can find it. This guide puts the source and work copy where your team needs them. Start with the right file and the folder for this job.\n\n**The path:** Source file → Safe archive → Descript work copy → Two checked links.\n\n**Use this when:** A specific raw recording is ready for Process and a tracker row identifies the project.\n\n## Inputs\n- The original file, source date, real speaker names, permission to use it, and any access limits.\n- The existing Content Library intake folder and tracker. Run [Set up the Content Library](https://local-service-spotlight.github.io/task-library/?task=set-up-content-library#task-set-up-content-library) if they do not yet exist.\n- Write access to the exact Drive folder and Descript project/drive; enough permitted media minutes for this import. Check the actual account rather than requiring Enterprise by default.\n- The agreed naming rule, priority, assigned editor, and intended next action.\n\n## First-run prompt\n\n> Use this source file and exact intake row. Check for an existing import, save the original in the approved archive, and prepare the matching Descript work project. Keep previews silent. Return both checked links, duration, access state and any remaining source review; do not mark an unfinished upload done.\n\n## Steps\n1. Read the queue and claim one unprocessed row. Follow any real priority; oldest first is a fallback queue rule. Check that another worker has not already imported it.\n2. Inspect the source name, format, duration and completeness. Review accessible frames/captions with silent controls. If intelligible speech has not been checked by an authorized reviewer or non-speaker audio analysis, record that pending check; metadata cannot prove it.\n3. Keep the original file intact. Use the existing naming convention, such as YYYY-MM-DD-topic-person, on the working copy or archive entry. Record the original filename so the source can still be traced.\n4. Check whether the exact file is already in the brand’s 01-Raw folder. If not, upload through Drive’s New/File upload or the supported project route and wait until complete. Compare duration/size and open the stored item.\n5. Check archive ownership and access. In My Drive, placing a file in someone else’s folder does not transfer ownership; a shared drive belongs to the organization. Use the project’s actual approved arrangement without broadening sharing.\n6. In the correct Descript drive, create or reuse the matching project and import this same source. Wait for the Activity panel to finish. Add the media to the script when transcription/editing is needed; a file merely listed in the project is not a finished composition.\n7. Check the composition contains the expected complete duration and visible frames. Keep a source version before later cuts. Verify that the intended next editor can access both the archive and work project.\n8. Save both exact links, file identity, import state and any unresolved speech check in the tracker. Mark this intake as picked up once, then hand the record to transcription.\n\n## Definition of done (QA checklist)\n\n- [ ] The complete source is in the intended archive with actual ownership/access known.\n- [ ] The matching Descript work project contains the intended media and has finished importing.\n- [ ] Both links, original identity, duration and next editor are recorded once.\n- [ ] Playback or speech checks are evidenced or explicitly pending; no silent test is called an audio pass.\n\n## Example(s)\n\n**Fictional teaching example — no file was uploaded.** Maple Cycle has a six-minute clip named `phone_042.mp4`. Its intake row calls it “What to bring for a repair quote.” The editor keeps that original and names the archive entry `2026-09-01-repair-quote-alex`.\n\nThe row records a six-minute Drive file and a six-minute Descript composition. The file sits in the shop’s shared drive, so the ownership note says “organization shared drive,” not “folder owner owns every uploaded file.” If Descript still shows an import in progress, the row says “archive ready; import pending.” The transcription handoff begins only with the actual completed project.\n\n## Handoff and Content Factory context\n\nThe assigned transcript editor receives the archive, composition and pending checks for [Step 2: make and verify the transcript](https://local-service-spotlight.github.io/task-library/?task=step-2-transcribe-video-using-descript#task-step-2-transcribe-video-using-descript).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce for each new source or a specifically requested replacement. Use the existing queue trigger only if configured; no automatic upload sweep is installed by this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `create-a-3x3-video-grid`\n- **Browse later task:** `step-2-transcribe-video-using-descript`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 1: Upload video to Google Drive and Descript](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Google Drive upload steps](https://support.google.com/drive/answer/2424368?hl=en)\n- [Google shared-drive ownership](https://support.google.com/a/users/answer/7212025?hl=en)\n- [Descript import and upload](https://help.descript.com/hc/en-us/articles/10119645307789-Import-and-upload-files-into-Descript)\n- [Descript media minutes and AI credits](https://help.descript.com/hc/en-us/articles/27841674958221-Track-and-understand-your-Media-minutes-and-AI-Credits)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual files, account roles, available usage and speech-review evidence come from the real project.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 5,
     "phase": "Process",
     "before": "create-a-3x3-video-grid",
     "after": "step-2-transcribe-video-using-descript",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "ef365c1e7463b8d643194fd213e4959ae6882cdd0a090dfb5c71456b88bc1983",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "aad264f359b5d2d53b010acae0d3db0e5d2f0ee3ee136479b7b8367485870d9b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ef365c1e7463b8d643194fd213e4959ae6882cdd0a090dfb5c71456b88bc1983",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ef365c1e7463b8d643194fd213e4959ae6882cdd0a090dfb5c71456b88bc1983"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ef365c1e7463b8d643194fd213e4959ae6882cdd0a090dfb5c71456b88bc1983"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 231,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 10: Embed source video",
     "slug": "step-10-embed-source-video",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Put the real source video beside your article. Make it clear, easy to view, and ready for captions.",
     "content": "---\nname: step-10-embed-source-video\ndescription: \"Put the real source video beside your article. Make it clear, easy to view, and ready for captions.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 10: Embed source video\n\nSome readers want to see the person behind the words. This guide adds the real source video to your article. Start with the correct video and the page’s current editor.\n\n**The path:** Verified video → Supported page embed → Caption and layout checks → Source links.\n\n**Use this when:** A video-based article has an embeddable source and needs an actual playable player in the supported page source.\n\n## Inputs\n- The actual source video ID/URL, host/channel, rights and intended visibility.\n- The article’s canonical record and supported editor or builder source, plus existing embed if present.\n- Available captions/language, source context and the content tracker linking the assets.\n- Already-authorized edit/publication scope and the next proofreader.\n\n## First-run prompt\n\n> Embed the exact authorized source video in the page’s supported editor or builder. Preserve its URL and source type. Use the actual caption/default policy, no autoplay, and silent player checks. Verify phone/desktop layout and record which reciprocal links and public states are actually complete.\n\n## Steps\n1. Verify the source video matches the article and its host allows embedding at the intended visitor visibility. Prefer the brand’s own hosted source when available and appropriate, but an original third-party interview can be embedded with permission; do not reupload someone else’s media merely to make the channel ours.\n2. If hosting is needed, hand the actual source and scope to [Upload the video to YouTube](https://local-service-spotlight.github.io/task-library/?task=upload-processed-video-to-youtube#task-upload-processed-video-to-youtube). Keep this embed pending until a suitable host/player is available. Upload visibility and public article publication are distinct decisions.\n3. Inspect the current page source. Use its supported block, builder or existing component; preserve the canonical Page/builder and URL. Do not convert it to Gutenberg solely because a legacy task demanded it.\n4. Place the real player near the introduction or section it supports and add short context naming the speaker and lesson. A watch link, thumbnail or transcript panel alone is not an embedded player.\n5. Apply [YouTube captions by default](https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default) through the existing supported helper/filter or explicit embed. Use the verified ID and page language, privacy-enhanced host where supported, cc_load_policy=1, cc_lang_pref, rel=0 and autoplay=0. rel=0 limits related videos to the same channel; it does not disable all suggestions.\n6. Check that actual captions exist. The default parameter cannot create a missing track. Keep agent previews muted at volume zero; inspect player state, captions and frames without claiming audio playback.\n7. Check actual desktop and phone layout, aspect ratio and initial visible content. Do not assume generic lazy-loading behavior; a lead asset that remains hidden or empty fails. Preserve the source’s portrait/landscape shape.\n8. Connect article and video in the tracker. Add a live article link to an editable authorized video description when available; otherwise note that reciprocal edit as pending. Do not claim control of a third-party description.\n9. Save through the supported route, record actual preview/public state and hand source/player evidence to proofreading. A draft embed check is not proof that the public canonical page has updated.\n\n## Definition of done (QA checklist)\n\n- [ ] The actual source player matches the article and has permitted use/visibility.\n- [ ] Existing supported page/builder source and URL are preserved.\n- [ ] Caption defaults and actual track availability are distinguished; no first-load autoplay is added.\n- [ ] Phone/desktop layout and actual cross-link state are recorded without a false public or audio pass.\n\n## Example(s)\n\n**Fictional teaching example — no real video ID or embed.** The sample repair-quote article has a six-minute source hosted by the shop. The editor records the real ID from that project, places its player after the short opening and captions the context: “The mechanic shows the three details that help us prepare.”\n\nIf the article is still a draft, the tracker says “player verified in draft; public article link pending.” If a permitted interview is on the host’s channel, the editor embeds that original and records that the host controls its description. Neither case justifies a copied upload or a made-up video ID.\n\n## Handoff and Content Factory context\n\nThe proofreader gets the article, source player and real verification limits for [Step 11: proofread the complete draft](https://local-service-spotlight.github.io/task-library/?task=step-11-proofread-with-grammarly-or-chatgpt#task-step-11-proofread-with-grammarly-or-chatgpt).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce per article embed or source-video replacement. Recheck after an actual player/template policy change.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-9-add-internal-links-with-proper-anchor-text`\n- **Browse later task:** `step-11-proofread-with-grammarly-or-chatgpt`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 10: Embed source video](https://local-service-spotlight.github.io/task-library/?task=step-10-embed-source-video#task-step-10-embed-source-video)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Our YouTube caption-default method](https://blitzmetrics.com/youtube-captions-on-by-default/)\n- [YouTube’s documented player parameters](https://developers.google.com/youtube/player_parameters)\n- [YouTube’s current upload controls](https://support.google.com/youtube/answer/57407?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual host rights, caption availability and rendered player need real source access; no example player was created.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-9-add-internal-links-with-proper-anchor-text",
     "after": "step-11-proofread-with-grammarly-or-chatgpt",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "406431b1d3d6ea2831fb374e5b55ab9d6cabc95a3831e2d447f59cc2cb4ee8c7",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f94e5fe66c1628483a0c84507a7a5af075412bed511becbc7bc42a9092bf9184",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-10-embed-source-video#task-step-10-embed-source-video",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-84b2c95111073421c11227b6",
        "taskSlugs": [
         "upload-processed-video-to-youtube",
         "step-10-embed-source-video"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "unknown",
          "value": null
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-06T02:58:28.783349+00:00",
        "outcome": "One Optimize Live delivery includes five web pages, a full talk and eight Shorts. Current anonymous checks found the intended video embeds on all five pages and matching metadata for all nine videos. This is one historical source job supporting two tasks.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "Original project job, delivery thread and output URLs match. Multiple outputs and repeated delivery comments belong to one source job."
         },
         "output": {
          "state": "pass",
          "notes": "Five page responses contain the intended video ID and expected start parameters; nine video metadata responses identify the expected titles and channel. Playback, visibility settings and full editing quality were not tested."
         },
         "acceptance": {
          "state": "unknown",
          "notes": "The delivery received acknowledgment. No independent review against the exact recipe used was recovered; gratitude and a completed checkbox do not establish that acceptance."
         },
         "handoff": {
          "state": "pass",
          "notes": "The completed output list reached the project thread and received acknowledgment. The next reporting request is recorded; its later completion remains unknown."
         }
        },
        "evidenceUrls": [
         "https://dennisyu.com/optimize/",
         "https://localservicespotlight.com/why-isaac-hall-has-an-edge-in-ai-marketing-for-plumbers/",
         "https://jack-allard.com/named-at-optimize-live/",
         "https://isaac-hall.com/named-at-optimize-live/",
         "https://markosipila.com/named-at-optimize-live/",
         "https://www.youtube.com/watch?v=dyJrGllGbn4",
         "https://www.youtube.com/watch?v=Ww6yDpbkyZA",
         "https://www.youtube.com/watch?v=oD0Te0_rips",
         "https://www.youtube.com/watch?v=cNBcEdr_hIY",
         "https://www.youtube.com/watch?v=oY_Kk5A4Zq8",
         "https://www.youtube.com/watch?v=bfNrXi_akr0",
         "https://www.youtube.com/watch?v=7gyOAfD5yTI",
         "https://www.youtube.com/watch?v=h0kSeES2erE",
         "https://www.youtube.com/watch?v=ERdAMUq5a8Q"
        ],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 1,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-84b2c95111073421c11227b6"
      ],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "406431b1d3d6ea2831fb374e5b55ab9d6cabc95a3831e2d447f59cc2cb4ee8c7",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "406431b1d3d6ea2831fb374e5b55ab9d6cabc95a3831e2d447f59cc2cb4ee8c7"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "406431b1d3d6ea2831fb374e5b55ab9d6cabc95a3831e2d447f59cc2cb4ee8c7"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 251,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 11: Proofread with Grammarly or ChatGPT",
     "slug": "step-11-proofread-with-grammarly-or-chatgpt",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Check the whole draft for clear words and true facts. Fix mistakes while keeping the real voice.",
     "content": "---\nname: step-11-proofread-with-grammarly-or-chatgpt\ndescription: \"Check the whole draft for clear words and true facts. Fix mistakes while keeping the real voice.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 11: Proofread with Grammarly or ChatGPT\n\nSmall errors can make a good article hard to trust. This guide helps you fix the words and check the facts before the next step. Start with the full draft and the source it came from.\n\n**The path:** Complete draft → Suggested fixes → Source and voice check → Ready draft or clear gaps.\n\n**Use this when:** The article has its planned text, links, visuals and source player and needs the final Process proofreading pass.\n\n## Inputs\n- The complete versioned draft, [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief, verified transcript and source proof.\n- The actual spelling/identity list for this project, not a generic list of unrelated client names.\n- An approved proofreading tool or manual workflow, with permission to send the draft’s data to that tool.\n- The title/headings/search fields, link and media evidence, and next publisher.\n\n## First-run prompt\n\n> Proofread this full draft against the supplied source and project spelling list. Propose small fixes, review each for meaning and voice, and check facts separately. Keep media and text-to-speech silent. Return the corrected revision, key decisions and any unresolved evidence; do not call the article ready from a grammar score alone.\n\n## Steps\n1. Save the current draft so each change can be reviewed. If using Grammarly or ChatGPT, request suggestions for grammar, clarity and consistency only. Do not upload private content to an unapproved service or ask for fabricated expansion.\n2. Review changes individually. Accept a typo fix or shorter clear sentence; reject a rewrite that changes voice, certainty, chronology, attribution or the actual lesson. Do not bulk-accept every suggestion.\n3. Check every name, number, quote and material factual claim against the source or cited primary research. A fluent rewrite is not a fact check. Preserve unresolved claims as explicit editorial gaps rather than guessing.\n4. Compare several representative passages with the source voice, including the opening and a direct quote. Ensure personal first person belongs to the real author and company/reference voice remains appropriate.\n5. Read the full text in order, including captions, headings and link anchors. Check for repeated words, missing context, abrupt transitions and broken formatting. Use a silent read; do not start text-to-speech through the user’s speakers.\n6. Recheck the specific GCT opening and plain first-use term explanations. Use a readability screen to find long sentences, then judge clarity. Keep the meaningful lead visual and page-role requirements intact.\n7. Verify that title and description still match the final body and headings remain logical. Google does not impose hard 60/160-character rules, and an exact keyword in the first paragraph is not this proofreading pass’s universal acceptance test.\n8. Review the whole-page checklist state. Mark Process ready only for the checked revision and completed applicable work. Keep an unavailable caption/source fact or unresolved rights issue as a specific handoff gap.\n9. Save the corrected draft, change notes and evidence references. Hand it to the publisher with the actual scope: draft placement, update or publication already authorized for that job.\n\n## Definition of done (QA checklist)\n\n- [ ] Each accepted change preserves meaning, attribution and real voice.\n- [ ] Material facts and proper names are source-checked or clearly unresolved.\n- [ ] The full draft, captions/headings and first-use terms have been read.\n- [ ] The exact final revision and applicable ready/pending checks are recorded without invented SEO or audio guarantees.\n\n## Example(s)\n\n**Fictional teaching example — no actual draft was reviewed.** A proofreading tool changes “The photo helps us prepare” to “The photo lets us diagnose the fault.” The editor rejects it because the sample source requires an inspection.\n\nThe editor accepts “bring you bike” → “bring your bike.” They retain the mechanic’s plain phrase “show us what happens” instead of “provide a comprehensive operational demonstration.” The review note lists those decisions and keeps an unclear source term at 02:18 pending. Better grammar does not erase that evidence gap.\n\n## Handoff and Content Factory context\n\nThe assigned publisher receives the exact checked revision for [Step 12: place the article in WordPress](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress). Outstanding checks remain attached to that handoff.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne proofreading pass per completed draft, with targeted rechecks after later substantive edits.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 3 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-10-embed-source-video`\n- **Browse later task:** `grade-article-using-jennifer`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 11: Proofread with Grammarly or ChatGPT](https://local-service-spotlight.github.io/task-library/?task=step-11-proofread-with-grammarly-or-chatgpt#task-step-11-proofread-with-grammarly-or-chatgpt)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Google’s title-link rules](https://developers.google.com/search/docs/appearance/title-link)\n- [Google’s snippet rules](https://developers.google.com/search/docs/appearance/snippet)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real source, tool data scope and final revision need actual checking; this proposal does not certify a published article.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 3,
     "phase": "Process",
     "before": "step-10-embed-source-video",
     "after": "grade-article-using-jennifer",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "b065efde2dfca0bf952ee5b2fe66f0c734db28fa48239bd4208895c2e54d97e6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c3c5f21956caced7216ab4b64c910e5771f81da9a798edcf0fc56b21142257c8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-11-proofread-with-grammarly-or-chatgpt#task-step-11-proofread-with-grammarly-or-chatgpt",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b065efde2dfca0bf952ee5b2fe66f0c734db28fa48239bd4208895c2e54d97e6",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b065efde2dfca0bf952ee5b2fe66f0c734db28fa48239bd4208895c2e54d97e6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b065efde2dfca0bf952ee5b2fe66f0c734db28fa48239bd4208895c2e54d97e6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 235,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 2: Transcribe video using Descript",
     "slug": "step-2-transcribe-video-using-descript",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Turn speech into checked text. Fix names and words so the article says what the speaker meant.",
     "content": "---\nname: step-2-transcribe-video-using-descript\ndescription: \"Turn speech into checked text. Fix names and words so the article says what the speaker meant.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 2: Transcribe video using Descript\n\nA wrong word can change your whole story. This guide helps you turn a video into text you can trust. Start with the full source and a list of the people who speak.\n\n**The path:** Full source → Draft transcript → Word and speaker checks → Verified text or clear gaps.\n\n**Use this when:** The source is imported into the correct Descript project and needs a faithful transcript.\n\n## Inputs\n- The completed source composition from [Step 1](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) and access to the original recording.\n- A Descript role and usage balance that permit transcription for the source language; confirm actual plan support rather than assuming an Enterprise subscription.\n- Verified names, companies, places and specialist terms from project records, plus known speaker identities.\n- A place to save the original transcript, corrections, unclear timestamps and review coverage.\n\n## First-run prompt\n\n> Make or review the transcript for this exact source. Use text-correction mode, preserve the media, and check speaker names, numbers and negatives. Keep source versions and timestamp every uncertainty. Report actual review coverage; never call blue-underlined words a complete error list or claim an audio review you did not perform.\n\n## Steps\n1. Confirm the source is in the script and select the correct language when transcription is requested. Let the job finish. Check whether a transcript already exists before consuming usage again.\n2. Save the initial transcript as a source version. Identify each speaker from actual evidence. If identity is unknown, mark it unresolved in the working transcript; do not assign a famous name by guess.\n3. Use Descript’s Correct text action for transcription mistakes. Ordinary text deletion can cut the underlying video; correction mode fixes the words without making that media edit.\n4. Check names, numbers, negatives and technical terms against the source. Use the verified spelling list for identity, but do not replace a different spoken person merely because a familiar name is in that list.\n5. Review the whole recording and transcript with an authorized speech-review method. Agents keep speaker output muted; if no suitable silent audio analysis or prior reviewer evidence exists, retain the exact unverified intervals for that review. Do not claim a listen-through from a skim or frames.\n6. Do not use blue underlines as an accuracy score: current Descript uses light-blue marks for fillers and also has separate alignment/error indicators. Check unmarked words too. Mark unclear speech with its timestamp instead of inventing a clean sentence.\n7. Keep this transcript faithful to the recording. Put later summary, grammar edits and filler cuts in a separate working version. Do not generate replacement speech to make an uncertain quote sound correct.\n8. Save the checked version with source ID, language, speaker map, review coverage and remaining uncertainties. Only label it verified to the extent supported, then send it to GCT review.\n\n## Definition of done (QA checklist)\n\n- [ ] The transcript covers the full source with correct language and evidence-backed speaker labels.\n- [ ] Names, numbers, negatives and quotations are checked against the recording, with unclear spans flagged.\n- [ ] Text corrections have not silently changed the source media.\n- [ ] Review coverage and remaining gaps are recorded; zero colored underlines is not the acceptance test.\n\n## Example(s)\n\n**Fictional teaching example — no transcript was processed.** The sample audio says, “We do not give a final quote from one photo.” The draft transcript drops “not.” The reviewer restores that word with Correct text and keeps the source video unchanged.\n\nAt 02:18, “gear hanger” is unclear. The working row records `02:18 — term unresolved; ask source reviewer`, rather than silently changing it to a familiar part. A transcript with this gap may support other checked passages, but cannot support a precise quote of that term. Blue filler marks on “um” do not alter this decision.\n\n## Handoff and Content Factory context\n\nThe writer receives checked text and explicit source-review gaps for [Step 3: review the source and set GCT](https://local-service-spotlight.github.io/task-library/?task=step-3-watch-video-and-identify-gct#task-step-3-watch-video-and-identify-gct). Filler editing is optional and uses a separate cut.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce per source transcript. Recheck the affected spans when the recording or transcript changes; do not retranscribe every retry.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `step-1-upload-video-to-google-drive-and-descript`\n- **Browse later task:** `use-descript-underlord-to-remove-filler-words`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 2: Transcribe video using Descript](https://local-service-spotlight.github.io/task-library/?task=step-2-transcribe-video-using-descript#task-step-2-transcribe-video-using-descript)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Descript transcript corrections](https://help.descript.com/hc/en-us/articles/23054692507661-Unable-to-toggle-capitalization-or-punctuation-on-Windows)\n- [Descript text edits and media](https://help.descript.com/hc/en-us/articles/10164808475149-Inline-notes)\n- [Descript filler-word choices](https://help.descript.com/script-editing/filler-words)\n- [Descript media minutes and AI credits](https://help.descript.com/hc/en-us/articles/27841674958221-Track-and-understand-your-Media-minutes-and-AI-Credits)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real speech accuracy and identity need source review; unsupported language/usage or inaudible passages remain explicit.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 5,
     "phase": "Process",
     "before": "step-1-upload-video-to-google-drive-and-descript",
     "after": "use-descript-underlord-to-remove-filler-words",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "af74818858c38035184e607bd684c199a208ee7e4661094a34a9875bbdefd12c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6571350beafd4b8e37394cc64e7c4cd5a6098845615392d12b6e6ffc28558323",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-2-transcribe-video-using-descript#task-step-2-transcribe-video-using-descript",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "af74818858c38035184e607bd684c199a208ee7e4661094a34a9875bbdefd12c",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "af74818858c38035184e607bd684c199a208ee7e4661094a34a9875bbdefd12c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "af74818858c38035184e607bd684c199a208ee7e4661094a34a9875bbdefd12c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 232,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 3: Watch video and identify GCT",
     "slug": "step-3-watch-video-and-identify-gct",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Choose who the article helps and what it should do. Base the plan on the real video.",
     "content": "---\nname: step-3-watch-video-and-identify-gct\ndescription: \"Choose who the article helps and what it should do. Base the plan on the real video.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 3: Watch video and identify GCT\n\nA video can cover more than one point. This guide helps you choose the point your reader needs and the result you want. Start by reviewing the full source and the goal for this job.\n\n**The path:** Whole source → Business goal → Supported content → Specific reader.\n\n**Use this when:** A source recording and checked transcript are ready to guide an article or related assets.\n\n## Inputs\n- The full source, transcript, speaker map and any unverified intervals from Step 2.\n- The project’s actual business goal and desired reader action. A current 90-day plan is useful if it exists; do not invent one or require a separate program by default.\n- The source’s [Topic Wheel](https://blitzmetrics.com/topic-wheel/) entry and existing topic owner, if known.\n- The article working document and tracker, with the person responsible for scope decisions.\n\n## First-run prompt\n\n> Review the supplied source and real project goal. Write three plain lines for Goal, Content and Targeting, with source timestamps and a clear article role. Identify the reader’s question and any unsupported promise. State review gaps instead of claiming a full watch from transcript-only evidence.\n\n## Steps\n1. Review the whole source for the story, tone, demonstrations and limits. Read captions alongside frames and use authorized speech evidence. Record portions not actually reviewed; a transcript skim cannot be marked “watched in full.”\n2. Write the Goal first: the practical result this piece should help the business achieve. Prefer an actual reader action or need, such as helping a customer bring the right information, over an unmeasured promise to rank first.\n3. Write Content second: the specific answer, scene or method the recording actually supplies. Attach useful timestamps. Separate a supported lesson from a proposed topic the speaker never covered.\n4. Write Targeting third: who needs this answer, their situation, and the words they use for the question. If a funnel stage is useful, explain it plainly as learning, engaging or ready to act; do not make labels substitute for a real audience.\n5. Read these three lines together using [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/). If the source does not serve the requested goal, adjust the article scope or flag the need for new source material. Do not force the transcript into a desired claim.\n6. Choose the article role: a repeatable task guide, a broader explanation, a source story, or a record of one run. Only a task recipe needs a complete operational contract; a story should not be mislabeled definitive to fill a checklist.\n7. Note the main reader question and candidate search phrase naturally. Search intent helps wording; it does not establish search volume or business performance without measured data.\n8. Save the three lines, source anchors, role, scope decisions and open questions. Hand the brief to outlining so every section has a clear purpose.\n\n## Definition of done (QA checklist)\n\n- [ ] Goal, Content and Targeting are three specific, connected statements.\n- [ ] The content line is supported by source moments; missing source review is stated.\n- [ ] The goal comes from the project and has no invented performance promise.\n- [ ] Audience, article role and main question are clear enough to guide the outline.\n\n## Example(s)\n\n**Fictional teaching example — no client plan was made.** A six-minute Maple Cycle video shows which bike photos help a repair shop prepare.\n\n- **Goal:** Help new riders send useful details before a shop visit.\n- **Content:** The mechanic shows a full-bike photo, a close-up of the issue, and a short note on when it happens.\n- **Targeting:** Riders who want a repair quote but do not know what to send.\n\n“Get a guaranteed final price from a photo” fails because the sample speaker says the shop may need an inspection. The reader’s question, “What photos help with a bike repair quote?”, fits the actual content. The article can teach that preparation task without claiming more leads or rankings.\n\n## Handoff and Content Factory context\n\nThe outline writer receives the GCT brief, article role and timestamp evidence for [Step 4: research and outline](https://local-service-spotlight.github.io/task-library/?task=step-4-research-edit-add-timestamps-and-outline#task-step-4-research-edit-add-timestamps-and-outline).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce per article brief; revisit when its goal, audience or source changes. This is not an automatic recurring strategy review.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `use-descript-underlord-to-remove-filler-words`\n- **Browse later task:** `step-4-research-edit-add-timestamps-and-outline`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 3: Watch video and identify GCT](https://local-service-spotlight.github.io/task-library/?task=step-3-watch-video-and-identify-gct#task-step-3-watch-video-and-identify-gct)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual project goal, full-source coverage and scope decisions need supplied evidence.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "use-descript-underlord-to-remove-filler-words",
     "after": "step-4-research-edit-add-timestamps-and-outline",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "16e38725a9813b7c6751b56f7a465534825e49f0c33ef22d55cebeb6ff395c0f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4a44d393aa97086cdf4a64cd82ac67c180a21100efe03766c531e3d1c9ef72cd",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-3-watch-video-and-identify-gct#task-step-3-watch-video-and-identify-gct",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "16e38725a9813b7c6751b56f7a465534825e49f0c33ef22d55cebeb6ff395c0f",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "16e38725a9813b7c6751b56f7a465534825e49f0c33ef22d55cebeb6ff395c0f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "16e38725a9813b7c6751b56f7a465534825e49f0c33ef22d55cebeb6ff395c0f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 252,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 4: Research, edit, add timestamps and outline",
     "slug": "step-4-research-edit-add-timestamps-and-outline",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Build a clear plan from your source. Add time marks and checked facts before you write.",
     "content": "---\nname: step-4-research-edit-add-timestamps-and-outline\ndescription: \"Build a clear plan from your source. Add time marks and checked facts before you write.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 4: Research, edit, add timestamps and outline\n\nA clear plan saves you from writing the same point twice. This guide turns your video notes into sections a reader can follow. Start with the source, the reader’s question, and the goal.\n\n**The path:** Checked source → Topic and source map → Time-marked outline → Writing plan.\n\n**Use this when:** The source and GCT brief are ready, and the writer needs a grounded article outline.\n\n## Inputs\n- The verified transcript, original source ID/duration, speaker notes and [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief.\n- The current site inventory and access to read existing owned guides.\n- Current primary sources for changing facts, and a working document separate from the verbatim transcript.\n- The article role, intended canonical page, editor and expected deliverable.\n\n## First-run prompt\n\n> Build an outline from the supplied GCT, full source and owned site inventory. Keep the verbatim transcript intact. Map each section to real source times, separate current primary research from speaker claims, and identify the correct topic home. List specific evidence gaps before writing unsupported sections.\n\n## Steps\n1. Search the owned site and inventory for the same reader need. Identify whether to update an existing canonical page or write a distinct supporting piece. Record its place in the [SEO Tree](https://blitzmetrics.com/seo-tree/) before creating a rival guide.\n2. Review relevant search results to see common questions, but verify technical or factual additions against primary sources. A high ranking answer is not automatically true or a source to copy.\n3. Make an editorial copy of the transcript. Remove repetition and unrelated tangents there while preserving the verbatim source. Keep useful scenes and the speaker’s voice; do not cut a limitation that changes a claim.\n4. Mark each topic shift against the original media clock. Use source ID plus start/end time, not guessed times derived from word counts. If the edited video has a new clock, label it separately and keep a source-to-cut map.\n5. List the proposed H2 sections and any needed H3 subsections in reader order. Attach a source interval to each source-derived point. Reorder for clarity without implying events happened in a different sequence.\n6. Place research notes under the relevant heading with URL, checked date and the precise claim supported. Label them as research rather than attributing them to the speaker.\n7. Check each section against the goal and reader. For a task recipe, include its starting state, inputs/access, method, measured output, acceptance and handoff. For a story, keep its actual scene and lesson rather than manufacturing task steps.\n8. Add planned visual, owned term explanations and useful next links. State any missing proof beside the section it blocks. Save the outline version and give the writer the source map, not only a list of headings.\n\n## Definition of done (QA checklist)\n\n- [ ] The primary topic owner and article role are recorded.\n- [ ] Every source-derived outline section maps to a real source interval.\n- [ ] Research and speaker claims are clearly separate and checked.\n- [ ] The original transcript remains intact; missing evidence and visual needs are specific.\n\n## Example(s)\n\n**Fictional teaching example — times are invented to teach the format.** The sample quote video yields this outline:\n\n| Section | Source clock | Writing note |\n|---|---|---|\n| Show the whole bike | 00:40–01:28 | Explain what the full photo reveals. |\n| Show the issue up close | 01:29–02:20 | Keep the speaker’s warning about blurry photos. |\n| Say when it happens | 03:10–04:05 | Include the difference between a noise at rest and while riding. |\n| Know what still needs a visit | 04:06–05:20 | Preserve the inspection limit. |\n\nA proposed section “Prices for every repair” is dropped because neither the source nor checked research provides that information. If a clip later starts at 00:00 in a new cut, the outline still retains the original source clock above.\n\n## Handoff and Content Factory context\n\nThe assigned writer uses the outline and evidence map for [Step 5: write from the transcript](https://local-service-spotlight.github.io/task-library/?task=step-5-write-article-from-transcript#task-step-5-write-article-from-transcript). Clip editors may reuse original timestamps after checking their chosen source version.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne outline per article version. Update only the affected sections when the source or scope changes.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-3-watch-video-and-identify-gct`\n- **Browse later task:** `extract-15-60-second-clips-from-long-form-video`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 4: Research, edit, add timestamps and outline](https://local-service-spotlight.github.io/task-library/?task=step-4-research-edit-add-timestamps-and-outline#task-step-4-research-edit-add-timestamps-and-outline)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Source timestamps, existing topic ownership and any new factual research need actual verification.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-3-watch-video-and-identify-gct",
     "after": "extract-15-60-second-clips-from-long-form-video",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "cbd2de02a30f1d216833dfeb6d1827790017d1f330b4718cf284707bfc15c160",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4c8f25a2af3ac3fe8ffe1405c22e1c2e3000797ad961a02aa59c20e44da8b347",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-4-research-edit-add-timestamps-and-outline#task-step-4-research-edit-add-timestamps-and-outline",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cbd2de02a30f1d216833dfeb6d1827790017d1f330b4718cf284707bfc15c160",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "cbd2de02a30f1d216833dfeb6d1827790017d1f330b4718cf284707bfc15c160"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "cbd2de02a30f1d216833dfeb6d1827790017d1f330b4718cf284707bfc15c160"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 253,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 5: Write article from transcript",
     "slug": "step-5-write-article-from-transcript",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Turn your source into a useful article. Keep the real voice, facts, and story.",
     "content": "---\nname: step-5-write-article-from-transcript\ndescription: \"Turn your source into a useful article. Keep the real voice, facts, and story.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 5: Write article from transcript\n\nYour article should sound like the person in the video. This guide helps you turn their best points into clear, useful words. Start with the checked source and the plan for the reader.\n\n**The path:** Checked outline → Source-led draft → Proof and voice check → Complete article.\n\n**Use this when:** The GCT brief and timestamped outline are ready for a full source-grounded draft.\n\n## Inputs\n- The verified transcript, full source, timestamped outline and source-review gaps.\n- The [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief, page role, intended site and real author/speaker relationship.\n- Checked research and media rights, exact quotation/identity records, and maintained [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n- A working document, existing canonical page if any, and named editor.\n\n## First-run prompt\n\n> Write the complete article from my checked outline, transcript and research. Preserve the real author’s voice, source limits and page role. Give the reader a clear answer with useful proof and owned term links. Keep every claim traceable and put unresolved evidence in review notes; do not invent stories, quotes, outcomes or keyword rules.\n\n## Steps\n1. Write into the outline one section at a time. Start with the answer or scene supported by the source. Do not ask a model to fill a topic with generic facts when the source does not support them.\n2. Choose the correct voice. On a personal-brand page, write as that person in first person when the project supports that authorship. A company article may use third person. Do not make an interviewer’s experience become the named author’s first-person claim.\n3. Keep useful concrete details and exact numbers with their source anchors. Paraphrase clearly when a sentence is not a verbatim quote. Add researched claims with their actual citation instead of placing them in the speaker’s mouth.\n4. Show the moment, not the resume: lead with a specific scene, useful action or lesson before credentials. Names and awards can supply relevant context; avoid a trophy-name paragraph that substitutes famous names for the story. Make relationship language no stronger than the evidence.\n5. Place compact proof near the point it supports: a real photo, exact quote, source video or primary record with known identity/context. Keep the internal verification process, private proof IDs, scoring and research notes in the working evidence map unless those systems are the actual topic.\n6. Use praise only with an exact named source, relevant role/company or city, and applicable permission. A quote without verified identity, primary source or needed permission remains **HOLD** and stays out of the public draft. Domain or company attribution alone does not establish a named speaker. Narrow an unsupported relationship claim instead of adding defensive boilerplate about it.\n7. Write short paragraphs and explain the first meaningful use of a specialist term with a maintained owned guide. State who, why, the first action and the useful outcome in the opening, using grade-5-or-lower language. This is the maintained opening rule for every document. Use the reader’s phrase naturally without forcing an exact keyword into an awkward first sentence.\n8. Make each section fulfill its heading. A task recipe must describe the start, inputs/access, ordered work, measurable output, checks and next step. A story or reference page keeps its own role; do not invent completed work to make it look like a recipe.\n9. Compare the whole draft with the GCT and source map. Remove unsupported statements, preserve needed legal disclosures, and mark remaining source gaps in review notes. Save the complete draft for titles and headings.\n\n## Opening meaning review\n\nKeep the opening to two or three short sentences at grade 5 or below. It must show the actual reader’s situation, why the subject matters, the useful result, and how this page helps. A source-backed moment or useful finding can lead. Keep its relevant visual in the first screen; check that the body delivers the opening’s promise.\n\nSave the exact opening and artifact revision in the existing run receipt. Have the reviewer quote the words that establish the situation, reason to care, result and method. Record PASS, FAIL or UNKNOWN with reasons and a readability diagnostic. A grade score, keyword, generic audience label or unsupported conversion promise cannot approve meaning. Follow [Step 7: write and review the opening](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and the [maintained opening standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/every-article-and-project-starts-with-specific-gct.md).\n\n## Definition of done (QA checklist)\n\n- [ ] Every factual claim and quote has a source; no invented scene, result or testimonial is present.\n- [ ] Voice and relationship wording match the actual author and evidence.\n- [ ] The opening is clear, sections answer the reader’s need, and the page’s role is preserved.\n- [ ] Proof is useful and close to its claim; private internal evidence notes stay outside public prose.\n\n## Example(s)\n\n**Fictional teaching example — the shop and statement are invented.** In the sample recording, Maple Cycle’s mechanic says, “One photo helps us start, but I may need to see the bike.” A faithful draft is:\n\n“A photo helps us prepare for your visit. Send one view of the whole bike and one close-up of the issue. I may still need to inspect it before I can give you a final quote.”\n\nThe draft rejects “Get an exact price in minutes,” because the sample source says no such thing. On the mechanic’s personal page, “I” can reflect their voice. A company summary can say “The mechanic may need to inspect the bike.” Neither version claims a real customer result.\n\n## Handoff and Content Factory context\n\nThe article editor receives the draft and evidence map for [Step 6: write the title and headings](https://local-service-spotlight.github.io/task-library/?task=step-6-write-title-and-headings#task-step-6-write-title-and-headings).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce per requested article draft, with bounded revisions when a reviewer or source change identifies a real issue.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 3 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `create-quote-cards-from-strongest-statements`\n- **Browse later task:** `run-overnight-local-writer`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 5: Write article from transcript](https://local-service-spotlight.github.io/task-library/?task=step-5-write-article-from-transcript#task-step-5-write-article-from-transcript)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n- [Google’s title-link rules](https://developers.google.com/search/docs/appearance/title-link)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual author voice, quote rights and source claims must be verified for the real article.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 3,
     "phase": "Process",
     "before": "create-quote-cards-from-strongest-statements",
     "after": "run-overnight-local-writer",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "ae889b5f7c9c35360ddfe70e8afec6e09c253bd35a2f92d71d476be3ffc2774a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a5fdf80502cf5bec5c35a7ef6c003487cc80332553c17111ec3fd683394fe4eb",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-5-write-article-from-transcript#task-step-5-write-article-from-transcript",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ae889b5f7c9c35360ddfe70e8afec6e09c253bd35a2f92d71d476be3ffc2774a",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ae889b5f7c9c35360ddfe70e8afec6e09c253bd35a2f92d71d476be3ffc2774a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ae889b5f7c9c35360ddfe70e8afec6e09c253bd35a2f92d71d476be3ffc2774a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 230,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Run overnight local writer",
     "slug": "run-overnight-local-writer",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/overnight-content-worker",
     "articleKind": "task-recipe",
     "desc": "Use a local model to draft from your saved source. Check one small job before you leave a batch running.",
     "content": "---\nname: run-overnight-local-writer\ndescription: \"Use a local model to draft from your saved source. Check one small job before you leave a batch running.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: /overnight-content-worker\nstatus: complete\n---\n\n# Run overnight local writer\n\nA stack of videos can mean a lot of writing. This guide helps you use a local model for first drafts while you keep control of the work. Start with one source and a small checked test.\n\n**The path:** Checked source queue → One isolated test → Local draft batch → Real review and Post handoff.\n\n**Use this when:** A real source backlog is assigned to the installed Overnight Content Worker for draft preparation, with a named owner and bounded batch.\n\n## Inputs\n- The actual Overnight Content Worker checkout, README/INSTALL and script revision, not this Markdown task file alone.\n- The client folder, verified source transcripts, voice, entity map and actual accountable owner. Confirm current client status from the maintained roster before client work.\n- A known local endpoint/model already installed, permitted device resources and a compatible adapter; no model download is part of this task by default.\n- Queue/lock files, one named worker, batch limit, durable output folder and morning review owner.\n\n## First-run prompt\n\n> Inspect the supplied installed worker, queue and local model settings without running a batch yet. Separate fixture dry-run effects from real jobs. Prepare one bounded real test only within existing authority, check its full source-derived draft, and report actual output/error states. Keep publication on the maintained reviewed Post route and do not assume memory, endpoint locality or a working timer.\n\n## Steps\n1. Read the current worker code and setup files. Identify the real client folder, source queue and output paths. Keep credentials outside the model inputs. Verify authority and roster status; do not treat billing or a public directory as the client roster.\n2. Inspect the current queue and process ownership before work. The reviewed status.py can expire/requeue leases, so it is not a purely read-only probe. One machine/worker per client is the operational constraint; file locks on one Mac do not coordinate independent copies on two Macs.\n3. Verify the configured model destination and exact model ID. The reviewed adapter accepts OPENAI_BASE_URL without proving it is local, and it does not send the API key advertised in its docstring. Use an actually compatible local endpoint; do not send client text to an unknown remote URL or guess that a generic qwen alias exists.\n4. Check source/transcript, voice and guidelines completeness before claiming work. The current script truncates long inputs and uses a guidelines excerpt; split or prepare a supported bounded job if needed, rather than claiming every source detail was read.\n5. Use a copied fixture workspace with only labeled sample jobs for the first no-model exercise. In the reviewed version, night.py --dry-run still claims queue jobs, writes stub drafts and pass QA, and marks them drafted. Never use it as a harmless rehearsal on a production queue or send its stubs to the morning publisher.\n6. For a real local test, run one permitted job using the installed script’s documented client and limit arguments. Confirm the actual model responds, the output is not a dry-run stub, and the requested thinking setting took effect. Save observed time and usage only when measured. Do not install another server or retry a timed-out large batch without resolving the observed problem.\n7. Read the entire first draft against source and current standards. The worker’s mechanical checks and model self-score are hints, not editorial certification. Its implementation makes one rewrite attempt and then uses needs_human for continuing failures; record that state rather than inflating done counts.\n8. Only after the small job is accepted, run the agreed bounded batch with one worker and a real stop condition. Track source IDs, drafted/failed/needs_human states, source truncation and any stuck claims. Do not clear another active worker’s lock just to proceed.\n9. Do not publish live from the Mac worker. Hand checked Markdown and evidence to the maintained Post workflow. The reviewed morning.py makes draft POSTs with simple text/player conversion and lacks a prior-post lookup before retry; do not run it blindly on the queue. Fix and review that publishing path first, or use the existing supported WordPress task for the exact checked draft.\n10. Close with actual output counts, unresolved jobs and the next reviewer. A two-minute review and a predicted overnight yield are estimates, not acceptance criteria. An overnight timer is optional and needs configured paths, overlap protection, a first-firing receiver and observed result.\n\n## Definition of done (QA checklist)\n\n- [ ] The real source/setup revision, local destination and client owner are known.\n- [ ] Fixture outputs are isolated from production and never counted as real drafts.\n- [ ] A real small job has source/voice/format review before batch scale-up.\n- [ ] Actual output/error states and Post handoff are recorded; no model, lock or schedule guarantee is assumed.\n\n## Example(s)\n\n**Fictional teaching example — no worker was run.** A fixture queue contains one sample bike transcript. The operator runs the installed `night.py --client SAMPLE_CLIENT --n 1 --dry-run` only in that isolated copy. It creates a document labeled DRY RUN and a queue state called drafted. The operator records “fixture plumbing exercised,” not “article completed.”\n\nFor a later real job, a source-checked draft may be handed to the publisher. A generated file with a pass JSON but a missing source paragraph still fails editorial review. The example client identifier must be replaced by a real fixture or authorized job, never copied into a production command by guess.\n\n## Handoff and Content Factory context\n\nThe named reviewer checks the source and draft, then uses [Proofread the complete draft](https://local-service-spotlight.github.io/task-library/?task=step-11-proofread-with-grammarly-or-chatgpt#task-step-11-proofread-with-grammarly-or-chatgpt) and [the supported WordPress task](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress). The harness owner receives specific code defects; repairing those is not proven by this guide.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne bounded source batch, optionally at night. Scheduled operation requires separate real setup and first-firing proof; a guide or local model never schedules itself.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-5-write-article-from-transcript`\n- **Browse later task:** `step-6-write-title-and-headings`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `local` — Local model for first drafts and bulk writing. Review its output before use; tools and access depend on the setup.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/overnight-content-worker\n- Exact task: [Run overnight local writer](https://local-service-spotlight.github.io/task-library/?task=run-overnight-local-writer#task-run-overnight-local-writer)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Overnight worker and its maintained setup](https://blitzmetrics.com/overnight-content-worker/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The existing worker requires reviewed first-run/queue/publication safeguards before unattended production. No local Qwen retry or real worker test was run for this candidate.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-5-write-article-from-transcript",
     "after": "step-6-write-title-and-headings",
     "lane": "local",
     "lane_label": "Local model for first drafts and bulk writing. Review its output before use; tools and access depend on the setup.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "60577e82b4b95bb9eb7f0ab448333217dfbfe0c1f57ebfe08bd0960146a1cc46",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "63ee619e018fd848dea9f1a99f4519a749dd85eac164c64348b5287a8ce70e5b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-overnight-local-writer#task-run-overnight-local-writer",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "60577e82b4b95bb9eb7f0ab448333217dfbfe0c1f57ebfe08bd0960146a1cc46",
      "articleKey": "blitzmetrics.com/overnight-content-worker",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "60577e82b4b95bb9eb7f0ab448333217dfbfe0c1f57ebfe08bd0960146a1cc46"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "60577e82b4b95bb9eb7f0ab448333217dfbfe0c1f57ebfe08bd0960146a1cc46"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/overnight-content-worker"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-put-the-factory-on-night-shift/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 250,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 6: Write title and headings",
     "slug": "step-6-write-title-and-headings",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Write a clear title and useful section names. Help readers see what your page will teach.",
     "content": "---\nname: step-6-write-title-and-headings\ndescription: \"Write a clear title and useful section names. Help readers see what your page will teach.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 6: Write title and headings\n\nA clear title helps the right reader choose your page. Good section names help them find the answer. Start with what the article really teaches, then name that promise in plain words.\n\n**The path:** Real article promise → Clear title → Useful headings → Checked search preview.\n\n**Use this when:** The article body is drafted and needs its visible title, section headings and search description.\n\n## Inputs\n- The full draft, [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief and reader’s main question.\n- The current site title convention, existing URL/title if updating, and intended author voice.\n- The actual WordPress/template title behavior and search-preview tool when available; a character counter is only an editing aid.\n\n## First-run prompt\n\n> Write a truthful title, search description and heading map from this full article and GCT. Use the reader’s words naturally. Treat 60/160 as optional house drafting targets, not Google limits. Check heading promises and the existing template before adding an H1; keep the current canonical URL.\n\n## Steps\n1. Read the article and write one sentence stating what it delivers. Reject title options that promise results, speed or certainty the source cannot support.\n2. Draft a clear visible title using the reader’s natural words. Keep it concise and distinct from other pages on the site. Do not rename an established URL just because the title improves.\n3. Write a search-title version only when the site uses a separate field. The old under-60 rule can serve as a house drafting target, but Google has no fixed title character limit and may choose different title text. Judge the actual preview and meaning.\n4. Write a concise meta description that explains the useful answer. The old under-160 target is not a Google limit or a guarantee of what appears; Google may use the page’s own text. Avoid unsupported offers or results.\n5. Make each H2 describe the section’s real answer. Use H3 for a true subtopic under that H2. Use natural variants of the question where helpful, without a quota of keywords in headings.\n6. Check the visible page structure: one clear article H1 under the site’s publishing standard, logical H2/H3 nesting, and no fake headings made only by bold text. Existing templates can supply the H1, so avoid duplicating it in the body.\n7. Read the headings alone like a contents list. Check that each promise is fulfilled in its section and the order makes sense. Preserve useful source-specific detail without clickbait.\n8. Save visible title, optional SEO title, description and final heading outline in named fields. Pass them to the hook writer and later search-metadata task with any template preview check still pending.\n\n## Definition of done (QA checklist)\n\n- [ ] Title and description accurately represent the article without unproved promises.\n- [ ] Headings make a clear, logical map of actual section content.\n- [ ] Visible H1 and template behavior are checked or specifically pending.\n- [ ] Preview length is treated as a display/editing concern, not a Google ranking requirement.\n\n## Example(s)\n\n**Fictional teaching example — no page was changed.** For the sample photo checklist, use the title “What photos help with a bike repair quote?” The headings are “Show the whole bike,” “Show the issue up close,” and “Explain when it happens.”\n\nA matching description is: “See which bike photos and notes help a shop prepare for your visit, and why a final quote may still need an inspection.”\n\n“Exact bike repair prices in five minutes” is rejected because the article cannot deliver that promise. If the template already prints the page title as H1, the article body begins its sections at H2.\n\n## Handoff and Content Factory context\n\nThe writer uses these fields for [Step 7: write the opening](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context). The publisher later enters checked search fields in [Configure search metadata](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin) when that plugin is used.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce per article title/heading pass; recheck after a meaningful change to the article’s scope.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `run-overnight-local-writer`\n- **Browse later task:** `step-7-write-hook-and-establish-context`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 6: Write title and headings](https://local-service-spotlight.github.io/task-library/?task=step-6-write-title-and-headings#task-step-6-write-title-and-headings)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Google’s title-link rules](https://developers.google.com/search/docs/appearance/title-link)\n- [Google’s snippet rules](https://developers.google.com/search/docs/appearance/snippet)\n- [WordPress block-editor controls](https://wordpress.org/documentation/article/wordpress-block-editor/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual site template and search preview need real page inspection; search display is not guaranteed.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "run-overnight-local-writer",
     "after": "step-7-write-hook-and-establish-context",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "dc131e10ecf2601638ae16f2a4399bff4f7a1e59a54cfb213e1d6b5d362ae321",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "63d8a255a39dbe4e1039b8a1b75789095e802e7b54b0a30c2d9541e43615b361",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-6-write-title-and-headings#task-step-6-write-title-and-headings",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "dc131e10ecf2601638ae16f2a4399bff4f7a1e59a54cfb213e1d6b5d362ae321",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "dc131e10ecf2601638ae16f2a4399bff4f7a1e59a54cfb213e1d6b5d362ae321"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "dc131e10ecf2601638ae16f2a4399bff4f7a1e59a54cfb213e1d6b5d362ae321"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 254,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 7: Write hook and establish context",
     "slug": "step-7-write-hook-and-establish-context",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Write an opening that says who the page helps and why. Start with a real, useful point.",
     "content": "---\nname: step-7-write-hook-and-establish-context\ndescription: \"Write an opening that says who the page helps and why. Start with a real, useful point.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 7: Write hook and establish context\n\nHelp readers see what your page is about and why it matters. A clear start helps them choose their next step. Start with a true point from your source; this step in our [Content Factory](https://localservicespotlight.com/content-factory/) helps turn real work into useful pages.\n\n**The path:** Real source moment → Reader’s need → Plain promise → Lead visual.\n\n**Use this when:** The full draft and title are ready, but the opening needs a clear source-specific hook and context.\n\n## Inputs\n- The full article, title and actual page role, plus a brief naming the goal, source content and audience: [Goals, Content, and Targeting (GCT)](https://blitzmetrics.com/gct-business-strategy/).\n- The strongest relevant source scene, question or result, with its exact evidence.\n- The intended author voice, source identity and planned meaningful first-screen visual.\n\n## First-run prompt\n\n> Rewrite only the opening from this source, title and brief. In two or three plain sentences, say what this helps the reader do, why it matters, and how it connects to the larger process or the next task. Explain and link that connection. Add a meaningful lead-visual plan. Preserve actual voice and evidence; do not invent a result or force a keyword.\n\n## Steps\n1. Choose the true source moment that best connects to the reader’s problem. A precise question or lesson can lead when there is no dramatic story. Do not manufacture a surprising number to create a hook.\n2. Draft two or three short opening sentences that explain what this helps the reader do, why it matters, and one useful connection to a larger process, a needed earlier task, or the next step. Explain the connection in those same sentences and link its maintained guide when one exists. Make the goal, source content and audience clear without requiring readers to know an abbreviation.\n3. Match the real author voice. Use first person for a supported personal-brand story, or the appropriate company/reference voice. Establish relevant experience through the source scene, not a stack of employers or famous names.\n4. Keep the title’s promise honest. A source showing how to prepare for a quote does not support a hook promising a guaranteed price. Explain necessary limits in plain language where they matter.\n5. Use the reader’s topic words naturally. Do not force an exact keyword string into the first sentence when it makes the opening hard to read. Explain a new specialist term at first use and link the maintained owned explanation.\n6. Place the topic-specific picture, diagram or actual source player where it can be meaningful in the first desktop and phone screen. The visual may lead; a large empty box, tiny text or hidden iframe is not a hook.\n7. Read the opening for jargon, long clauses and generic filler. Screen every document opening at grade 5 or below. State the value, audience, first action and useful result in plain words. A formula helps flag problems but does not replace human clarity review.\n8. Compare the opening with the source, GCT and next section. Remove resume-style claims and defensive verification language. Retain a materially required disclosure close to its claim. Save the opening with the source anchor and visual placement note.\n\n## Opening meaning review\n\nKeep the opening to two or three short sentences at grade 5 or below. It must show what this is, why the actual reader needs it, and one useful connection to a larger process, a prerequisite or the next task. Explain that relationship in the opening and link the maintained guide when one exists. A source-backed moment or useful finding can lead. Keep its relevant visual in the first screen; check that the body delivers the opening’s promise.\n\nSave the exact opening and artifact revision in the existing run receipt. Have the reviewer quote the words that establish the task, reason to care and connection, then check that the linked page supports that connection. Record PASS, FAIL or UNKNOWN with reasons and a readability diagnostic. A grade score, keyword, generic audience label or unsupported conversion promise cannot approve meaning. Follow the [maintained opening standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/every-article-and-project-starts-with-specific-gct.md).\n\n## Definition of done (QA checklist)\n\n- [ ] The same short opening explains what this is, why it matters and a useful linked connection; the body delivers that promise and the existing tracker retains quoted reviewer evidence\n- [ ] Relevant authentic visual is useful in the first screen; background and context do not bury it\n\n- [ ] The first two or three sentences make who, what and useful outcome clear.\n- [ ] The hook is true to the source and uses the correct voice.\n- [ ] Language is plain and first-use terms have useful owned explanations.\n- [ ] A meaningful lead visual is planned and later rendered checks are explicitly assigned.\n\n## Example(s)\n\n**Fictional teaching example — no real article or customer claim.** A sample opening reads:\n\n“A blurry bike photo can leave the shop guessing. This guide shows riders which photos and notes help us prepare for a repair quote. These photos are the first step in getting a quote, so show the whole bike and the issue up close.”\n\nThe connection is the next task: getting a repair quote. In a real article, link the shop's maintained quote guide after checking it; this fictional example does not invent a shop URL.\n\nA simple three-part diagram below it reads “Whole bike → Close-up → Short note.” It supports the promise without pretending the shop can diagnose every fault from a photo. The writer rejects “Our world-class experts transform your cycling journey” because it gives no useful answer or real scene.\n\n- Money Tree correction, 2026-09-06: replace the vague \"A useful conversation becomes a story\" orientation with the actual reader value: \"Your best customer stories should help your next customer decide to buy. A Money Tree connects those stories, interviews and useful articles to the services you sell, so people can see your work and take the next step.\" This is a writing example, not a measured conversion result or text to duplicate across unrelated pages.\n\n## Handoff and Content Factory context\n\nThe visual editor receives the opening and placement plan for [Step 8: add useful visuals](https://local-service-spotlight.github.io/task-library/?task=step-8-add-photos-and-featured-image#task-step-8-add-photos-and-featured-image).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne focused opening pass, repeated when the title, source or intended reader changes.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-6-write-title-and-headings`\n- **Browse later task:** `step-8-add-photos-and-featured-image`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 7: Write hook and establish context](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real lead visual must be inspected in rendered desktop/mobile views; draft placement is not a rendered pass.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-6-write-title-and-headings",
     "after": "step-8-add-photos-and-featured-image",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "d40dbb9a98ad35d00265c91bc038ec4055e86be99f00f4fab57a253eb90ae949",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Make the page clear; help readers choose their next step; explain how real sources become useful pages. Independent meaning review passed.",
         "evidence": "Help readers see what your page is about and why it matters. A clear start helps them choose their next step. Start with a true point from your source; this step in our Content Factory helps turn real work into useful pages. Approximate reading diagnostic: 3.92; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
        },
        "recipe": {
         "state": "pass",
         "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
         "evidence": "Use this when requires a full draft and title. Inputs name source evidence and voice. Steps 1-8 end with a saved opening, source anchor and visual placement note. First-run setup says the file does not install an app, connect an account or create a schedule."
        },
        "links": {
         "state": "pass",
         "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
         "evidence": "2026-09-17 direct HTTP and deployed-index review matched the maintained opening standard, recipe/meta guide, Article Guidelines, exact Step 8 and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, GCT, Meta Article Prompt, Definitive Article Guide and Entity Linking. The earlier 403 observations remain recorded as a fetch-method limitation."
        },
        "evidence": {
         "state": "pass",
         "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
         "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
        },
        "handoff": {
         "state": "pass",
         "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
         "evidence": "The visual editor receives the opening and placement plan for Step 8: add photos and featured image. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "2118243b8b030d5738fe83d3514f2f5e792e9f8d0b4457e59999a3b8ae9fee3b",
       "previousReviewDate": "2026-09-17",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d40dbb9a98ad35d00265c91bc038ec4055e86be99f00f4fab57a253eb90ae949",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d40dbb9a98ad35d00265c91bc038ec4055e86be99f00f4fab57a253eb90ae949"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "d40dbb9a98ad35d00265c91bc038ec4055e86be99f00f4fab57a253eb90ae949",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Make the page clear; help readers choose their next step; explain how real sources become useful pages. Independent meaning review passed.",
           "evidence": "Help readers see what your page is about and why it matters. A clear start helps them choose their next step. Start with a true point from your source; this step in our Content Factory helps turn real work into useful pages. Approximate reading diagnostic: 3.92; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
          },
          "recipe": {
           "state": "pass",
           "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
           "evidence": "Use this when requires a full draft and title. Inputs name source evidence and voice. Steps 1-8 end with a saved opening, source anchor and visual placement note. First-run setup says the file does not install an app, connect an account or create a schedule."
          },
          "links": {
           "state": "pass",
           "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
           "evidence": "2026-09-17 direct HTTP and deployed-index review matched the maintained opening standard, recipe/meta guide, Article Guidelines, exact Step 8 and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, GCT, Meta Article Prompt, Definitive Article Guide and Entity Linking. The earlier 403 observations remain recorded as a fetch-method limitation."
          },
          "evidence": {
           "state": "pass",
           "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
           "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
          },
          "handoff": {
           "state": "pass",
           "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
           "evidence": "The visual editor receives the opening and placement plan for Step 8: add photos and featured image. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 255,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 8: Add photos and featured image",
     "slug": "step-8-add-photos-and-featured-image",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Add real pictures or a clear diagram. Show the reader what the article means.",
     "content": "---\nname: step-8-add-photos-and-featured-image\ndescription: \"Add real pictures or a clear diagram. Show the reader what the article means.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 8: Add photos and featured image\n\nA good picture can make a hard point easy to grasp. This guide helps you choose real proof or a clear diagram for your page. Start with the point you want the reader to see.\n\n**The path:** Point to show → Real source or honest diagram → Clear placement → Phone and desktop check.\n\n**Use this when:** The article needs a meaningful lead visual, useful supporting media and a suitable featured image.\n\n## Inputs\n- The full article and its opening/visual plan, with the source recording and real media library.\n- Rights and identity/context for photos, screenshots or figures; private information that must be removed.\n- The existing featured image and site media rules, plus access to its supported editor/media library.\n- An image editing tool, actual target layout, and a saved original for any resized asset.\n\n## First-run prompt\n\n> Choose and place meaningful source-based visuals for this article. Keep real proof distinct from conceptual diagrams, preserve privacy and image proportions, and write useful alt text. Check the lead at desktop and phone sizes, or record that check as pending. Do not invent photos, results or a guaranteed load time.\n\n## Steps\n1. List the points that need a visual explanation or real proof. Prioritize one meaningful asset in the first desktop and phone screen. Add supporting visuals where they improve understanding rather than decorating every heading.\n2. Choose a relevant real photo, permitted source-video frame, actual screenshot or evidence-backed diagram. Do not present stock or generated people as the subject or as proof of work. Clearly identify a conceptual diagram as such.\n3. Verify who/what is shown and the right to use it. Remove exposed private data from the published copy while keeping the original protected. Do not alter a screenshot to imply a result that was not observed.\n4. Select an article-specific featured image. Check existing usage and relevance; retain a suitable canonical image unless the task calls for a replacement. If a new choice is needed, avoid a generic duplicate hero that makes different articles indistinguishable.\n5. Crop without cutting off the key person, text or evidence. Resize to the actual display needs and compress while checking legibility. File size alone cannot guarantee a three-second page load; measure the rendered page under stated conditions later.\n6. Use a descriptive filename. Give informative images alt text that conveys their purpose. Decorative elements can have empty alt text; do not add keyword-stuffed descriptions or repeat a long caption word for word.\n7. Place each asset beside its explanation. Caption real proof with known identity and context, and link the actual source where useful. Keep diagram labels short and readable; preserve image proportions on phone and desktop.\n8. Save the draft and inspect the actual layout at 1440×860 and 390×844 when available. Confirm the lead’s meaningful content is visible, not merely its border, and nothing overflows. Record any pending rendered check and give the next editor the asset/source map.\n\n## Definition of done (QA checklist)\n\n- [ ] The lead visual explains the topic and has a real source or honest conceptual label.\n- [ ] Rights, identity and private-data handling are checked.\n- [ ] Images remain legible, proportionate and accessible in their actual placement.\n- [ ] Featured-image choice and desktop/mobile evidence are recorded without a load-speed guarantee.\n\n## Example(s)\n\n**Fictional teaching example — no real photos or results.** The sample quote guide uses a conceptual diagram: “Whole bike photo → Close-up of issue → Note on when it happens.” Its caption explains that these inputs help a shop prepare; it does not claim they prove a diagnosis.\n\nIf a real source photo later shows a mechanic holding a bike wheel, an accurate alt text might describe that scene. It would not say “best cheap bike repair quote” unless those words genuinely describe the image’s purpose. A narrow phone crop that hides the damaged part fails even if the file is small.\n\n## Handoff and Content Factory context\n\nThe link editor receives the article, media/source map and any unresolved visual checks for [Step 9: add useful links](https://local-service-spotlight.github.io/task-library/?task=step-9-add-internal-links-with-proper-anchor-text#task-step-9-add-internal-links-with-proper-anchor-text).\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOnce for each article’s visual pass, then after a relevant layout or source-image change. No recurring image replacement is implied.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-7-write-hook-and-establish-context`\n- **Browse later task:** `step-9-add-internal-links-with-proper-anchor-text`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 8: Add photos and featured image](https://local-service-spotlight.github.io/task-library/?task=step-8-add-photos-and-featured-image#task-step-8-add-photos-and-featured-image)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual images, rights and rendered layout must be checked; this teaching example supplies no real media.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-7-write-hook-and-establish-context",
     "after": "step-9-add-internal-links-with-proper-anchor-text",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "e52f7e01bbafb0d93bd51896cd906108fc6ff159d1e76d25b50e27aec592bd82",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4644714b8ad9a9cf7a45a88cb0f5c4da471e8dbcbf0b8b238bd1ac9ef72935e1",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-8-add-photos-and-featured-image#task-step-8-add-photos-and-featured-image",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e52f7e01bbafb0d93bd51896cd906108fc6ff159d1e76d25b50e27aec592bd82",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e52f7e01bbafb0d93bd51896cd906108fc6ff159d1e76d25b50e27aec592bd82"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e52f7e01bbafb0d93bd51896cd906108fc6ff159d1e76d25b50e27aec592bd82"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 256,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 9: Add internal links with proper anchor text",
     "slug": "step-9-add-internal-links-with-proper-anchor-text",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Link readers to the right guides and people. Use clear words that explain where each link goes.",
     "content": "---\nname: step-9-add-internal-links-with-proper-anchor-text\ndescription: \"Link readers to the right guides and people. Use clear words that explain where each link goes.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 9: Add internal links with proper anchor text\n\nA reader should not have to search for each new term. This guide helps you add the right link when it is useful. Start with the main topic, then check each person, brand, and idea you name.\n\n**The path:** Named idea → Right owned guide or identity → Clear anchor → Checked destination.\n\n**Use this when:** The article is drafted and illustrated, and its first-use explanations and topic relationships need links.\n\n## Inputs\n- The full draft and source evidence for each person, brand and concept.\n- The existing topic map and link candidates from Step 4, plus [entity linking](https://blitzmetrics.com/entity-linking/) and the [SEO Tree](https://blitzmetrics.com/seo-tree/) guides.\n- Read access to candidate destinations and authorized edit scope for this article or any inbound source page.\n- The page role, actual primary topic owner and useful next action.\n\n## First-run prompt\n\n> Audit first-use terms and named entities in this article. Use the maintained owned guide for explanations and verified identity homes for people and network brands. Keep precise official proof/action links where needed. Check every new path and fragment, use clear anchors, and record actual upward/inbound relationships without forced link quotas.\n\n## Steps\n1. List the first meaningful use of each unfamiliar term and named entity. Explain specialist words in plain language before or beside their link. A brand name alone does not tell a novice what the tool does.\n2. For a person or managed network business, find the verified identity home. Do not guess a personal domain. For an outside tool or concept being explained, prefer the maintained owned training article; keep official primary proof, sign-in or download links where that specific action or claim needs them.\n3. Read the intended target and confirm it answers the actual need. A page that merely mentions the term is not automatically its main guide. Preserve an existing canonical owner instead of making a new competing explanation.\n4. Link the piece up to its relevant topic or task owner and to a useful next guide/action. A source story supports its main guide. Add a service page only where it is a genuine reader next step, not a universal money-page quota for every reference or policy.\n5. Use short descriptive anchor words in the sentence. The house guide generally favors three to six words, but a correct named person need not be padded to hit a count. Avoid “click here” and repeated links to the same target in one passage.\n6. Check destination scheme, exact path, redirects and any named anchor after #. Confirm a public link does not lead to an unpublished draft or an unrelated homepage. Record access-limited internal links as such when this is internal documentation.\n7. Check the inbound path from the main guide or another relevant existing page. Never link a live page to an unpublished/private article as though it were public. Make an authorized inbound edit to the final canonical public target when in scope; otherwise hand the exact sentence and target to that page’s owner. Do not turn catalog adjacency into a prerequisite.\n8. Save the article and record each meaningful target decision, checked date and pending inbound edit. Later plugin suggestions can help find candidates but cannot replace this judgment pass.\n\n## Definition of done (QA checklist)\n\n- [ ] New terms have a plain explanation and appropriate owned guide at first meaningful use.\n- [ ] Identity destinations and relationship claims are verified; official links retain a clear proof/action purpose.\n- [ ] The page has a relevant topic home and useful contextual links without forced quotas.\n- [ ] Each new URL/fragment is checked, with pending inbound work stated truthfully.\n\n## Example(s)\n\n**Fictional teaching example — no page was linked.** The sample article says, “Use our photo checklist to help the shop prepare.” Its link points to Maple Cycle’s main repair-quote guide, not a generic camera vendor page.\n\nIf the text explains video editing, it first says what Descript does and links the maintained owned article workflow. A separate instruction to check a current import limit may link Descript’s exact official help page. These links have different purposes. A made-up `alexmechanic.com` identity link is rejected because the sample contains no verified personal site.\n\n## Handoff and Content Factory context\n\nThe editor receives checked links and pending inbound work for [Step 10: embed the source video](https://local-service-spotlight.github.io/task-library/?task=step-10-embed-source-video#task-step-10-embed-source-video). If the source has no video, record that fact and proceed to the next applicable check.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne linking pass per article or specific repair; recheck changed targets. No automatic site-wide link rewrite is created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-8-add-photos-and-featured-image`\n- **Browse later task:** `step-10-embed-source-video`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Step 9: Add internal links with proper anchor text](https://local-service-spotlight.github.io/task-library/?task=step-9-add-internal-links-with-proper-anchor-text#task-step-9-add-internal-links-with-proper-anchor-text)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real target content, identity homes and any external page edits require project-specific verification.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "step-8-add-photos-and-featured-image",
     "after": "step-10-embed-source-video",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "f2fd9c81e716a18569f8d32c93bae00830ac2db4df9a8882ef733abbe77f319c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ee68093d6ad3a8621e6923fc5ad2dd6162a862ac5b1c5dfcba79829389164c10",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-9-add-internal-links-with-proper-anchor-text#task-step-9-add-internal-links-with-proper-anchor-text",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f2fd9c81e716a18569f8d32c93bae00830ac2db4df9a8882ef733abbe77f319c",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f2fd9c81e716a18569f8d32c93bae00830ac2db4df9a8882ef733abbe77f319c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f2fd9c81e716a18569f8d32c93bae00830ac2db4df9a8882ef733abbe77f319c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 257,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Use Descript Underlord to remove filler words",
     "slug": "use-descript-underlord-to-remove-filler-words",
     "status": "complete",
     "stage": "Process",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Trim speech that gets in the way. Keep words and pauses that help the speaker sound natural.",
     "content": "---\nname: use-descript-underlord-to-remove-filler-words\ndescription: \"Trim speech that gets in the way. Keep words and pauses that help the speaker sound natural.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Use Descript Underlord to remove filler words\n\nToo many stray words can slow a good story. This guide helps you trim them without changing what the person says. Start with a checked transcript and keep a copy of the source cut.\n\n**The path:** Source cut → Review each filler → Selective edits → Checked natural cut.\n\n**Use this when:** A transcribed recording has distracting filler speech and the requested edit includes a cleaner working cut.\n\n## Inputs\n- The speaker-labeled source transcript, original recording and a separate editable composition.\n- Descript access to the filler tool or Underlord with actual available credits/role; current automatic filler detection supports English.\n- The intended tone, source limits and a place to log removed/retained moments.\n- An authorized way to review speech quality without playing sound through the user’s speakers.\n\n## First-run prompt\n\n> Review fillers in this separate Descript work copy. Preserve meaningful words and the original source. Choose edit modes deliberately, inspect each boundary, and record removals and retains. Keep speakers silent and state any missing audio-quality review. Do not regenerate the speaker’s words or consume new unapproved tools.\n\n## Steps\n1. Keep the original composition and transcript. Create a working copy for filler editing so the factual source is not overwritten.\n2. Read representative passages first. Decide whether fillers actually obstruct the message. A natural pause or emotional phrase can be useful; a cleaner waveform is not the goal.\n3. Open AI Tools → Remove filler words, or ask Underlord for the equivalent bounded pass on the work copy. Review available usage before consuming it. If the tool cannot support the source language or role, use a reviewed manual edit instead of pretending it ran.\n4. Review each detected instance in context. Preserve a real comparison such as “a bike like this.” The detector can flag meaningful words, so do not apply all suggestions blindly.\n5. Choose the intended edit behavior. Delete removes text and audio; replace with gap preserves timing. Ignore also removes the audio despite retaining struck text. Remove from transcript leaves the audio in place. Select the operation that actually matches the goal.\n6. Use Avoid harsh cuts when available, then check affected boundaries. Restore or loosen a cut that clips a syllable or harms meaning. Do not generate replacement speech as an unnoticed repair to a first-hand source.\n7. Review cadence and source accuracy with authorized audio evidence, keeping agent speaker output silent. Frames and captions alone cannot certify natural sound. If that review is unavailable, mark audio-quality review pending and keep the original recoverable.\n8. Save the working cut and export/reference it as requested. Log the actual reviewed, removed and intentionally retained instances, output version and remaining checks. Point downstream editors at the correct cut while retaining the original source clock.\n\n## Definition of done (QA checklist)\n\n- [ ] The original recording/transcript are retained separately.\n- [ ] Every applied removal was reviewed for meaning and the correct edit mode.\n- [ ] Speech/cadence review is evidenced or explicitly pending; automatic harsh-cut avoidance is not proof by itself.\n- [ ] The final cut, original source mapping and intentional retains are recorded.\n\n## Example(s)\n\n**Fictional teaching example — no audio was edited.** A sample sentence is “Um, a bike like this needs a close look.” The editor proposes removing the opening “Um” and keeping “like this,” which carries meaning.\n\nAt another cut, the start of “needs” is clipped. The editor restores the boundary rather than making a synthetic replacement voice. A sample review log says “2 proposed removals; 1 kept; 1 applied; audio review pending.” It does not say “natural sound passed” from reading the text alone.\n\n## Handoff and Content Factory context\n\nThe clip editor receives the checked cut and source map for [Extract short clips](https://local-service-spotlight.github.io/task-library/?task=extract-15-60-second-clips-from-long-form-video#task-extract-15-60-second-clips-from-long-form-video). The article writer can use the faithful transcript; filler removal is not a mandatory prerequisite for all writing.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nA single requested cleanup pass per recording/cut. Recheck changed sections after later edits; do not strip every new source automatically.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 2, gating 3 (runs every factory cycle or weekly)\n- **Browse earlier task:** `step-2-transcribe-video-using-descript`\n- **Browse later task:** `step-3-watch-video-and-identify-gct`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact task: [Use Descript Underlord to remove filler words](https://local-service-spotlight.github.io/task-library/?task=use-descript-underlord-to-remove-filler-words#task-use-descript-underlord-to-remove-filler-words)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Descript filler-word choices](https://help.descript.com/script-editing/filler-words)\n- [Descript media minutes and AI credits](https://help.descript.com/hc/en-us/articles/27841674958221-Track-and-understand-your-Media-minutes-and-AI-Credits)\n- [Descript composition copies](https://help.descript.com/hc/en-us/articles/10612359826061-Duplicating-a-composition)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real tool access, removals and sound-quality review need the actual project.",
     "importance": 5,
     "freq": 5,
     "revenue": 2,
     "gating": 3,
     "phase": "Process",
     "before": "step-2-transcribe-video-using-descript",
     "after": "step-3-watch-video-and-identify-gct",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "bece1379285eafb4c7e66154145e8755425c890fdc55abdd586188a70b310777",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f311d4648581fea5855b1835f04b11d3d974d0c1ffb394e7722b1b6189935d7b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=use-descript-underlord-to-remove-filler-words#task-use-descript-underlord-to-remove-filler-words",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bece1379285eafb4c7e66154145e8755425c890fdc55abdd586188a70b310777",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bece1379285eafb4c7e66154145e8755425c890fdc55abdd586188a70b310777"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bece1379285eafb4c7e66154145e8755425c890fdc55abdd586188a70b310777"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 236,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Write email newsletter from video key insight",
     "slug": "write-email-newsletter-from-video-key-insight",
     "status": "needs-work",
     "stage": "Process",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write one useful email from a real video. Give readers a clear lesson and a next step.",
     "content": "---\nname: write-email-newsletter-from-video-key-insight\ndescription: \"Write one useful email from a real video. Give readers a clear lesson and a next step.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Write email newsletter from video key insight\n\nA short email can share one point your readers can use. This guide helps you turn a video lesson into a clear note. Start with the source, the reader, and the article you want to share.\n\n**The path:** Source insight → Clear email → Checked destination → Draft or verified send.\n\n**Use this when:** A processed video/article has one useful insight for an existing opted-in audience and the job calls for an email draft or send.\n\n## Inputs\n- The [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief, full source and checked article or clearly marked draft.\n- The real sender/brand voice, email platform, intended list/segment and existing send scope.\n- The current template, sender/reply settings, opt-out footer and suppression rules; keep the platform’s existing required controls.\n- The campaign history, canonical destination, test recipient when authorized, and measurement owner.\n\n## First-run prompt\n\n> Draft one useful newsletter from this video and GCT in the real sender’s voice. Check the canonical article, intended audience and existing email controls. Complete tests/sends already authorized, then report exact campaign and delivery states. Keep drafts and scheduled sends distinct; do not invent opens, clicks or revenue.\n\n## Steps\n1. Choose the single lesson the source supports. State the reader’s useful takeaway before asking them to click. Do not invent a dramatic cost or customer result for the subject line.\n2. Draft a few short specific subjects, then choose one that matches the body. Write an opening in the actual sender’s supported voice; company voice need not pretend the sender lived the video speaker’s experience.\n3. Deliver the lesson in three to six short paragraphs or a compact list. Preserve the source’s limits and make the email useful even without a click.\n4. Add one primary editorial call to action, usually the full owned article. Required footer/opt-out links still remain. Verify the final public canonical URL before a live send; a private draft is not a reader destination.\n5. Place the draft into the approved template when in scope. Check names, reply identity, links, images, mobile layout, readable text and existing footer/suppression behavior. Do not change the list or broaden recipients from a previous send by assumption.\n6. Send an authorized test to the named test address and inspect the received copy when that step is in scope. A platform preview is useful but not proof of inbox delivery. Keep test and production campaign IDs distinct.\n7. Carry out the send or schedule if already authorized after checks pass; otherwise return the complete draft. Record the exact list/segment, chosen time zone, campaign ID and saved state. A scheduled item needs a named first-firing receiver and delivery-state check.\n8. Read the platform’s actual post-send results and record sent/accepted, bounced or pending states accurately. A sent-folder copy proves dispatch, not delivery. Later opens and clicks are platform-reported signals, not proof of human reading or revenue.\n9. Log the source, article, campaign and observed metrics/date for the existing [Metrics, Analysis, Action review](https://blitzmetrics.com/maa/). Keep unavailable metrics UNKNOWN and give the next owner the specific follow-up.\n\n## Definition of done (QA checklist)\n\n- [ ] One useful source-backed lesson and honest subject are present.\n- [ ] Sender, intended audience, footer and final public destination are checked.\n- [ ] Draft, preview, test receipt, scheduled and actual send states are distinct.\n- [ ] Metrics and handoff use observed evidence without duplicate-send or business-result claims.\n\n## Example(s)\n\n**Fictional teaching example — no email was sent.** Subject: “Two photos that help before a bike repair visit.”\n\n“A clear photo helps us prepare. Send one view of the whole bike, then one close-up of the issue. Add a short note saying when it happens. We may still need an inspection before a final quote.\n\nSee the full photo checklist: `https://maplecycle.example/repair-quote/`.”\n\nThe `.example` URL is invented teaching text. A real send needs the actual public article and existing footer. If the test email is received but the campaign is only scheduled, the log says exactly that; it does not report a delivered newsletter.\n\n## Handoff and Content Factory context\n\nThe email owner receives the campaign/draft and pending checks. The project’s existing MAA owner later interprets measured results; drafting the email does not create that recurring review.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nOne newsletter per agreed source/topic. Use an existing authorized calendar if present; no automatic recurring send or new audience enrollment is created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** `create-social-media-posts-per-platform`\n- **Browse later task:** `create-dollar-a-day-ad-creatives`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Write email newsletter from video key insight](https://local-service-spotlight.github.io/task-library/?task=write-email-newsletter-from-video-key-insight#task-write-email-newsletter-from-video-key-insight)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated article is unmapped; actual platform, list permission, test delivery and campaign metrics require real project evidence.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": "create-social-media-posts-per-platform",
     "after": "create-dollar-a-day-ad-creatives",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "36bce20166cb1bbd76438920c6e445ab31d9b43250d9128b122d2ebd5601ee5d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "cbc1eb332b7706448ed7c193a3cff385ff7866ac0a7377f1fdd1f8d5b90b5e43",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "36bce20166cb1bbd76438920c6e445ab31d9b43250d9128b122d2ebd5601ee5d",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "36bce20166cb1bbd76438920c6e445ab31d9b43250d9128b122d2ebd5601ee5d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "36bce20166cb1bbd76438920c6e445ab31d9b43250d9128b122d2ebd5601ee5d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 116,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write a meta article documenting a task execution",
     "slug": "write-meta-article-documenting-agent-work",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/meta-article-prompt/",
     "articleKind": "task-recipe",
     "desc": "Write what happened when a task ran. Link the work, the checks, and the next step.",
     "content": "---\nname: write-meta-article-documenting-agent-work\ndescription: \"Write what happened when a task ran. Link the work, the checks, and the next step.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/meta-article-prompt/\nstatus: complete\n---\n\n# Write a meta article documenting a task execution\n\nWrite a short record of what happened when your team did a job. It helps the next person learn from the work and avoid the same mistakes. Link the record to the [main task guide](https://blitzmetrics.com/definitive-article-guide/) so you can improve its steps with proof.\n\n**The path:** Actual task evidence → Clear run story → Same execution record → Checked handoff.\n\n**Use this when:** An actual task attempt needs its written record, including an ongoing, blocked, partial, failed or completed outcome.\n\n## Inputs\n- The exact task slug, stable execution ID, canonical recipe URL and source revision actually followed.\n- Actual start, inputs, steps, decisions, output checks, result and next owner; use UNKNOWN for unmeasured telemetry.\n- The saved artifacts/evidence with public/private limits and the meta article’s intended draft or publication state.\n- The existing Task Library execution ledger/CLI and current previous record revision if updating; internal organization note requirements remain separate.\n\n## First-run prompt\n\n> Write the meta article for this actual task execution from the supplied evidence. Preserve its stable ID and recipe revision, state the real result and unknowns, and make a public-safe draft. Prepare and validate the existing ledger format without inventing telemetry, publication or extra runs. Record a supported next step even when the outcome is blocked.\n\n## Steps\n1. Read the real run evidence and existing record before writing. Separate the intended outcome from what actually happened. Keep one ID across retries, checks and derivative artifacts; a genuinely separate performed child can have its own parent-linked ID.\n2. Write two or three opening sentences at grade 5 or below. Say what work was attempted, why it mattered, and how this record helps improve the main task guide; link that guide in the opening. Preserve the real result, including a remaining blocker. Describe the starting condition, source material and actual recipe revision in the body.\n3. Explain the steps actually performed, important decisions and checks. Use dated evidence and concrete observed results. Mark untested or unavailable fields; never fill time, cost, tokens or completion counts from estimates.\n4. Show a meaningful real artifact or a clearly labeled diagram of the observed workflow/result. Link the canonical task and exact Task Library route, and explain new terms with owned guides. Keep secrets, private paths and private evidence URLs out of a public-safe version.\n5. Record acceptance state from evidence: passed checks, failures, not-checked items, partial work and next owner. The story can be useful even when the task is blocked. Do not turn a written meta into automatic task certification.\n6. Save the actual draft and compute its content hash if using the ledger’s draft form. For a published meta, verify the exact live page and use its URL. Preserve the separate internal agent-note required by the organization.\n7. Prepare the ledger candidate using the existing schema: taskSlugs, recipeRevisions, actual startedAt, status, result, evidence and metaArticle. Running/blocked have no finishedAt; ended completed/partial/failed/cancelled attempts have their actual finish time. recordedAt is the first insertion time, not a rewritten start.\n8. Validate with scripts/record_execution.py CANDIDATE.json --check. For an existing ID, supply --expected-revision with the prior actual revision, then use the maintained review/deploy rail for the authorized insert/update. Private evidence uses actual saved-content hashes, while the public projection omits private paths and draft detail.\n9. Link useful lessons to a proposed recipe/skill correction and its evidence. Improve the source only when the run supports a change; a clean run need not invent a lesson. Hand the real result and pending work to the next owner under the existing communication scope.\n\n## Definition of done (QA checklist)\n\n- [ ] The first two or three sentences explain what, why and the connection to the linked main task guide in plain words. Save the exact opening, readability result and the reviewer's quoted meaning check with the artifact revision.\n- [ ] The written record links the actual task/revision and stable execution ID.\n- [ ] Result, telemetry, evidence and remaining work are truthful and public-safe.\n- [ ] Draft/published and ongoing/ended states match actual evidence; ledger validation passes before registration.\n- [ ] Retries and derivatives do not inflate counts, and any source improvement is supported.\n\n## Example(s)\n\n**Fictional teaching example — do not register it.** A sample run prepares three article drafts. Two pass source review; one has an unclear quote. The work stops for the day with that output incomplete.\n\nIts written result says “Two drafts checked; one quote review remains.” If this were a real ended attempt, `partial` with its actual finish time would fit. If the same run is still waiting on a reviewer, `blocked` without a finish time would fit. The draft hash must come from the real saved document, never an invented hex string.\n\nThe source also references the real `recipe-audit-20260905-080140` parent job. Read its current ledger entry for its state; a stale sentence saying “still in progress” is not current evidence. This teaching example adds no execution.\n\n## Handoff and Content Factory context\n\nThe task owner receives the written meta and validated candidate record. The standards owner receives any supported recipe change; [Update the canonical task guide](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) is used when a real change is needed, not as an automatic endless meta loop.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nWrite for every actual attempt, with same-ID updates as its state changes. Writing the parent’s record is part of that run; it does not create an automatic recurring publication task.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 2, gating 3 (runs every factory cycle or weekly)\n- **Browse earlier task:** `create-dollar-a-day-ad-creatives`\n- **Browse later task:** `process-videos-via-marketscale`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/meta-article-prompt/\n- Exact task: [Write a meta article documenting a task execution](https://local-service-spotlight.github.io/task-library/?task=write-meta-article-documenting-agent-work#task-write-meta-article-documenting-agent-work)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Task Library execution schema and CLI](https://github.com/Local-Service-Spotlight/task-library/blob/main/EXECUTION-LEDGER.md)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual evidence, source revision, draft hash and current ledger revision must come from the real execution.",
     "importance": 5,
     "freq": 5,
     "revenue": 2,
     "gating": 3,
     "phase": "Process",
     "before": "create-dollar-a-day-ad-creatives",
     "after": "process-videos-via-marketscale",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "77f2151770d7d18a083fb2e338a2e12aeb43e9a8c95f7366f91ba67d02308f14",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Write a record of a job; help the next person avoid mistakes; use proof to improve the linked main guide. Independent meaning review passed.",
         "evidence": "Write a short record of what happened when your team did a job. It helps the next person learn from the work and avoid the same mistakes. Link the record to the main task guide so you can improve its steps with proof. Approximate reading diagnostic: 2.9; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
        },
        "recipe": {
         "state": "pass",
         "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
         "evidence": "Use this when covers actual attempts. Inputs and Steps 1-9 require exact task/revision, evidence, real lifecycle state, a saved draft and ledger validation. First-run setup says the file does not install an app, connect an account or create a schedule."
        },
        "links": {
         "state": "pass",
         "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
         "evidence": "2026-09-17 direct HTTP and deployed-index review matched Article Guidelines, the recipe/meta guide, execution ledger, exact update-guide and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, Meta Article Prompt and Definitive Article Guide. The earlier 403 observations remain recorded as a fetch-method limitation."
        },
        "evidence": {
         "state": "pass",
         "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
         "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
        },
        "handoff": {
         "state": "pass",
         "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
         "evidence": "The task owner receives the written meta and validated candidate; the standards owner receives supported recipe changes. No automatic endless meta loop. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "d442d8bcb0a667057a12814afc16d0d23545601eea6433ff1e16405d1f5ef88e",
       "previousReviewDate": "2026-09-17",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=write-meta-article-documenting-agent-work#task-write-meta-article-documenting-agent-work",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "77f2151770d7d18a083fb2e338a2e12aeb43e9a8c95f7366f91ba67d02308f14",
      "articleKey": "blitzmetrics.com/meta-article-prompt",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "77f2151770d7d18a083fb2e338a2e12aeb43e9a8c95f7366f91ba67d02308f14"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "77f2151770d7d18a083fb2e338a2e12aeb43e9a8c95f7366f91ba67d02308f14",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Write a record of a job; help the next person avoid mistakes; use proof to improve the linked main guide. Independent meaning review passed.",
           "evidence": "Write a short record of what happened when your team did a job. It helps the next person learn from the work and avoid the same mistakes. Link the record to the main task guide so you can improve its steps with proof. Approximate reading diagnostic: 2.9; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
          },
          "recipe": {
           "state": "pass",
           "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
           "evidence": "Use this when covers actual attempts. Inputs and Steps 1-9 require exact task/revision, evidence, real lifecycle state, a saved draft and ledger validation. First-run setup says the file does not install an app, connect an account or create a schedule."
          },
          "links": {
           "state": "pass",
           "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
           "evidence": "2026-09-17 direct HTTP and deployed-index review matched Article Guidelines, the recipe/meta guide, execution ledger, exact update-guide and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, Meta Article Prompt and Definitive Article Guide. The earlier 403 observations remain recorded as a fetch-method limitation."
          },
          "evidence": {
           "state": "pass",
           "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
           "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
          },
          "handoff": {
           "state": "pass",
           "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
           "evidence": "The task owner receives the written meta and validated candidate; the standards owner receives supported recipe changes. No automatic endless meta loop. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/meta-article-prompt/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "write-meta-article-documenting-agent-work",
         "canonicalURL": "https://blitzmetrics.com/meta-article-prompt/",
         "sourceSha256": "f058250547fc893f952415afcf33cc5957bcb70419502f74dbeb3a8475f9590a",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-09-24T19:06:43.030473Z",
         "reviewer": "Codex root with independent GPT-6 Luna source/classification review; unchanged recipe checks reused",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Exact unchanged opening names the record, learning from mistakes, and proof-based improvement to the linked main task guide. Root rechecked destination HTTP 200 and body delivery; this is a meaning review, not a reading-score certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "The page remains the mapped canonical task recipe for writing one actual execution record; its visible review status is explicitly incomplete.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "owner": {
           "state": "unmet",
           "reason": "The maintained Asset Tracker task row45 has an empty Owner cell. The corrected guide URL and description were saved/read back; contributor status and byline do not assign upkeep responsibility. Owner choice remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365",
            "sha256:4bcf9e55f0e25f5e53af7150e13623575b54abf4551e5828d1d71146d9027a92"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Prior setup, nine-step skill and handoff text unchanged. Independent literal review reconciled checklist, prompt and example layout: actual-output checks, dated evidence, consistent check states, sourced optional cards and authorized public links. No actual execution is certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "links": {
           "state": "unknown",
           "reason": "The six historical sources, opening recipe and Task Library destination were freshly checked. Complete article link review remains unknown; the source-review URL is verified at release.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Six conflicting classifications resolved from exact current sources: five retained, one related-only link excluded. Count now59; the other54 and all underlying outcome/cost/rights claims remain unaccepted.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Explicit inputs, Process-stage Content Factory context, checked record, Task Library registration, supported recipe correction and authorized publishing handoff remain present.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Changed example explanation, expanded59-item list, caption and separate meta diagram checked on normal public desktop/phone pages. Opening/lead source unchanged. Full-page media/layout remains unreviewed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Corrected count/history and source ownership connection are published; metadata retained. Overall metadata, publication fields and full-page compliance remain unknown.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No exact-revision accepted business run or successful novice-human setup is established by this maintenance repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/meta-example-sources-2026-09-24.md",
            "sha256:e060a645a5aa0d1ab6d942efd30a9ef6bd8ff870ef2027008db48bf21e77d365"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "write-meta-article-documenting-agent-work",
         "canonicalURL": "https://blitzmetrics.com/meta-article-prompt/",
         "sourceSha256": "f058250547fc893f952415afcf33cc5957bcb70419502f74dbeb3a8475f9590a",
         "representation": "wordpress-content-html",
         "observedAt": "2026-09-24T19:06:43.487916Z",
         "observer": "Codex fresh authenticated source read after editorial review",
         "state": "observed",
         "reason": "Independent fresh GET matched exact reviewed raw content. Rendering, setup and result acceptance remain separate evidence.",
         "evidenceRefs": [
          "sha256:e64bfdce820095488a4c3ce36b09ea0737d03754f09c141e6f297a29378e1226"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "59 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/ai-agent-audit-ben-forstie-durafoam/",
         "https://blitzmetrics.com/ai-agent-audit-garrett-mcclure-born-and-bred/",
         "https://blitzmetrics.com/ai-agent-audit-hunter-terpenny-humm-accounting/",
         "https://blitzmetrics.com/ai-agent-audit-naz-electric-flagstaff-electrician/",
         "https://blitzmetrics.com/ai-agent-audit-ryan-white-social-revelation/",
         "https://blitzmetrics.com/ai-agent-audit-terry-shintani-million-follower-doctor/",
         "https://blitzmetrics.com/audit-subscription-matt-bodnar/",
         "https://blitzmetrics.com/building-dennis-yu-speaker-reel-for-event-organizers/",
         "https://blitzmetrics.com/consent-scanner-blank-dashboard-token-links/",
         "https://blitzmetrics.com/content-factory-academy-free-course-migration/",
         "https://blitzmetrics.com/derive-dont-maintain/",
         "https://blitzmetrics.com/file-that-wouldnt-attach-boomerang-gmail-dom-fix/",
         "https://blitzmetrics.com/first-group-website-request-processed/",
         "https://blitzmetrics.com/give-your-ai-team-one-shared-brain/",
         "https://blitzmetrics.com/how-a-claude-agent-audited-blitzmetrics-gsc-cleared-404-monitor/",
         "https://blitzmetrics.com/how-a-claude-agent-collapsed-13-redirect-chains-on-blitzmetrics/",
         "https://blitzmetrics.com/how-a-claude-agent-fixed-blitzmetrics-404s/",
         "https://blitzmetrics.com/how-a-claude-agent-migrated-junks-above-off-godaddy/",
         "https://blitzmetrics.com/how-agents-qa-a-partner-local-audit/",
         "https://blitzmetrics.com/how-claude-agent-built-ensitefulmarketing-com/",
         "https://blitzmetrics.com/how-claude-built-keap-quiz-pass-fail-campaigns/",
         "https://blitzmetrics.com/how-i-built-bing-webmaster-import/",
         "https://blitzmetrics.com/how-we-automated-quick-audit-follow-ups-with-zapier/",
         "https://blitzmetrics.com/how-we-built-avery-young-authority-package/",
         "https://blitzmetrics.com/how-we-built-cam-hazzard-personal-brand-ai/",
         "https://blitzmetrics.com/how-we-built-carol-hasegawa-personal-brand-site/",
         "https://blitzmetrics.com/how-we-built-custom-wordpress-plugin-global-css-no-page-builder/",
         "https://blitzmetrics.com/how-we-built-geo-targeted-location-pages-florida-contractor/",
         "https://blitzmetrics.com/how-we-built-nathanielstevens-com-a-personal-brand-website-in-under-4-hours-using-ai/",
         "https://blitzmetrics.com/how-we-connected-basecamp-to-blitzbase-knowledge-base/",
         "https://blitzmetrics.com/how-we-embedded-google-reviews-faqs-home-services-wordpress/",
         "https://blitzmetrics.com/how-we-finished-the-knowledge-panel-book/",
         "https://blitzmetrics.com/how-we-harmonized-skills-and-routines/",
         "https://blitzmetrics.com/how-we-integrated-jobber-wordpress-home-services/",
         "https://blitzmetrics.com/how-we-launched-athlete-spotlight/",
         "https://blitzmetrics.com/how-we-made-definitive-article-strength-measurable/",
         "https://blitzmetrics.com/how-we-mapped-the-usage-buckets/",
         "https://blitzmetrics.com/how-we-migrated-cheetah-screens-squarespace-to-wordpress/",
         "https://blitzmetrics.com/how-we-propagated-dollar-a-day-across-the-fleet/",
         "https://blitzmetrics.com/how-we-published-the-client-tracker/",
         "https://blitzmetrics.com/how-we-rebuilt-financing-page-themed-enhancify-contractor/",
         "https://blitzmetrics.com/how-we-redesigned-cody-jones-funeral-home-exit-website/",
         "https://blitzmetrics.com/how-we-restructured-dennisyu-com-to-practice-what-we-preach/",
         "https://blitzmetrics.com/how-we-rewrote-the-agency-audit-page/",
         "https://blitzmetrics.com/how-we-set-up-rankmath-pro-local-service-business-wp-engine/",
         "https://blitzmetrics.com/how-we-stood-up-a-special-project-for-superseed/",
         "https://blitzmetrics.com/how-we-stopped-handing-agents-a-paste/",
         "https://blitzmetrics.com/how-we-turned-239-tasks-into-an-ai-runnable-skill-library/",
         "https://blitzmetrics.com/jim-klauck-radio-pitchman-brand-audit/",
         "https://blitzmetrics.com/josh-collier-brand-ecosystem-build/",
         "https://blitzmetrics.com/julian-david-entity-home-build/",
         "https://blitzmetrics.com/kimi-k3-vs-claude-content-factory-math/",
         "https://blitzmetrics.com/open-ai-knowledge-base-team-contributions/",
         "https://blitzmetrics.com/personal-brand-fleet-money-pages/",
         "https://blitzmetrics.com/spp-to-keap-migration/",
         "https://blitzmetrics.com/system-front-door/",
         "https://blitzmetrics.com/the-five-minute-brief-dennis-yu-dictated-before-the-ai-agent-did-anything/",
         "https://blitzmetrics.com/the-local-quick-audit-is-not-a-swapped-headline/",
         "https://blitzmetrics.com/video-schema-root-cause/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 237,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Create or update a definitive task article",
     "slug": "create-or-update-a-definitive-article",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/definitive-article-guide/",
     "articleKind": "task-recipe",
     "desc": "Build one clear guide for a real task. Show how to do it, check it, and pass the result on.",
     "content": "---\nname: create-or-update-a-definitive-article\ndescription: \"Build one clear guide for a real task. Show how to do it, check it, and pass the result on.\"\ncategory: Content Factory — Process\nstage: Process\ndefinitive_article: https://blitzmetrics.com/definitive-article-guide/\nstatus: needs-work\n---\n\n# Create or update a definitive task article\n\nUse this guide to give your team one clear set of steps for a job. That saves time and helps people check their work. It is part of our [Content Factory](https://localservicespotlight.com/content-factory/): turn what you know into a guide others can use.\n\n**The path:** Current owner and source → Usable recipe → Independent checks → Published or staged guide.\n\n**Use this when:** A task guide is missing/incomplete, or evidence from a real run shows the existing method needs a change.\n\n## Inputs\n- The task, existing canonical owner URL/source revision and declared page role.\n- Actual source material, examples and permissions, plus a brief naming the goal, source content and audience: [Goals, Content, and Targeting (GCT)](https://blitzmetrics.com/gct-business-strategy/).\n- Maintained [Article Guidelines](https://localservicespotlight.com/article-guidelines/), the Task Library and actual prerequisite outputs/access.\n- The supported CMS/builder or repository source, edit/publication scope, independent reviewer and next owner.\n\n## First-run prompt\n\n> Create or repair the full canonical task guide from this source and real run evidence. Verify its owner/role, correct stale steps, write grade-5 setup context, and provide a useful labeled example. Preserve status, URL and supported source. Complete authorized publication with exact source/public QA, and document the actual run without inventing certification.\n\n## Steps\n1. Search the live site, canonical directory and Task Library. Improve the current owner when it exists. Keep a topic hub, story, reference and task recipe distinct; do not create a new definitive page simply because an old article lacks a wrapper.\n2. Read the full current procedure and available execution proof. Identify what is missing or false. Verify changing technical claims against current primary product docs while linking owned training for explanations.\n3. Write a specific opening in two or three plain sentences at grade 5. Say what the page helps the reader do and why it matters. In those same sentences, explain one useful connection to the larger process, a needed earlier task, or the next step, and link its maintained guide when available. Explain first-use terms and include a topic-specific meaningful lead visual.\n4. Write the full task contract: trigger/start, inputs/access, true prerequisite outputs, ordered decisions, measurable deliverable, acceptance checks and the actual next task/owner. Fix bad old steps rather than preserving them inside a new template.\n5. Include a useful worked example. Prefer relevant verified run evidence; when none exists, label a concrete teaching example as fictional and keep the real-run evidence gap explicit. Neither a fictional result nor a contributor label certifies execution.\n6. Connect the page to its actual SEO Tree parent, useful proof stories and next guides. Verify every new target and named anchor. Keep a needed primary proof/download/sign-in link where its purpose is clear, without routing every tool explanation to the provider.\n7. Preserve the canonical URL, existing Page/builder and original proof media. Change source type, redirects or identity only where the job authorizes it. Stage exact before/after files and protect newer concurrent changes.\n8. Place the lower Content Factory map after the main task explanation, showing true inputs/handoff and stage. Keep the topic lead visual distinct. Check the applicable article standards and have an independent reviewer inspect meaning and source fidelity.\n9. Publish/update through the supported route when already authorized and checks pass, or finish the reviewable draft when staging is the scope. Read back the saved source and normal public canonical URL separately. Check meaningful lead visibility/no overflow at 1280×800 and 390×844, including first paint without JavaScript, with silent media and evidence tied to the final revision.\n10. Write this actual execution’s meta, register its real state through the existing ledger rail, and give the next owner the artifact, acceptance evidence and gaps. Certification requires actual semantic review and evidence; authoring or registration alone does not promote the source status.\n\n## Opening meaning review\n\nKeep the opening to two or three short sentences at grade 5 or below. It must show what this is, why the actual reader needs it, and one useful connection to a larger process, a prerequisite or the next task. Explain that relationship in the opening and link the maintained guide when one exists. A source-backed moment or useful finding can lead. Keep its relevant visual in the first screen; check that the body delivers the opening’s promise.\n\nSave the exact opening and artifact revision in the existing run receipt. Have the reviewer quote the words that establish the task, reason to care and connection, then check that the linked page supports that connection. Record PASS, FAIL or UNKNOWN with reasons and a readability diagnostic. A grade score, keyword, generic audience label or unsupported conversion promise cannot approve meaning. Follow [Step 7: write and review the opening](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and the [maintained opening standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/every-article-and-project-starts-with-specific-gct.md).\n\n## Definition of done (QA checklist)\n\n- [ ] One canonical owner and correct page role are preserved.\n- [ ] The full useful recipe, grade-5 opening and worked example are source-grounded; real-run gaps remain explicit. The first two or three sentences explain what, why and a useful linked connection.\n- [ ] Owned links, lead visual, lower context and supported publishing source are checked.\n- [ ] Independent review and actual save/public evidence match the final revision, with truthful execution/meta state.\n\n## Example(s)\n\n**Fictional teaching example — no new guide was published.** Maple Cycle has a short photo-request note that says only “send us pictures.” The revised task guide specifies a whole-bike view, a close-up and a note on when the issue occurs, then explains how the shop checks that package and arranges an inspection when needed.\n\nThe example is labeled teaching material because no customer run has been supplied. Its status stays WIP even after a reviewer finds the draft clear. Separately, the real source record points to `recipe-audit-20260905-080140`; use that ledger entry for its actual evidence and state rather than treating this draft revision as a new completed run.\n\n## Handoff and Content Factory context\n\nThe publishing or task owner receives the checked guide and evidence. [Article checklist review](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist) and [Final rendered QA](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) can be components of this parent run; their links do not create separate completions.\n\nProduce supplies the real source. **Process**, this stage of the [Content Factory](https://localservicespotlight.com/content-factory/), turns it into useful finished assets. Post saves or publishes them on the agreed channels. Promote tests and distributes suitable work within its own scope. The handoff above names this task’s actual next step; catalog neighbors alone are not prerequisites.\n\n## When this runs\n\nWhen a guide is missing, a scoped audit finds defects, or an actual run supports a correction. No automatic per-run source edit is required if the recipe already worked.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/definitive-article-guide/\n- Exact task: [Create or update a definitive task article](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n- [Task Library execution schema and CLI](https://github.com/Local-Service-Spotlight/task-library/blob/main/EXECUTION-LEDGER.md)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real examples, independent semantic acceptance, access and live revision evidence remain required where absent.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "a3ce33a7cdfcec5ae5eab37cf8a7649efda92fc240e90c286fe2b8c18dc59ce3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Give the team steps; save time and check work; connect the guide to turning knowledge into useful content. Independent meaning review passed.",
         "evidence": "Use this guide to give your team one clear set of steps for a job. That saves time and helps people check their work. It is part of our Content Factory: turn what you know into a guide others can use. Approximate reading diagnostic: 3.27; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
        },
        "recipe": {
         "state": "pass",
         "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
         "evidence": "Use this when; Inputs; Steps 1-10; Definition of done. Source ownership, supported publication and first-run access are explicit. First-run setup says the file does not install an app, connect an account or create a schedule."
        },
        "links": {
         "state": "pass",
         "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
         "evidence": "2026-09-17 direct HTTP and deployed-index review matched Article Guidelines, the maintained opening standard, recipe/meta guide, execution ledger, exact Step 7, checklist, final-QA and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, GCT, Meta Article Prompt, Entity Linking, SEO Tree and Definitive Article Guide. The earlier 403 observations remain recorded as a fetch-method limitation."
        },
        "evidence": {
         "state": "pass",
         "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
         "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
        },
        "handoff": {
         "state": "pass",
         "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
         "evidence": "The publishing/task owner receives the checked guide and evidence; checklist and final formatting tasks are named components. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "790c9779a5e71b48fe2a982f52781e96f5085038dea232055793588a656c2b77",
       "previousReviewDate": "2026-09-17",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New task record; WIP until full source and runtime review. Related QA/meta steps do not imply independent execution counts.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article",
     "executionHistory": {
      "status": "partial",
      "recordedRuns": 8,
      "completedRuns": 0,
      "failedRuns": 0,
      "partialRuns": 8,
      "completedLast30Days": 0,
      "lastCompletedAt": null,
      "executionIds": [
       "article-review-20260918-063904",
       "lss-meta-consistency-20260922-125016",
       "meta-guide-repair-20260922-035343",
       "meta-guide-setup-20260923-000301",
       "meta-rubric-repair-20260924-000536",
       "meta-source-review-20260924-185131",
       "recipe-audit-20260905-080140",
       "task-standards-20260915-215131"
      ],
      "executionOutcomes": [
       {
        "executionId": "recipe-audit-20260905-080140",
        "status": "partial",
        "startedAt": "2026-09-05T08:01:40Z",
        "finishedAt": "2026-09-10T17:01:27Z"
       },
       {
        "executionId": "task-standards-20260915-215131",
        "status": "partial",
        "startedAt": "2026-09-14T21:51:31Z",
        "finishedAt": "2026-09-15T02:23:47.632018+00:00"
       },
       {
        "executionId": "article-review-20260918-063904",
        "status": "partial",
        "startedAt": "2026-09-18T06:39:04Z",
        "finishedAt": "2026-09-18T07:31:56.660109Z"
       },
       {
        "executionId": "meta-guide-repair-20260922-035343",
        "status": "partial",
        "startedAt": "2026-09-22T03:53:43Z",
        "finishedAt": "2026-09-22T04:40:02.094620+00:00"
       },
       {
        "executionId": "lss-meta-consistency-20260922-125016",
        "status": "partial",
        "startedAt": "2026-09-22T12:50:16Z",
        "finishedAt": "2026-09-22T13:16:53.277175+00:00"
       },
       {
        "executionId": "meta-guide-setup-20260923-000301",
        "status": "partial",
        "startedAt": "2026-09-23T00:03:01.747166+00:00",
        "finishedAt": "2026-09-23T00:16:15.700977+00:00"
       },
       {
        "executionId": "meta-rubric-repair-20260924-000536",
        "status": "partial",
        "startedAt": "2026-09-24T00:05:36.720543+00:00",
        "finishedAt": "2026-09-24T00:15:50.949038+00:00"
       },
       {
        "executionId": "meta-source-review-20260924-185131",
        "status": "partial",
        "startedAt": "2026-09-24T18:51:31.024392+00:00",
        "finishedAt": "2026-09-24T19:08:21.736959+00:00"
       }
      ],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a3ce33a7cdfcec5ae5eab37cf8a7649efda92fc240e90c286fe2b8c18dc59ce3",
      "articleKey": "blitzmetrics.com/definitive-article-guide",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a3ce33a7cdfcec5ae5eab37cf8a7649efda92fc240e90c286fe2b8c18dc59ce3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact current instruction file, with five explicit requirement checks. All five instruction checks pass. Link checks combine current public HTTP/index reads with ordinary anonymous-browser bodies; earlier HTTP 403 challenges are preserved as checking-method limits. Article semantics, rendered output, setup and real execution acceptance are not certified. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "a3ce33a7cdfcec5ae5eab37cf8a7649efda92fc240e90c286fe2b8c18dc59ce3",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Give the team steps; save time and check work; connect the guide to turning knowledge into useful content. Independent meaning review passed.",
           "evidence": "Use this guide to give your team one clear set of steps for a job. That saves time and helps people check their work. It is part of our Content Factory: turn what you know into a guide others can use. Approximate reading diagnostic: 3.27; Flesch-Kincaid with Pyphen syllable approximation, not grade certification. Three sentences."
          },
          "recipe": {
           "state": "pass",
           "reason": "The instructions state a repeatable contract with inputs, checks and a setup boundary. This is a document review, not proof of a successful run.",
           "evidence": "Use this when; Inputs; Steps 1-10; Definition of done. Source ownership, supported publication and first-run access are explicit. First-run setup says the file does not install an app, connect an account or create a schedule."
          },
          "links": {
           "state": "pass",
           "reason": "Combined current-page checks cover every maintained concept and task target named by this exact revision. Initial HTTP 403 responses were automated-checker limits, not bad-link evidence.",
           "evidence": "2026-09-17 direct HTTP and deployed-index review matched Article Guidelines, the maintained opening standard, recipe/meta guide, execution ledger, exact Step 7, checklist, final-QA and self task routes. Same-day ordinary anonymous browser DOM review confirmed the final URL, heading and visible body support the stated purpose for Content Factory, GCT, Meta Article Prompt, Entity Linking, SEO Tree and Definitive Article Guide. The earlier 403 observations remain recorded as a fetch-method limitation."
          },
          "evidence": {
           "state": "pass",
           "reason": "Examples are labeled as teaching material and actual-run proof is required. Fictional examples do not count as completed tasks.",
           "evidence": "Example(s) explicitly says fictional. Write up the real run requires exact recipe revision, observed results, honest partial/failed states and one stable execution ID. Real-example and setup gaps remain separate."
          },
          "handoff": {
           "state": "pass",
           "reason": "The checked artifact, receiving function and actual Process-stage context are explicit.",
           "evidence": "The publishing/task owner receives the checked guide and evidence; checklist and final formatting tasks are named components. Handoff and Content Factory context distinguishes Produce, Process, Post and Promote."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/definitive-article-guide/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "create-or-update-a-definitive-article",
         "canonicalURL": "https://blitzmetrics.com/definitive-article-guide/",
         "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-09-20T03:35:44.954292Z",
         "reviewer": "Codex; independent opening and SVG editorial review retained",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "The first three sentences explain turning a business job into clear team steps, why a checked result helps, and how the linked Content Factory turns real work into guides and posts. Exact words, destination content and body promise were checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "roleScope": {
           "state": "unknown",
           "reason": "This scoped opening review did not complete an independent review of the whole article role and scope.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "The maintained ownership evidence was not fully reviewed in this opening release.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "steps": {
           "state": "unknown",
           "reason": "The opening promise is supported by the recipe fields and creation steps, but complete step-by-step execution was not tested.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "links": {
           "state": "unknown",
           "reason": "The opening Content Factory destination was checked; the complete body link set was not reverified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Real examples and their source claims were not independently re-audited in this scoped release.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "handoffContext": {
           "state": "unknown",
           "reason": "The existing context and handoff text were preserved, but all linked prerequisite and receiving-task contracts were not reverified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "First-screen diagram and complete opening passed phone and desktop with scripts on and off; all lower-page visual and layout requirements were not reverified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "This opening release did not re-audit every CTA, short URL, metadata and E-E-A-T requirement.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No independent real-user setup or accepted business-result evidence was established by this opening repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/definitive-opening-2026-09-20.md",
            "sha256:477248981497caf622a1ccb79fb84f82b5c62c85e2a241e8694fe44322969372"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "create-or-update-a-definitive-article",
         "canonicalURL": "https://blitzmetrics.com/definitive-article-guide/",
         "sourceSha256": "5f4a981dd5d5b3ed52ea6eca4179a1ea872da25b6f728e782c4b5a652ab7a6a8",
         "representation": "wordpress-content-html",
         "observedAt": "2026-09-20T03:35:45.596606Z",
         "observer": "Codex WordPress source readback with separate anonymous public QA",
         "state": "observed",
         "reason": "Fresh WordPress content matched the reviewed source. Separate ordinary public full-text/media and four first-screen checks passed after cache expiry.",
         "evidenceRefs": [
          "sha256:6341f95c45eb081e2ce0afc4e4a8adf96051d28e2389c9a271953c56121929c5",
          "sha256:14fabe631b4d1bb3596a8e4640ad6d82d28c7a7b634ad9e098e6b31f3e628039"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "pass",
        "reason": "8 distinct execution ID(s) name this task; outcomes remain separate.",
        "executionIds": [
         "article-review-20260918-063904",
         "lss-meta-consistency-20260922-125016",
         "meta-guide-repair-20260922-035343",
         "meta-guide-setup-20260923-000301",
         "meta-rubric-repair-20260924-000536",
         "meta-source-review-20260924-185131",
         "recipe-audit-20260905-080140",
         "task-standards-20260915-215131"
        ],
        "historyStatus": "partial"
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 117,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Maintain a canonical honor and story leaves",
     "slug": "maintain-canonical-honor-and-story-leaves",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/one-canonical-honor/",
     "articleKind": "task-recipe",
     "desc": "Keep one useful page about a real working bond. Link each true story to that page.",
     "content": "---\nname: maintain-canonical-honor-and-story-leaves\ndescription: \"Keep one useful page about a real working bond. Link each true story to that page.\"\ncategory: Content Factory — Process\nstage: Post\ndefinitive_article: https://blitzmetrics.com/one-canonical-honor/\nstatus: needs-work\n---\n\n# Maintain a canonical honor and story leaves\n\nYou may have a few stories about someone you work with. This guide helps you give them one clear home. Start with the real source and the pages you have.\n\n**The path:** Real shared work → One helpful hub → Distinct story leaves → Checked links both ways.\n\n**Use this when:** New material about a real relationship should improve an existing or justified main honor page and its specific story pages.\n\n## Inputs\n- Verified relationship evidence, intended [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) and public/private limits.\n- Original recordings/transcripts/photos, media permissions and known identity home.\n- An inventory of the existing honor hub, people-directory card and story leaves, with current source revisions.\n- Approved site/channel edit scope, source owners and actual next recipient.\n\n## First-run prompt\n\n> Use the real relationship evidence and existing page inventory to improve one canonical honor hub and its distinct stories. Name actual themes, preserve rich URLs, add useful links both ways and verify media/identity. Keep private relationship data out of public copy. Complete only the already-authorized site/distribution actions and record true public or pending states.\n\n## Steps\n1. List the existing pages about the relationship and what each does. A people-directory card is not the full honor, and a short person-slug stub does not earn the main role by its URL alone.\n2. Choose one helpful canonical relationship page on the relevant site. If it is thin, improve it from real shared work and sources before making claims about its authority. Do not create a competing biography to handle every new recording.\n3. Name the real themes or limbs under that hub. Place each distinct tape/story under an appropriate theme. If no theme fits, record the content-placement decision rather than forcing an unrelated story onto the site.\n4. Process each useful tape into its own source-faithful story with quotes checked against the transcript. Keep the real scene and lesson; the derivative story is not a second main relationship essay.\n5. On each leaf, put the verified source player or meaningful visual early, with the named theme and link to the main hub visible in the first screen. Use the maintained caption/no-autoplay policy and no guessed or known-dead video IDs.\n6. Update the hub with a useful summary and inbound link to each leaf under the correct theme. Link the person’s verified entity home. Keep relationship terms proportional to evidence and do not publish private contact data or invented introduction paths.\n7. Preserve rich story URLs. Only a true duplicate honor might justify a scoped redirect; do not send a rich story into a thin stub or assume every similar slug should redirect. Verify any authorized redirect’s final target.\n8. Save each change through its supported source and check normal canonical desktop/phone views. Reconcile the actual inventory: one hub, named themes, leaf-to-hub and hub-to-leaf links, source IDs and any pending external-site edit.\n9. Use only the distribution destinations in the existing plan. Another person’s site or audience is not ours to edit from a relationship claim. If an intake monitor is requested, use a real watermark, duplicate check, quiet no-change path and named first-firing owner; do not install one for every honor page.\n10. Write the run’s meta with the actual changed pages, proof and remaining work. Hand the useful public pages or staged changes to the next owner, with promotion reserved for the separate evidence-based scope.\n\n## Definition of done (QA checklist)\n\n- [ ] There is one useful relationship hub and distinct preserved stories, not competing masters.\n- [ ] Each leaf names its theme and links the hub early; the hub links the real leaf and entity home.\n- [ ] Evidence, media IDs, privacy and relationship wording are verified.\n- [ ] The actual save/public state and inventory reconcile; no unasked redirects, outreach or scheduler are inferred.\n\n## Example(s)\n\n**Fictional teaching example — no real relationship or site edit.** A sample business owner has one page about working with a local mechanic and two stories: a shop visit and a photo-checklist lesson. The main page describes the actual shared work. The visit story remains about that visit; it links up under “Shop visits.” The checklist story links up under “Customer education.”\n\nThe hub links both leaves and the mechanic’s verified business home. It does not call the mechanic a partner or friend unless the real evidence supports that wording. No rich story is redirected into the hub merely to reduce the URL count.\n\n## Handoff and Content Factory context\n\nThis record is cataloged in Process but its preserved reviewed stage is **Post**: the outcome places and links the honor pages. The site owner receives the inventory and checked URLs. [Notify the featured person](https://local-service-spotlight.github.io/task-library/?task=email-and-dm-client-about-published-article#task-email-and-dm-client-about-published-article) follows only after publication and within the existing message scope.\n\nProduce supplies the real shared-work source. Process develops the story. **Post is this record’s reviewed stage**, even though the legacy catalog category is Process: it places the leaf and updates the hub. Promote follows only within the separate approved plan. Keep the actual source and handoff links above rather than treating catalog neighbors as dependencies.\n\n## When this runs\n\nFor new relevant source material or a scoped repair to the honor tree. Optional phone/source intake needs its own real configured cadence; no universal daily scan is created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 2 (runs every factory cycle or weekly)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/one-canonical-honor/\n- Exact task: [Maintain a canonical honor and story leaves](https://local-service-spotlight.github.io/task-library/?task=maintain-canonical-honor-and-story-leaves#task-maintain-canonical-honor-and-story-leaves)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n- [Our YouTube caption-default method](https://blitzmetrics.com/youtube-captions-on-by-default/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real relationship/rights, exact hub/theme placement, current page edits and any external recipient authority need project evidence.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly",
     "instructionReview": {
      "source_sha256": "4e272b870e854d8e547111e21f12c3c0d3c419dc6aa96991df661702b9550cae",
      "reviewed_at": "2026-09-06",
      "reviewer": "Codex editorial review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate."
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=maintain-canonical-honor-and-story-leaves#task-maintain-canonical-honor-and-story-leaves",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4e272b870e854d8e547111e21f12c3c0d3c419dc6aa96991df661702b9550cae",
      "articleKey": "blitzmetrics.com/one-canonical-honor",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-09-06. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate.",
        "reviewedAt": "2026-09-06",
        "reviewer": "Codex editorial review",
        "sourceSha256": "4e272b870e854d8e547111e21f12c3c0d3c419dc6aa96991df661702b9550cae"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4e272b870e854d8e547111e21f12c3c0d3c419dc6aa96991df661702b9550cae"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/one-canonical-honor/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 118,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "content-factory-post",
   "name": "Content Factory — Post",
   "icon": "📤",
   "color": "#3b82f6",
   "description": "Publishing and distributing finished assets across platforms with proper linking",
   "tasks": [
    {
     "title": "Email and DM client about published article",
     "slug": "email-and-dm-client-about-published-article",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Tell the client their article is live. Send the right links and one clear next step.",
     "content": "---\nname: email-and-dm-client-about-published-article\ndescription: \"Tell the client their article is live. Send the right links and one clear next step.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Email and DM client about published article\n\nYour client should not have to hunt for their new article. This guide helps you send the live link and one useful next step. First, check the page and the client’s real contact details.\n\n**The path:** Live page → Right person → Email and short note → Saved follow-through.\n\n**Use this when:** The article is publicly visible and the job includes telling the client it is live. A DM is a direct message in the chat channel you both use.\n\n## Inputs\n- The checked public article, title, source context, and any social posts that are actually live.\n- The exact client email/thread and normal direct-message channel from the project record. Check identity rather than guessing from search order.\n- Existing authority to send on those channels, the approved sending account, and the requested ask. Carry forward permission already given for the job.\n- The tracker, current notification history, next owner, and any agreed follow-up cadence.\n\n## First-run prompt\n\n> Use the checked article and exact client thread I provide. Draft a short email and a message with one useful ask. Carry out sends already authorized for this job, then verify each sent copy and log it. Check existing messages before follow-up. Do not claim a send, share, reply, or ad launch without evidence.\n\n## Steps\n1. Open the canonical article as a visitor. Confirm the correct title, source, and visible content. A saved WordPress response alone does not prove it is live. Check each social link before including it.\n2. Read the exact client thread and tracker. Confirm the recipient and current channel. Check whether another worker already sent this notification; do not create a duplicate.\n3. Write an email with a clear subject such as “Your article is live: [title].” Include the article link, two short lines on the useful point, and one specific ask. State only distribution or promotion that actually happened.\n4. Prepare a short note for the client’s normal direct-message channel. Link the article or the relevant social post and use a personal, factual sentence. Do not claim a screenshot was taken or praise received unless that is true.\n5. Send the email and message when these sends are already in scope. If the job covers only a draft or one channel, finish that authorized work and label the task result draft or partial rather than sent. Do not request duplicate approval for an authorized send.\n6. Read back the sent copy in each exact thread. Log date, channel, recipient, sent-message reference, links, and the ask. A composed draft or a send-button click without confirmation is not a sent receipt. A sent-folder copy proves dispatch, not delivery: record a bounce, failed DM, or rejected destination as failed or pending with its next owner.\n7. Follow the project’s existing cadence. The source proposes one follow-up after 48 hours with no reply; use it only when that follow-up is part of the agreed job. Check for a real reply and another worker’s recent message before following up.\n8. If a reply arrives, record it accurately. A positive private reply can inform a later [Thank You Machine](https://blitzmetrics.com/thank-you-machine/) task; it is not automatically public testimonial permission. Handoff or close the remaining follow-up with its true state.\n\n## Definition of done (QA checklist)\n\n- [ ] The canonical article and included social links are actually live.\n- [ ] Each in-scope message is confirmed sent to the intended person and recorded once; draft-only, partial, bounced and failed-delivery states are not called a completed notification.\n- [ ] The message gives accurate context and one clear ask, with no invented promotion or response.\n- [ ] Follow-up has a real owner/state; no reply is recorded as no reply, not failure of the send.\n- [ ] Any quoted response retains its privacy and use limits.\n\n## Example(s)\n\n**Fictional teaching example — no message was sent.** Maple Cycle’s sample article explains how to ask for a repair quote.\n\n**Subject:** Your article is live: How to ask for a bike repair quote\n\n“Hi Alex, your guide is live at `https://maplecycle.example/repair-quote/`. It explains which details help the shop prepare for a visit. Would you share it with the next customer who asks how quotes work?”\n\nThe sample DM is: “Your quote guide is ready to share: `https://maplecycle.example/repair-quote/`. The photo checklist is the part I think riders will use most.”\n\nIf only the email has a sent receipt, record “email sent; DM still pending.” A client who has not replied has not supplied a testimonial. The `.example` address is an invented teaching URL and must be replaced with the real checked page.\n\n## Handoff and Content Factory context\n\nThe project owner receives the send references and any pending follow-up. [Share a lesson in the designated group](https://local-service-spotlight.github.io/task-library/?task=share-in-44k-facebook-group#task-share-in-44k-facebook-group) follows only when that group distribution is in the plan; it is not required to prove the client notification was sent.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nOne notification per published article, with source-recommended same-day timing when feasible. Preserve the project’s actual cadence. A 48-hour follow-up needs an existing authorized timer or a named manual owner; this file cannot wake itself.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `share-in-44k-facebook-group`\n- **Browse later task:** `identify-signals-worth-amplifying`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Email and DM client about published article](https://local-service-spotlight.github.io/task-library/?task=email-and-dm-client-about-published-article#task-email-and-dm-client-about-published-article)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The real client thread, send authority, delivery receipts, and any follow-up state require the actual project.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "share-in-44k-facebook-group",
     "after": "identify-signals-worth-amplifying",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "13d5edd39632e5ad255b0b4ea48e7c4846835769a86e8b99e4cfb217ca4f3101",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "32fa4c6a36dd3ad6f7695e36ac811acd3bab30319bbc5aa2145381459d5d5322",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=email-and-dm-client-about-published-article#task-email-and-dm-client-about-published-article",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "13d5edd39632e5ad255b0b4ea48e7c4846835769a86e8b99e4cfb217ca4f3101",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "13d5edd39632e5ad255b0b4ea48e7c4846835769a86e8b99e4cfb217ca4f3101"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "13d5edd39632e5ad255b0b4ea48e7c4846835769a86e8b99e4cfb217ca4f3101"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 238,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Place content on SEO Tree with proper links",
     "slug": "place-content-on-seo-tree-with-proper-links",
     "status": "complete",
     "stage": "Post",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Give each page a clear home on your site. Add useful links to its main guide and related pages.",
     "content": "---\nname: place-content-on-seo-tree-with-proper-links\ndescription: \"Give each page a clear home on your site. Add useful links to its main guide and related pages.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Place content on SEO Tree with proper links\n\nA useful page can still be hard to find. This guide helps you connect it to the main topic and the next thing a reader needs. Start with the [SEO Tree topic map](https://blitzmetrics.com/seo-tree/) to find the page that already owns that topic.\n\n**The path:** Page’s purpose → Main topic owner → Useful links both ways → Checked map.\n\n**Use this when:** A new or existing piece needs a clear place in the site’s topic map.\n\n## Inputs\n- The draft or existing canonical URL and its purpose: task guide, topic hub, story, or record of one run.\n- The current [SEO Tree](https://blitzmetrics.com/seo-tree/) map and content inventory, with the agreed main page for each topic.\n- The [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief: the result wanted, the content used, and who it serves.\n- Access and scope for the page and any related pages to be changed. Record an inbound-link handoff if another site owner must add it.\n\n## First-run prompt\n\n> Use my page, current site map, and authorized edit scope to find its real topic owner. Propose useful links in both directions, read the targets, and check named anchors. Make the already-authorized changes and verify them. Record any inbound edit another owner must make; do not invent a hub or claim a pending link is live.\n\n## Steps\n1. Read the piece and classify its role. A specific story or answer usually supports a broader guide; a guide may own a repeatable task. Do not mark a story definitive just because it has links.\n2. Search the site inventory for an existing page that already answers the same main need. Enhance the canonical page when appropriate. Record why a distinct supporting page is needed rather than silently making a rival hub.\n3. Choose the actual parent topic and any useful next guide. Read the target pages. Resolve each target to its final canonical URL; do not build new body links to a redirecting alias. A category or plugin suggestion is a clue, not proof of the right relationship.\n4. Add a body link from the specific piece to its main topic or task guide where the reader needs the explanation. Use descriptive words that match the destination. Add related links only when they help a real next question.\n5. Follow the [entity-linking guide](https://blitzmetrics.com/entity-linking/): use verified identity pages for people and managed brands, owned explainers for methods and tools, and precise primary sources when they substantiate a claim or needed action. Do not invent a person’s domain.\n6. Add a relevant link from the parent or a suitable existing supporting page to the new piece within the authorized edit scope. Do not publish an inbound link from a live page to a private or unpublished target; stage that edit until target visibility is checked. If the edit is outside scope, give the responsible owner the exact sentence, target, and reason; keep inbound placement pending.\n7. Save through the site’s supported source. Check each final destination and any fragment after #. Confirm the live body links when publication is in scope; draft links remain draft-only checks.\n8. Update the inventory with this page’s role, primary parent, actual inbound source, links, and checked date. If no parent fits, state whether the content or map needs a decision rather than inventing a branch.\n\n## Definition of done (QA checklist)\n\n- [ ] The role and primary topic owner are stated and source-grounded.\n- [ ] A useful upward body link reaches the final canonical URL for the correct main explanation.\n- [ ] At least one real relevant inbound path is saved and verified, or its exact pending owner/action is stated; no live source exposes a private target.\n- [ ] New links and named anchors reach the intended content; no unsupported duplicate hub or redirect alias was made.\n- [ ] The inventory records the actual placement and verification state.\n\nIf a required inbound edit is pending, report a partial placement with its owner and next action. Do not call that result fully connected.\n\n## Example(s)\n\n**Fictional teaching example — no site was edited.** Maple Cycle has a main “Repair quotes” guide and a smaller story, “What happened when a photo missed the bent part.”\n\nThe story links up with “how our repair quotes work.” The guide links down with “a quote changed after inspection” beside the section explaining why photos are only a starting point. A booking page is linked where the reader is ready to arrange a visit.\n\nThe sample map is `Repair quotes guide ↔ inspection story → booking step`. It does not link every page to every other page. If the guide’s editor has not yet saved the inbound link, the story’s inventory row says “upward link checked; inbound edit pending,” not “fully connected.”\n\n### Checked historical example — limited navigation acceptance\n\nThe [Western Trading Post collector directory](https://westerntradingpost.com/collector-guides/) connects readers to five maker guides and related shopping and selling pages. In October 2026, the recipient accepted the dropdown menus, clickable directory and native BigCommerce text/link editing. This is one delivery, not six separate runs.\n\nThe recorded check found no upward directory links in the five guide bodies. The original recipe revision and full link inventory were not recovered. This example proves the named navigation features and recipient-confirmed editability; it does not prove every present checklist item, current recipe use, new-user success or search/revenue gains.\n\n## Handoff and Content Factory context\n\nThe publisher receives the page placement and link evidence, then runs [Check the full article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist). A different page owner gets only the specific pending inbound edit when needed.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for each new page or a defined repair to an existing page. Repeat when the role, parent, or linked targets change. No automated site-wide link job is created.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 3 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `step-14b-run-linkwhisper-for-internal-links`\n- **Browse later task:** `step-17-final-formatting-and-qa-checks`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/seo-tree/\n- Exact Task Library record: [Place content on SEO Tree with proper links](https://local-service-spotlight.github.io/task-library/?task=place-content-on-seo-tree-with-proper-links#task-place-content-on-seo-tree-with-proper-links)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. The Maple Cycle teaching example is fictional. The checked historical collector example supports only its named navigation and recipient-confirmed editing scope. Current-recipe execution and new-user use still need their own evidence.\n- The live site map and authorized inbound source edits must be verified for the real page.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 3,
     "phase": "Post",
     "before": "step-14b-run-linkwhisper-for-internal-links",
     "after": "step-17-final-formatting-and-qa-checks",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
      "reviewed_at": "2026-10-15",
      "reviewer": "Codex independent review, configured gpt-6.1-sol high",
      "scope": "All five written instruction requirements independently pass for the exact revised placement guide, including linked opening, partial inbound-placement rule, limited historical example, corrected fictional/historical footer, current public task routes and real Post handoff. Historical acceptance does not certify current recipe execution or novice setup.",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "The three plain sentences state the findability problem, useful link placement and first action; the third links the maintained SEO Tree concept map. Heuristic FK grade 4.20 is a diagnostic, not evidence of novice success. This task places an already prepared page; the rendered page visual remains a separate output check.",
         "evidence": "A useful page can still be hard to find. This guide helps you connect it to the main topic and the next thing a reader needs. Start with the [SEO Tree topic map](https://blitzmetrics.com/seo-tree/) to find the page that already owns that topic."
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, page/map/GCT inputs, actual edit authority, role/parent decision, ordered changes, final-destination checks and inventory output are repeatable. A pending required inbound edit is explicitly partial. No installation or schedule is inferred.",
         "evidence": "Inputs; First-run prompt; Steps 1-8; Definition of done; If a required inbound edit is pending, report a partial placement with its owner and next action. Do not call that result fully connected."
        },
        "links": {
         "state": "pass",
         "reason": "Current HTTP200 public dataset and renderer were independently read. All nine exact task query/fragment URLs match their actual deployed task records; renderer selects the exact slug and opens its row. Maintained guide bodies support the named GCT, entity, process, article-checklist and meta-record relationships. Content Factory stage-3-post exists and explains this Post handoff. Historical directory source supports the limited example.",
         "evidence": "https://local-service-spotlight.github.io/task-library/data.json sha256:418d98f30396270042e68bf2d5ac59aa41b4d129c83e651163950570929ec0df; https://local-service-spotlight.github.io/task-library/app.js sha256:dd8325396f960faf053df105b298b4dff987990add588182f2a4fe132f0ec073; https://localservicespotlight.com/content-factory/#stage-3-post; https://westerntradingpost.com/collector-guides/"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional Maple Cycle remains labeled. One checked historical Collector Guides delivery is added with precise accepted navigation/editability and missing-return-link/original-revision limits. The guide requires real-run records and does not count teaching/review derivatives as new executions.",
         "evidence": "Checked historical example — limited navigation acceptance; Write up the real run. The recorded check found no upward directory links in the five guide bodies. The original recipe revision and full link inventory were not recovered."
        },
        "handoff": {
         "state": "pass",
         "reason": "The publisher/checklist receives the placement and link evidence; a different page owner receives an exact pending inbound edit. The guide correctly serves Post after Process preparation; neighboring list order does not invent prerequisites.",
         "evidence": "The publisher receives the page placement and link evidence, then runs Check the full article checklist. A different page owner gets only the specific pending inbound edit when needed."
        }
       }
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=place-content-on-seo-tree-with-proper-links#task-place-content-on-seo-tree-with-proper-links",
     "executionHistory": {
      "status": "partial",
      "recordedRuns": 1,
      "completedRuns": 1,
      "failedRuns": 0,
      "partialRuns": 0,
      "completedLast30Days": 1,
      "lastCompletedAt": "2026-10-14T18:01:10.697074+00:00",
      "executionIds": [
       "site-guide-seo-placement-20261015"
      ],
      "executionOutcomes": [
       {
        "executionId": "site-guide-seo-placement-20261015",
        "status": "completed",
        "startedAt": "2026-10-14T17:58:12.712239+00:00",
        "finishedAt": "2026-10-14T18:01:10.697074+00:00"
       }
      ],
      "acceptanceReviews": [
       {
        "version": 1,
        "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
        "taskSlug": "place-content-on-seo-tree-with-proper-links",
        "canonicalURL": "https://blitzmetrics.com/seo-tree",
        "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
        "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
        "reviewer": "Codex independent site/link result-review function",
        "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
          "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "meaning": {
          "state": "pass",
          "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
          "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "sourcePreservation": {
          "state": "pass",
          "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
          "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "linkHealth": {
          "state": "pass",
          "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
          "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
          "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "site-guide-seo-placement-20261015"
       }
      ],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-a0e5c5670e6d4ce3ef327036",
        "taskSlugs": [
         "place-content-on-seo-tree-with-proper-links"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "unknown",
          "value": null
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-06T16:04:38.180428+00:00",
        "outcome": "One published guide directory connects readers to five topic guides and relevant shopping and selling pages. The client confirmed navigation and native content editability. This is partial historical proof of content placement; the current recipe and new-user setup remain unverified.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "One linked guide collection and its directory are one source job. Repeated acknowledgments and individual pages are not separate deliveries."
         },
         "output": {
          "state": "pass",
          "notes": "All six pages returned HTTP 200. The directory body links to five guides; each guide links to shopping and selling pages. The five guide bodies lack an upward directory link. This checks published link placement only, not all facts, all destinations or the current recipe."
         },
         "acceptance": {
          "state": "pass",
          "notes": "The client confirmed the live dropdown menus, clickable directory and editable text/links for this exact delivery. Acceptance is limited to those features, not every current recipe criterion. Editability is client-confirmed, not independently exercised by this checker."
         },
         "handoff": {
          "state": "pass",
          "notes": "The delivery reached the existing project conversation. The client acknowledged it and the delivery owner described the next guide batch and preview process. Completion of that future batch is not claimed."
         }
        },
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 1,
      "recordedAcceptedReviewCount": 1,
      "acceptedRecordedOutputs": [
       {
        "version": 1,
        "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
        "taskSlug": "place-content-on-seo-tree-with-proper-links",
        "canonicalURL": "https://blitzmetrics.com/seo-tree",
        "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
        "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
        "reviewer": "Codex independent site/link result-review function",
        "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
          "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "meaning": {
          "state": "pass",
          "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
          "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "sourcePreservation": {
          "state": "pass",
          "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
          "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "linkHealth": {
          "state": "pass",
          "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
          "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
          "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
          "sourceUrl": "https://blitzmetrics.com/seo-tree",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/personal-brand/",
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "site-guide-seo-placement-20261015",
        "finishedAt": "2026-10-14T18:01:10.697074+00:00",
        "result": "Placed the site-delivery guide under its Personal Branding topic home. One new parent body link and two existing child return links reach checked public pages; exact saved source and phone/desktop checks pass. Handed the placement record to independent checklist review. This is one owned SEO placement, not site delivery or beginner use."
       }
      ],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 1,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 1,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-a0e5c5670e6d4ce3ef327036"
      ],
      "historicalAcceptedEvidenceIds": [
       "historical-a0e5c5670e6d4ce3ef327036"
      ]
     },
     "standardVerification": {
      "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-15. Review scope and limits: All five written instruction requirements independently pass for the exact revised placement guide, including linked opening, partial inbound-placement rule, limited historical example, corrected fictional/historical footer, current public task routes and real Post handoff. Historical acceptance does not certify current recipe execution or novice setup.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent review, configured gpt-6.1-sol high",
        "sourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent review, configured gpt-6.1-sol high",
        "reviewScope": "All five written instruction requirements independently pass for the exact revised placement guide, including linked opening, partial inbound-placement rule, limited historical example, corrected fictional/historical footer, current public task routes and real Post handoff. Historical acceptance does not certify current recipe execution or novice setup.",
        "sourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "The three plain sentences state the findability problem, useful link placement and first action; the third links the maintained SEO Tree concept map. Heuristic FK grade 4.20 is a diagnostic, not evidence of novice success. This task places an already prepared page; the rendered page visual remains a separate output check.",
           "evidence": "A useful page can still be hard to find. This guide helps you connect it to the main topic and the next thing a reader needs. Start with the [SEO Tree topic map](https://blitzmetrics.com/seo-tree/) to find the page that already owns that topic."
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, page/map/GCT inputs, actual edit authority, role/parent decision, ordered changes, final-destination checks and inventory output are repeatable. A pending required inbound edit is explicitly partial. No installation or schedule is inferred.",
           "evidence": "Inputs; First-run prompt; Steps 1-8; Definition of done; If a required inbound edit is pending, report a partial placement with its owner and next action. Do not call that result fully connected."
          },
          "links": {
           "state": "pass",
           "reason": "Current HTTP200 public dataset and renderer were independently read. All nine exact task query/fragment URLs match their actual deployed task records; renderer selects the exact slug and opens its row. Maintained guide bodies support the named GCT, entity, process, article-checklist and meta-record relationships. Content Factory stage-3-post exists and explains this Post handoff. Historical directory source supports the limited example.",
           "evidence": "https://local-service-spotlight.github.io/task-library/data.json sha256:418d98f30396270042e68bf2d5ac59aa41b4d129c83e651163950570929ec0df; https://local-service-spotlight.github.io/task-library/app.js sha256:dd8325396f960faf053df105b298b4dff987990add588182f2a4fe132f0ec073; https://localservicespotlight.com/content-factory/#stage-3-post; https://westerntradingpost.com/collector-guides/"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional Maple Cycle remains labeled. One checked historical Collector Guides delivery is added with precise accepted navigation/editability and missing-return-link/original-revision limits. The guide requires real-run records and does not count teaching/review derivatives as new executions.",
           "evidence": "Checked historical example — limited navigation acceptance; Write up the real run. The recorded check found no upward directory links in the five guide bodies. The original recipe revision and full link inventory were not recovered."
          },
          "handoff": {
           "state": "pass",
           "reason": "The publisher/checklist receives the placement and link evidence; a different page owner receives an exact pending inbound edit. The guide correctly serves Post after Process preparation; neighboring list order does not invent prerequisites.",
           "evidence": "The publisher receives the page placement and link evidence, then runs Check the full article checklist. A different page owner gets only the specific pending inbound edit when needed."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "place-content-on-seo-tree-with-proper-links",
         "canonicalURL": "https://blitzmetrics.com/seo-tree",
         "sourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-14T18:05:06.675695Z",
         "reviewer": "Codex independent semantic review, configured gpt-6.1-sol high",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "“Help people find the right page on your site, then take the next step. The SEO Tree maps your stories, guides and business pages. Use it to place stories from the Content Factory, our steps to make and share content.” This names navigation value, topic-map mechanism and a real process connection. The maintained Content Factory body explicitly teaches connected repurposed assets.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://localservicespotlight.com/content-factory/"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "The page remains a topic hub/framework. It teaches page relationships and links separate operational tasks; no page-wide Definitive SOP or current recipe execution claim is made.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://blitzmetrics.com/seo-tree/"
           ]
          },
          "owner": {
           "state": "pass",
           "reason": "Local Service Spotlight is the maintained owner under the checked master naming rule; the candidate names that owner and retains the established canonical SEO Tree address. No new owner or migration is invented.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://blitzmetrics.com/seo-tree/"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "The framework covers parent/detail/peer relationships, distinct page versus enhancement, real proof, relevant links and the mapped operational guides. Placement’s trigger, inputs, authorized edits, checked link log and checklist handoff are scoped to its maintained task instead of forcing a recipe label on this hub.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://local-service-spotlight.github.io/task-library/?task=place-content-on-seo-tree-with-proper-links#task-place-content-on-seo-tree-with-proper-links"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Independently read current public task records and renderer: all nine exact task query/fragment links match the deployed intended guides. Canonical LSS Content Factory and actual Post fragment teach the stated handoff; GCT/entity/writing/meta guides support their named uses. Direct output, identity and primary Google links retain their actual purposes; obsolete copied SOPs and process aliases were removed.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "sha256:418d98f30396270042e68bf2d5ac59aa41b4d129c83e651163950570929ec0df",
            "sha256:dd8325396f960faf053df105b298b4dff987990add588182f2a4fe132f0ec073",
            "https://blitzmetrics.com/entity-linking/",
            "https://localservicespotlight.com/content-factory/#stage-3-post"
           ]
          },
          "sourceEvidence": {
           "state": "pass",
           "reason": "The recorded teaching, real screenshots and direct historical examples are retained. Unsupported numeric/ranking/algorithm/motive claims were removed or made an explicit historical illustration. Collector evidence supports only named navigation and recipient-confirmed editing; missing return links and original recipe identity remain explicit.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://westerntradingpost.com/collector-guides/",
            "sha256:8804f67b72951e24ac6ef45950432eb37516c497962348917b348b8d667447e0",
            "sha256:af63b0301f36ad5da2cad593c2019a38547c9b7666b4e99c19d8b9bbc4ddf758"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Prepared page and current topic map feed placement in Post. Saved page/link log/pending inbound owner feed the real full-article checklist. Related hub tasks stay optional job choices, and in-progress sibling tasks retain their status.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "https://localservicespotlight.com/content-factory/#stage-3-post"
           ]
          },
          "visualAndLayout": {
           "state": "pass",
           "reason": "Reviewed the dated real-browser QA record at actual CSS1280x800 and390x844: root inspected the readable article-specific three-level first-screen diagram, plain opening, hierarchy SVG and lower Post handoff. The phone opening continues below the visible diagram. No empty hero or horizontal overflow was observed; existing media stayed silent. The recorded observation supplies this visual verdict.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "sha256:1302ecb94d1349da011505ab433ea71ad058e2ce32699a041c920dedbc362737",
            "sha256:b542b02f5c07ceb0dae8f20bf65aeec51d80b3b8f4db889b7c7ad39df9471df7",
            "https://blitzmetrics.com/seo-tree/"
           ]
          },
          "publicationStandards": {
           "state": "pass",
           "reason": "Native metadata save and final anonymous HTML agree: title56 characters, meta description138, correct short /seo-tree/ canonical, Dennis Yu byline and no Definitive badge. H2/H3 structure, preserved real training/photos/screenshots, scoped recipient-accepted example and relevant AI Builder Program CTA were checked. Unsupported algorithm/ranking/numeric/private-status claims were corrected; shared-hub catalog readiness remains separate.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "sha256:c142b94f9cb26506564f7d195a66cd1df5eb7848d83139ca96a399d7631eb00b",
            "sha256:5afc723ae429e72c8f77c9b31671c6a82d610920f01592e843d33b328ff85a90",
            "https://localservicespotlight.com/ai-builder-program/",
            "https://developers.google.com/search/docs/crawling-indexing/links-crawlable",
            "https://developers.google.com/search/docs/fundamentals/creating-helpful-content"
           ]
          },
          "acceptanceResults": {
           "state": "pass",
           "reason": "Scoped independent acceptance of the exact published topic-framework revision: checked native/public parity, actual rendered visual receipt, corrected framework/task links, final metadata and evidence-limited collector example support guide delivery. The historical recipient accepted navigation and editing only. No current placement execution, novice success, search gain or shared-hub full certification is inferred from this article review.",
           "evidenceRefs": [
            "sha256:b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
            "sha256:b542b02f5c07ceb0dae8f20bf65aeec51d80b3b8f4db889b7c7ad39df9471df7",
            "sha256:1302ecb94d1349da011505ab433ea71ad058e2ce32699a041c920dedbc362737",
            "sha256:8804f67b72951e24ac6ef45950432eb37516c497962348917b348b8d667447e0"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "place-content-on-seo-tree-with-proper-links",
         "canonicalURL": "https://blitzmetrics.com/seo-tree",
         "sourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-14T18:06:48.823671Z",
         "observer": "codex-root-separate-post-review-native-and-public-readback",
         "state": "observed",
         "reason": "Fresh authenticated native content hash matches the exact reviewed revision after the independent review. Ordinary canonical public URL returns HTTP200; saved rendered/public parity and actual viewport receipt retained separately. No execution or novice inference.",
         "evidenceRefs": [
          "https://blitzmetrics.com/seo-tree",
          "sha256:e57bb19f7e584f087d7b842e21fc772f0a5b5b70ec70c2c37b45422c26237f81"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://local-service-spotlight.github.io/task-library/maintenance/site-guide-seo-placement-2026-10-15.html"
        ],
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "pass",
        "reason": "1 distinct execution ID(s) name this task; outcomes remain separate.",
        "executionIds": [
         "site-guide-seo-placement-20261015"
        ],
        "historyStatus": "partial"
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "The separate current article revision observation is outside the 24-hour freshness window.",
        "acceptanceReview": {
         "version": 1,
         "reviewId": "site-guide-seo-placement-20261015-independent-result-1",
         "taskSlug": "place-content-on-seo-tree-with-proper-links",
         "canonicalURL": "https://blitzmetrics.com/seo-tree",
         "recipeSourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
         "representation": "wordpress-content-html",
         "instructionSourceSha256": "5ac2d7126d8cc3ff38f02d2bf87076f700dfd1d067b4f4951cba53a031bf408b",
         "reviewedAt": "2026-10-14T18:04:31.307917+00:00",
         "reviewer": "Codex independent site/link result-review function",
         "nextHandoff": "The root publisher receives this scoped result review and finalizes the current execution/meta record. The full article-checklist function retains the child short-route hold and other article gates. No inbound placement is pending; no historical site-delivery, whole-parent certification or novice-human claim is created.",
         "criteria": {
          "result": {
           "state": "pass",
           "expectedResult": "Place the published site-delivery recipe beneath the existing Personal Branding topic home with one useful inward body link, while preserving the child’s existing useful links up.",
           "observedResult": "One requested placement is delivered: one new parent body link under Phase 1: Digital Plumbing reaches the canonical site-delivery guide; two existing child body links return to the same Personal Branding parent. Saved source matches the accepted candidate and normal anonymous parent body matches saved rendering. No inbound edit remains pending.",
           "sourceUrl": "https://blitzmetrics.com/seo-tree",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/personal-brand/",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ],
           "privateEvidenceRecorded": true
          },
          "meaning": {
           "state": "pass",
           "expectedResult": "Choose the actual topic owner and describe the child’s task accurately with a descriptive anchor at the reader’s relevant step; avoid competing hubs and forced or unrelated reciprocal links.",
           "observedResult": "The topic hub introduces site/domain infrastructure in Phase 1. The five-word anchor “personal brand site delivery guide” leads to a request-to-preview/domain-plan/launch-check recipe. Its paragraph preserves open owner actions and verified-live criteria. The child’s source-selection and topic-context links back are useful explanations, not a fabricated same-task completion claim.",
           "sourceUrl": "https://blitzmetrics.com/seo-tree",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/personal-brand/",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ],
           "privateEvidenceRecorded": true
          },
          "sourcePreservation": {
           "state": "pass",
           "expectedResult": "Save only the accepted paragraph through the native source, prove exact before/candidate/saved identity, preserve unrelated metadata and prevent concurrent source loss.",
           "observedResult": "The saved raw parent hash 103ee57a5ef547bbeaddde222ccf5eea05ce2bef44a0c1f09c6ca2f59f85ba95 equals the candidate. Removing the single exact added paragraph reproduces every baseline byte at 6627793dfc225b39a5df40b417f6051bd12a331b406e8b77068215d17ec9c590. All compared identity/title/status/date/author/media/taxonomy/meta fields are unchanged. The child source remains 2065bc…db7e.",
           "sourceUrl": "https://blitzmetrics.com/seo-tree",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [],
           "privateEvidenceRecorded": true
          },
          "linkHealth": {
           "state": "pass",
           "expectedResult": "Open the ordinary public source and final target, verify placed body links and contextual location, and exercise the new link at phone/desktop layouts without a cache bypass or unsafe media playback.",
           "observedResult": "Normal public captures return 200 for both canonical pages. Public body has one inward link in Phase 1 and two upward links; parity excludes only documented automatic rendering attributes/markers. Root’s actual 1280×800 and 390×844 browser checks show the paragraph readable with no horizontal overflow. Phone click opened the canonical child; Back returned to the source. No media played.",
           "sourceUrl": "https://blitzmetrics.com/seo-tree",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/personal-brand/",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ],
           "privateEvidenceRecorded": true
          },
          "handoff": {
           "state": "pass",
           "expectedResult": "Record the actual page roles, primary parent, inbound source, links and checked state, then deliver exact saved/public evidence and remaining issues to the full article-checklist/result review function.",
           "observedResult": "The current execution, placement plan and dated public receipt identify the topic hub, site-delivery recipe, exact source/target and 1-down/2-up checked relation. This independent result-review function has read the final saved bodies and receipts and returned the scoped acceptance to root. Full article checks retain unrelated holds. The draft meta still needs its stale “checks pending” sentence updated before ledger insertion.",
           "sourceUrl": "https://blitzmetrics.com/seo-tree",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/personal-brand/",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ],
           "privateEvidenceRecorded": true
          }
         },
         "executionId": "site-guide-seo-placement-20261015"
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "place-content-on-seo-tree-with-proper-links",
         "canonicalURL": "https://blitzmetrics.com/seo-tree",
         "sourceSha256": "b40c6815df1774c5570ad4a567abc8f203f661d7584a485d7840132f921b8df7",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-14T18:06:48.823671Z",
         "observer": "codex-root-separate-post-review-native-and-public-readback",
         "state": "observed",
         "reason": "Fresh authenticated native content hash matches the exact reviewed revision after the independent review. Ordinary canonical public URL returns HTTP200; saved rendered/public parity and actual viewport receipt retained separately. No execution or novice inference.",
         "evidenceRefs": [
          "https://blitzmetrics.com/seo-tree",
          "sha256:e57bb19f7e584f087d7b842e21fc772f0a5b5b70ec70c2c37b45422c26237f81"
         ]
        }
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 229,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Post to Facebook page",
     "slug": "post-to-facebook-page",
     "status": "needs-work",
     "stage": "Post",
     "article": null,
     "articleKind": "unknown",
     "desc": "Share a useful article or clip from the right business Page. Check the post and save its link.",
     "content": "---\nname: post-to-facebook-page\ndescription: \"Share a useful article or clip from the right business Page. Check the post and save its link.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Post to Facebook page\n\nYour page can help customers find a useful answer. This guide shows you how to share a clear post from the right business. Start with the real article or clip and one point worth sharing.\n\n**The path:** Approved source → Correct Page → Clear post → Live link and comments.\n\n**Use this when:** The distribution plan calls for a post on a specific Facebook Page and the source is ready.\n\n## Inputs\n- The exact Facebook Page, approved posting scope and access to create its content. Facebook access and task access are different; task access may use Meta Business Suite.\n- The checked article URL and/or finished media, rights, source facts, caption notes, and intended audience.\n- The real voice and attribution of the speaker or business. First person must refer to a real supported speaker, not a fabricated personal experience.\n- The content tracker, current posting history, named comment owner, and a named receiver for any scheduled-post check.\n\n## First-run prompt\n\n> Use the exact Page and source I provide to prepare a short factual post. Check the current posting history and media rights. Publish, schedule, or save only as already requested, verify the resulting state, and log the direct link. Do not start ads or claim reach from a post existing.\n\n## Steps\n1. Open the specified Page or its Meta Business Suite workspace. Verify the selected business and account identity before creating anything. Use the existing approved route; possession of a token alone is not a posting instruction.\n2. Check the recent content list for the same article or clip so retries do not create duplicate posts. Confirm the article is publicly readable if the caption says it is live.\n3. Write two to four short sentences: the real question or point, one supported takeaway, and a helpful next step. Keep the wording true to the actual speaker. Use the owner’s first person only where the source and assignment support it.\n4. Open the create-post composer for that Page. Add the caption and the selected real photo or video. Choose the available media/post format shown by the Page. Native media is an editorial choice, not a promise of higher reach.\n5. Include the specific article link where readers can find it. If the plan uses a first comment, that comment is part of the handoff and must actually be added and checked. Tag only confirmed featured people or Pages when the mention is relevant and available.\n6. Preview the source, crop, text, link, and selected destinations. Add accurate photo alt text or usable video captions where the composer supports them; otherwise record the accessibility limit. Keep any media preview muted at volume zero. Publish when already authorized, or save the in-scope draft/scheduled post. Do not add a boost, spend, or another platform just because the composer offers it.\n7. Open the resulting post as the intended viewer where possible. Check the Page name, caption, media, link, and mentions. Copy its direct URL and record the observed status and time. For a scheduled item, give a named receiver the scheduled time and timezone; that receiver checks the first firing and public URL after the due time.\n8. Hand a verified live post to [Engage with social comments](https://local-service-spotlight.github.io/task-library/?task=engage-with-social-comments#task-engage-with-social-comments) under the agreed response scope. A scheduled or failed item stays with its firing-check receiver until its public state is known. Later measurement can inform [the Facebook boost shortlist](https://local-service-spotlight.github.io/task-library/?task=boost-top-3-5-facebook-posts#task-boost-top-3-5-facebook-posts); a Page post is not automatically eligible or approved for an ad.\n\n## Definition of done (QA checklist)\n\n- [ ] The post belongs to the specified Page and has the intended draft/scheduled/live state; scheduled is not called live and has a named first-firing receiver.\n- [ ] The caption and media match the actual source and rights; accessibility support or its exact limitation is recorded, with no unsupported reach claim or personal story.\n- [ ] The article link and intended mentions work, or a specific limitation is recorded.\n- [ ] The direct URL, time, channel, and correct next owner for the current state are saved once.\n- [ ] No ad spend or extra distribution is implied by the organic post.\n\n## Example(s)\n\n**Fictional teaching example — no Facebook post exists.** Maple Cycle’s sample caption reads:\n\n“Not sure what to send us for a repair quote? A clear photo and a short note about the problem help us plan the next step. Our guide explains what a photo can tell us and what needs a shop visit: `https://maplecycle.example/repair-quote/`.”\n\nThe planned image is the shop owner beside an actual workbench. In a real run it must be the real authorized photo. If the post is scheduled for tomorrow, the tracker must say “scheduled,” not “live.” This invented post supplies no engagement or boost evidence.\n\n## Handoff and Content Factory context\n\nThe firing-check receiver gets any scheduled item, time and timezone. After the first firing is publicly verified, the named comment owner receives the direct post link and source facts. The promotion owner receives actual later measurements, not an assumed winning post.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nOne post per agreed distribution item. Scheduling is optional and needs the chosen time, timezone and named receiver who checks the first firing. Early comment review follows the actual response plan; this guide installs no timer.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `upload-processed-video-to-youtube`\n- **Browse later task:** `post-to-linkedin`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. The owned training references below remain the method until that gap is reviewed.\n- Exact Task Library record: [Post to Facebook page](https://local-service-spotlight.github.io/task-library/?task=post-to-facebook-page#task-post-to-facebook-page)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Meta’s Page access roles](https://www.facebook.com/help/289207354498410/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The exact Page composer, permissions, media options and live state must be checked in the real account; no login was used for this draft.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Post",
     "before": "upload-processed-video-to-youtube",
     "after": "post-to-linkedin",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "476bd1527a18c388bf62a25c1c22bf1c99f0c5331748fb2e42ef081f566f8916",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "aa215bbfff060a8b740a807aa23e1b3fb8ee3306b4c636055331070392b0220b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "476bd1527a18c388bf62a25c1c22bf1c99f0c5331748fb2e42ef081f566f8916",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "476bd1527a18c388bf62a25c1c22bf1c99f0c5331748fb2e42ef081f566f8916"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "476bd1527a18c388bf62a25c1c22bf1c99f0c5331748fb2e42ef081f566f8916"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 45,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Post to LinkedIn",
     "slug": "post-to-linkedin",
     "status": "needs-work",
     "stage": "Post",
     "article": null,
     "articleKind": "unknown",
     "desc": "Share one useful lesson on LinkedIn. Use the right profile or Page and save the live link.",
     "content": "---\nname: post-to-linkedin\ndescription: \"Share one useful lesson on LinkedIn. Use the right profile or Page and save the live link.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Post to LinkedIn\n\nA short lesson can help your work reach the right people. This guide helps you share it on LinkedIn in a clear voice. Start with one true point and the account the plan calls for.\n\n**The path:** Useful point → Correct identity → Post and check → Comment handoff.\n\n**Use this when:** A checked article or finished clip is ready for the LinkedIn audience named in the distribution plan.\n\n## Inputs\n- The exact profile or company Page in scope and authorized access. A Page needs a role that can post, such as super or content admin.\n- The real source article/clip, use rights, intended audience, and speaker’s approved voice or factual notes.\n- The specific article URL, a real image/video if suitable, and verified identities for any relevant mentions.\n- The tracker, recent post history, comment owner, and a named receiver for any scheduled-post check.\n\n## First-run prompt\n\n> Use my source, actual voice notes, and specified LinkedIn identity to write a short lesson. Carry out the publication state already authorized, check the final identity and link, and record the result. Keep any company repost and later comment work within the agreed scope.\n\n## Steps\n1. Confirm whether the job calls for the owner’s profile, the company Page, or both. Do not assume access to one authorizes posting to the other. Check the recent history for duplicate coverage.\n2. Write a hook about the problem or lesson. Add one concrete insight so the post helps even if no one opens the link. Use one to three short paragraphs. First person must match the real speaker and source.\n3. Open Start a post. Select the correct identity and audience settings. Check who can see and comment on it. Apply a brand-partnership label when the real relationship and current rules require it. The current standard post limit is 3,000 characters; keep this task’s short format rather than filling the limit.\n4. Add the real image or video when it helps the lesson. Add accurate photo alt text or usable video captions where the composer supports them; otherwise record the accessibility limit. Add the article link in the post or in the planned first comment. Keep media previews silent. Tag only verified, relevant people or organizations; no tag is better than the wrong identity.\n5. Use a few relevant hashtags if useful; the source’s maximum of three is a house style, not a LinkedIn requirement. Check formatting and that the post does not invent a client result or relationship.\n6. Post now, save a draft where supported, or schedule according to the existing instruction. If a company Page repost is also authorized and useful, add a distinct short frame and verify that separate result. Do not expand the job automatically.\n7. Open the posted item and save its direct link, identity, time, audience, and state. For a Page, use the member view where available. A scheduled item or private-view check is not evidence of a publicly live post. Give a named receiver its scheduled time and timezone so the first firing and public URL are checked after the due time.\n8. Hand a verified live post to [Engage with social comments](https://local-service-spotlight.github.io/task-library/?task=engage-with-social-comments#task-engage-with-social-comments). A scheduled or failed item stays with its firing-check receiver until its public state is known. The source proposes review within 24 hours; answer legitimate questions within the actual scope, route sensitive issues, and do not promise to reply to every spam comment.\n\n## Definition of done (QA checklist)\n\n- [ ] The selected identity, audience, and publication state match the assignment; scheduled is not called live and has a named first-firing receiver.\n- [ ] The post teaches a real supported point and links to the intended article.\n- [ ] Media, mentions, voice, accessibility support and any required brand-partnership label are accurate, with no fabricated personal experience.\n- [ ] Any separately requested company repost has its own checked link/state.\n- [ ] The tracker and correct next owner for the current state have the evidence needed for follow-through.\n\n## Example(s)\n\n**Fictional teaching example — no LinkedIn post was sent.** A sample owner post for Maple Cycle says:\n\n“A repair quote is useful only if the rider knows what it covers. I use three parts: the work we can see, the things we still need to check, and the next choice for the customer.\n\nOur short guide shows how we explain that before a visit: `https://maplecycle.example/repair-quote/`.”\n\nIn a real post, “I use” needs the owner’s actual method behind it. If only the company Page is authorized, the frame becomes “Our team’s quote process uses three parts” only if that is true. A Page repost is not claimed unless it was separately saved and checked.\n\n## Handoff and Content Factory context\n\nThe firing-check receiver gets any scheduled item, time and timezone. After the first firing is publicly verified, the comment owner gets the checked post and source material. The article owner gets any useful questions for the topic queue. Paid distribution remains a separate task.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for an agreed article or clip. Use a chosen schedule only when requested; a named receiver must verify its first firing before the live post enters comment review. A real account setting or named person must own the proposed 24-hour comment review.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `post-to-facebook-page`\n- **Browse later task:** `share-in-44k-facebook-group`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. The owned training references below remain the method until that gap is reviewed.\n- Exact Task Library record: [Post to LinkedIn](https://local-service-spotlight.github.io/task-library/?task=post-to-linkedin#task-post-to-linkedin)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [LinkedIn’s current post controls](https://www.linkedin.com/help/linkedin/answer/a528176/post-and-share-updates)\n- [LinkedIn Page drafts](https://www.linkedin.com/help/linkedin/answer/a1348619)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Actual identity, access, posting state and comment permissions require the real account.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "post-to-facebook-page",
     "after": "share-in-44k-facebook-group",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "46037292b3e3e02a475605d50c44f497636e138abe441a800a24f116d79d0adf",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "166c021acc726baedcc60073d1c899df8d7c3f13ccb7e7aaa067dc8beae983e9",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "46037292b3e3e02a475605d50c44f497636e138abe441a800a24f116d79d0adf",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "46037292b3e3e02a475605d50c44f497636e138abe441a800a24f116d79d0adf"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "46037292b3e3e02a475605d50c44f497636e138abe441a800a24f116d79d0adf"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 72,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set WordPress author to correct person",
     "slug": "set-wordpress-author-to-correct-person",
     "status": "needs-work",
     "stage": "Post",
     "article": null,
     "articleKind": "unknown",
     "desc": "Put the right name on the article. Check the saved author and the name readers see.",
     "content": "---\nname: set-wordpress-author-to-correct-person\ndescription: \"Put the right name on the article. Check the saved author and the name readers see.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Set WordPress author to correct person\n\nReaders should know whose work and voice an article shows. This guide helps you put the right name on the page. Start with the agreed author, then check both the saved record and the public byline.\n\n**The path:** Real author → Correct user record → Saved assignment → Visible byline.\n\n**Use this when:** An article needs its correct author set, or a defined list of posts has a byline problem.\n\n## Inputs\n- The exact site and post IDs in scope, current author values, and a saved before record.\n- The agreed author and identity evidence. On a personal-brand site, follow the maintained rule that the person is the author and voice. Company or guest content needs its correct editorial attribution.\n- An existing WordPress user that represents that person, with correct public name and approved profile details.\n- Permission to edit the scoped article author, and separate user/profile access if those details need changes. A new user is not automatically required.\n\n## First-run prompt\n\n> Use the exact post list and confirmed author mapping I provide. Check the current values, make only the already-authorized author changes, and compare the saved record with the public byline. Preserve other fields and guest credit. Report template or identity gaps without sweeping unrelated posts.\n\n## Steps\n1. Read the article and assignment. Confirm who is responsible for the published voice. Follow [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for personal-brand first person; do not reassign a genuine guest’s work to a site owner merely to remove an admin-looking name.\n2. Find the existing user record. Match the actual person using more than a similar name. Check the public display name, approved bio and photo. Keep login identity and public byline separate.\n3. Open the exact post’s settings and select the correct author. Use the supported site editor or publishing tool. A REST route is suitable only when it is already the approved source path for that site and content type.\n4. Save the change and read the same post back. Confirm the author ID changed as intended while content, URL, date, status and other fields stayed as scoped. If another writer changed the post, reconcile the current version before saving.\n5. Open the public article after an authorized update. Check the visible byline and any author box. A template may show a custom byline that differs from the stored author; correct the actual supported source rather than pretending the data change fixed the display.\n6. Check an author archive only where the site intentionally uses one. Confirm its displayed name and scoped posts. Do not enable an archive or change indexing merely to satisfy a generic checklist.\n7. For a requested multi-post repair, repeat only for the explicit list and record each result. Do not turn a one-post fix into a site-wide reassignment. Route unresolved identity or template issues to the editorial/site owner.\n\n## Definition of done (QA checklist)\n\n- [ ] The author matches the person responsible for the article and the site’s voice policy.\n- [ ] The exact saved author ID/display name is checked, with unrelated fields preserved.\n- [ ] The served byline and any author box match the intended attribution.\n- [ ] Archive behavior is checked where applicable, with an honest not-applicable reason otherwise.\n- [ ] The scoped before/after list and remaining attribution issues are recorded.\n\n## Example(s)\n\n**Fictional teaching example — no WordPress user was changed.** Maple Cycle has two sample records: user 7 is “Site Admin,” and user 18 is the confirmed owner “Alex Reed.” A personal story in Alex’s voice should use user 18.\n\nAfter the sample change, the stored author is 18 but the theme still prints “Maple Cycle Team” from a separate field. The data check passes; the visible-byline check fails. The next action is a scoped template/byline repair, not claiming the article is fixed.\n\nA separate guest article by a real outside writer would keep that writer’s agreed credit. The invented IDs in this example are not commands to run on a real site.\n\n## Handoff and Content Factory context\n\nThe publisher receives the checked author mapping and any display issue, then runs [Place the content on the SEO Tree](https://local-service-spotlight.github.io/task-library/?task=place-content-on-seo-tree-with-proper-links#task-place-content-on-seo-tree-with-proper-links) or [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) as the actual workflow requires.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for a new article or an explicitly scoped attribution repair. No recurring whole-site sweep is installed or implied.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `step-12-post-article-on-wordpress`\n- **Browse later task:** `step-13-categorize-post-and-add-tags`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. The owned training references below remain the method until that gap is reviewed.\n- Exact Task Library record: [Set WordPress author to correct person](https://local-service-spotlight.github.io/task-library/?task=set-wordpress-author-to-correct-person#task-set-wordpress-author-to-correct-person)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [WordPress author display](https://wordpress.org/documentation/article/post-author-block/)\n- [WordPress post/page settings](https://wordpress.org/documentation/article/page-post-settings-sidebar/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The real author identity, user record and theme behavior must be verified; no dedicated canonical task article is mapped.",
     "importance": 5,
     "freq": 5,
     "revenue": 3,
     "gating": 5,
     "phase": "Post",
     "before": "step-12-post-article-on-wordpress",
     "after": "step-13-categorize-post-and-add-tags",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "a72637a4e89091fdd41765eb2d9a7a3bd9ff3a2ac4e7496f104ad031e67cf1c9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a816d8587734d5c28f81d41425c60d2e52876a342eca745af5823a77c4efb781",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a72637a4e89091fdd41765eb2d9a7a3bd9ff3a2ac4e7496f104ad031e67cf1c9",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a72637a4e89091fdd41765eb2d9a7a3bd9ff3a2ac4e7496f104ad031e67cf1c9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a72637a4e89091fdd41765eb2d9a7a3bd9ff3a2ac4e7496f104ad031e67cf1c9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 83,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Share in 44K Facebook group",
     "slug": "share-in-44k-facebook-group",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Share a useful lesson in the right Facebook group. Follow its rules and check whether the post is live.",
     "content": "---\nname: share-in-44k-facebook-group\ndescription: \"Share a useful lesson in the right Facebook group. Follow its rules and check whether the post is live.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Share in 44K Facebook group\n\nA group post should give people something they can use. This guide helps you share a lesson from a real article. Start by checking the right group and its current posting rules.\n\n**The path:** Correct group → Useful lesson → Submit and check → Replies and evidence.\n\n**Use this when:** The distribution plan names a specific group and the checked article is ready for that audience.\n\n## Inputs\n- The exact group URL/ID and current rules. “44K” is the legacy task name, not a verified current member count or enough information to identify the group.\n- The checked article, source facts, real media, and identities of any members to mention.\n- The authorized posting identity, actual ability to post in the group, and the job’s message/publication scope.\n- The distribution tracker, client-notification state when required by the plan, and a named person for comments and measurement.\n\n## First-run prompt\n\n> Use the exact group and article in the plan. Check group rules, posting identity and duplicate history. Share the useful lesson already authorized, then record whether it is pending or live. Keep replies and later measurements truthful; do not assume group size, reach, or boost eligibility.\n\n## Steps\n1. Open the exact group and read its current rules. Verify that the planned identity can post and that links, media, and this kind of content are allowed. Group membership does not guarantee immediate posting rights.\n2. Read recent group posts and the tracker for duplicates. If the plan requires client notice first, verify that notification rather than assuming it from a checklist neighbor.\n3. Write a short lesson: the problem, one supported detail, and what another member can do with it. Link the full article only when the current group rules allow that link. If links are barred, use a useful native lesson when it still meets the approved distribution goal; otherwise hold the post and name the rule conflict. Do not force a number into the post when the source has none.\n4. Add a relevant real photo or clip if allowed and useful. Add accurate photo alt text or usable video captions where the group composer supports them; otherwise record the accessibility limit. Mention only confirmed featured members when appropriate. Keep media previews muted; no invented banner result or testimonial belongs in the post.\n5. Submit when the job already authorizes posting. Read the resulting state: published, waiting for admin approval, rejected, or failed. Record the post/submission reference. Do not resubmit a pending item to force it through.\n6. When live, confirm the text, link, identity, and media in the group. Restricted group content may require a member view; do not claim anonymous public access or general visibility.\n7. Have the comment owner review legitimate questions within the agreed response plan. The source suggests a 24-hour review and a 48-hour measurement. Record actual dates and visible reactions/comments/shares; if a metric is unavailable, write UNKNOWN.\n8. Save useful questions with their context in the [Topic Wheel](https://blitzmetrics.com/topic-wheel/) queue. Group response can inform a later Page-post test, but does not turn a group post into an eligible boost or prove business results.\n\n## Definition of done (QA checklist)\n\n- [ ] The exact group, rules, posting identity and allowed content are checked.\n- [ ] The post teaches a source-backed point and includes working allowed links/media.\n- [ ] Submitted, pending moderation and live states are kept separate.\n- [ ] The tracker has the real reference and any pending owner/action; no duplicate submission was created.\n- [ ] Later comment/metric work is either evidenced or explicitly pending, with no assumed engagement.\n\n## Example(s)\n\n**Fictional teaching example — no real group or post.** A sample community for shop owners receives this draft:\n\n“A repair quote can be clear without pretending we know everything from a photo. Our sample method separates what we can see from what needs an in-person check. Here is the full walkthrough: `https://maplecycle.example/repair-quote/`. What part of a quote do your customers ask about most?”\n\nIf the group displays “Pending admin approval,” the tracker records that state and the submission time. It does not record “posted to 44,000 people.” Even a live post’s group size would not prove how many people saw it.\n\n## Handoff and Content Factory context\n\nThe comment owner receives the group reference and source facts. [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) receives the actual distribution state, including pending moderation. The promotion owner receives only measured evidence later.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nOne group submission per agreed article. The proposed 24-hour reply review and 48-hour metric check need a real named owner or configured authorized timer; there is no automatic recurring posting job.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `post-to-linkedin`\n- **Browse later task:** `email-and-dm-client-about-published-article`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Share in 44K Facebook group](https://local-service-spotlight.github.io/task-library/?task=share-in-44k-facebook-group#task-share-in-44k-facebook-group)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Meta’s group participation and approval rules](https://www.facebook.com/help/1414053028933409/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The canonical source does not provide a verified current group ID. The project must supply it before an actual post.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "post-to-linkedin",
     "after": "email-and-dm-client-about-published-article",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "750065ee61341ec7d977921780e3b7ded0f7cc8994910f77f29d6cd2a3aefbfd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "92cd7464bc85504a0ad7262630e37caae6073d699f3c7d71ee1a501108215f83",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=share-in-44k-facebook-group#task-share-in-44k-facebook-group",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "750065ee61341ec7d977921780e3b7ded0f7cc8994910f77f29d6cd2a3aefbfd",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "750065ee61341ec7d977921780e3b7ded0f7cc8994910f77f29d6cd2a3aefbfd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "750065ee61341ec7d977921780e3b7ded0f7cc8994910f77f29d6cd2a3aefbfd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 240,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 12: Post article on WordPress",
     "slug": "step-12-post-article-on-wordpress",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Put your checked article on the right live page. Check where the site saves pages so readers get your work. This follows the draft checks in the article guidelines linked above.",
     "content": "---\nname: step-12-post-article-on-wordpress\ndescription: \"Put your checked article on the right live page. Check where the site saves pages so readers get your work. This follows the draft checks in the article guidelines linked above.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 12: Post article on WordPress\n\nPut your checked article on the right live page. Check where the site saves its pages first, so your work reaches readers. Use the [article guidelines](https://localservicespotlight.com/article-guidelines/) to check the draft before this step.\n\n**The path:** Check site and edit path → Confirm WordPress fits → Save the right record → Check the public result.\n\n**Use this when:** A source-checked article has finished Process, and current site records confirm that WordPress is its approved editor. A page that was once made in WordPress may now be served as fixed files. Those sites need their own recorded source and release path.\n\n## Before opening an editor\n\nFirst confirm the site, the current source of edits, your allowed action and the tool that can perform it. Keep a dated record of the evidence. A saved login is not proof that this is still the right editor.\n\n| What the current evidence shows | What to do next |\n| --- | --- |\n| Live WordPress is the approved edit path | Follow the WordPress steps below using the existing authorized tool. |\n| A static site serves fixed files, including old WordPress content | Use that site's maintained source and reviewed release process. Stop the WordPress steps here. |\n| The site uses another source, such as Astro | Use its maintained source, preview and authorized deployment process. A source merge alone is not a live release. |\n| The runtime, source or allowed action is unknown or conflicts | Keep checks read-only. Save the exact missing evidence and existing responsible owner. Do not guess a login or ask for a password. |\n\nA 404 means a route was not found; it does not name the hosting company. WordPress-looking HTML, media paths or sitemaps can remain after a static export. Check a working public page and its response headers, then confirm the edit path in the site's maintained records. A retained WordPress origin may be only a backup. Its existence does not grant permission to edit or publish from it.\n\nFor LSS fleet work, use the current website preflight, relationship record, exact domain record and release instructions. Keep those private records private. Do not bypass a held production step, copy the public static site back onto itself, or invent a deployment command. Continue unrelated authorized work while the missing site-specific evidence is resolved.\n\n## Inputs\n- The final source-checked article, [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief, visual, rights, links, and video/transcript review evidence.\n- The exact site and existing article URL/ID if any, page role, author, intended categories, and publishing scope.\n- Positive evidence that WordPress is the approved editor for this site now, plus access to the supported tool. For an existing Page or builder, identify its real save source and preserve it.\n- The media files, approved destination paths, previous revision, and next publisher/reviewer.\n\n## First-run prompt\n\n> Use the exact site, article, source assets and publication scope I provide. First verify the current public runtime and approved edit path. If WordPress is not the approved editor or the evidence is unclear, stop the WordPress steps and name the correct route or missing evidence. Otherwise find the canonical record, preserve its supported editor and URL, place the article, and check layout and links. Complete the already-authorized save or publication. Verify saved data and normal visitor content separately, and report the exact remaining issue.\n\n## Steps\n1. Confirm the runtime/edit-path check above passes for WordPress, then search the site and inventory for the canonical page. Update that record when it already owns the topic. For a genuinely new editorial guide, use a Post and the block editor where appropriate. Preserve an existing Page, builder, URL and supported source; do not rebuild it solely to fit this task.\n2. Save the current source and key fields before an update. Check again before saving so a newer edit is not overwritten. Keep the title, date, author and URL unchanged unless the work explicitly calls for changes.\n3. Place the article in the supported editor. Use one visible H1, clear H2/H3 sections, short paragraphs, and the real speaker’s voice. Confirm the opening says who it helps, why, and the useful result in plain language.\n4. Place the article-specific visual early enough to work in the first desktop and phone screen. Add the real media with descriptive alt text and source/permission notes. A hidden featured-image setting or empty colored box does not meet the visual rule.\n5. Embed the actual source video when the article depends on it. Use [YouTube captions by default](https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default) for the player settings. Keep previews silent; a pasted watch URL, poster alone, or transcript pane is not the finished player.\n6. Verify the pasted body links and named anchors using [entity-linking guide](https://blitzmetrics.com/entity-linking/). Keep owned teaching links, accurate identity destinations, and specific primary proof. For new content, choose a clear stable slug; do not change an established URL just to fit a keyword.\n7. Save a draft when the job is staging work. Complete [categories and tags](https://local-service-spotlight.github.io/task-library/?task=step-13-categorize-post-and-add-tags#task-step-13-categorize-post-and-add-tags), [search metadata](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin), author and link checks as applicable, then run [Check the full article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist). A plugin step is not a reason to replace an existing supported builder.\n8. If publication/update is already authorized and applicable checks pass, publish through the supported route without asking again. Read back the saved record, then open the normal public URL on desktop and phone. If a separate cache or static release is needed, continue only when the current site record explicitly approves that exact source and release route. A retained origin save does not clear a production hold. Otherwise keep the prepared change and record public delivery as pending.\n9. Log the exact record, revision, saved state, public URL, visual checks and any pending publication layer. A draft preview, successful API response, or cache-busted copy alone is not proof that ordinary visitors see the change.\n\n## Definition of done (QA checklist)\n\n- [ ] Current evidence confirms WordPress is the approved editor; static/unknown sites have been routed or held without a WordPress write.\n- [ ] The correct canonical record and supported editor/source are preserved.\n- [ ] The article structure, source facts, media and links survive the transfer.\n- [ ] The useful lead visual is readable at 1440×860 and 390×844; no sideways overflow or first-load autoplay.\n- [ ] Saved draft/published state matches the job, with no unasked URL or content-type change.\n- [ ] When publication is in scope, normal canonical visitor content matches the accepted revision or the exact pending layer is recorded.\n\n## Example(s)\n\n**Fictional teaching example — no site was changed.** Maple Cycle has current evidence that WordPress is its approved editor. It already has `/repair-quote/` as a Page built with its site’s supported builder. A new source clip improves the same guide.\n\nThe publisher keeps the Page and URL, saves the old source, replaces the relevant explanation, and puts the real photo beside the short opening. The draft preview looks correct. After an authorized update, WordPress reports the new text but a normal visitor still sees the old version.\n\nThe result is “WordPress saved; public delivery pending,” not “published and verified.” The site’s currently approved release route owns the next step; if that route is not proved, delivery stays on hold. A new duplicate Post would not solve it.\n\nA second shop has a working static homepage, old WordPress media paths and a login 404. That evidence does not identify WordPress.com or justify a CMS password request. The publisher records the observed state and uses the maintained source/release instructions. Without them, the result is a read-only diagnosis and a named missing gate.\n\n## Handoff and Content Factory context\n\nThe publisher receives the runtime/edit-path evidence, record ID, source revision, media and check results. For a static or unknown site, the existing site-release owner receives the prepared files, exact missing gate and evidence; no WordPress write or new access request is implied. Staged work proceeds to the specific unfinished Post task. Verified live work proceeds to the agreed distribution tasks; [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) closes the served-page review.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for an initial article or a defined update. No new schedule or standing publisher is installed by this guide.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `process-videos-via-marketscale`\n- **Browse later task:** `set-wordpress-author-to-correct-person`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Step 12: Post article on WordPress](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [WordPress block-editor controls](https://wordpress.org/documentation/article/wordpress-block-editor/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The real supported save/release route and exact publication scope require the target site. Historical delivery proof does not show that this revised recipe has been used. New-user setup and accepted real use remain unverified.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 5,
     "phase": "Post",
     "before": "process-videos-via-marketscale",
     "after": "set-wordpress-author-to-correct-person",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "3151784e27d21b861722a73cf35383b0792427c8a6f44bb039c3a69d4b4ad4ae",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written recipe review only; link availability remains open. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Names the action, benefit and linked draft-check prerequisite in three short sentences; exact words quoted in dated review.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Requires positive current WordPress edit authority, routes static and unknown sites to existing release owners, and defines inputs, steps and public result checks.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
        },
        "links": {
         "state": "unknown",
         "reason": "Article Guidelines destination read and supports opening prerequisite; Content Factory destination returned 403 in separate web-reader and anonymous checks. Availability remains unknown.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Historical delivery stays separate from this revision; fictional examples labelled; login 404 and old WordPress assets are not runtime or edit-authority proof.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Names current release owner and transfers runtime evidence, prepared files, exact missing gate and saved/public states before downstream distribution.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "39c70a00cf57820b2ac1a88f6b5b4c677fe2e125c081f696fef74104d724654b",
       "previousReviewDate": "2026-10-12",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-676fc94d0a3360b42c6f30a0",
        "taskSlugs": [
         "step-12-post-article-on-wordpress"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "unknown",
          "value": null
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-11T16:10:40.174635+00:00",
        "outcome": "One marketing-agent starter article was published with a three-page PDF and responsive diagrams. Checked public output supports the WordPress publishing task. This historical import is not a new execution, proof of use of the current recipe, or evidence that a reader set up an agent.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "One original WordPress publication, post 192300. Its PDF and two responsive diagrams are outputs of the same source job. Original requester authorization and source delivery were checked."
         },
         "output": {
          "state": "pass",
          "notes": "An independent reviewer opened the live article and PDF. Fresh anonymous checks found all approved article text and links; PDF and both diagrams match their reviewed source bytes exactly."
         },
         "acceptance": {
          "state": "unknown",
          "notes": "Independent content and delivery checks support the published output. Post-publication requester or host editorial acceptance, indexing, reader use and business results are not established."
         },
         "handoff": {
          "state": "pass",
          "notes": "Scoped to delivery of the public article and PDF links in the original requester conversation. The live article also links the PDF. Receiving acknowledgment, attendee use and any later promotion remain unknown."
         }
        },
        "evidenceUrls": [
         "https://digimarcon.com/ai-marketing-agent-starter-plan/",
         "https://digimarcon.com/wp-content/uploads/2026/10/marketing-agents-starter-guide-digimarcon.pdf"
        ],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 1,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-676fc94d0a3360b42c6f30a0"
      ],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3151784e27d21b861722a73cf35383b0792427c8a6f44bb039c3a69d4b4ad4ae",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written recipe review only; link availability remains open. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3151784e27d21b861722a73cf35383b0792427c8a6f44bb039c3a69d4b4ad4ae"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "Current-revision instruction requirements are unknown: links.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written recipe review only; link availability remains open. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "3151784e27d21b861722a73cf35383b0792427c8a6f44bb039c3a69d4b4ad4ae",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Names the action, benefit and linked draft-check prerequisite in three short sentences; exact words quoted in dated review.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Requires positive current WordPress edit authority, routes static and unknown sites to existing release owners, and defines inputs, steps and public result checks.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
          },
          "links": {
           "state": "unknown",
           "reason": "Article Guidelines destination read and supports opening prerequisite; Content Factory destination returned 403 in separate web-reader and anonymous checks. Availability remains unknown.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Historical delivery stays separate from this revision; fictional examples labelled; login 404 and old WordPress assets are not runtime or edit-authority proof.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Names current release owner and transfers runtime evidence, prepared files, exact missing gate and saved/public states before downstream distribution.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/wordpress-runtime-routing-2026-10-12.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 227,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 13: Categorize post and add tags",
     "slug": "step-13-categorize-post-and-add-tags",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Put a post in the right topic group. Reuse clear tags so readers can find related work.",
     "content": "---\nname: step-13-categorize-post-and-add-tags\ndescription: \"Put a post in the right topic group. Reuse clear tags so readers can find related work.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 13: Categorize post and add tags\n\nGood labels help people find more useful work on your site. This guide helps you choose the right topic group and tags for a post. Start with the site’s own list, so you do not create two names for the same thing.\n\n**The path:** Page purpose → Existing labels → Saved category and tags → Checked grouping.\n\n**Use this when:** A WordPress post needs its category and tag labels set or corrected.\n\n## Inputs\n- The exact post, its [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief and its place on the [SEO Tree](https://blitzmetrics.com/seo-tree/).\n- The site’s current category/tag list and rules. A category groups related posts; a tag is a reusable label across posts.\n- Permission to edit this post’s labels; scope for new terms if the existing list truly lacks a needed one.\n- The content inventory, publication state, current canonical URL and permalink policy. Pages may not use post categories/tags unless the site explicitly adds that support.\n\n## First-run prompt\n\n> Use the exact post and current site taxonomy I provide. Select the right existing category and useful tags, save the authorized change, and verify the saved values. Keep draft and public archive checks separate. Do not create duplicate tags or add an internal stage system the site does not use.\n\n## Steps\n1. Read the post’s main purpose and current topic map. Identify the existing category that fits. A category archive and a maintained topic guide may be different pages; record both rather than assuming the category is the guide.\n2. Open the post settings and Categories panel. Choose the agreed main category. Use a second only where the site policy and content support it. One primary category is a house choice; WordPress itself permits more than one.\n3. Remove an accidental default “Uncategorized” assignment when a correct category is now set, within this post’s scope. Do not rename or delete the site’s global default category as part of a one-post task.\n4. Open Tags and reuse exact existing terms. Choose only labels that help navigation or an established workflow. Stage tags, format tags, people and company names are not mandatory on every public site; do not invent them from an old template.\n5. Review near-duplicates before creating a new tag. For example, “repair quotes” and “repair-quote” may point to the same idea. If the taxonomy needs a new term, follow the already-authorized taxonomy scope or record the specific missing decision.\n6. Save the post in its intended state. Reopen its settings and confirm the actual assigned terms. Compare the canonical URL before and after because category-based permalink setups can change a public address; restore the scoped value or hold the result if the URL moved unexpectedly. If a machine lookup is part of the job, test the supported category/tag query with the correct IDs and access; do not assume every custom type exposes them.\n7. For a published post, check its intended archive, visible labels and normal canonical URL. For a draft, inspect the archive’s existing siblings and the saved term assignment, but do not expect the unpublished post to appear publicly.\n8. Update the inventory with the category/tag names or IDs, URL result and any justified not-applicable fields. Hand the record to [Configure search metadata](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin).\n\n## Definition of done (QA checklist)\n\n- [ ] The category fits the post’s actual topic and the site’s current structure.\n- [ ] Tags reuse useful existing terms; no duplicate or invented workflow taxonomy was added.\n- [ ] Saved terms match the plan and the supported content type, with no unasked canonical URL change.\n- [ ] Published archive behavior and canonical URL are checked only when applicable; draft status is not treated as an archive failure.\n- [ ] The inventory records exact labels, URL state and any unresolved term decision.\n\n## Example(s)\n\n**Fictional teaching example — no taxonomy was edited.** Maple Cycle’s sample post answers “Can a photo get me a repair quote?” The site already uses category “Repair quotes” and tag “Planning a visit.”\n\nThe publisher selects those terms and rejects a new tag called “repair-quote” because it adds no useful distinction. The draft saves with both term IDs. It does not show in the public archive yet, which is expected for a draft.\n\nAfter an authorized publish, the same archive should list it among related posts if that archive is part of the site’s design. No `Stage: Post` tag is created because this fictional public site has no such taxonomy.\n\n## Handoff and Content Factory context\n\nThe publisher receives the saved terms and actual state, then continues with [Configure Rank Math](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin) where that tool is used.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun once for a new post or a scoped label correction. Refresh when the site’s accepted taxonomy changes; no recurring relabeling job is assumed.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `set-wordpress-author-to-correct-person`\n- **Browse later task:** `step-14a-configure-rankmath-seo-plugin`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Step 13: Categorize post and add tags](https://local-service-spotlight.github.io/task-library/?task=step-13-categorize-post-and-add-tags#task-step-13-categorize-post-and-add-tags)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [WordPress post/page settings](https://wordpress.org/documentation/article/page-post-settings-sidebar/)\n- [WordPress category behavior](https://wordpress.org/documentation/article/posts-categories-screen/)\n- [SEO Tree: give a page its right topic home](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The live taxonomy, permalink policy and content-type support must be checked for the actual site.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "set-wordpress-author-to-correct-person",
     "after": "step-14a-configure-rankmath-seo-plugin",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "9d7b8277ad7469734c31d5bd4fdbfa1ccdc8c848100cb31ad8f46ea16ac39f5c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "179d28d5036d28e141b1691c9d5f9870ce514b9cd158a90226fcdf3742205586",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-13-categorize-post-and-add-tags#task-step-13-categorize-post-and-add-tags",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9d7b8277ad7469734c31d5bd4fdbfa1ccdc8c848100cb31ad8f46ea16ac39f5c",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9d7b8277ad7469734c31d5bd4fdbfa1ccdc8c848100cb31ad8f46ea16ac39f5c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9d7b8277ad7469734c31d5bd4fdbfa1ccdc8c848100cb31ad8f46ea16ac39f5c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 241,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 14a: Configure RankMath SEO plugin",
     "slug": "step-14a-configure-rankmath-seo-plugin",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Set a clear search title and page summary. Use Rank Math to find issues without stuffing in extra words.",
     "content": "---\nname: step-14a-configure-rankmath-seo-plugin\ndescription: \"Set a clear search title and page summary. Use Rank Math to find issues without stuffing in extra words.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 14a: Configure RankMath SEO plugin\n\nPeople need a clear reason to open your page from search. This guide helps you set its title and short summary. Start with the real question the page answers, then check that the saved words match it.\n\n**The path:** Real search need → Clear title and summary → Plugin checks → Saved output.\n\n**Use this when:** A prepared WordPress article needs its Rank Math search metadata configured or rechecked.\n\n## Inputs\n- The exact page/post, target reader, main question or focus phrase, and current [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief.\n- An existing working Rank Math setup and permission to edit the page’s fields. Rank Math is a WordPress add-on that checks page text and stores search titles and descriptions. Installation, licensing or paid Content AI is not assumed.\n- The current page URL and intended canonical URL, which is the main address search engines should treat as the page’s home. Keep the accepted schema (machine-readable page details) and indexing rules with the brief.\n- The editorial acceptance target and latest source draft. The legacy task uses score 70+ as an internal target, not a search-ranking guarantee.\n\n## First-run prompt\n\n> Use the article and agreed search need to set clear Rank Math metadata. Check the installed plugin’s actual tests, fix factual issues, and record the measured score. Keep existing URLs and site settings unless their change is already in scope. Verify saved and served output without promising a Google ranking.\n\n## Steps\n1. Read the page and choose the phrase that honestly describes its main need. Avoid expanding to unrelated keywords just to raise a score. Check whether an existing page already owns that topic.\n2. Open the Rank Math panel. Set the primary focus keyword. This is the phrase the plugin tests; it is not a command to Google to rank the page.\n3. Open General → Edit Snippet where available in the installed editor. Write a clear title and a unique description. Use the source’s under-60 and under-160 character aims as editorial guides, then inspect the displayed width. They are not Google’s fixed limits or a guarantee against truncation.\n4. Check that the title, opening and useful headings name the subject naturally. Describe images accurately in alt text rather than inserting a keyword that does not fit what the image shows. Keep an established URL unless a separate URL change is justified and authorized.\n5. Review the plugin’s actual tests and fix real omissions. The current beginning-of-content test generally checks the first 10%, not a universal first-paragraph rule. Do not add false facts, padded sections, paid AI, or awkward repetition to satisfy a score.\n6. Record the measured score and remaining flags. Compare it with the agreed internal target. If sound editorial choices or parser limits keep it below target, state the exact issue for review instead of looping forever or silently claiming a pass.\n7. Inspect the snippet preview, canonical URL and schema type against the actual page. Preserve valid site defaults unless this task includes their correction. Do not change global indexing or plugin settings to improve one score.\n8. Save and reopen the fields. After an authorized publication/update, inspect the served title, description and canonical output for this URL. Google may choose different title/snippet text; plugin preview and stored metadata are not proof of a search result or ranking.\n\n## Definition of done (QA checklist)\n\n- [ ] The focus phrase describes the actual page; title and summary are specific and readable.\n- [ ] Saved metadata and intended canonical output match the scoped page.\n- [ ] The measured score and unresolved flags are recorded honestly against the house target.\n- [ ] Alt text and content remain factual; no keyword stuffing, unasked URL change or paid feature was added.\n- [ ] Served metadata is checked when published, without claiming Google displayed it or rewarded it.\n\n## Example(s)\n\n**Fictional teaching example — not a measured plugin score.** Maple Cycle uses this sample metadata:\n\n- Focus phrase: `bike repair quote`.\n- Title: `Bike repair quote: what to send before your visit`.\n- Description: `Learn which photos and details help us plan your bike repair quote, and what we still need to check in the shop.`\n\nThe example is useful because the promise matches the article. A photo of Alex at a workbench gets descriptive alt text about that scene, not a string of search terms. If a real run later measures 68, the record must say 68 with the actual flags; it must not borrow an invented “70+ passed” result from this sample.\n\n## Handoff and Content Factory context\n\nThe publisher gets the metadata, score evidence and remaining flags. Next is [Review internal links with Link Whisper](https://local-service-spotlight.github.io/task-library/?task=step-14b-run-linkwhisper-for-internal-links#task-step-14b-run-linkwhisper-for-internal-links) where available, followed by [Check the full article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist).\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for a new article and after edits that affect its meaning or metadata. This does not create a rank-monitoring schedule or recurring paid analysis.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `step-13-categorize-post-and-add-tags`\n- **Browse later task:** `step-14b-run-linkwhisper-for-internal-links`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Step 14a: Configure RankMath SEO plugin](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Rank Math’s current post tests and snippet editor](https://rankmath.com/kb/score-100-in-tests/)\n- [Google’s title-link rules](https://developers.google.com/search/docs/appearance/title-link)\n- [Google’s snippet rules](https://developers.google.com/search/docs/appearance/snippet)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Actual plugin version, editor integration, score and generated metadata require the real site.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "step-13-categorize-post-and-add-tags",
     "after": "step-14b-run-linkwhisper-for-internal-links",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "1348e689d7a034dae49a74b9dce28ca00150355cee1857a337edd8613ae3c9d6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "162c048e93bab9f294180a048f4c38dbd821854a384ba05a566ca67b8d762c3c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1348e689d7a034dae49a74b9dce28ca00150355cee1857a337edd8613ae3c9d6",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1348e689d7a034dae49a74b9dce28ca00150355cee1857a337edd8613ae3c9d6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1348e689d7a034dae49a74b9dce28ca00150355cee1857a337edd8613ae3c9d6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 242,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 14b: Run LinkWhisper for internal links",
     "slug": "step-14b-run-linkwhisper-for-internal-links",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Review link ideas from Link Whisper. Add only the links that help a reader, then check them on the page.",
     "content": "---\nname: step-14b-run-linkwhisper-for-internal-links\ndescription: \"Review link ideas from Link Whisper. Add only the links that help a reader, then check them on the page.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 14b: Run LinkWhisper for internal links\n\nA link tool can suggest pages, but it cannot choose your story for you. This guide helps you pick links that make sense. Start with the page’s main topic, then read each suggested target before you add it.\n\n**The path:** Topic map → Review suggestions → Scoped link edits → Saved link checks.\n\n**Use this when:** A prepared article needs useful outgoing and incoming links, and the site uses Link Whisper.\n\n## Inputs\n- The exact article and current [SEO Tree](https://blitzmetrics.com/seo-tree/) map, plus the [entity-linking guide](https://blitzmetrics.com/entity-linking/) for choosing owned and identity destinations.\n- A working Link Whisper installation, license/features where required, and current link data. Link Whisper is a WordPress add-on that suggests and adds links. Check that its installed version supports the editor and content type.\n- Authority and access to change this article and any older pages chosen for incoming links.\n- The page’s publication state, current revision and a place to record each source sentence, anchor, target and result.\n\n## First-run prompt\n\n> Review Link Whisper suggestions for the exact article and page map I provide. Read targets and choose useful links; apply only scoped edits. Check older source pages before adding incoming links. Do not enable auto-linking or paid AI by default. Report inserted links separately from suggestions and staged edits.\n\n## Steps\n1. Open the existing Link Whisper setup and confirm it is ready for this post type. Verify that its content scan includes the current article revision; run the approved scoped scan or name the setup owner when data is stale or setup is missing. Do not accept launch-wizard defaults blindly: current options may create automatic linking rules.\n2. Read the article’s outgoing suggestions. These point from the article to other pages. Open each candidate and compare it with the sentence’s meaning and the main topic owner.\n3. Choose a small set of helpful links. Point method mentions to their maintained owned guide; use accurate identity destinations and precise primary proof where needed. Reject irrelevant, duplicate, misleading or competing-hub suggestions.\n4. Edit anchors into clear words that describe the target. Follow the maintained house guidance of roughly three to six descriptive words where it fits, without changing the sentence’s meaning to hit a word count.\n5. Apply only the reviewed outgoing links through the supported editor/plugin control. Save and check that the expected sentences and URLs survived. If the editor/builder is unsupported, route a manual source-aware linking task and do not claim the plugin succeeded.\n6. Review incoming suggestions, which would add a link on an older page pointing here. Confirm each older page is in scope and that the final target will be accessible to its readers. Avoid publishing a public link to a private draft.\n7. Apply the specific authorized incoming edits and verify the changed source pages. Record any separate owner’s pending action. Do not turn a single-page link pass into cross-site connection, autolinking, paid AI processing, or a global search-and-replace.\n8. Check every added URL and named fragment, first in the saved content and then in the served body when published. Update the inventory with actual outgoing/incoming paths and any pending work. Suggestions or map lines are not proof that links were inserted.\n\n## Definition of done (QA checklist)\n\n- [ ] The plugin setup, scan freshness and supported source are known; a missing/stale setup has a named owner and optional automation has not been silently enabled.\n- [ ] Every accepted suggestion has a source sentence, meaningful anchor and verified target.\n- [ ] The page has the required relevant upward/incoming paths, or exact unresolved edits are recorded.\n- [ ] Changes to older pages stayed in scope and do not expose a private draft link.\n- [ ] Saved and served links are verified as applicable, with no unsupported ranking or zero-orphan guarantee.\n\n## Example(s)\n\n**Fictional teaching example — no plugin was run.** A sample quote article gets three suggested destinations:\n\n| Suggested anchor | Destination | Decision |\n| --- | --- | --- |\n| how our quotes work | Main repair-quotes guide | Accept; it explains the current sentence |\n| our clear process | Unrelated tire-sale page | Reject; the shared word “process” is not enough |\n| before your shop visit | Visit-planning guide | Accept after reading the guide |\n\nAn incoming suggestion would link an older guide to the new article, which is still a private draft. The publisher stages that sentence and adds it when the target is public under the actual job scope. “Two outgoing saved; incoming staged” is the truthful result.\n\n## Handoff and Content Factory context\n\nThe publisher receives the changed sentences and live/draft link state. [Check SEO Tree placement](https://local-service-spotlight.github.io/task-library/?task=place-content-on-seo-tree-with-proper-links#task-place-content-on-seo-tree-with-proper-links) confirms the page’s place, then [Check the full article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist) verifies the article.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for a prepared article or defined link repair. A new article may require fresh plugin data; a tool installation is not a recurring linking schedule.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `step-14a-configure-rankmath-seo-plugin`\n- **Browse later task:** `place-content-on-seo-tree-with-proper-links`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Step 14b: Run LinkWhisper for internal links](https://local-service-spotlight.github.io/task-library/?task=step-14b-run-linkwhisper-for-internal-links#task-step-14b-run-linkwhisper-for-internal-links)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Link Whisper’s feature guide](https://account.linkwhisper.com/knowledge-base/link-whisper-starter-guide/)\n- [Link Whisper setup requirements](https://account.linkwhisper.com/knowledge-base/how-to-install-and-activate-link-whisper/)\n- [Link Whisper launch-wizard behavior](https://account.linkwhisper.com/knowledge-base/link-whisper-launch-wizard-guide/)\n- [Entity linking: choose the right person, company or guide](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- The actual plugin version, license, editor support, link scan and insertion results remain unverified until a real site run.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "step-14a-configure-rankmath-seo-plugin",
     "after": "place-content-on-seo-tree-with-proper-links",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "de662c0e1f557062aad7ccd4f5d0c076aa1ef56c307af99bb17d61dbc36a3c53",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "03a59f9cf722ee7cf7802b7b4021b160e558a56cf7256dd932373358f65f6425",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-14b-run-linkwhisper-for-internal-links#task-step-14b-run-linkwhisper-for-internal-links",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "de662c0e1f557062aad7ccd4f5d0c076aa1ef56c307af99bb17d61dbc36a3c53",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "de662c0e1f557062aad7ccd4f5d0c076aa1ef56c307af99bb17d61dbc36a3c53"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "de662c0e1f557062aad7ccd4f5d0c076aa1ef56c307af99bb17d61dbc36a3c53"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 243,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 17: Final formatting and QA checks",
     "slug": "step-17-final-formatting-and-qa-checks",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Check the page people see. Test its links and layout, then pass on the facts and next steps.",
     "content": "---\nname: step-17-final-formatting-and-qa-checks\ndescription: \"Check the page people see. Test its links and layout, then pass on the facts and next steps.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Step 17: Final formatting and QA checks\n\nA page may look right in the editor but break for a reader. This guide helps you check the live page on a phone and a computer. Start with its normal link and compare what you see with the version you meant to publish.\n\n**The path:** Accepted revision → Normal live page → Phone and desktop checks → Measured handoff.\n\n**Use this when:** An authorized article publication/update needs final visitor checks and reconciliation of the agreed distribution.\n\n## Inputs\n- The canonical public URL, latest accepted content revision, saved publication receipt and current [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n- The agreed channel list and exact article/video/social/group/send references with their actual states.\n- A browser that can open an ordinary visitor view at 1280×800 and 390×844, plus access to inspect links and media silently.\n- Authority to repair the scoped page, the maintained delivery/cache route, tracker and owner of later promotion or pending work.\n\n## First-run prompt\n\n> Use the final accepted revision, normal public URL and agreed channel list I provide. Check both exact first-screen sizes, the full body, links and silent media behavior. Make already-authorized repairs and recheck them. Save per-item evidence and truthful pending states; do not treat a WordPress save or cache-busted page as full public proof.\n\n## Steps\n1. Open the normal canonical URL as an ordinary visitor, not just a draft preview or special cache-busted link. Compare the title, opening, key edited sections and intended CSS/media to the latest accepted revision. A saved WordPress result and served page are separate checks.\n2. At 1280×800 and 390×844, inspect the first screen before clicking or scrolling. Capture the meaningful visual, readable labels, title/opening and absence of sideways overflow. A whole image need not fit every long page, but the useful visual content must be visible and understandable under the maintained rule.\n3. Scroll through the rendered body. Check headings, paragraph gaps, tables, image aspect ratios and any preserved builder blocks. Keep the voice and identity rules from [Article Guidelines](https://localservicespotlight.com/article-guidelines/). Fix observed layout failures in the actual supported source.\n4. Check every link in the scoped article, including fragments, calls to action and the exact article/video pair. Confirm targets match their labels and identity. Validate forms without creating a real lead when a supported no-side-effect check exists. Submit a real test only when it is in scope, label and clean it up through the maintained route, and verify the receiving record. Otherwise mark the form action UNKNOWN with its named owner; do not pass it from appearance alone.\n5. Check the actual video or hosted source player, caption policy, thumbnails and image descriptions. Keep the player muted with volume zero before any playback. If silence cannot be guaranteed, inspect metadata, frames and captions; mark playback unverified rather than starting sound.\n6. Confirm byline, category/tags where applicable, stable canonical URL and served search metadata. Recheck relevant Rank Math flags after content changes, while keeping the plugin score separate from the article’s factual and visual pass.\n7. Reconcile only the channels named in the distribution plan. Verify the direct Facebook/LinkedIn/YouTube links, group submission state and sent notifications as applicable. A future metric check, unanswered message or pending group moderation stays visible; do not claim all channels are done by assumption.\n8. Run [Check the full article checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist) against this exact final revision. Repair in-scope failures and recheck affected output. If normal visitors still see stale content, use only the maintained authorized delivery procedure; record a blocker when that procedure fails rather than bypassing its checks.\n9. Save the dated evidence, exact view sizes, revision and result for each channel. Hand verified items to the next owner with actual measurements and unresolved dependencies. Do not mark the entire article package complete while a required live check still fails.\n\n## Required first-screen visual gate\n\nEvery visitor-facing page, including home, money, relationship, archive and\nutility pages, must show a relevant authentic photograph, source-video poster\nor useful diagram above the fold. At 390x844 and 1280x800, test the anonymous\nunscrolled first visit with JavaScript on and off. A logo, social icon, decorative\nbackground, thin strip, broken image or empty player rectangle fails.\n\nUse the [canonical numeric standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/visuals-above-the-fold.md) and its\n[shared browser checker](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/scripts/rendered_visual_check.mjs) in the real builder/publisher:\n`rendered_visual_check.mjs --url URL --selector CSS --output DIRECTORY`.\nMeasure the complete preview with site chrome before release and the ordinary\npublic URL after the authorized release. Save both screenshot/JSON receipts.\nThe checker can measure a loaded photographic CSS background as well as images,\ndiagrams and video posters. Its geometry pass remains `REVIEW_REQUIRED` until\nan independent reviewer opens the actual screenshots and source evidence and\naccepts the relevance, authentic moment, useful crop, labels and permission.\nA source-order regex or an `<img>` count cannot mark this gate complete.\n\nYouTube uses youtube-nocookie.com with rel=0, cc_load_policy=1 and cc_lang_pref.\nNo media autoplays on first paint. Before any separate playback verification,\nmute and set volume zero; if that cannot be verified, use metadata, captions,\nframes or a loaded poster and record playback NOT_TESTED. Never play through\nthe user's speakers without their explicit current request.\n\n## Definition of done (QA checklist)\n\n- [ ] The live first 2–3 sentences pass `step-7-write-hook-and-establish-context`: actual reader/situation, reason to care, useful outcome and supporting mechanism; exact text and quoted reviewer evidence retained, and the body delivers its promise\n- [ ] Preview and ordinary-live first-screen geometry plus source-backed screenshot review pass on both viewports; actual evidence stored\n\n- [ ] The normal canonical page matches the final accepted revision, including the actual changed layout/media.\n- [ ] Both exact first-screen sizes show a meaningful visible visual and no sideways overflow.\n- [ ] Body links, calls to action, source player, identity/voice and metadata have evidence; any untested form or silent-playback limit is UNKNOWN with a named owner.\n- [ ] The full article checklist is tied to this final revision and has no hidden required failure.\n- [ ] Each agreed distribution item has its own true state, and the next owner has the links, evidence and pending work.\n\n## Example(s)\n\n**Fictional teaching example — no live site was tested.** Maple Cycle’s sample QA ledger has four lines:\n\n| Item | Observed sample result |\n| --- | --- |\n| Canonical article | Current accepted text visible |\n| 1280×800 first screen | Photo and opening readable |\n| 390×844 first screen | FAIL: a table makes the page scroll sideways |\n| Group post | Pending moderator approval |\n\nThe editor fixes the table and rechecks the phone view. The page can then pass its visual check, while the required group item remains pending. The final note separates those outcomes instead of saying “everything passed.” No screenshot, post, or measurement in this teaching example is real.\n\n## Handoff and Content Factory context\n\nThe named promotion/measurement owner receives only verified live links and actual results. [The Facebook boost shortlist](https://local-service-spotlight.github.io/task-library/?task=boost-top-3-5-facebook-posts#task-boost-top-3-5-facebook-posts) applies only to relevant eligible Page posts under its own scope; other unresolved items stay with their actual owner.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun after publication and after edits that could affect visitor output. Any later channel/metric check must have a real timer or named owner; this guide itself does not remain awake.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `place-content-on-seo-tree-with-proper-links`\n- **Browse later task:** `verify-all-items-on-blog-posting-checklist`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Step 17: Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Our YouTube caption-default method](https://blitzmetrics.com/youtube-captions-on-by-default/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Real canonical parity, viewport evidence, player/form checks and channel receipts require the actual live job.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "place-content-on-seo-tree-with-proper-links",
     "after": "verify-all-items-on-blog-posting-checklist",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "7928ffa07ebb52a1d0e5a55c5a11a9f731b6e1cdfc4814e4b1525039676435b0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "01eb04ab0229310b0ef4a0a29799a0cace96c7003fd1d18e7634f5eb25b7fbc7",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7928ffa07ebb52a1d0e5a55c5a11a9f731b6e1cdfc4814e4b1525039676435b0",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7928ffa07ebb52a1d0e5a55c5a11a9f731b6e1cdfc4814e4b1525039676435b0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7928ffa07ebb52a1d0e5a55c5a11a9f731b6e1cdfc4814e4b1525039676435b0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 244,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Upload processed video to YouTube",
     "slug": "upload-processed-video-to-youtube",
     "status": "needs-work",
     "stage": "Post",
     "article": null,
     "articleKind": "unknown",
     "desc": "Put the finished video on the right YouTube channel. Set its real details and check the chosen viewing state.",
     "content": "---\nname: upload-processed-video-to-youtube\ndescription: \"Put the finished video on the right YouTube channel. Set its real details and check the chosen viewing state.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Upload processed video to YouTube\n\nYour finished video needs a place where people can watch it. This guide helps you upload it to the right channel and link it to the article. Start with the final file and the viewing plan for this job.\n\n**The path:** Final source → Channel and details → Viewing state → Checked article pair.\n\n**Use this when:** A source-checked edited video is ready for the brand’s YouTube channel under an agreed draft/private/unlisted/public/scheduled plan.\n\n## Inputs\n- The final video, rights, facts, source transcript and caption review state. Keep the source file/version identifiable.\n- The exact channel and upload access through its approved account or role. Use [the channel setup task](https://local-service-spotlight.github.io/task-library/?task=set-up-youtube-channel-with-proper-branding#task-set-up-youtube-channel-with-proper-branding) only if this prerequisite is actually missing.\n- The planned title, description, real thumbnail, relevant playlist and checked article URL if already public.\n- The requested viewing state and any scheduled date/time/timezone, plus the article editor and content tracker.\n\n## First-run prompt\n\n> Use the final source file, exact channel and visibility plan I provide. Check for an existing upload, set accurate details, complete the already-authorized save/publication, and record the real ID and state. Keep preview checks silent and distinguish upload, processing, captions and article cross-links.\n\n## Steps\n1. Confirm the channel identity in YouTube Studio and check its content list for this source/version. A retry should resume or repair the known upload rather than create another copy.\n2. Choose Create → Upload videos and select the final file. Wait for the actual upload and processing state. Name the source revision in the private tracker, not in the public description.\n3. Enter a clear title and accurate description. The current limits are 100 characters for a title and 5,000 for a description. Include the specific article when it is live; do not send viewers to a private draft or say an article exists when it does not.\n4. Choose the real thumbnail and a fitting playlist where the channel supports them. Set audience, branded-content, altered/synthetic-content and other required disclosures from the actual content. If the article will embed this video, confirm the upload’s license/distribution setting allows embedding. Do not guess these settings from the client’s business category.\n5. Review language and captions. Use a verified caption file or correct available captions as the job permits. Tags may help disambiguation, but do not replace a clear title and description or prove the video will rank.\n6. Read the platform checks and any restrictions. Choose the viewing state already authorized for the job and save/publish it. If the task authorizes Public and checks pass, complete it without a new approval request. Unlisted is not private; a scheduled item is not live yet. Give a named receiver the scheduled time and timezone so the first firing is checked after the due time.\n7. Check the resulting video page, channel and visibility with media muted and volume zero. Confirm intended processing quality and caption availability before claiming a complete viewing check. If it is scheduled, keep the result scheduled until the receiver verifies the public page after the first firing. If silence cannot be verified, use metadata/captions/stills and state the playback gap.\n8. Give the video ID/URL to [Embed the source video](https://local-service-spotlight.github.io/task-library/?task=step-10-embed-source-video#task-step-10-embed-source-video) and [Set caption defaults](https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default). When the article is live, verify its embed and the video description link both point to the correct pair.\n9. Record upload ID, source version, channel, state, time, first-firing owner when scheduled, caption/check results and the article-pair status. If either side is not yet public, keep that cross-link step pending rather than invent a closed loop.\n\n## Definition of done (QA checklist)\n\n- [ ] The upload is the intended source/version on the correct channel, without an accidental duplicate.\n- [ ] Title, description, thumbnail, disclosures and embedding permission match the actual source, allowed use and article plan.\n- [ ] Saved visibility and time match the job; private, unlisted, scheduled and public states are distinct, and a schedule has a named first-firing receiver.\n- [ ] Caption and silent viewing checks have actual evidence or a specific unresolved limitation.\n- [ ] Article/video links are checked when both exist, and missing parts have a named owner.\n\n## Example(s)\n\n**Fictional teaching example — no video was uploaded.** Maple Cycle’s final sample file is `quote-guide-v3.mp4`. The intended title is “What to send before a bike repair quote.” The job asks for an unlisted review copy today, not a public launch.\n\nThe sample tracker therefore records “unlisted review copy; article draft pending.” Its description does not contain a made-up live article URL. Once the real article and public release are authorized, the publisher updates the description and the article embed, then checks the pair.\n\n“Upload finished” alone would not prove correct visibility, available captions, or a linked article. No invented video ID is supplied in this teaching example.\n\n## Handoff and Content Factory context\n\nThe article editor receives the verified video URL/ID and caption state. Distribution tasks use it only in the agreed viewing state; [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) checks the final article/video pair.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun for a finished video or its defined correction. A future release uses an actual configured date/time, timezone and named receiver who checks the first firing; this task does not establish recurring uploads.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 3 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `verify-all-items-on-blog-posting-checklist`\n- **Browse later task:** `post-to-facebook-page`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. The owned training references below remain the method until that gap is reviewed.\n- Exact Task Library record: [Upload processed video to YouTube](https://local-service-spotlight.github.io/task-library/?task=upload-processed-video-to-youtube#task-upload-processed-video-to-youtube)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [YouTube’s current upload controls](https://support.google.com/youtube/answer/57407?hl=en)\n- [Our YouTube caption-default method](https://blitzmetrics.com/youtube-captions-on-by-default/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Actual channel capability, processing/caption state and live visibility need the real upload; no dedicated canonical upload article is mapped.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 3,
     "phase": "Post",
     "before": "verify-all-items-on-blog-posting-checklist",
     "after": "post-to-facebook-page",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "7b83d892b01773fe5de41870bca7ba8ed8c78b32b2971a6b9e571e8226d6cd54",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "40f3657d12b510b16fecf5c9268de5c6e7a43f2a18b8f62f4e938aff44094104",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-84b2c95111073421c11227b6",
        "taskSlugs": [
         "upload-processed-video-to-youtube",
         "step-10-embed-source-video"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "unknown",
          "value": null
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-06T02:58:28.783349+00:00",
        "outcome": "One Optimize Live delivery includes five web pages, a full talk and eight Shorts. Current anonymous checks found the intended video embeds on all five pages and matching metadata for all nine videos. This is one historical source job supporting two tasks.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "Original project job, delivery thread and output URLs match. Multiple outputs and repeated delivery comments belong to one source job."
         },
         "output": {
          "state": "pass",
          "notes": "Five page responses contain the intended video ID and expected start parameters; nine video metadata responses identify the expected titles and channel. Playback, visibility settings and full editing quality were not tested."
         },
         "acceptance": {
          "state": "unknown",
          "notes": "The delivery received acknowledgment. No independent review against the exact recipe used was recovered; gratitude and a completed checkbox do not establish that acceptance."
         },
         "handoff": {
          "state": "pass",
          "notes": "The completed output list reached the project thread and received acknowledgment. The next reporting request is recorded; its later completion remains unknown."
         }
        },
        "evidenceUrls": [
         "https://dennisyu.com/optimize/",
         "https://localservicespotlight.com/why-isaac-hall-has-an-edge-in-ai-marketing-for-plumbers/",
         "https://jack-allard.com/named-at-optimize-live/",
         "https://isaac-hall.com/named-at-optimize-live/",
         "https://markosipila.com/named-at-optimize-live/",
         "https://www.youtube.com/watch?v=dyJrGllGbn4",
         "https://www.youtube.com/watch?v=Ww6yDpbkyZA",
         "https://www.youtube.com/watch?v=oD0Te0_rips",
         "https://www.youtube.com/watch?v=cNBcEdr_hIY",
         "https://www.youtube.com/watch?v=oY_Kk5A4Zq8",
         "https://www.youtube.com/watch?v=bfNrXi_akr0",
         "https://www.youtube.com/watch?v=7gyOAfD5yTI",
         "https://www.youtube.com/watch?v=h0kSeES2erE",
         "https://www.youtube.com/watch?v=ERdAMUq5a8Q"
        ],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 1,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-84b2c95111073421c11227b6"
      ],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7b83d892b01773fe5de41870bca7ba8ed8c78b32b2971a6b9e571e8226d6cd54",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7b83d892b01773fe5de41870bca7ba8ed8c78b32b2971a6b9e571e8226d6cd54"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7b83d892b01773fe5de41870bca7ba8ed8c78b32b2971a6b9e571e8226d6cd54"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 70,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Verify all items on Blog Posting checklist",
     "slug": "verify-all-items-on-blog-posting-checklist",
     "status": "complete",
     "stage": "Post",
     "article": "https://localservicespotlight.com/article-guidelines/",
     "articleKind": "reference",
     "desc": "Check the article with the current rules. Save what you found and name the work still left to do.",
     "content": "---\nname: verify-all-items-on-blog-posting-checklist\ndescription: \"Check the article with the current rules. Save what you found and name the work still left to do.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://localservicespotlight.com/article-guidelines/\nstatus: complete\n---\n\n# Verify all items on Blog Posting checklist\n\nSmall missed details can make a good article hard to trust or use. This guide helps you check the work before it ships. Start with the current rules, then save what you found for each check.\n\n**The path:** Current rules → Real evidence → Fix and recheck → Honest decision.\n\n**Use this when:** An article is ready for its prepublication check or a postpublication review needs a recorded checklist.\n\n## Inputs\n- The exact draft or live URL, accepted source revision and original material behind its facts, quotes and media.\n- The current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and [definitive article standard](https://blitzmetrics.com/definitive-article-guide/) when the page is a task recipe.\n- The page’s role, [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief, link/identity map, intended channels and actual publication authority.\n- The supported editor/checking tools, access to fix scoped issues, and a named owner for problems outside this scope.\n\n## First-run prompt\n\n> Review the exact article against the current maintained rules and its declared role. Save evidence for PASS, FAIL, UNKNOWN and justified NOT APPLICABLE items. Fix issues within the authority already given, then recheck what changed. Distinguish draft readiness from public delivery and do not fabricate a score, quote source or visual pass.\n\n## Steps\n1. Read the current maintained rules rather than a cached checklist from an old run. State the page’s role: a recipe, topic hub, story, reference or run record. Select applicable checks and keep the source/rule link beside each.\n2. Check the reader’s start. Does the title match the answer? Does the short opening explain who, why, the work and the useful result in plain words? Apply the maintained grade-5-or-lower opening rule to every document. A reading score flags difficulty; also check that a person new to the subject can explain the value and first action.\n3. Check facts, voice and proof against the source. Use first person on a personal-brand site when the evidence supports that person’s authorship. Keep named scenes, exact quotes, proper attribution and evidence-limited relationship language. Require no trophy-name paragraph and no repeated defensive caveats. Remove unsupported claims and public internal scoring labels unrelated to the article’s subject.\n4. Check identity, permission and testimonials. Verify the speaker’s identity, primary source and needed permission for each quote. Missing proof and domain/company-only attribution fail publication; keep the claim on HOLD. Do not repair it with invented reassurance. Preserve any materially necessary legal, regulatory, or compliance disclosure, scoped to the claim it qualifies.\n5. Check the meaningful lead visual at 1280×800 and 390×844 before scrolling. It must have real visible content and readable labels, not just a border. Review other media, captions, alt text and source players. Keep agent playback muted at zero volume; record untested sound or player behavior.\n6. Check body links and the [SEO Tree](https://blitzmetrics.com/seo-tree/): the correct parent, useful related pages, accurate first-mention term explanations and verified identity destinations. Read each new target and named anchor. Keep exact official proof/download links when needed; do not replace them solely to reach an internal-link count. Check the useful course/service or do-it-yourself action link when the maintained role requires one.\n7. Check the saved site fields and visible page: intended author, category/tags where supported, stable URL, metadata and supported Page/Post/builder source. Treat a Rank Math score as the agreed internal target, not proof of article quality or Google ranking.\n8. For a task recipe, check trigger, inputs/access, source-backed prerequisites, ordered method, measurable result, acceptance and handoff. Check the lower Content Factory context, bidirectional exact-task link, and relevant verified execution examples or an explicit example gap. Preserve the contributor task status separately: it does not certify the current article or candidate revision. A better opening alone does not certify a task guide.\n9. Record PASS, FAIL, UNKNOWN or NOT APPLICABLE with a reason and evidence for each check. UNKNOWN on a required item is unfinished; NOT APPLICABLE needs a real role/scope reason. Fix failures within the existing authority and recheck the affected item and anything the fix could break.\n10. Make the decision for this actual stage. A passed draft checklist means ready for the already-authorized publishing step, not proof of public delivery. Save the final checklist, revision, date, operator and unresolved owner/actions; write the run’s meta record even if the result is partial or blocked.\n\n## Required first-screen visual gate\n\nEvery visitor-facing page, including home, money, relationship, archive and\nutility pages, must show a relevant authentic photograph, source-video poster\nor useful diagram above the fold. At 390x844 and 1280x800, test the anonymous\nunscrolled first visit with JavaScript on and off. A logo, social icon, decorative\nbackground, thin strip, broken image or empty player rectangle fails.\n\nUse the [canonical numeric standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/visuals-above-the-fold.md) and its\n[shared browser checker](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/scripts/rendered_visual_check.mjs) in the real builder/publisher:\n`rendered_visual_check.mjs --url URL --selector CSS --output DIRECTORY`.\nMeasure the complete preview with site chrome before release and the ordinary\npublic URL after the authorized release. Save both screenshot/JSON receipts.\nThe checker can measure a loaded photographic CSS background as well as images,\ndiagrams and video posters. Its geometry pass remains `REVIEW_REQUIRED` until\nan independent reviewer opens the actual screenshots and source evidence and\naccepts the relevance, authentic moment, useful crop, labels and permission.\nA source-order regex or an `<img>` count cannot mark this gate complete.\n\nYouTube uses youtube-nocookie.com with rel=0, cc_load_policy=1 and cc_lang_pref.\nNo media autoplays on first paint. Before any separate playback verification,\nmute and set volume zero; if that cannot be verified, use metadata, captions,\nframes or a loaded poster and record playback NOT_TESTED. Never play through\nthe user's speakers without their explicit current request.\n\n## Definition of done (QA checklist)\n\n- [ ] The live first 2–3 sentences pass `step-7-write-hook-and-establish-context`: actual reader/situation, reason to care, useful outcome and supporting mechanism; exact text and quoted reviewer evidence retained, and the body delivers its promise\n- [ ] Preview and ordinary-live first-screen geometry plus source-backed screenshot review pass on both viewports; actual evidence stored\n\n- [ ] The rule version, page role and exact source revision are recorded.\n- [ ] Each required item has evidence and a truthful state; no required UNKNOWN or FAIL is hidden.\n- [ ] Task recipes have their exact task link, handoff and relevant verified examples, or a visible example gap; contributor status is not used as document-readiness proof.\n- [ ] Any NOT APPLICABLE result has a specific reason, rather than avoiding a difficult check.\n- [ ] Accepted fixes have relevant rechecks, including both exact first-screen sizes for visual changes.\n- [ ] The final decision describes draft readiness or live acceptance accurately and names outstanding owners.\n\n## Example(s)\n\n**Fictional teaching example — not an accepted article.** Maple Cycle’s quote guide gets this sample review:\n\n| Check | First result | After scoped repair |\n| --- | --- | --- |\n| Plain opening | PASS: reader and next step clear | Unchanged |\n| Lead photo on phone | FAIL: image hidden below a large blank box | PASS after the box is removed and 390×844 is checked |\n| Named quote | UNKNOWN: source message missing | Remains on HOLD; quote omitted from publishable version |\n| Video player | NOT APPLICABLE: this article is based on written source, not video | Reason retained |\n\nThis sample shows why a checklist needs judgment and evidence. Four checked boxes without these states would hide the missing quote proof. The example is invented and supplies no actual screenshot or acceptance receipt.\n\n## Handoff and Content Factory context\n\nThe publisher gets the reviewed revision and decision. If it is a draft, [the supported WordPress publication task](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress) completes the authorized publish. [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) checks the final served page and agreed distribution.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun before publication and after meaningful edits; use it again in final QA. Rerun checks affected by new work rather than claiming a past pass covers a new revision. No unconfigured perpetual loop exists.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `step-17-final-formatting-and-qa-checks`\n- **Browse later task:** `upload-processed-video-to-youtube`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://localservicespotlight.com/article-guidelines/\n- Exact Task Library record: [Verify all items on Blog Posting checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Task recipe and publishing standard](https://blitzmetrics.com/definitive-article-guide/)\n- [Our YouTube caption-default method](https://blitzmetrics.com/youtube-captions-on-by-default/)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Independent editorial acceptance and real source/view checks are still required; a generated checklist is not a passed execution.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": "step-17-final-formatting-and-qa-checks",
     "after": "upload-processed-video-to-youtube",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "fd1d4decd4df0f3849ce879213adf866505c95bc80b092f6acfc57eabe805140",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7bb52173e57290d00b20c165f01c609b66c5c44e5700ccf51e34cc6107443bf5",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "fd1d4decd4df0f3849ce879213adf866505c95bc80b092f6acfc57eabe805140",
      "articleKey": "localservicespotlight.com/article-guidelines",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "fd1d4decd4df0f3849ce879213adf866505c95bc80b092f6acfc57eabe805140"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "fd1d4decd4df0f3849ce879213adf866505c95bc80b092f6acfc57eabe805140"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/article-guidelines/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 246,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Enable YouTube captions by default",
     "slug": "enable-youtube-captions-by-default",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/youtube-captions-on-by-default/",
     "articleKind": "task-recipe",
     "desc": "Ask the YouTube player to show its real captions. Keep the page silent when it first opens.",
     "content": "---\nname: enable-youtube-captions-by-default\ndescription: \"Ask the YouTube player to show its real captions. Keep the page silent when it first opens.\"\ncategory: Content Factory — Post\nstage: Post\ndefinitive_article: https://blitzmetrics.com/youtube-captions-on-by-default/\nstatus: needs-work\n---\n\n# Enable YouTube captions by default\n\nCaptions help people follow a video with the sound off. This guide helps you set the player to show the captions it has. Start with the right video and check which caption tracks are really there.\n\n**The path:** Verified video → Caption settings → Saved player → Silent visitor check.\n\n**Use this when:** A page we control has a YouTube embed whose available captions should be requested by default.\n\n## Inputs\n- The correct video ID, page language and actual available caption-track evidence.\n- The existing iframe (embedded player) or click-to-play facade, which is the poster/control that loads it. Include any VideoObject schema: the page’s machine-readable description of the video and its embed URL.\n- The site’s supported source and edit authority. Check whether the maintained caption filter/helper already handles this embed.\n- The page URL, accepted source revision and a way to perform silent desktop/mobile checks.\n\n## First-run prompt\n\n> Inspect the exact embed source and real video I provide. Use the existing supported filter/helper where it applies, set the documented caption and silent-first-load policy, and complete the authorized save. Check normal visitor output and real caption availability. Never invent an ID, track, quote, or playback result.\n\n## Steps\n1. Read the maintained [YouTube captions guide](https://blitzmetrics.com/youtube-captions-on-by-default/). Identify whether the current site uses its WordPress filter, a shared app helper, or a one-off iframe. Verify that mechanism exists and applies before relying on it; do not deploy a new fleet plugin for one page without that setup being in scope.\n2. Confirm the video ID and page language from the real source. Inspect caption availability. A preferred language parameter does not create a caption track or prove that an automatic transcript is accurate.\n3. Use the privacy-enhanced embed host `https://www.youtube-nocookie.com/embed/VIDEO_ID`. Request `cc_load_policy=1` and `cc_lang_pref=en` or the actual page’s two-letter language code. Preserve other needed documented settings.\n4. Keep `rel=0`, which limits related videos to the same channel rather than disabling them. Set `autoplay=0` or omit autoplay for the initial player. A future viewer click can load a player, but agent checks still must keep it muted at volume zero.\n5. For an app facade, make its loaded player and VideoObject embed URL describe the same video and caption policy. They need not have byte-identical URLs when a documented click-only behavior differs. For a one-off iframe, put the intended parameters on its real src, not only a comment or data label.\n6. Save through the supported source and complete an already-authorized publish/build. Read the saved output and the normal public URL. For a facade, inspect the player-building source as well as schema; schema alone does not prove the clicked player used the settings.\n7. Check desktop and phone first load: no autoplay, right poster/player, readable controls and no overflow. Before any playback, verify mute and zero volume; otherwise inspect metadata/captions/stills and report the untested behavior.\n8. Where silent playback is possible, check whether the intended real caption track appears. Record “parameters present; captions unavailable” if that is the truth. Keep player captions separate from the complete source transcript needed for quoting, then pass results to [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks).\n\n## Definition of done (QA checklist)\n\n- [ ] Correct video ID and page language are verified.\n- [ ] The real player requests cc_load_policy=1 and the intended cc_lang_pref; privacy-enhanced host and rel=0 are present.\n- [ ] First load does not autoplay, and all agent playback checks stay muted at zero volume.\n- [ ] Saved source, built output and normal public result agree where applicable.\n- [ ] Actual caption availability/behavior is recorded honestly; no track, quote evidence or playback pass is invented.\n\n## Example(s)\n\n**Teaching template — not a real video or tested player.** Replace `VIDEO_ID` with the verified source ID before use:\n\n```text\nhttps://www.youtube-nocookie.com/embed/VIDEO_ID?autoplay=0&rel=0&cc_load_policy=1&cc_lang_pref=en\n```\n\n**Fictional teaching example:** a sample English page has a real video ID in its actual source, but that video has no caption track. The editor adds the intended parameters and verifies silent first load. The result is “settings saved; no captions available,” not “captions working.”\n\nIf the video later gets a checked track, test it again. Do not create an empty VTT file or treat player-generated words as a verified quotation. The template above must never be published with the literal `VIDEO_ID` placeholder.\n\n## Handoff and Content Factory context\n\nThe publisher gets the source revision, actual player URL, caption state and silent QA evidence. [Final formatting and QA checks](https://local-service-spotlight.github.io/task-library/?task=step-17-final-formatting-and-qa-checks#task-step-17-final-formatting-and-qa-checks) verifies the whole page; the article writer still uses the full approved transcript for quotes.\n\nThis task serves **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). Produce supplies the source, Process prepares it, Post places and checks it on the agreed channels, and Promote distributes proven work under its own scope. The task’s actual handoff above defines the next step; list order alone does not create a prerequisite.\n\n## When this runs\n\nRun when adding or changing an embed, its video, page language or player helper. No recurring clock is required by this skill.\n\n## First-run setup and continuity\n\nUse the exact account, source, destination and authority recorded for the job. Carry out publication, messages or repairs already authorized once their required checks pass; do not ask for the same approval again. If an action is outside that scope, finish the authorized work and state the specific remaining need. A login, plugin, or task file does not itself grant new authority.\n\nKeep the latest state, record IDs, revisions and next owner in the project tracker or files. Before a retry, check the current saved/sent/published item to avoid duplicates or overwriting another edit. A model has no guaranteed memory, scheduler or account access just because it is called persistent. A future check needs a configured timer or a named person.\n\nKeep all agent media previews muted with volume zero before playback. If this cannot be verified, use captions, metadata or still frames and state what was not tested. No first-load autoplay is part of these page instructions.\n\n## Write up the real run\n\nFor each actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this exact task, source revision, trigger, work, decisions, evidence, result and next owner. Failed, partial and blocked attempts still get a written record. A private draft is a valid writing outcome; public publication follows the existing scope.\n\nKeep one stable execution ID for the actual task run. Retries, checks and changed artifacts do not add runs. A separately scoped child task may have its own ID linked to its parent; writing the parent’s meta record is part of that same run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the distinction. Teaching examples below or above are not execution evidence and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/youtube-captions-on-by-default/\n- Exact Task Library record: [Enable YouTube captions by default](https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default)\n- Working writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [YouTube’s documented player parameters](https://developers.google.com/youtube/player_parameters)\n\n## Review and evidence still needed\n\nThe original contributor status in the header is preserved. It does not certify this proposed rewrite or prove that this account, publication, message, player or check has run. Every worked teaching example is explicitly invented; replace it with actual evidence when documenting a real execution.\n- Real caption-track availability and muted player behavior still need the target video and page.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "1d9a462ec9580db5a8214b0ca26150e08ff5a0ed2f16101472c38f4320b90f05",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "de8f16f07f63d8fa3bdee2d42f6f791e70b1c117c8f8746ce0457e12903bab21",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1d9a462ec9580db5a8214b0ca26150e08ff5a0ed2f16101472c38f4320b90f05",
      "articleKey": "blitzmetrics.com/youtube-captions-on-by-default",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1d9a462ec9580db5a8214b0ca26150e08ff5a0ed2f16101472c38f4320b90f05"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1d9a462ec9580db5a8214b0ca26150e08ff5a0ed2f16101472c38f4320b90f05"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/youtube-captions-on-by-default/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 75,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "content-factory-promote",
   "name": "Content Factory — Promote",
   "icon": "📣",
   "color": "#14b8a6",
   "description": "Amplification through ads, social engagement, and Dollar a Day campaigns",
   "tasks": [
    {
     "title": "Apply Metrics Decomposition",
     "slug": "apply-metrics-decomposition",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Find which part of the ad path changed. Use the facts to choose the next check.",
     "content": "---\nname: apply-metrics-decomposition\ndescription: \"Find which part of the ad path changed. Use the facts to choose the next check.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Apply Metrics Decomposition\n\nYour ad cost changed, but the total does not tell you why. This guide helps you break the result into clear parts. Start with the same goal and the numbers from each step.\n\n**The path:** Top-line change → matching parts → likely driver → next check.\n\n**Use this when:** A campaign’s cost or result changes and the team needs an evidence-backed explanation to guide the next action.\n\n## Inputs\n- Dated ad exports for the same goal and comparable periods, including spend, impressions, link clicks and counted results.\n- Website visits/events only when they belong to that measured path; currency, time zone, attribution settings and tracking-change log.\n- Written target and source definitions for each metric; read access and a calculation sheet are sufficient for this analysis.\n\n## First-run prompt\n\n> Break this changed result into matching components. Show units and arithmetic, reconcile the total where possible and label unmatched data. Distinguish a measured driver from a causal explanation. Return one useful next check with its owner; do not change campaigns from the analysis alone.\n\n## Steps\n1. Choose the goal’s actual top-line measure: cost per useful visit, qualified lead, sale or return on ad spend. Define what counts and keep different goal types separate.\n2. Align account, period, time zone, currency and attribution scope. A platform conversion that includes view-through credit is not automatically part of a click-only site path. Record that mismatch before calculating.\n3. For a consistently measured click path, collect spend, impressions, link clicks, landing-page visits and conversions. Keep missing counts unknown. A missing stage prevents full reconciliation; do not fill it from a different report just to get a zero residual.\n4. Compute cost per thousand impressions (CPM), click rate (clicks ÷ impressions), visit rate (visits ÷ clicks) and conversion rate (conversions ÷ visits). Use rates as decimals in the identity: cost per conversion = CPM ÷ (1000 × click rate × visit rate × conversion rate). This works only when all counts describe the same path and denominators are nonzero.\n5. Check the computed cost against spend ÷ matching conversions. Explain rounding, attribution or tracking differences instead of forcing agreement. For return on ad spend, use matched attributed revenue ÷ spend and keep profit separate.\n6. Compare each component with the baseline. A lower click rate directs attention to the creative, offer or delivery mix; a weaker visit-to-conversion rate directs attention to the measured destination path. These are diagnostic leads, not proof of one cause.\n7. Inspect the corresponding change log and evidence. Audience mix, auction conditions, site speed, consent, device mix and reporting lag can all matter. State a supported finding, a plausible explanation and what remains unknown separately.\n8. Write the [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/) line and name a specific next check or authorized repair. Preserve the worksheet so another reviewer can reproduce every number.\n\n## Definition of done (QA checklist)\n\n- [ ] The chosen metric and each component have matching units and scope.\n- [ ] Arithmetic handles missing or zero denominators without invented rates.\n- [ ] Any residual or attribution mismatch is explained, not hidden.\n- [ ] Measured changes and causal hypotheses are kept distinct.\n- [ ] The next check has evidence, owner and an acceptance test.\n\n## Example(s)\n\n**Fictional teaching example:** A test spends $100 for 10,000 impressions, 200 link clicks, 160 visits and eight matched leads. CPM is $10; the three rates are 0.02, 0.8 and 0.05. The formula gives $10 ÷ (1000 × 0.02 × 0.8 × 0.05) = $12.50 per lead, matching $100 ÷ 8. In a comparable period, only four leads occur with the same earlier counts, so cost becomes $25. The conversion stage changed. The next check is the form and offer evidence; the calculation alone does not prove the page caused the drop.\n\n## Handoff and Content Factory context\n\nGive the worksheet to [compare current vs last period performance](https://local-service-spotlight.github.io/task-library/?task=compare-current-vs-last-period-performance#task-compare-current-vs-last-period-performance) and [list top 3 5 recommendations for next 7 days](https://local-service-spotlight.github.io/task-library/?task=list-top-3-5-recommendations-for-next-7-days#task-list-top-3-5-recommendations-for-next-7-days). The actual site or campaign owner receives any specific verification or repair task.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when a material result changes or during the agreed optimization review. The read-only calculation can be a one-off; recurring exports need a real connector, trigger and saved baseline.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `engage-with-social-comments`\n- **Browse later task:** `compare-current-vs-last-period-performance`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Apply Metrics Decomposition](https://local-service-spotlight.github.io/task-library/?task=apply-metrics-decomposition#task-apply-metrics-decomposition)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real matched export or causal experiment is supplied.\n- The current SAE hub has broad access gates; this read-only analysis only needs the actual evidence named in Inputs.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Promote",
     "before": "engage-with-social-comments",
     "after": "compare-current-vs-last-period-performance",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "36c46e6450ef23cb675bf4b07f54d1ccc2bdd65725e9eeacd0f3b1cd8825aa72",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "117088a11734aa6a615f88fcae221e94a9edb9f4256e66a4ade9f1ade840f2cd",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=apply-metrics-decomposition#task-apply-metrics-decomposition",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "36c46e6450ef23cb675bf4b07f54d1ccc2bdd65725e9eeacd0f3b1cd8825aa72",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "36c46e6450ef23cb675bf4b07f54d1ccc2bdd65725e9eeacd0f3b1cd8825aa72"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "36c46e6450ef23cb675bf4b07f54d1ccc2bdd65725e9eeacd0f3b1cd8825aa72"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 79,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Boost top 3–5 Facebook posts",
     "slug": "boost-top-3-5-facebook-posts",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Pick the best posts for a small paid test. Keep the cost and the next check clear.",
     "content": "---\nname: boost-top-3-5-facebook-posts\ndescription: \"Pick the best posts for a small paid test. Keep the cost and the next check clear.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Boost top 3–5 Facebook posts\n\nSome of your posts helped people more than others. This guide helps you choose a few to test with a small ad budget. Start with the real posts and their recent results.\n\n**The path:** Recent results → qualified short list → small tests → checked verdicts.\n\n**Use this when:** The Post stage has produced usable organic work and the owner wants a bounded Facebook amplification batch.\n\n## Inputs\n- The actual Page’s recent organic post log, ideally the last 30 days, with URLs, format and metrics.\n- Ad account roles, original-post eligibility, media/claim rights, and a goal with its target.\n- Eligible relevant audiences, currency, minimums, total budget, dates and scope for any launches or stops.\n\n## First-run prompt\n\n> Rank these Facebook posts against the Page’s comparable baseline. Pick up to three to five that fit the goal and have usable rights. Price each actual supported test and carry out only authorized actions. Return post/ad IDs, dates, cost and due review; do not fill the list with weak posts.\n\n## Steps\n1. Read the available 30-day organic log and disclose any shorter or missing history. Separate paid amplification from organic response. Compare like formats instead of ranking every post by raw reach.\n2. Read shares, real questions, substantive comments and meaningful video metrics. Keep the goal in view: a funny post can be popular without helping the intended buyer.\n3. Shortlist up to three to five posts with evidence and rights. Use fewer if fewer qualify. Preserve proof and relationship limits; a famous face or co-appearance alone does not support a client endorsement.\n4. Choose relevant warm audiences first when they are eligible and fit the goal, as the source method recommends. A warm label does not prove enough people exist or make a mismatched audience right for the post.\n5. Verify the original post in the supported preview, including captions, crops and destination. Use current platform options and record any limitation rather than guaranteeing every post can be boosted.\n6. Plan the nominal $1/day for seven days where supported. Price all rows and check true budget limits. A staged one-per-day sequence and a parallel batch have different overlapping commitments and due dates.\n7. Launch only within the supplied scope, read back settings and monitor early delivery/ceiling errors. Preserve a stable full-window comparison while allowing protective actions already authorized.\n8. At each due date, stop rows that fail the agreed rule and identify qualified winners. About 90% retirement is a portfolio expectation, not a forced quota. A winner can be considered for $30 total over 30 days or a separately bounded increase; neither happens automatically.\n\n## Definition of done (QA checklist)\n\n- [ ] The selected posts have comparable organic evidence and fit the goal.\n- [ ] Up to three to five qualify without forced filler or invented proof.\n- [ ] Original-post eligibility, media and audience conditions are checked.\n- [ ] Combined budgets and individual end/review dates fit actual scope.\n- [ ] Saved state, delivery and final verdicts are recorded separately.\n\n## Example(s)\n\n**Fictional teaching example:** A shop has four recent helpful repair posts, but only two beat their comparable baseline and have clear music rights. The operator chooses those two, not a weak third to meet a quota. Their nominal seven-day plan is $14 total in an eligible setup, with actual platform limits checked. One test misses its goal and is paused under the agreed rule; the other is a candidate for a new dated continuation. The report does not call the second a proven sales winner from views alone.\n\n## Handoff and Content Factory context\n\nGive the batch report to [run dollar a day campaign on winning content](https://local-service-spotlight.github.io/task-library/?task=run-dollar-a-day-campaign-on-winning-content#task-run-dollar-a-day-campaign-on-winning-content) for any next campaign plan, and to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement) for matched scoring. Do not launch the same post twice because both task names apply.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun after a useful body of organic posts exists. A repeated boost batch needs an agreed budget and review cadence; downloading this task creates no ongoing spend.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `run-dollar-a-day-campaign-on-winning-content`\n- **Browse later task:** `boost-one-minute-videos-for-personal-branding`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Boost top 3–5 Facebook posts](https://local-service-spotlight.github.io/task-library/?task=boost-top-3-5-facebook-posts#task-boost-top-3-5-facebook-posts)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No current account controls or actual post rights were inspected in this source-writing batch.\n- The linked SAE access prerequisites remain a source conflict, not a reason to demand unrelated admin accounts for selecting posts.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "run-dollar-a-day-campaign-on-winning-content",
     "after": "boost-one-minute-videos-for-personal-branding",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "3fdc0f21807b1132a196c111313bc914a10c6da8825940cd7aac09921621667f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e893b7296df82212fb3fb1a9607a537698a8e890f51137d299695497c2ae8031",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=boost-top-3-5-facebook-posts#task-boost-top-3-5-facebook-posts",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3fdc0f21807b1132a196c111313bc914a10c6da8825940cd7aac09921621667f",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3fdc0f21807b1132a196c111313bc914a10c6da8825940cd7aac09921621667f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3fdc0f21807b1132a196c111313bc914a10c6da8825940cd7aac09921621667f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 51,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Compare current vs last period performance",
     "slug": "compare-current-vs-last-period-performance",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Compare two fair time spans. Show what changed, what is known and what to check next.",
     "content": "---\nname: compare-current-vs-last-period-performance\ndescription: \"Compare two fair time spans. Show what changed, what is known and what to check next.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Compare current vs last period performance\n\nYou want to know if this week went better than the last. This guide helps you compare the same kinds of results. Start with two clear time spans and the goal the work was meant to serve.\n\n**The path:** Matched periods → checked changes → evidence limits → next-week report.\n\n**Use this when:** A weekly or monthly promotion review is due, or the owner needs a fair before/after comparison.\n\n## Inputs\n- Current and prior source exports, matching metric definitions and the actual reporting goal.\n- Exact dates, time zone, currency, campaign changes, outages and known reporting delay.\n- Prior decisions and their actual execution evidence; read-only reporting access and the agreed report destination.\n\n## First-run prompt\n\n> Compare these periods using consistent definitions. Show absolute changes and percentages, handle zero baselines and note calendar or attribution limits. Treat the source’s 20% rule as a review flag, not proof of statistical significance. Return evidence-qualified findings and next actions without changing campaigns.\n\n## Steps\n1. Set exact current and prior dates. Prefer equal-length complete periods with comparable weekdays. Calendar months differ in length; show per-day measures or that limit if month-over-month reporting is required.\n2. Use the same account, currency, time zone, metric definition and attribution window. Keep incomplete current periods or late conversion data labeled provisional; do not make them look like closed periods.\n3. Compare the appropriate funnel measures: attention, useful engagement and actual business results. Separate spend, count, rate and cost. Do not add reach across overlapping channels as unique people.\n4. For each metric, show prior value, current value, absolute change and relative change: (current − prior) ÷ prior. If the prior value is zero, the percentage is undefined; show the counts. For rates, distinguish percentage points from relative percent.\n5. Use the source’s ±20% threshold as a triage flag alongside sample size, money and the goal. A 5% move can matter at scale; a 100% move from one to two results can be weak evidence. Neither threshold alone proves signal or noise.\n6. Use [apply metrics decomposition](https://local-service-spotlight.github.io/task-library/?task=apply-metrics-decomposition#task-apply-metrics-decomposition) to locate the changed component, then consult the actual change log. Label causes verified, plausible or unknown. Do not force a cause onto every flagged row.\n7. Separate supported improvements, deterioration, stable performance and unresolved evidence. A flat winner does not prove fatigue is coming. Check whether last period’s recommended action actually happened before crediting it.\n8. Deliver the table through the already authorized report route, or save the report draft when delivery is outside scope. Give the next-week planner a small set of evidence-backed findings, with provisional data and due rechecks visible.\n\n## Definition of done (QA checklist)\n\n- [ ] Dates and definitions are comparable or the precise limits are stated.\n- [ ] Absolute, relative and percentage-point changes are correctly calculated.\n- [ ] Zero baselines and incomplete periods are handled honestly.\n- [ ] 20% flags are not called statistical proof or mandatory cause attribution.\n- [ ] Actual actions and observed outcomes are separate in the report.\n\n## Example(s)\n\n**Fictional teaching example:** A shop records 10 leads last week and 12 this week: two more, or a 20% rise. Spend rises from $100 to $144, so cost per lead rises from $10 to $12, also 20%. More leads did not mean better cost. A click rate moves from 2% to 2.4%: that is 0.4 percentage points and a 20% relative rise. The report notes a holiday and no verified causal explanation, then names the next tracking and quality checks.\n\n## Handoff and Content Factory context\n\nSend the checked table to [review budget allocation by channel](https://local-service-spotlight.github.io/task-library/?task=review-budget-allocation-by-channel#task-review-budget-allocation-by-channel) and [list top 3 5 recommendations for next 7 days](https://local-service-spotlight.github.io/task-library/?task=list-top-3-5-recommendations-for-next-7-days#task-list-top-3-5-recommendations-for-next-7-days). Use the existing report owner and agreed weekly day; do not impose Friday when a different cadence was agreed.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nWeekly or monthly as agreed for the campaign. The source’s Friday example is a standing variant, not an automatic scheduling change. Preserve actual stored baselines; a model name does not guarantee them.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `apply-metrics-decomposition`\n- **Browse later task:** `list-top-3-5-recommendations-for-next-7-days`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Compare current vs last period performance](https://local-service-spotlight.github.io/task-library/?task=compare-current-vs-last-period-performance#task-compare-current-vs-last-period-performance)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real historical report or existing delivery route is supplied.\n- Missing or incompatible data may support only a partial comparison; it must remain labeled.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "apply-metrics-decomposition",
     "after": "list-top-3-5-recommendations-for-next-7-days",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "b3d32db231de348532f909f692548679b93fd63a01fa0aa937e6518918b82bd6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7d7898cd99e51853e153f89c1cb666e473dc2e830e9ef367c854c4f63c24c402",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=compare-current-vs-last-period-performance#task-compare-current-vs-last-period-performance",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b3d32db231de348532f909f692548679b93fd63a01fa0aa937e6518918b82bd6",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b3d32db231de348532f909f692548679b93fd63a01fa0aa937e6518918b82bd6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b3d32db231de348532f909f692548679b93fd63a01fa0aa937e6518918b82bd6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 59,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Create and send Thank You Machine videos",
     "slug": "create-and-send-thank-you-machine-videos",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Make a short, real thank-you. Send or share it only in the way the job calls for.",
     "content": "---\nname: create-and-send-thank-you-machine-videos\ndescription: \"Make a short, real thank-you. Send or share it only in the way the job calls for.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Create and send Thank You Machine videos\n\nSomeone helped you, and you want to say thanks in a personal way. This guide helps you make a short video that names what they did. Start with the real moment and who should receive the message.\n\n**The path:** Real moment → personal recording → scoped delivery → observed response.\n\n**Use this when:** A verified referral, review, useful contribution or milestone deserves a personal acknowledgment.\n\n## Inputs\n- The exact person, factual trigger and appropriate destination, plus the scope for a private message, public post, tag or later reuse.\n- The real speaker and recording device, approved facts/voice, and permission for any client details or third-party media.\n- Access to the specific authorized sending/posting channel and a tracker for the recording, sent copy and any response. Paid promotion is separate scope.\n\n## First-run prompt\n\n> Prepare a brief thank-you from these facts: who helped, what they did and why it mattered. Have the actual speaker record it; do not invent their experience. Use only the authorized destination and send/share scope, verify any sent copy, and record the response as unknown until observed.\n\n## Steps\n1. Verify the trigger in its source record and choose the right recipient. Name a concrete contribution rather than generic praise. Do not call a person a client, mentor or close friend unless that relationship is supported.\n2. Write a short recording brief with the person’s name, what happened, why it mattered and a sincere close. Aim for about a minute; do not force filler or invent business results to hit exactly 60 seconds.\n3. Have the actual person record in their own voice. Keep it natural, with readable framing and a quiet setting. An agent can prepare the brief and process the file; it must not fabricate a human recording or first-person experience.\n4. Check the file, captions and public/private details before delivery. Keep agent playback muted at volume zero. If spoken accuracy cannot be checked silently from a reliable transcript or by the speaker, record that review gap.\n5. For an already authorized private send, verify the exact thread/recipient and send the agreed file or accessible link. Read back the sent copy. A prepared message, queued upload and delivered message are different states; do not resend from uncertainty alone.\n6. Publish or tag the recipient only when that specific public use is in scope and the content is appropriate to share. A private thank-you does not automatically become public content. A recipient is free not to reply or reshare.\n7. Consider derivatives only when useful, permissioned and authorized. Your thanks to someone is not their testimonial about your service. Any paid boost requires its own proven-content, audience and budget checks; it is not a mandatory part of saying thanks.\n8. Save the trigger, actual recording, delivery state and any observed response. Route a future content idea or follow-up to its owner without manufacturing a testimonial, referral or new relationship claim.\n\n## Definition of done (QA checklist)\n\n- [ ] Trigger, recipient and relationship wording are supported by the source.\n- [ ] The actual speaker’s recording and factual message are used.\n- [ ] Private send, public post/tag, reuse and paid promotion each match existing scope.\n- [ ] Any send/post has a read-back receipt; unknown response stays unknown.\n- [ ] The result is not represented as a recipient endorsement or guaranteed referral.\n\n## Example(s)\n\n**Fictional teaching example:** A shop owner thanks a volunteer who helped arrange a community repair day. The brief says exactly what the volunteer did and why it helped. The owner records 48 seconds. The authorized scope is one private email, so the operator verifies the recipient and sent copy; there is no public tag or boost. A reply two days later says the video was appreciated. The log records that reply, not a testimonial about the shop’s repair quality or a new sale.\n\n## Handoff and Content Factory context\n\nGive any authorized public-content candidate to the actual content owner and [record one minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos) or the appropriate Post task. Eligible thank-you moments from [engage with social comments](https://local-service-spotlight.github.io/task-library/?task=engage-with-social-comments#task-engage-with-social-comments) are inputs, not automatic send triggers.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne acknowledgment per real trigger. A same-day aim is useful, but a standing monitor requires an explicit channel/cadence, actual access and duplicate checks. The guide creates no continuous watcher or follow-up schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Source article mapping on hold: https://blitzmetrics.com/thank-you-machine (currently redirects to the Face Socks gift recipe; it is not the canonical video procedure).\n- Exact task: [Create and send Thank You Machine videos](https://local-service-spotlight.github.io/task-library/?task=create-and-send-thank-you-machine-videos#task-create-and-send-thank-you-machine-videos)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [Content Factory](https://localservicespotlight.com/content-factory/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- URL semantic hold: the source’s /thank-you-machine/ route currently resolves to the face-socks gift recipe, not this video procedure. Keep this task source as the video method until the owning article mapping is corrected.\n- No real recording, send permission, recipient or response is supplied by the teaching example.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "d7235f6862d0f2ced9834d12a169c56c9bb630ecd17cd666612e9678882acd9e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5d035b1634e09e2cb4aecd7f6fc7f6385efcbbf056d108dd30b98c5dd604077f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-and-send-thank-you-machine-videos#task-create-and-send-thank-you-machine-videos",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d7235f6862d0f2ced9834d12a169c56c9bb630ecd17cd666612e9678882acd9e",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d7235f6862d0f2ced9834d12a169c56c9bb630ecd17cd666612e9678882acd9e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d7235f6862d0f2ced9834d12a169c56c9bb630ecd17cd666612e9678882acd9e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 2,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Create new saved audiences from Audience Insights",
     "slug": "create-new-saved-audiences-from-audience-insights",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Use real audience reports to plan a new test. Save clear settings and keep their limits visible.",
     "content": "---\nname: create-new-saved-audiences-from-audience-insights\ndescription: \"Use real audience reports to plan a new test. Save clear settings and keep their limits visible.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: needs-work\n---\n\n# Create new saved audiences from Audience Insights\n\nYour reports may show a group you have not served well yet. This guide helps you turn that clue into a clear test plan. Start with what the report can really show, not a guess about each person.\n\n**The path:** Dated insight → relevant hypothesis → saved settings → bounded next test.\n\n**Use this when:** A campaign needs a new relevant audience hypothesis and current aggregate reporting provides a useful clue.\n\n## Inputs\n- Actual Page/ad reporting with dates, metric definitions and available aggregate breakdowns.\n- The tested audience/creative map, real service area and goal.\n- Access to inspect or save supported audience settings; relevant permissions and eligibility for any first-party source. A saved audience does not authorize spend.\n\n## First-run prompt\n\n> Review these aggregate audience reports and propose a relevant new audience test. Label missing or suppressed data, read current supported settings and distinguish suggestions from controls. Save only within the supplied scope and return the exact definition, version and next decision; do not launch it automatically.\n\n## Steps\n1. Open the exact current reports and note their source, date range and metric. Some demographics, interests or page affinities may not be available. Do not recreate a retired Audience Insights screen or infer individual identities from aggregate results.\n2. Compare observed useful engagement or customer outcomes with the current targeting plan. A demographic skew among viewers is not proof that other people are poor customers, and a small sample may not support a change.\n3. Choose a specific business hypothesis, such as an adjacent area the business actually serves or a relevant available topic. Do not turn every age or gender pattern into exclusions, especially where the offer’s ad category restricts targeting.\n4. Read the current controls and any automated expansion labels. A saved collection of suggestions is not an exact membership list. Keep warm/custom audience sources separate from a saved targeting preset.\n5. Record a clear name and definition, such as service-area-topic-date, without embedding private customer names. Save the source report, settings, source rights and size/eligibility status. An estimate is not guaranteed delivery at $1/day.\n6. If saving is authorized, create or update only the intended preset and read it back. Check for an existing equivalent before creating a duplicate. Keep active campaign targeting unchanged unless that distinct action is in scope.\n7. Queue a proposal for a bounded switch test against an appropriate baseline. A preset may legitimately stay unused while budget, evidence or scope is pending; it is not a failed guide run because no ad launched.\n8. Review prior test history before retiring a preset. Mark an outdated hypothesis or unavailable setting in the log; do not delete a shared audience used by active campaigns or declare a segment permanently bad from one weak test.\n\n## Definition of done (QA checklist)\n\n- [ ] The insight comes from a dated available report with sample limits.\n- [ ] The hypothesis fits the offer and service area without unsupported exclusions.\n- [ ] Preset, custom audience, suggestion and strict control are distinct.\n- [ ] Saved settings are named, deduplicated and read back within scope.\n- [ ] The next test proposal has a goal and budget decision; it is not an automatic launch.\n\n## Example(s)\n\n**Fictional teaching example:** A shop’s report shows useful visits from Maple Town, where it also provides service. The operator checks the current settings and saves a Maple Town preset under the authorized setup scope. An interest is marked as a suggestion because the interface can expand it. The preset’s estimate is not called a known list of customers. Its test remains queued until the existing campaign owner assigns a budget and date. No active Cedar Town campaign is overwritten.\n\n## Handoff and Content Factory context\n\nPass the versioned preset and hypothesis to [execute switch boost to target new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boost-to-target-new-audiences#task-execute-switch-boost-to-target-new-audiences). The campaign owner determines whether and when its separate test fits the budget.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when new evidence suggests a useful hypothesis, or within the existing campaign review. No daily audience-creation schedule is required; old presets need review when settings or service areas change.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `create-facebook-instagram-campaigns-with-location-targeting`\n- **Browse later task:** `execute-switch-boost-to-target-new-audiences`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Create new saved audiences from Audience Insights](https://local-service-spotlight.github.io/task-library/?task=create-new-saved-audiences-from-audience-insights#task-create-new-saved-audiences-from-audience-insights)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No current Meta account reports or saved-audience UI were inspected in this batch.\n- Missing insight fields remain unavailable; they cannot be supplied by model inference.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "create-facebook-instagram-campaigns-with-location-targeting",
     "after": "execute-switch-boost-to-target-new-audiences",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "696c000ef35488f8827c24c71ef87e8664f292f7df756023ea5266e0bf09f2a3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "608c6ae11c33b31d0b4981e2f8bb8e40baa30efe2c41bb61e8436778a5d2c5ba",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-new-saved-audiences-from-audience-insights#task-create-new-saved-audiences-from-audience-insights",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "696c000ef35488f8827c24c71ef87e8664f292f7df756023ea5266e0bf09f2a3",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "696c000ef35488f8827c24c71ef87e8664f292f7df756023ea5266e0bf09f2a3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "696c000ef35488f8827c24c71ef87e8664f292f7df756023ea5266e0bf09f2a3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 42,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Engage with social comments",
     "slug": "engage-with-social-comments",
     "status": "needs-work",
     "stage": "Promote",
     "article": null,
     "articleKind": "unknown",
     "desc": "Give useful replies to real questions. Track what needs help and what can become a new topic.",
     "content": "---\nname: engage-with-social-comments\ndescription: \"Give useful replies to real questions. Track what needs help and what can become a new topic.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Engage with social comments\n\nPeople may ask good questions under your posts. This guide helps you reply with care and keep track of what needs more help. Start with the full thread so your answer fits what the person asked.\n\n**The path:** Real thread → factual reply → scoped action → topic or handoff.\n\n**Use this when:** An authorized comment review is due or a specific comment needs attention on a channel in scope.\n\n## Inputs\n- Access to the exact approved channels/posts and their complete comment threads, including existing replies.\n- The owner’s factual voice guidance, approved offer/support information and scope for replies or moderation.\n- Current support/escalation owner, moderation rules and a tracker for unresolved comments, useful questions and possible proof reuse.\n\n## First-run prompt\n\n> Review these exact comment threads, check for existing replies and prepare or post only responses already in scope. Answer from verified facts and the owner’s permitted voice. Keep private details out of public replies, preserve honest criticism and route unresolved issues to the real owner. Log questions without turning praise into an unapproved testimonial.\n\n## Steps\n1. Review only the named channels and recent/boosted posts in scope. Read the whole thread and check whether another worker already answered. Do not assume the source’s historical named group or every social account belongs in this job.\n2. Classify each item: answerable question, useful feedback, support issue, abuse/spam or no reply needed. The source’s daily review and 24-hour response aim can guide an agreed service standard, but not every short comment needs an artificial question in return.\n3. Use verified facts to answer the actual question in the owner’s permitted voice. Do not invent first-person experience, prices, delivery promises or relationships. A needed follow-up question should resolve the person’s need, not prolong the thread solely for engagement.\n4. Post within existing reply authority and read back the exact comment. If approval or a source fact is genuinely missing, save the draft and name that narrow gap; do not demand approval again for already authorized routine replies.\n5. Handle support details through the approved path without exposing customer records or requesting sensitive data publicly. Preserve honest criticism. Apply hiding/reporting/removal only under the actual moderation rule and authority, and record the reason.\n6. Like or pin only when supported by the channel and appropriate within scope. These actions are not mandatory proof of a successful reply. Do not claim comment activity guarantees lower ad costs.\n7. Capture recurring questions as topic ideas with source links. Treat praise as possible evidence requiring permission/context for reuse; a screenshot of a comment is not blanket permission to publish a testimonial everywhere.\n8. Log what was answered, what remains open, response timing and the real next owner. Keep observed replies, referrals and ad metrics separate; do not attribute cost changes to the conversation without supporting evidence.\n\n## Definition of done (QA checklist)\n\n- [ ] Every reviewed item has the correct thread and duplicate check.\n- [ ] Replies are factual, useful and within the owner’s existing voice/action scope.\n- [ ] Private details and honest criticism are handled under the real support/moderation policy.\n- [ ] Posted actions have read-back; unanswered items have a reason and next owner.\n- [ ] Topic/proof ideas remain distinct from approved reuse and claimed paid results.\n\n## Example(s)\n\n**Fictional teaching example:** A viewer asks whether the seat-fix tip applies to a carbon frame. The operator checks the approved technical source and replies that the frame maker’s torque guidance matters; no guessed number is supplied. A second comment reports a missed appointment, so the reply uses the existing support route without exposing the booking details. A third says “great tip” and needs no forced question. The log records one new video topic and a support handoff, not a guaranteed drop in ad cost.\n\n## Handoff and Content Factory context\n\nSend recurring questions to [map out one minute video topics using topic wheel](https://local-service-spotlight.github.io/task-library/?task=map-out-one-minute-video-topics-using-topic-wheel#task-map-out-one-minute-video-topics-using-topic-wheel). A verified gratitude moment can go to [create and send thank you machine videos](https://local-service-spotlight.github.io/task-library/?task=create-and-send-thank-you-machine-videos#task-create-and-send-thank-you-machine-videos) for a separately scoped acknowledgment. Support issues go to the actual service owner.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nUse the channels and daily/24-hour target only when agreed for the job. A recurring sweep needs a real trigger, access and shared state; this file does not watch every channel indefinitely.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `run-twitter-x-promotion-for-thought-leader-threads`\n- **Browse later task:** `apply-metrics-decomposition`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Engage with social comments](https://local-service-spotlight.github.io/task-library/?task=engage-with-social-comments#task-engage-with-social-comments)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [Content Factory](https://localservicespotlight.com/content-factory/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The source still has no dedicated definitive comment-engagement article.\n- The real channels, response authority and support facts must come from the job; the guide supplies none.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "run-twitter-x-promotion-for-thought-leader-threads",
     "after": "apply-metrics-decomposition",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "00c6a041b5f9a91fdef37bf70d38181c07fb0c0352af987d9d1f71d017e0090e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0565810d2259f690ded51769f38cdfa33530ceb3d3885b51e36de3e56fc43f9d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "00c6a041b5f9a91fdef37bf70d38181c07fb0c0352af987d9d1f71d017e0090e",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "00c6a041b5f9a91fdef37bf70d38181c07fb0c0352af987d9d1f71d017e0090e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "00c6a041b5f9a91fdef37bf70d38181c07fb0c0352af987d9d1f71d017e0090e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 54,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Execute switch boost to target new audiences",
     "slug": "execute-switch-boost-to-target-new-audiences",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Try a strong post with a new group. Keep the old proof and the new test easy to track.",
     "content": "---\nname: execute-switch-boost-to-target-new-audiences\ndescription: \"Try a strong post with a new group. Keep the old proof and the new test easy to track.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Execute switch boost to target new audiences\n\nA post has helped one group of people. You want to test whether it helps another group too. This guide helps you keep the post, cost and results clear as you try the next audience.\n\n**The path:** Verified pair → new audience hypothesis → separate test → updated map.\n\n**Use this when:** A Promote-stage post has a qualified result and an untested relevant audience is proposed.\n\n## Inputs\n- Original post/ad IDs, full-window result and cost target; the current audience/creative map.\n- The proposed saved/custom audience definition, date, eligibility and actual service-area fit.\n- Account roles, authorized new-test or replacement scope, total commitments, spend controls and start/end dates.\n\n## First-run prompt\n\n> Prepare the next audience test from this verified winning post. Preserve the original evidence and use the same eligible post where supported. Check whether this is an additional test or replacement, avoid duplicate launches, and act only within the supplied budget and action scope.\n\n## Steps\n1. Confirm the original pair met its stated goal with enough evidence for a new test. Keep its actual post, audience, metric, window and budget record available; a display name alone is not enough.\n2. Read the proposed audience definition and source. A saved preset from the insights task is a hypothesis, not proof of future results. Check service-area fit, permissions and any suggestion/expansion behavior.\n3. Choose a separate test by default when the plan is to preserve a still-running winner. If the authorized plan is a replacement, record the old stop and new start explicitly. Do not accidentally change the old audience and destroy the comparison record.\n4. Use the existing post ID in a supported preview, preserving it where the platform allows. If a format or account requires a new creative, label that derivative and the comparison limit; do not promise social proof transfers everywhere.\n5. Keep the creative and goal comparable while changing the planned audience variable. Use the method’s $1/day, seven-day idea only where accepted. Account for differing launch dates, overlap and auction delivery; it is not a randomized causal test.\n6. Add old and new spending commitments before activation. Reconcile current worker state and existing ads so this Promote task and the related Dollar-a-Day task do not launch the same test twice.\n7. Read back authorized saved/active settings, then check early delivery and budget safety. Keep the intended review window stable unless an agreed protective rule requires a change.\n8. At the due date, compare the same cost and result definition with the baseline. Record keep, stop or bounded hold, update the audience/creative map, and name the next stage only when its conditions are met.\n\n## Definition of done (QA checklist)\n\n- [ ] The winning pair and new hypothesis are source-backed and identifiable.\n- [ ] Original evidence is preserved; any derivative or replacement is explicit.\n- [ ] Actual budget controls, all commitments and dates fit scope.\n- [ ] No duplicate test is created by overlapping recipes or retries.\n- [ ] The updated map records the full result and its uncertainty.\n\n## Example(s)\n\n**Fictional teaching example:** The Promote log has one seat-fix winner in Cedar Town. A new Maple Town preset is eligible and relevant. The operator finds that another worker already staged that exact post/audience test under the Dollar-a-Day recipe, so the Promote task reviews and completes that record rather than launching a duplicate. The map links one actual test to the parent campaign. It does not count two paid executions merely because two guide names describe the work.\n\n## Handoff and Content Factory context\n\nThis is the Promote-stage entry to [execute switch boosts to new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boosts-to-new-audiences#task-execute-switch-boosts-to-new-audiences); use one real test record when the scopes overlap. Qualified pairs can feed [sequence content cold warm conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-cold-warm-conversion#task-sequence-content-cold-warm-conversion) or a reviewed budget decision.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne new audience test and its due readout. Further switches require a relevant hypothesis and existing authority, with no automatic spending loop supplied by a skill or model.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `create-new-saved-audiences-from-audience-insights`\n- **Browse later task:** `execute-switch-boosts-to-new-audiences`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Execute switch boost to target new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boost-to-target-new-audiences#task-execute-switch-boost-to-target-new-audiences)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No account preview or new audience delivery was tested in guide authoring.\n- An exact shared-post option may be unavailable; that is a documented limitation, not a reason to claim false continuity.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "create-new-saved-audiences-from-audience-insights",
     "after": "execute-switch-boosts-to-new-audiences",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "a6c6bf84084e5c18203d843aed416cc7e7e74f483588eae3384543467e26d1dc",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c3ab6f128ff74be64559059c91e988e2e8cef025c8d7291031a6c685f39fca36",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=execute-switch-boost-to-target-new-audiences#task-execute-switch-boost-to-target-new-audiences",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a6c6bf84084e5c18203d843aed416cc7e7e74f483588eae3384543467e26d1dc",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a6c6bf84084e5c18203d843aed416cc7e7e74f483588eae3384543467e26d1dc"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a6c6bf84084e5c18203d843aed416cc7e7e74f483588eae3384543467e26d1dc"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 48,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "List top 3–5 recommendations for next 7 days",
     "slug": "list-top-3-5-recommendations-for-next-7-days",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Turn the week’s facts into a short work list. Give each step an owner and a clear check.",
     "content": "---\nname: list-top-3-5-recommendations-for-next-7-days\ndescription: \"Turn the week’s facts into a short work list. Give each step an owner and a clear check.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# List top 3–5 recommendations for next 7 days\n\nA report should help you choose what to do next. This guide turns the week’s findings into a short list of useful steps. Start with last week’s list and what really got done.\n\n**The path:** Prior actions → current evidence → ranked next steps → checked handoff.\n\n**Use this when:** The campaign’s analysis and budget review are ready for the next agreed planning period.\n\n## Inputs\n- Current decomposition, period comparison and budget-review findings with source links and uncertainty notes.\n- The business goal, current constraints and available capacity; last week’s recommendations and actual execution evidence.\n- The real receiving owner, report/tracker destination and scope to create tasks or deliver the report.\n\n## First-run prompt\n\n> Review the prior actions against actual completion evidence, then rank the best supported next steps for this goal. Use up to three to five concise items with exact object, real owner, due date and acceptance measure. Keep predicted effects separate from observed results, and create or deliver only what the existing scope allows.\n\n## Steps\n1. Read last period’s list before writing a new one. Record whether each action was performed, partly performed, blocked, declined or still unknown. A task being assigned or checked complete is not enough without its relevant output evidence.\n2. Compare predicted and observed effects only where the action actually happened and the measurement window is suitable. Record a wrong prediction as a lesson; do not invent a cause to make the prior advice appear right.\n3. Draft candidate actions from the current findings. Link each to the changed metric or specific gap. Include useful verification or tracking repairs; not every week needs a new ad, a kill or a budget increase.\n4. Rank by likely effect on the stated goal, evidence strength, urgency, cost and available owner capacity. Select up to three to five meaningful actions. Use fewer if the evidence supports fewer instead of padding the report.\n5. Write each item as a clear verb and exact object, with the actual assigned owner, due date, input and acceptance test. Name the budget or authority dependency only when it is real; carry out work already authorized without asking again.\n6. State the expected direction or test hypothesis and its assumptions. Use a numeric forecast only when supported by a model or comparable evidence. “Expect CPA down 20%” is not a default sentence to fill in.\n7. Tag the action by its real purpose: stop, continue/scale, test, repair or verify. An all-verification week may be correct when the data is broken. Keep proposed actions separate from already performed work.\n8. Deliver through the agreed report route and create tracker items only within existing scope. Read back any created item or delivered report, then save the next review date and links needed to judge the list next time.\n\n## Definition of done (QA checklist)\n\n- [ ] Prior actions have evidence-qualified execution states.\n- [ ] Every new item traces to a current finding and the business goal.\n- [ ] The short list has no filler and fits real owner capacity.\n- [ ] Each item has an object, actual owner, date and measurable acceptance test.\n- [ ] Predictions, assignments, completed work and report delivery are separate states.\n\n## Example(s)\n\n**Fictional teaching example:** Last week’s form fix was completed and checked; the proposed new ad never launched because its budget was not assigned. This week’s list has two justified items: the site owner checks that the repaired form still records valid submissions, and the campaign owner closes the expired failed ad under the existing stop rule. Each has a due date and evidence test. No third item is invented to fill the title, and no 20% cost improvement is promised from two noisy days of data.\n\n## Handoff and Content Factory context\n\nThe named actual owners receive the exact tasks through the existing tracker/report process. The next cycle of [compare current vs last period performance](https://local-service-spotlight.github.io/task-library/?task=compare-current-vs-last-period-performance#task-compare-current-vs-last-period-performance) checks the resulting evidence, not merely the recommendation list.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nUse the campaign’s agreed weekly planning day and next-seven-day horizon. Friday is a source example, not a new required schedule. A recurring delivery or task-creation job needs a real configured trigger and destination.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `compare-current-vs-last-period-performance`\n- **Browse later task:** `use-dollar-a-day-to-influence-media-coverage`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [List top 3–5 recommendations for next 7 days](https://local-service-spotlight.github.io/task-library/?task=list-top-3-5-recommendations-for-next-7-days#task-list-top-3-5-recommendations-for-next-7-days)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual owners, deadlines and task-delivery authority are not supplied by a guide.\n- A predicted result stays a hypothesis until the action and its measured outcome are observed.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "compare-current-vs-last-period-performance",
     "after": "use-dollar-a-day-to-influence-media-coverage",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "d1ffb3c3cd03cf05b4263043344d5f97916fd465905cd1be9d53115c89ccc714",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "26f0bedbe2347baab95d41951b3ca93f07e8bb88cc98429cf9eedf7dc8d612c3",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=list-top-3-5-recommendations-for-next-7-days#task-list-top-3-5-recommendations-for-next-7-days",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d1ffb3c3cd03cf05b4263043344d5f97916fd465905cd1be9d53115c89ccc714",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d1ffb3c3cd03cf05b4263043344d5f97916fd465905cd1be9d53115c89ccc714"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d1ffb3c3cd03cf05b4263043344d5f97916fd465905cd1be9d53115c89ccc714"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 60,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Post roundup/listicle content",
     "slug": "post-roundup-listicle-content",
     "status": "needs-work",
     "stage": "Promote",
     "article": null,
     "articleKind": "unknown",
     "desc": "Make one helpful page from strong past posts. Link readers to the full guides they need.",
     "content": "---\nname: post-roundup-listicle-content\ndescription: \"Make one helpful page from strong past posts. Link readers to the full guides they need.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Post roundup/listicle content\n\nYour readers may need one place to find your best answers. This guide helps you turn strong past posts into a useful list. Start with one reader question and the pages that truly help answer it.\n\n**The path:** Reader question → proven source pages → useful roundup → checked publication.\n\n**Use this when:** A campaign or period has enough relevant published source material for a reader-focused roundup.\n\n## Inputs\n- Exact published source URLs and dated evidence of their usefulness; rights to images, clips and excerpts.\n- The reader question, existing topic hub and [SEO Tree](https://blitzmetrics.com/seo-tree/) placement so the roundup has a distinct job.\n- Current [Article Guidelines](https://localservicespotlight.com/article-guidelines/), the actual CMS/save rail, author/category requirements, publication scope and any named distribution channels.\n\n## First-run prompt\n\n> Build a helpful roundup for this reader question from the supplied verified pages. Keep the topic hub authoritative, use meaningful owned links and check media rights. Publish only through the supported existing CMS rail when authorized, then verify the canonical page at desktop and phone sizes. Distribution and paid promotion must match their own existing scope.\n\n## Steps\n1. Choose the exact question the roundup answers and check existing pages first. Update an appropriate existing roundup when it serves the same job; do not create a competing definitive page or rename a source hub to make room.\n2. Select the strongest relevant source pieces using the period’s actual evidence. The source suggests five to ten, but use only as many as the question warrants. Different metrics serve different goals; traffic alone does not prove qualified business impact.\n3. For each item, read the full source and write a brief takeaway that helps the reader decide whether to open it. Link with descriptive text to the maintained owned leaf or guide. Preserve primary external proof when needed instead of replacing evidence with a vague internal link.\n4. Place a clear grade-5 opening and a meaningful photo or diagram in the first desktop and phone screen. Each item needs useful visual context when it aids understanding, with accurate captions, alt text and rights. Keep video embeds silent during checks and captions available.\n5. Tie the roundup to its parent branch and relevant included leaves through the [SEO Tree](https://blitzmetrics.com/seo-tree/). Explain methods on their maintained owned pages at first mention. Do not add every sibling or turn the roundup into a wall of unrelated links.\n6. Review factual and relationship claims against their sources. A name, image or mention does not establish endorsement. Do not turn a selected example into a task recipe or certify an article merely because it appears in this roundup.\n7. Use the actual supported CMS pipeline for the existing type and builder. Preserve canonical URL, Page/Post identity and durable save source. Apply the maintained editorial checks; plugin scores and automatic link suggestions do not replace semantic and visual review.\n8. When authorized, publish and read back the saved source, then the ordinary canonical URL. Check links, readable first-screen content, media and phone/desktop overflow. Share only to named channels in scope, then measure the roundup’s own response before treating it as a paid winner.\n\n## Definition of done (QA checklist)\n\n- [ ] The reader question and distinct SEO Tree role are clear.\n- [ ] Each selected source was read and linked with relevant descriptive text.\n- [ ] Opening, meaningful lead visual, captions and claims meet current standards.\n- [ ] Publication preserves the supported CMS type, source and canonical URL.\n- [ ] Actual public read-back and channel receipts are separate from saved drafts and future boost eligibility.\n\n## Example(s)\n\n**Fictional teaching example:** A shop has three strong articles on loose seats, brake checks and tire wear. It makes “Three checks before a school bike ride” as a short entry page, linking each takeaway to the full guide and linking up to the bike-care hub. A simple three-part inspection diagram leads the page. The site has an existing Page built with its supported builder, so the operator updates that source rather than converting it to a Post. The roundup’s own response is still unknown after publication; the success of its linked pieces does not automatically qualify it for a paid boost.\n\n## Handoff and Content Factory context\n\nUse [verify all items on blog posting checklist](https://local-service-spotlight.github.io/task-library/?task=verify-all-items-on-blog-posting-checklist#task-verify-all-items-on-blog-posting-checklist) for the relevant final editorial check if that exact task is part of the publishing plan. Give the public URL and initial evidence to [boost top 3 5 facebook posts](https://local-service-spotlight.github.io/task-library/?task=boost-top-3-5-facebook-posts#task-boost-top-3-5-facebook-posts) only after an actual distributed post earns its own signal.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nA roundup is event-, campaign- or period-driven. Quarterly repetition is optional when the format helps readers and fresh evidence exists; no automatic cross-channel or paid schedule is implied.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Post roundup/listicle content](https://local-service-spotlight.github.io/task-library/?task=post-roundup-listicle-content#task-post-roundup-listicle-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n- [Content Factory](https://localservicespotlight.com/content-factory/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The source record still lacks a dedicated roundup definitive article; maintained Article Guidelines and SEO Tree provide the method context.\n- Actual publication and distribution receipts must come from the real run.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "b15f2f063de288b03826c93a10fdce0ba2909ed30858b48f33ddd4e3b4c05977",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "dd48af15c0ce3857d3ae172bfcaf1617b5736eae7cbf9d636d26ffdf36170a62",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b15f2f063de288b03826c93a10fdce0ba2909ed30858b48f33ddd4e3b4c05977",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b15f2f063de288b03826c93a10fdce0ba2909ed30858b48f33ddd4e3b4c05977"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b15f2f063de288b03826c93a10fdce0ba2909ed30858b48f33ddd4e3b4c05977"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 55,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Review budget allocation by channel",
     "slug": "review-budget-allocation-by-channel",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Check where ad money went and what it did. Plan any change from the same goal and real costs.",
     "content": "---\nname: review-budget-allocation-by-channel\ndescription: \"Check where ad money went and what it did. Plan any change from the same goal and real costs.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: needs-work\n---\n\n# Review budget allocation by channel\n\nYour ad money may be spread across several places. This guide helps you see what each one cost and what it did. Start with the goal and the real spend for the same time span.\n\n**The path:** Matched spend → comparable results → bounded proposal → measured recheck.\n\n**Use this when:** A campaign budget review is due or spending no longer appears aligned with the stated goal.\n\n## Inputs\n- Dated spend and result exports by channel/campaign with currency, attribution and result definitions.\n- The actual total budget, commitments, targets and stage roles; margin/revenue evidence when return is part of the goal.\n- Prior allocation decisions, current operator authority and any limits on changes, stops or new tests. Read access is enough to prepare the review.\n\n## First-run prompt\n\n> Reconcile spend and compare each line with its matching goal. Separate cost targets from return targets and preserve attribution limits. Propose a bounded before/after allocation, keeping uncommitted funds unspent unless their use is authorized. Execute only changes already in scope and record actual read-back.\n\n## Steps\n1. Build a table by channel and campaign with spend, result count, definition, matching cost or return, target and stage. Reconcile totals to source reports, avoiding double-counted campaign/ad-set subtotals.\n2. Keep currencies and windows consistent. Do not add each platform’s attributed conversions as unique business sales without a supported reconciliation. Keep paid, organic and blended measures explicitly separate.\n3. Compare like goals. For cost per acquisition, above the target is worse; for return on ad spend, below the target is worse. A cheap view is not a cheaper lead, and revenue divided by spend is not profit.\n4. Check result quality, tracking and minimum evidence before labeling a winner. An ad at its budget limit is not automatically underfunded, and an expensive qualified sale can be more useful than cheap irrelevant leads.\n5. Review stage coverage against the actual plan and eligible audiences. A full nurture program may need several jobs, but every account need not fund all stages or all platforms. A stage can remain unfunded when evidence, audience size or scope does not support it.\n6. Create a before/after proposal with each change’s reason, amount, dates and recheck. Preserve the small-test method and ≤2× ceiling for any separate increases, without claiming platform learning is guaranteed safe. Consider the current $30 total/30-day continuation before assuming vertical increases.\n7. Keep any research reserve tied to actual authority and proven-content rules. The old roughly-10% language is not permission to divert money into unproven ads. Stopped spend stays uncommitted unless a specific reallocation is covered.\n8. Apply only authorized exact changes and read them back; otherwise deliver the proposal through the existing route. Record what really changed and the next measurement window so the following report can judge the decision.\n\n## Definition of done (QA checklist)\n\n- [ ] Spend totals reconcile without duplicate subtotals or mixed currencies.\n- [ ] Cost and return goals use the correct direction and matched result type.\n- [ ] Quality/attribution gaps prevent unsupported winner labels.\n- [ ] The proposal fits real totals, stages, dates and change authority.\n- [ ] Proposed, applied and observed effects are separately documented.\n\n## Example(s)\n\n**Fictional teaching example:** Two channels spend $100 each. A produces five qualified leads, or $20 per lead. B produces ten, or $10 per lead, against a $15 target. A’s source quality is checked before a stop is proposed. B is a candidate for a further bounded test, not proof that twice the spend will buy twice the leads. Separately, a sales campaign has a 4× return target but records 3×, so it misses the target even though the number is “below target.” Unspent money is not moved without the existing scope covering that change.\n\n## Handoff and Content Factory context\n\nSend the proposal and actual changes to [list top 3 5 recommendations for next 7 days](https://local-service-spotlight.github.io/task-library/?task=list-top-3-5-recommendations-for-next-7-days#task-list-top-3-5-recommendations-for-next-7-days). Any supported increase follows [scale winners by increasing budget gradually](https://local-service-spotlight.github.io/task-library/?task=scale-winners-by-increasing-budget-gradually#task-scale-winners-by-increasing-budget-gradually); the next [compare current vs last period performance](https://local-service-spotlight.github.io/task-library/?task=compare-current-vs-last-period-performance#task-compare-current-vs-last-period-performance) checks its observed result.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nUse the existing weekly or monthly optimization cycle, or perform one specific review. A recurring reallocation rule needs explicit limits, actual execution capability and checked state; this file only describes the method.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `scale-winners-by-increasing-budget-gradually`\n- **Browse later task:** `create-youtube-campaigns-using-aducate-model`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Review budget allocation by channel](https://local-service-spotlight.github.io/task-library/?task=review-budget-allocation-by-channel#task-review-budget-allocation-by-channel)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta significant-edit help](https://www.facebook.com/business/help/316478108955072)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual budget authority, financial targets and cross-channel business reconciliation are not supplied.\n- The owned method’s 90/10 wording does not by itself define an enforceable account budget allocation.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "scale-winners-by-increasing-budget-gradually",
     "after": "create-youtube-campaigns-using-aducate-model",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "0d1af6db901cb093cb3518a71a4186ce90910de25bca860e3af42ce55e103949",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bd48c558cd019e3d2f8164af7ec5763a17666a3e2892c84604e3ac9f994f2ae7",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=review-budget-allocation-by-channel#task-review-budget-allocation-by-channel",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0d1af6db901cb093cb3518a71a4186ce90910de25bca860e3af42ce55e103949",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "0d1af6db901cb093cb3518a71a4186ce90910de25bca860e3af42ce55e103949"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0d1af6db901cb093cb3518a71a4186ce90910de25bca860e3af42ce55e103949"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 57,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Run Dollar a Day campaign on winning content",
     "slug": "run-dollar-a-day-campaign-on-winning-content",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Use small ad tests on strong posts. Check the results and keep control of the money.",
     "content": "---\nname: run-dollar-a-day-campaign-on-winning-content\ndescription: \"Use small ad tests on strong posts. Check the results and keep control of the money.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Run Dollar a Day campaign on winning content\n\nYou have posts that people already find useful. This guide helps you test them with a small ad budget and learn from the results. Start with the proof, the goal and the total you can spend.\n\n**The path:** Qualified content → priced tests → due verdicts → next bounded cycle.\n\n**Use this when:** The owner has a supported offer, useful customer proof and qualified content for an authorized paid-amplification plan.\n\n## Inputs\n- The prerequisite finding, source posts with rights and organic metrics, and the goal/target.\n- Exact platform/account, audience plan and measurement required for that goal; current roles and action scope.\n- Currency, budget controls, total commitments, start/end dates, stop rules and existing test log/reviewer.\n\n## First-run prompt\n\n> Run this bounded campaign from the supplied qualified posts and goal. Reuse current verified setup, price every test and avoid duplicate active rows. Carry out only authorized actions, check early delivery and spend, and give each due row an evidence-based verdict. Record the actual result without inventing future winners.\n\n## Steps\n1. Review [verify prerequisites product customers content](https://local-service-spotlight.github.io/task-library/?task=verify-prerequisites-product-customers-content#task-verify-prerequisites-product-customers-content) and the actual goal. A catalog complete label is not a client-readiness pass or spend permission. Preserve unresolved business or proof gaps that affect this plan.\n2. Select qualified original posts through [identify signals worth amplifying](https://local-service-spotlight.github.io/task-library/?task=identify-signals-worth-amplifying#task-identify-signals-worth-amplifying). Recheck rights, claims, captions and current paid eligibility. Do not use a new derivative’s inherited popularity as proof of its own performance.\n3. Confirm only the tracking and account assets needed for the chosen goal. A view/engagement test and a website-sale test have different requirements. Reuse valid setup instead of demanding every analytics system be installed first.\n4. Build the budget-supported audience/creative rows. The core method may layer one post per day; simultaneous tests are optional. Record each goal, amount, dates and due reviewer. Use the correct budget level for the chosen platform.\n5. Price the nominal $1/day for seven days where supported, plus all overlapping commitments and relevant fees. Verify actual spend controls and platform minimums. A 20-row nominal week is $140, not a single $7 test or a zero-risk commitment.\n6. Before any authorized launch, read the final settings and current shared log. After saving, record IDs/status and check early delivery, links and spending. Avoid unnecessary edits while retaining existing protective-stop authority.\n7. At each full-window due date, score the matching cost and useful result. Stop failures under the agreed rule; hold inadequate evidence with a date and spending decision. About 90% retirement is not a forced quota.\n8. For a qualified winner, consider the current $30 total/30-day continuation or a separately scoped increase at no more than 2× per step. New audiences and nurture stages require their own inputs. Close the cycle with a [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/) report; repeat only under a real existing arrangement.\n\n## Definition of done (QA checklist)\n\n- [ ] Offer/proof and content qualify without invented readiness or rights.\n- [ ] The goal’s actual measurement and audience conditions are checked.\n- [ ] Every commitment fits the real budget controls and end dates.\n- [ ] Early safety checks and full-window verdicts are both recorded.\n- [ ] Next cycles, increases and overlapping recipe counts do not happen automatically.\n\n## Example(s)\n\n**Fictional teaching example:** A shop has two qualified clips and $14 for their nominal seven-day tests in an eligible account. The shared log shows one clip already has a staged test, so the campaign completes that row and adds only the missing one. At review, one has useful evidence and one does not. The report pauses the weak row within scope and proposes a $30 total/30-day continuation for the qualified one. That proposal is not labeled applied, and no new campaign is counted merely because a second guide helped review the same run.\n\n## Handoff and Content Factory context\n\nThe campaign report feeds [apply metrics decomposition](https://local-service-spotlight.github.io/task-library/?task=apply-metrics-decomposition#task-apply-metrics-decomposition) when a component needs analysis, [execute switch boost to target new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boost-to-target-new-audiences#task-execute-switch-boost-to-target-new-audiences) for an eligible new audience, or [sequence content cold warm conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-cold-warm-conversion#task-sequence-content-cold-warm-conversion) when a stage path is ready. Choose the actual needed handoff, not all of them by default.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne bounded cycle by default. The method supports a weekly MAA loop for an ongoing campaign with real budget, owner, tools, durable state and trigger. A task file does not activate those parts.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `identify-signals-worth-amplifying`\n- **Browse later task:** `boost-top-3-5-facebook-posts`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Run Dollar a Day campaign on winning content](https://local-service-spotlight.github.io/task-library/?task=run-dollar-a-day-campaign-on-winning-content#task-run-dollar-a-day-campaign-on-winning-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No account, campaign or scheduler was activated during authoring.\n- The current SAE article’s universal all-tool shipping gate and the strategist skill’s universal no-agent-action wording are flagged for their source owners rather than silently adopted.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "identify-signals-worth-amplifying",
     "after": "boost-top-3-5-facebook-posts",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "7d94763c1be46079f47b3ae403e2e8625d408cf56fa596638edee2fc7a5da60b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "fd1bd6078ffe23e72b76ae433f1ab48983e921a885ffb72ed0c5f768384bfbf4",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-dollar-a-day-campaign-on-winning-content#task-run-dollar-a-day-campaign-on-winning-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7d94763c1be46079f47b3ae403e2e8625d408cf56fa596638edee2fc7a5da60b",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7d94763c1be46079f47b3ae403e2e8625d408cf56fa596638edee2fc7a5da60b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7d94763c1be46079f47b3ae403e2e8625d408cf56fa596638edee2fc7a5da60b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 40,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Sequence content: cold → warm → conversion",
     "slug": "sequence-content-cold-warm-conversion",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Put useful posts in a clear order. Match each one to what the reader needs next.",
     "content": "---\nname: sequence-content-cold-warm-conversion\ndescription: \"Put useful posts in a clear order. Match each one to what the reader needs next.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Sequence content: cold → warm → conversion\n\nA new reader may need an answer before they are ready to buy. A returning reader may need proof or a clear next step. This guide helps you match your posts to those needs.\n\n**The path:** Introduction → useful depth → fitting offer → checked stage results.\n\n**Use this when:** Several source posts have proven useful and the campaign needs a clear path across awareness, engagement and conversion.\n\n## Inputs\n- Actual posts with source links, rights and evidence; the real offer and destination.\n- Eligible current audience sources/rules with time windows, consent and size/availability limits.\n- Goal and metric for each used stage, total budget, action scope, dates and existing campaign records.\n\n## First-run prompt\n\n> Map the approved posts to what each audience needs next. Show actual stage metrics and supported audience rules, with missing eligibility visible. Keep the default nurture path without claiming all strangers must be excluded from every offer. Apply only the authorized setup and record actual delivery separately.\n\n## Steps\n1. Read each post and give it a primary job: introduce why it matters, explain how the work helps, or offer a relevant next action. The owned WHY/HOW/WHAT method is useful context; do not force a piece into a stage solely from its title.\n2. Build the content map with the source URL, stage, intended audience, result and actual next link. Missing proof or offer material remains a production gap; do not invent case studies to fill a sequence.\n3. List eligible audience sources for the intended path. Page engagement, supported video views and site events can have different rules. A pixel is not a universal prerequisite for an entirely on-platform engagement path.\n4. Read actual inclusion, exclusion and expansion behavior. Keep a suggested audience distinct from a strict boundary. Do not promise an automatic escalator that captures and retargets every person who saw a post.\n5. Use the source’s nurture path as the default: useful introduction, relevant depth, fitting offer. A specific high-intent goal may justify a direct offer to new people; document the reason instead of declaring all such ads invalid.\n6. Allocate only stages that the approved plan and eligible audiences can support. Use small tests where feasible and count all commitments. No rule requires a tiny account to fund three active stages before any one can be useful.\n7. Verify the configured stage map and actual saved settings. Where actions are authorized, check delivery and source/offer links without playing media aloud. Report created audiences, eligible audiences and actual stage delivery separately.\n8. Review the matching stage metrics on the agreed cycle. Low warm-audience growth may reflect eligibility or consent as well as content. A weak conversion stage may involve measurement, audience or offer. Diagnose before asserting a cause, then name one supported next step.\n\n## Definition of done (QA checklist)\n\n- [ ] Each source piece has a real primary job and suitable next step.\n- [ ] Audience eligibility and expansion limits are explicit.\n- [ ] The path does not promise universal viewer capture or automatic movement.\n- [ ] Funded stages fit actual budget/scope and have matched metrics.\n- [ ] The review distinguishes possible causes and actual delivery evidence.\n\n## Example(s)\n\n**Fictional teaching example:** A shop maps its founder story to introduction, a repair demonstration to depth and a tune-up page to the offer. The platform reports too few eligible site visitors for the intended offer audience, though it has enough on-platform engagement for a depth test. The map records that exact limit. It does not call the founder clip a failure because the site audience is small. A separate high-intent search visitor may still see the tune-up offer under the existing search plan.\n\n## Handoff and Content Factory context\n\nThis Promote-stage map uses the same method as [sequence content from awareness to conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-from-awareness-to-conversion#task-sequence-content-from-awareness-to-conversion); keep one parent plan when scopes overlap. A supported website-visitor follow-up can go to [set up remarketing ads for landing page abandoners](https://local-service-spotlight.github.io/task-library/?task=set-up-remarketing-ads-for-landing-page-abandoners#task-set-up-remarketing-ads-for-landing-page-abandoners).\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nDesign once and review within the active campaign’s agreed cadence. The source’s weekly flow check is optional until an actual recurring arrangement exists; no automatic sequence or schedule comes with this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `execute-switch-boosts-to-new-audiences`\n- **Browse later task:** `sequence-content-from-awareness-to-conversion`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Sequence content: cold → warm → conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-cold-warm-conversion#task-sequence-content-cold-warm-conversion)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Social Amplification Engine](https://blitzmetrics.com/social-amplification/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n- [Google Ads data-segment eligibility and duration](https://support.google.com/google-ads/answer/2472738?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real audience population or end-to-end stage delivery was verified in this authoring batch.\n- The source article’s broad viewer-retargeting claims need their own correction.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "execute-switch-boosts-to-new-audiences",
     "after": "sequence-content-from-awareness-to-conversion",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "5d6d97ac4a6a1c2f2ce720119fa459c95b9907c71d7ddeae56b7393a57bb79e1",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f1099192ad46eabc66ea48147ebbbebbc532c72b10d7bcf185f251541aef2083",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=sequence-content-cold-warm-conversion#task-sequence-content-cold-warm-conversion",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5d6d97ac4a6a1c2f2ce720119fa459c95b9907c71d7ddeae56b7393a57bb79e1",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5d6d97ac4a6a1c2f2ce720119fa459c95b9907c71d7ddeae56b7393a57bb79e1"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5d6d97ac4a6a1c2f2ce720119fa459c95b9907c71d7ddeae56b7393a57bb79e1"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 36,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set up remarketing ads for landing page abandoners",
     "slug": "set-up-remarketing-ads-for-landing-page-abandoners",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Plan a useful follow-up for past site visitors. Check the audience, cost and real result first.",
     "content": "---\nname: set-up-remarketing-ads-for-landing-page-abandoners\ndescription: \"Plan a useful follow-up for past site visitors. Check the audience, cost and real result first.\"\ncategory: Content Factory — Promote\nstage: Promote\ndefinitive_article: /social-amplification\nstatus: needs-work\n---\n\n# Set up remarketing ads for landing page abandoners\n\nSome people leave your site before they ask for help. A useful follow-up may answer what they still need to know. This guide helps you check who can be reached and whether a small test makes sense.\n\n**The path:** Checked visit signal → eligible audience → useful follow-up → measured result.\n\n**Use this when:** A defined landing page has eligible visitor data and the campaign proposes a bounded follow-up test.\n\n## Inputs\n- Exact landing page and actual conversion definition, including confirmed event or destination rather than assuming a thank-you URL.\n- The selected platform’s tracking and audience source, permissions, consent/policy requirements and current eligibility.\n- Approved follow-up creative, goal/target, supported budget controls, total amount and dates; actual campaign setup authority.\n\n## First-run prompt\n\n> Check whether this landing-page visitor follow-up is feasible. Define visit and conversion-exclusion rules, read actual audience eligibility and select a relevant time window. Use only the platforms and budget already in scope. Do not broaden a too-small audience or call every visitor an identified lost customer.\n\n## Steps\n1. Define the audience honestly: people with the recorded visit signal and no recorded conversion under the chosen rule. Some may have converted offline or through an unmeasured path; “abandoner” is a measurement label, not knowledge of each person’s intent.\n2. Check the actual visit and conversion event path under [Digital Plumbing](https://blitzmetrics.com/digital-plumbing/). A confirmed conversion event can support exclusion without a separate thank-you page. Installing a Meta pixel is not a universal prerequisite for a Google-only plan.\n3. Use only the selected platform and permitted data source. Follow its actual consent, eligibility and restricted-offer rules. Google’s website-audience rules support included and excluded actions; do not upload or expose private customer records to fill a gap.\n4. Choose a membership window that matches the offer’s buying cycle and the campaign plan. One day is a short recency-test option from the source, not a universal cutoff after which all intent is gone. Record the exclusion duration and any expected reporting lag.\n5. Read the audience’s real serving eligibility. Google’s current guide uses active-user requirements that differ from raw analytics visitor counts; a small one-day group may not be able to serve. An insufficient group stays pending unless the existing scope supports a different relevant window or plan.\n6. Choose proof or an answer that addresses a real unresolved question, with rights and claim checks. Avoid personal wording that implies you know an individual visited the page. Do not assume a testimonial is always the right follow-up.\n7. For a feasible authorized test, set the actual platform budget level and dates, including all commitments. Google budgets are campaign-level. Read back inclusion/exclusion, any audience expansion and the budget before calling it a remarketing-only test.\n8. Check early delivery and frequency, then review matched cost and useful outcomes against the goal. Remarketing is not guaranteed to be the cheapest channel. If it performs poorly, inspect tracking, audience, offer and delivery evidence before blaming the page or automatically rotating creative.\n\n## Definition of done (QA checklist)\n\n- [ ] Visit/no-recorded-conversion rules and their limits are documented.\n- [ ] Platform-specific tracking, data rights and actual eligibility pass or remain pending.\n- [ ] Window and converter exclusion fit the buying cycle and supported controls.\n- [ ] Budget, dates and audience-only claims match saved settings.\n- [ ] The result is measured against the goal without guaranteed cheapest-conversion or causal claims.\n\n## Example(s)\n\n**Fictional teaching example:** A shop’s quote page has 12 eligible recorded visitors in a day, but the selected Google audience does not meet the current serving requirement. The operator records the one-day plan as pending rather than reporting 12 reachable prospects. A longer relevant window may be proposed within the actual campaign’s scope; it is not silently substituted. Separately, the conversion rule uses the confirmed form-success event, so no extra thank-you page is invented. No ad is launched merely to test whether the audience might work.\n\n## Handoff and Content Factory context\n\nGive a feasible setup and its evidence to [review budget allocation by channel](https://local-service-spotlight.github.io/task-library/?task=review-budget-allocation-by-channel#task-review-budget-allocation-by-channel) and the campaign owner. A measurement defect goes to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking); a real audience-size constraint remains visible in the plan.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne setup and bounded test, then the campaign’s agreed review. A weekly frequency check is useful for a live arrangement, but this file does not install a recurring campaign or automatic creative rotation.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `sequence-content-from-awareness-to-conversion`\n- **Browse later task:** `run-multiple-simultaneous-tests`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/social-amplification\n- Exact task: [Set up remarketing ads for landing page abandoners](https://local-service-spotlight.github.io/task-library/?task=set-up-remarketing-ads-for-landing-page-abandoners#task-set-up-remarketing-ads-for-landing-page-abandoners)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Ads data-segment eligibility and duration](https://support.google.com/google-ads/answer/2472738?hl=en)\n- [Google Ads website-visitor segment rules](https://support.google.com/google-ads/answer/2454064?hl=en)\n- [Google Ads campaign budgets](https://support.google.com/google-ads/answer/2375454?hl=en)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real consent setup, event receipt, audience population or campaign delivery was tested.\n- Meta’s public audience help was access-blocked; its exact live rules must be checked in the authorized account.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Promote",
     "before": "sequence-content-from-awareness-to-conversion",
     "after": "run-multiple-simultaneous-tests",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "483d958aa7782e88f55d0ce885d5d6a017263d923f214a339fb06671f0443850",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "846501acc485f2ca8f18e6b89d16941ed0ea82a9fa663f7fc25bf3bf8a4d4a0c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-remarketing-ads-for-landing-page-abandoners#task-set-up-remarketing-ads-for-landing-page-abandoners",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "483d958aa7782e88f55d0ce885d5d6a017263d923f214a339fb06671f0443850",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "483d958aa7782e88f55d0ce885d5d6a017263d923f214a339fb06671f0443850"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "483d958aa7782e88f55d0ce885d5d6a017263d923f214a339fb06671f0443850"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 23,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "digital-plumbing",
   "name": "Digital Plumbing",
   "icon": "🔧",
   "color": "#8b5cf6",
   "description": "Technical infrastructure that must be in place before any marketing can succeed",
   "tasks": [
    {
     "title": "Add Click-to-Call Links for Mobile",
     "slug": "add-click-to-call-links-for-mobile",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Make the phone number on your site easy to tap. Check that it opens the right number.",
     "content": "---\nname: add-click-to-call-links-for-mobile\ndescription: \"Make the phone number on your site easy to tap. Check that it opens the right number.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Add Click-to-Call Links for Mobile\n\nDo people have to copy your phone number to call you? This guide helps a site owner make that number a link. Start with the number your team answers, then check each place it shows.\n\n**The path:** Right number → Tap link → Dialer → Call record.\n\n**Use this when:** a site launches, the business number changes, or phone visitors cannot easily start a call.\n\n## Inputs\n- The approved business number, country code and intended team or branch. Identify any tracking-number service already in use.\n- The live page list and access to the template, menu or content block that owns each number. Save its prior value.\n- A phone or device emulator for link checks; an agreed receiving person and test window if a real call is in the existing scope.\n\n## First-run prompt\n\n> Find each phone number on the supplied pages. Make the intended numbers usable as call links within the approved edit scope. Check visible text, link targets and mobile access. Keep tap evidence separate from completed calls and hand over exact gaps.\n\n## Steps\n1. List the phone locations: header, contact page, footer, service pages and sticky controls. Match each to the correct branch or team; do not replace distinct valid branch numbers with one global number.\n2. Choose the editable source for each location. A shared header should be changed once at its owning template, not patched separately in generated pages. Save the before state for rollback.\n3. Wrap each intended number in a telephone link using its real country code, such as the fictional link in the example. Keep readable number text. Do not force every country to use +1 or turn an extension into a different phone number.\n4. Check the control at phone width. Keep its label clear, enough space to tap and visible keyboard focus. Place the main call action where the page purpose calls for it, without covering page text or privacy controls.\n5. If dynamic number insertion is installed, check both the displayed number and its telephone target after the swap. Preserve the approved attribution setup and the stable business identity record.\n6. Save through the supported page or template route. Open the ordinary public URL and confirm that all changed locations contain the expected link, with no stale alternate mobile header.\n7. Tap without placing a call first: verify the dialer shows the correct number, then cancel. If end-to-end calling is authorized, place a clearly identified test during the agreed window and record who received it. A dialer check alone leaves call delivery unverified.\n8. If measurement is in scope, use the existing tag or analytics setup to record a phone-link click once. Inspect its received event. Use a call-tracking receipt for connected calls; never label every click as a qualified lead.\n\n## Definition of done (QA checklist)\n\n- [ ] Every intended location has a usable telephone link to the correct number.\n- [ ] Mobile display, keyboard focus and tap access work without covering content.\n- [ ] Any number swap changes the text and link together.\n- [ ] Dialer, connected-call and received-event evidence have distinct results and timestamps.\n- [ ] Before/after source and the next owner are saved; unresolved call routing stays explicit.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair uses the reserved teaching number +1 202-555-0148. Its footer says “202-555-0148” but links to an old number. The replacement is `<a href=\"tel:+12025550148\">Call 202-555-0148</a>`. The lesson check finds the right target in the header, footer and contact page: 3 of 3. Opening the dialer proves those links, but no call has been placed. The result therefore says “links pass; call delivery not tested,” rather than “three leads.” Never dial this teaching number.\n\n## Handoff and Content Factory context\n\nGive the site owner the checked locations. If call attribution is needed next, use [set up call tracking for phone conversions](https://local-service-spotlight.github.io/task-library/?task=set-up-call-tracking-for-phone-conversions#task-set-up-call-tracking-for-phone-conversions). If the dialer works but the call fails, route the receiving-line issue to the actual phone-service owner.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun once for the setup and after a number, header, theme or tracking-service change. Include it in an existing site check if one is configured; this file creates no recurring job.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Add Click-to-Call Links for Mobile](https://local-service-spotlight.github.io/task-library/?task=add-click-to-call-links-for-mobile#task-add-click-to-call-links-for-mobile)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- A real deployment needs the supplied number, owning template and any requested call-delivery evidence.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f0160c234bf796aebc65629393167acca63c0852f3460495577625887520c8e8",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "82805962f4b939ba22300e16f12097bc3b73f5d2a986df784788d41435a01494",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-click-to-call-links-for-mobile#task-add-click-to-call-links-for-mobile",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f0160c234bf796aebc65629393167acca63c0852f3460495577625887520c8e8",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f0160c234bf796aebc65629393167acca63c0852f3460495577625887520c8e8"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f0160c234bf796aebc65629393167acca63c0852f3460495577625887520c8e8"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 98,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Add Schema Markup (Person/LocalBusiness)",
     "slug": "add-schema-markup-person-localbusiness",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Help search tools read the facts on your site. Add the right person or business record and check it.",
     "content": "---\nname: add-schema-markup-person-localbusiness\ndescription: \"Help search tools read the facts on your site. Add the right person or business record and check it.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Add Schema Markup (Person/LocalBusiness)\n\nSearch tools can mix up a person and a business. This guide helps a site owner add a small fact record to the page. Start with facts and profile links that you can prove.\n\n**The path:** Proven facts → Right entity → Page record → Validation.\n\n**Use this when:** a site lacks structured facts, has conflicting entity records, or changes its public business information.\n\n## Inputs\n- The canonical public name, page URL, entity type and verified same-entity profile links. Keep private addresses and personal contact details out unless approved for publication.\n- The existing structured-data output and its owner: SEO plugin, theme or code. Access only to the source needed for this change.\n- Public page content that supports each proposed fact and the search feature, if any, that you intend to support.\n\n## First-run prompt\n\n> Read the existing page and structured records. Add or correct the actual person or business entity using supported facts and the current owning source. Keep distinct entities separate. Validate syntax and any applicable Google feature without promising a Knowledge Panel or rich result.\n\n## Steps\n1. Read the visible page and all existing JSON-LD, microdata or plugin output. List existing entity IDs so a new record will not create a second conflicting business.\n2. Choose the right entity: Person for an individual, an appropriate LocalBusiness type for an eligible local business, or Organization when that better fits. A founder and their company are separate records, connected only by a true stated relationship.\n3. Build a fact table with value, public source and entity. Define `sameAs` as a link that identifies this same person or business. A news mention or a person’s employer page is not automatically the same entity.\n4. Edit the current owning plugin or code field. Use a stable URL-based identifier and absolute public URLs. Include only supported properties; an invented job title, street address or rating is not a way to satisfy a validator.\n5. For a relevant Google feature, read that feature’s current required and recommended fields. Generic Person markup is not itself a promise of a supported rich-result feature. Keep non-applicable recommendations separate from real errors.\n6. Save the change through the supported publishing route. Read the ordinary public page and compare the served record with the intended values, including correct characters and valid JSON.\n7. Validate syntax and entity relationships, then use Google’s Rich Results Test only for applicable features. Inspect warnings individually and fix factual or syntax defects at the source. “No supported item detected” is not proof that generic schema is invalid.\n8. Check representative templates for duplicate or stale records and visible facts that disagree. Save the final entity IDs, public URLs, validator results and remaining search-feature limits.\n\n## Definition of done (QA checklist)\n\n- [ ] Each record represents the correct entity and agrees with visible, supported facts.\n- [ ] Same-entity profile links are separated from relationship and reference links.\n- [ ] JSON parses and no conflicting duplicate entity has been added.\n- [ ] Applicable validation errors are resolved; non-applicable feature results are labeled accurately.\n- [ ] Public read-back and the owning source are recorded; no ranking or Knowledge Panel outcome is claimed.\n\n## Example(s)\n\n**Fictional teaching example.** A workshop site describes an owner named Lee Hart and the company Oak Repair. A minimal business record is `{\"@context\":\"https://schema.org\",\"@type\":\"LocalBusiness\",\"@id\":\"https://example.com/#business\",\"name\":\"Oak Repair\",\"url\":\"https://example.com/\"}`. A separate Person record holds Lee’s facts. The company’s LinkedIn Page belongs with the business; Lee’s personal profile belongs with the Person. This teaches record identity and valid JSON. It is deliberately not a complete Google LocalBusiness feature example, and it proves no actual search display.\n\n## Handoff and Content Factory context\n\nGive the maintained entity record to the content and site owners. Use [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) if public business facts conflict; use the owned entity-linking method for article links.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once, then review when names, locations, profiles or the schema-owning plugin change. Use an actual maintenance trigger if recurring checks are wanted.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Add Schema Markup (Person/LocalBusiness)](https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Schema.org sameAs](https://schema.org/sameAs)\n- [Google structured-data introduction](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The project must supply verified facts and the actual schema source. A dedicated task article is not established by the broad hub link.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4f1e03ac1152bd5c7f27bd6ed22434494efcc1340b8539ac56d5f5a706622686",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6988dd705a9cf3ca4bd03317a5b7622cc90a6b0fcad437744997bf163672f4fb",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4f1e03ac1152bd5c7f27bd6ed22434494efcc1340b8539ac56d5f5a706622686",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4f1e03ac1152bd5c7f27bd6ed22434494efcc1340b8539ac56d5f5a706622686"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4f1e03ac1152bd5c7f27bd6ed22434494efcc1340b8539ac56d5f5a706622686"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 99,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Claim and Brand Facebook Page",
     "slug": "claim-and-brand-facebook-page",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Set up the right Facebook Page for your business. Check its name, photos, links and access.",
     "content": "---\nname: claim-and-brand-facebook-page\ndescription: \"Set up the right Facebook Page for your business. Check its name, photos, links and access.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Claim and Brand Facebook Page\n\nPeople may find an old or wrong Page when they search for your business. This guide helps you fix the right Facebook Page. Start by finding the Page your business should own and checking who can edit it.\n\n**The path:** Find Page → Check control → Update facts → Public check.\n\n**Use this when:** a business needs a Page, has an unclaimed listing, or needs its existing Page brought into line with current facts.\n\n## Inputs\n- The business identity record, canonical website and any existing Page IDs or URLs.\n- A legitimate account with the needed Page permissions, or the actual owner who can provide them. Record access without sharing passwords.\n- Rights-cleared logo, cover photo, business description, public contact details and the requested scope of changes.\n\n## First-run prompt\n\n> Find the existing business Page before creating one. Verify access and the real business facts, then complete authorized branding edits. Report pending access separately from public branding. Do not merge Pages, transfer control, send invitations or run ads unless those actions are included in the job.\n\n## Steps\n1. Search the known Page URL, business name and location. Record likely matches and why each is the same business or a distinct valid location, brand or person. Multiple results do not prove that they should be merged.\n2. Open the actual Page management view and confirm the Page ID and current role. Meta distinguishes Facebook access from task access, and full control can manage permissions. An invitation or request is pending until accepted and usable.\n3. If no Page exists, use Meta’s supported create-Page flow for the real business. If one exists but access is missing, use the supported request or owner-grant route within current authority. Keep a named dependency for missing control; do not create a competing Page as a shortcut.\n4. Update the public business name, category, website and contact details from the identity record. Select an available clear handle. Preserve service-area address privacy and supported platform formatting rather than forcing identical characters everywhere.\n5. Add the approved logo and cover image, checking crop and legibility on phone and desktop. Use real owned or licensed material; a fictional staff photo or implied customer endorsement does not belong on a real Page.\n6. Write a short About section that says what the business does, whom it serves and how to reach it. Company voice may use “we”; do not force a company to speak as one individual or invent claims.\n7. Choose an appropriate contact action supported by this Page and test its destination without sending an unrequested message. Link a business portfolio or Instagram account only when that connection serves the agreed workflow; do not create an ad account just for branding.\n8. Save and read back the public Page and management view. Record edited fields, image crops, website destination and current control. Route duplicate merges, ownership transfers or access removals as separately scoped changes when needed.\n\n## Definition of done (QA checklist)\n\n- [ ] The exact Page represents the intended business; existing valid Pages were not treated as duplicates without evidence.\n- [ ] The needed role works and business control is identified, or access remains a named pending item.\n- [ ] Approved name, contact, website and images are saved and readable on both widths.\n- [ ] Page actions lead to their intended destination; no unauthorized messages or ads were sent.\n- [ ] Public branding and private account-control evidence are recorded separately.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair finds two results: its main Page and a valid Page for its second branch. The main Page still links to an old website. The guide changes that one link, replaces a cropped logo and sets the call action to the confirmed branch line. Three planned edits receive three public read-backs. The second branch stays intact. A colleague’s pending invitation is recorded as pending access, not “team access complete.”\n\n## Handoff and Content Factory context\n\nGive the Page ID and verified public link to the profile owner. Continue with [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) for the cross-platform fact check. Use [convert instagram to professional account](https://local-service-spotlight.github.io/task-library/?task=convert-instagram-to-professional-account#task-convert-instagram-to-professional-account) only if an Instagram workflow is part of the plan.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for initial setup and material business or branding changes. Optional periodic checks need a configured owner and trigger; no automatic invitations, posting schedule or ad spend follows.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 3, revenue 5, gating 5 (ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `set-up-meta-business-manager-and-public-figure-pages`\n- **Browse later task:** `create-xml-sitemap-and-reference-in-robots-txt`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Claim and Brand Facebook Page](https://local-service-spotlight.github.io/task-library/?task=claim-and-brand-facebook-page#task-claim-and-brand-facebook-page)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Meta Facebook Page access](https://www.facebook.com/help/187316341316631)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Current account-specific menus and Page eligibility require inspection in the actual account; the direct general-access help page returned a login wall during authoring.",
     "importance": 5,
     "freq": 3,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "set-up-meta-business-manager-and-public-figure-pages",
     "after": "create-xml-sitemap-and-reference-in-robots-txt",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "7d4d29bcef87855c885e8452ddfa183ffaffbd508b11ebc5ef3ff6a42a4b834b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "cb430f69805564b465b63a009cb9cae629800b5cfca3f02c495724e4cd77475d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=claim-and-brand-facebook-page#task-claim-and-brand-facebook-page",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7d4d29bcef87855c885e8452ddfa183ffaffbd508b11ebc5ef3ff6a42a4b834b",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7d4d29bcef87855c885e8452ddfa183ffaffbd508b11ebc5ef3ff6a42a4b834b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7d4d29bcef87855c885e8452ddfa183ffaffbd508b11ebc5ef3ff6a42a4b834b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 31,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Configure HTTPS With No Mixed Content",
     "slug": "configure-https-with-no-mixed-content",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Make your site use a secure web link. Check that its pictures, forms and pages still work.",
     "content": "---\nname: configure-https-with-no-mixed-content\ndescription: \"Make your site use a secure web link. Check that its pictures, forms and pages still work.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Configure HTTPS With No Mixed Content\n\nA browser warning can stop a buyer from using your site. This guide helps a site owner fix secure page links and the files they load. Start with the site’s real host and the web addresses people use.\n\n**The path:** Known host → Valid certificate → Secure files → Public checks.\n\n**Use this when:** a site launches, moves hosts, changes domains, or reports certificate or mixed-content warnings.\n\n## Inputs\n- The actual host, content delivery service, canonical hostname and required aliases, with supported access for the planned changes.\n- The current certificate and renewal configuration, redirect rules and a recoverable before state.\n- A representative page list including forms, images, downloads and login paths; the CMS’s actual installation and public URL settings.\n\n## First-run prompt\n\n> Inspect the requested hostnames and their HTTPS setup. Fix supported certificate, redirect or mixed-resource defects in scope, preserving paths and working features. Validate normal public URLs and report renewal configuration separately from future renewal proof.\n\n## Steps\n1. List the intended public hostname and aliases actually used by visitors or existing links. Capture current DNS, certificate coverage and redirects. Do not invent extra hostnames or change nameservers for this task.\n2. Use the host’s supported certificate flow for those names. Verify the certificate is trusted, covers the names and is valid now. Check the actual renewal job or managed-service setting; a model or a hosting brand alone does not prove renewals will run.\n3. Set HTTP-to-HTTPS redirection at the existing owning layer. Preserve the intended path and query, and avoid loops between the edge and origin. A supported permanent redirect may use 301 or 308. Do not add HSTS preload as an unrequested side effect.\n4. Check CMS public URL and installation URL settings against the real architecture. They need not be identical when WordPress is installed in a subdirectory. Use the supported source update and backup procedure instead of a blind text replacement in stored database data.\n5. Inspect loaded subresources on key pages. Update owned image, script, stylesheet and embed references to working HTTPS endpoints. Ordinary outbound HTTP navigation is a different issue from insecure resources loaded inside an HTTPS page.\n6. For a third-party resource without secure support, replace or remove it only within the page’s approved scope and preserve necessary functionality. Do not bypass certificate checks or weaken browser security to hide the failure.\n7. Read the normal public pages with network and console evidence. Check for blocked or auto-upgraded insecure resources, and confirm forms, media controls and images still work. Keep all media silent.\n8. Verify relevant public redirects again and save final evidence. Check the existing Search Console property scope: a Domain property covers protocols; a URL-prefix property is more specific. Add a new property only if the actual measurement setup needs it.\n\n## Definition of done (QA checklist)\n\n- [ ] Required hostnames have valid trusted certificates and correct canonical redirects.\n- [ ] No unintended insecure subresource request remains on the checked pages.\n- [ ] Paths, queries, forms and meaningful media survive the changes.\n- [ ] Renewal configuration and rollback location are documented without claiming an unobserved future renewal.\n- [ ] Public URL, time, representative page coverage and any untested host or feature are recorded.\n\n## Example(s)\n\n**Fictional teaching example.** `http://example.com/repair/?source=card` redirects to the same path and query on HTTPS. The page’s hero image still uses HTTP and the browser upgrades it. The editor changes that source image URL to its working HTTPS address. Afterward, the checked home and repair pages make zero insecure subresource requests. The record says two pages checked; it does not claim every page or the next certificate renewal has been tested.\n\n## Handoff and Content Factory context\n\nGive the final host and redirect map to the site owner. Use [ensure proper dns records](https://local-service-spotlight.github.io/task-library/?task=ensure-proper-dns-records#task-ensure-proper-dns-records) for a DNS mismatch, or [ensure site loads under 3 seconds on mobile](https://local-service-spotlight.github.io/task-library/?task=ensure-site-loads-under-3-seconds-on-mobile#task-ensure-site-loads-under-3-seconds-on-mobile) once secure page delivery works.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch or host/domain changes and when monitoring reports a defect. Certificate renewal needs the actual hosting or certificate service; this guide does not create that service.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 2, revenue 3, gating 5 (unblocks a chain (access/plumbing))\n- **Browse earlier task:** `ensure-proper-dns-records`\n- **Browse later task:** `set-up-content-library`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Configure HTTPS With No Mixed Content](https://local-service-spotlight.github.io/task-library/?task=configure-https-with-no-mixed-content#task-configure-https-with-no-mixed-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [MDN mixed content](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The supplied host’s certificate and cache controls must be verified before real changes.",
     "importance": 5,
     "freq": 2,
     "revenue": 3,
     "gating": 5,
     "phase": "Gate",
     "before": "ensure-proper-dns-records",
     "after": "set-up-content-library",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "dea2b21168d6541bd33a7dba155129637b391c4573d58ed36ed13e4e4eaa11ac",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "84e71950038a6916a072b241c3b8ad59fe19c668752c4554182ab88c5988c138",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=configure-https-with-no-mixed-content#task-configure-https-with-no-mixed-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "dea2b21168d6541bd33a7dba155129637b391c4573d58ed36ed13e4e4eaa11ac",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "dea2b21168d6541bd33a7dba155129637b391c4573d58ed36ed13e4e4eaa11ac"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "dea2b21168d6541bd33a7dba155129637b391c4573d58ed36ed13e4e4eaa11ac"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 89,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Configure SPF/DKIM/DMARC for Deliverability",
     "slug": "configure-spf-dkim-dmarc-for-deliverability",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Help real mail from your business pass sender checks. Test each mail service you use.",
     "content": "---\nname: configure-spf-dkim-dmarc-for-deliverability\ndescription: \"Help real mail from your business pass sender checks. Test each mail service you use.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Configure SPF/DKIM/DMARC for Deliverability\n\nDo your real emails land in spam? This guide helps a business owner set up checks that show who sent the mail. Start by listing each service that sends mail for your business.\n\n**The path:** Sender list → DNS records → Received headers → Policy review.\n\n**Use this when:** domain email is new, a sender is added, messages fail authentication, or the business reviews its email protection.\n\n## Inputs\n- The real sending services, visible From domains and envelope-sender domains, including forms and customer-management tools.\n- Access to the authoritative DNS zone and each sender’s domain settings; existing records, policy and rollback evidence. Keep secrets in the approved store, not this guide.\n- A controlled receiving inbox and authorized test scope for each service, plus an approved destination and owner for any aggregate DMARC reports.\n\n## First-run prompt\n\n> Map actual senders and existing mail-authentication policy. Prepare or apply the authorized provider-specific SPF, DKIM and DMARC changes. Test controlled messages at a receiver and report alignment and delivery separately. Do not weaken an existing policy or send a campaign as a test.\n\n## Steps\n1. Inventory each sending service, its From domain, envelope domain and DKIM signing domain where known. Read the current records first. An unused guessed service must not be added just because it appears in a generic setup example.\n2. SPF is the sender list checked against the envelope domain. Publish one SPF TXT policy per applicable DNS name using the actual providers’ current instructions. Preserve valid senders and verify recursive DNS-query terms stay within the SPF limit of ten; ten visible include entries is not a safe shortcut.\n3. DKIM is a signed-mail check. In each provider, obtain its public selector record and follow its exact TXT or CNAME instructions. Keep private signing keys private. Confirm the public record resolves, then enable signing in the provider where that separate step is required.\n4. DMARC checks whether a passing SPF or DKIM identity aligns with the visible From domain. Read the existing DMARC policy before editing it. Preserve an established enforcement policy; do not automatically replace it with p=none.\n5. For a new policy, choose the authorized monitoring or enforcement plan based on actual sender readiness. A p=none policy requests no DMARC enforcement; the optional rua field requests aggregate reports. Add aggregate reports only to an approved receiving destination, accounting for the information those reports disclose.\n6. Send clearly marked controlled messages through each in-scope service to the agreed receiver. Inspect Authentication-Results and the relevant domains. A message can pass DMARC through aligned DKIM even when SPF fails after forwarding; inspect the cause instead of declaring every such message broken.\n7. Check whether each test reached the intended inbox, spam folder or failed delivery. Authentication helps establish sender legitimacy but does not guarantee inbox placement. Use real receiver evidence, not merely a saved DNS screen.\n8. Save a sender-by-sender result table and exact changed public records. Review report coverage and legitimate failures before any later policy change; no fixed number of weeks guarantees safe enforcement. Route unresolved sender configuration to its actual owner.\n\n## Definition of done (QA checklist)\n\n- [ ] The sender inventory covers all known in-scope services and applicable domains.\n- [ ] SPF is syntactically valid, single per name and within lookup limits; DKIM signing is actually enabled where applicable.\n- [ ] DMARC policy and report handling match the authorized plan, with existing protections preserved.\n- [ ] Each tested service has receiving-header alignment evidence and a separate delivery result.\n- [ ] Untested services, propagation state and policy follow-up have named owners; no campaign was sent as a test.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair uses a mailbox service and a quote tool. A lesson test from the mailbox has aligned SPF and DKIM, so DMARC passes. The quote tool passes SPF for the vendor’s domain but has no aligned DKIM; DMARC fails for Oak Repair’s From address. The useful next action is to configure that tool’s supported domain signing, not add a second SPF record or weaken DMARC. These are invented teaching results, not real messages or a ready-to-paste DNS policy.\n\n## Handoff and Content Factory context\n\nGive the sender matrix and policy decision to the domain and mail owners. Continue with [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) for website form delivery, or [set up professional email on domain](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-email-on-domain#task-set-up-professional-email-on-domain) if the mailbox itself is missing.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at setup and after changes to a sender, domain or policy. Report review can recur on an agreed configured schedule; policy enforcement is a separate evidence-based change, not an automatic timed transition.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 4/5 `●●●●○` — frequency 2, revenue 3, gating 4 (gates a phase)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Configure SPF/DKIM/DMARC for Deliverability](https://local-service-spotlight.github.io/task-library/?task=configure-spf-dkim-dmarc-for-deliverability#task-configure-spf-dkim-dmarc-for-deliverability)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Workspace SPF setup](https://knowledge.workspace.google.com/admin/security/set-up-spf)\n- [Google Workspace DKIM setup](https://knowledge.workspace.google.com/admin/security/set-up-dkim)\n- [Google Workspace DMARC setup](https://knowledge.workspace.google.com/admin/security/set-up-dmarc)\n- [SPF standard, sections 3 and 4.6.4](https://www.rfc-editor.org/info/rfc7208/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Provider-specific record values and the approved reporting receiver must come from the actual project. No real sending or DNS changes were performed while drafting.",
     "importance": 4,
     "freq": 2,
     "revenue": 3,
     "gating": 4,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "gates a phase",
     "instructionReview": {
      "source_sha256": "f8f3eec036775440c0196ac0ff73797c465fd8a44842e94425cb04c4166c1ab9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a86bea8a41689116740a120918525942596bacbd098f9ce07eba4de63ac360e8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f8f3eec036775440c0196ac0ff73797c465fd8a44842e94425cb04c4166c1ab9",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f8f3eec036775440c0196ac0ff73797c465fd8a44842e94425cb04c4166c1ab9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f8f3eec036775440c0196ac0ff73797c465fd8a44842e94425cb04c4166c1ab9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 93,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Convert Instagram to Professional Account",
     "slug": "convert-instagram-to-professional-account",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Set up the right Instagram account type for your work. Check the public profile and its tools.",
     "content": "---\nname: convert-instagram-to-professional-account\ndescription: \"Set up the right Instagram account type for your work. Check the public profile and its tools.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Convert Instagram to Professional Account\n\nDo you use Instagram for your work but lack the tools you need? This guide helps you choose and set up the right account type. Start with your current account and the job it needs to do.\n\n**The path:** Account purpose → Account type → Public profile → Tool check.\n\n**Use this when:** an existing account needs business or creator tools, or a brand account needs a clear professional setup.\n\n## Inputs\n- The exact account handle, legitimate account access and the owner’s intended public business or creator role.\n- Approved bio, website link, category, public contact fields and rights-cleared profile image.\n- The actual reason for a Facebook Page connection, if needed, and the relevant Page access. Do not assume it is required for every Instagram use.\n\n## First-run prompt\n\n> Inspect the supplied account and choose the business or creator setup that fits its purpose. Complete authorized changes and check what is publicly shown. Keep optional linked accounts, ads and schedules separate from this profile setup.\n\n## Steps\n1. Confirm the exact handle and current account type. Read the current account’s conversion prompts, including visibility effects and available tools, before changing it. Do not convert a personal-use account merely because it shares an owner’s name.\n2. Choose Business for the company workflow or Creator for the individual creator workflow when those choices fit the owner’s purpose. Do not promise that switching types unlocks every feature or monetization option.\n3. In the account’s settings, open the account-type/tools control and follow the professional-account flow; select the truthful category and type. The exact labels vary by current interface. Record the resulting type after save.\n4. Set the approved name, available handle, short bio and website. Explain the person or business in plain words. Keep claims and relationship language supported by evidence, and do not publish private contact details just to fill every field.\n5. Check which contact and category fields will be visible, and use only those appropriate for this account. Confirm the profile photo’s crop on a phone and that it represents the right person or company.\n6. Connect a Facebook Page only if the intended cross-platform workflow needs it and the proper access exists. Check the exact account and Page identities before linking; a pending connection is not a completed one.\n7. Open the professional dashboard or relevant tool to verify the requested capability. Treat absent historical data as absent data, not zero performance. Some business or commercial uses have music restrictions; do not assume music available in the app is licensed for every use.\n8. Read back the public profile and test the website destination without sending messages or launching ads. Save the account type, public fields, linked-account state and any capability still unavailable.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended account has the chosen type, with its actual visibility effects reviewed.\n- [ ] Public name, bio, image, category and contact fields match the owner’s approved facts.\n- [ ] The website link resolves and any requested Page connection has verified state.\n- [ ] The desired professional tool is available or its exact limitation is recorded.\n- [ ] No ad launch, message send, music-rights claim or posting schedule is implied by the setup.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair needs a business profile with a quote-page link. The guide selects Business, uses “Roof repairs in the local area” as its supported short bio and hides a private owner phone number. The professional dashboard opens, but it has no past results to show. The lesson record says “type and profile checked; historical insights unavailable.” The company’s Facebook Page is left as a separate planned connection because this job only requested the profile setup.\n\n## Handoff and Content Factory context\n\nGive the account owner the checked profile and actual tool limits. Use [set up consistent headshots and bios across profiles](https://local-service-spotlight.github.io/task-library/?task=set-up-consistent-headshots-and-bios-across-profiles#task-set-up-consistent-headshots-and-bios-across-profiles) for the wider profile set, or [claim and brand facebook page](https://local-service-spotlight.github.io/task-library/?task=claim-and-brand-facebook-page#task-claim-and-brand-facebook-page) when that Page connection is required.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun once for the account setup and after a material purpose or branding change. Publishing, messaging and any recurring review use their own supplied scope and configured tools.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Convert Instagram to Professional Account](https://local-service-spotlight.github.io/task-library/?task=convert-instagram-to-professional-account#task-convert-instagram-to-professional-account)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Instagram creator-account setup](https://www.facebook.com/help/instagram/2358103564437429)\n- [Instagram music permissions](https://www.facebook.com/help/instagram/402084904469945)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- An English current general professional-account help page was not retrievable in this authoring pass. The actual account prompts must resolve current visibility and eligibility before conversion; official creator setup and music references are qualified in sources.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e0d814e1486ae115b6816a7dcf91dc0de4a1de197e3f129c94cd2197f45facfa",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0511d058940dd5b8be0192ae3aa93b01929a7638cb09a9b301874f9967be42f9",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=convert-instagram-to-professional-account#task-convert-instagram-to-professional-account",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e0d814e1486ae115b6816a7dcf91dc0de4a1de197e3f129c94cd2197f45facfa",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e0d814e1486ae115b6816a7dcf91dc0de4a1de197e3f129c94cd2197f45facfa"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e0d814e1486ae115b6816a7dcf91dc0de4a1de197e3f129c94cd2197f45facfa"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 103,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create Clear Conversion Path",
     "slug": "create-clear-conversion-path",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Help a visitor take the next useful step. Make the path clear and check where the request lands.",
     "content": "---\nname: create-clear-conversion-path\ndescription: \"Help a visitor take the next useful step. Make the path clear and check where the request lands.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: complete\n---\n\n# Create Clear Conversion Path\n\nUse this guide to make it easy for people to ask your business for help. A clear path helps your team get requests it can answer. Next, [check your contact form](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) to make sure those requests reach the right person.\n\n**The path:** Visitor need → Clear action → Usable form, booking or call → Team receipt → Named next owner.\n\n**Use this when:** a new page or offer launches, visitors struggle to contact the business, or an existing path needs repair.\n\n## Inputs\n- The page, intended visitor and useful next action from the project’s [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief: the goal, source content and people it serves.\n- The actual contact, booking, purchase or download destination and the responsible team. Preserve legitimate privacy, legal and navigation links.\n- Access to the owning page and destination settings, plus the agreed test scope and existing measurement plan if one is in use.\n\n## Starting state and run record\n\nStart with one named page, its intended visitor and action, the current destination, and the person or team that must receive the request. For appointments, include the approved availability or response promise, its time zone, eligible hosts and the escalation owner when coverage is missing. Record the page URL and revision, action label, destination, controlled-test ID and time, device, link/form/call result, receiver evidence, unresolved issue, and next owner. Count clicks, accepted requests, connected calls and qualified leads separately. Compare lead rates only when real baseline and follow-up data use the same lead definition and data source over equal-length windows; traffic mix and season changes can still affect the result. This guide does not estimate sales uplift.\n\n## First-run prompt\n\n> Map the visitor’s path on the supplied page. Improve the main call to action and its destination within the authorized scope. Check the visible result and the actual receiving system separately. Report clicks, submitted requests and received leads as different evidence.\n\n## Steps\n1. Name the page’s intended visitor and desired result in one sentence. Choose the primary action for that journey; a service quote page and a customer-support page can have different valid actions.\n2. Trace the current route from the page to the final destination. Record confusing labels, dead links, repeated questions and unnecessary detours. Do not infer the cause of low lead volume from a page glance alone.\n3. Write a specific action label such as “Request a roof check” rather than a vague “Learn more” when a request is the real next step. State what happens next and any material cost or commitment accurately.\n4. Place the action where it supports the page’s explanation and is reachable on mobile. Keep relevant secondary choices and accessibility controls. The source’s two-click idea is a reachability target, not a rule that every real booking or purchase must finish in two clicks.\n5. Edit the supported page source and destination. Keep required fields limited to the actual business need; preserve necessary consent and disclosures. Use the true service or offer page, following the [Money Tree](https://blitzmetrics.com/money-tree/) when it applies: the site map of posts and the pages where people book or buy.\n6. Before submitting a booking, compare the earliest selectable appointment with the actual promised window. Save the check time, displayed time zone, first available slot and any empty result. A calendar that loads is not proof that a visitor can book within the promise. Check that required choices are clear and cannot accept contradictory answers; mutually exclusive answers need a single-choice control. Treat a mismatch as a defect, not a reason to silently change the promise, add a host or buy a plan.\n7. Test the link and form or booking flow using the authorized controlled test. Check errors, success state and mobile use. Avoid a real charge, booking or message beyond the existing test scope; label that untested portion rather than calling the whole path passed.\n8. Verify receipt in the actual inbox, booking tool or customer system and identify who follows up. For a tested booking, match its ID to the assigned eligible host, saved answers and required notifications; check cancellation and reminder behavior only within the authorized test scope. A listed host or an empty availability response with an error does not prove staffed coverage. A success page or analytics event alone is not proof that the team got the request.\n9. If tracking is in scope, check one appropriate received event per intended action and its consent behavior. Save the route, test evidence and measured result; compare later lead performance only with real comparable data.\n\n## Definition of done (QA checklist)\n\n- [ ] Each money-page opening makes the customer's situation, supported value and next buying step clear in the first 2–3 sentences, with relevant authentic proof; [opening review](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) is recorded, not inferred from a CTA or unmeasured conversion promise\n\n- [ ] The page has an understandable primary action for its intended visitor.\n- [ ] The route reaches the correct destination with no unnecessary dead end.\n- [ ] Phone layout and required fields work, with privacy and accessibility intact; answers cannot contradict one another.\n- [ ] If booking is offered, the observed slot fits the actual promised window and time zone, or the exact mismatch and coverage owner remain open.\n- [ ] Any controlled booking has matching assignment, answer and receiver evidence. Untested notifications, cancellations or reminders remain explicitly unknown.\n- [ ] Visitor success and team receipt have independent evidence or precise open limits.\n- [ ] Tracking and business outcomes are reported separately, with an actual next owner.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair’s service page says “Contact,” leading to a menu with four choices. The lesson changes the label to “Request a roof check” and links directly to the quote form. The form explains that the team will reply by the next business day, a promise supplied for this fictional exercise. A mock test record shows one successful submission and one matching receiver entry. The lesson proves how to check a path; it makes no claim about a real lead or conversion-rate increase.\n\n**Fictional booking example.** A service promises a call within three days, but the first selectable slot is three weeks away. The page loads and the button works, yet this path fails its stated promise. Save the visible dates and time zone, then route the gap to the existing calendar owner. Do not claim a staffing, calendar-sync or subscription cause without checking it. No real appointment was booked in this example.\n\n## Handoff and Content Factory context\n\nHand the route record to the named page or lead-response owner. The handoff is ready when that owner confirms the destination and response responsibility against the test ID; if confirmation is missing, record it as pending. For booking routes, the existing calendar or lead-response owner receives any promise-to-availability gap with the observation and next check. Preserve their existing follow-up record; do not open a duplicate chase or automatically put the business owner into the host rotation. Use [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) for a form-delivery defect or [add click to call links for mobile](https://local-service-spotlight.github.io/task-library/?task=add-click-to-call-links-for-mobile#task-add-click-to-call-links-for-mobile) for a call-link defect.\n\nThis is a setup check for **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/), the process that turns real stories into useful content. A published page needs a working way for a reader to reach the business. Check that path before **Promote** sends more people to it. Promotion, spend and customer follow-up remain separately scoped work.\n\n## When this runs\n\nRun for a new offer or a material page, form or booking change. Later improvement uses real performance reviews on the agreed cadence; no ads or automatic schedule are created by this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `ensure-working-contact-form-delivers-notifications`\n- **Browse later task:** `map-out-one-minute-video-topics-using-topic-wheel`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Create Clear Conversion Path](https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nContributor status records that these written instructions are complete. It is not proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual owner must supply the intended action, response promise and test scope; no conversion performance has been measured by this draft.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "ensure-working-contact-form-delivers-notifications",
     "after": "map-out-one-minute-video-topics-using-topic-wheel",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "cf69ce3f3bc32f6e009f7f1a20bc09a2d1d232195a2538be7521e982b1a629e7",
      "reviewed_at": "2026-10-17",
      "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
      "scope": "One exact written conversion-path revision and its article copy. Live booking, full hub semantic certification, accepted outcome and novice setup remain unknown. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Unchanged opening quoted in dated review. Plain task, value and explained form-check connection; current linked guide body read and unchanged. Actual guide phone/desktop path diagram visible.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Adds observed appointment window/time zone, consistent required choices, assigned host and paired receiver checks; respects approved test scope and records unknown live capabilities.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
        },
        "links": {
         "state": "pass",
         "reason": "Existing owned form and opening guides retain identical bodies; relevant Digital Plumbing, Content Factory and GCT destinations returned200 and their meanings were read. No new provider-capability claim.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional booking example explicitly labeled; private original source read without transferring setup reports into accepted execution. No booking, message, purchase or client outcome claimed.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Existing calendar/lead-response owner receives exact availability mismatch and next check. Assignment and receipt need test evidence; no duplicate follow-up or automatic business-owner host assignment.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "a7ab85e8cb4a794fc4821966fc6115e681cd1dcd3684f920b8bcabc64fed99a0",
       "previousReviewDate": "2026-10-13",
       "change": "Contributor status changes from needs-work to complete and the evidence note explains that this labels written instruction completeness. Method, opening, visuals, links, fictional example and acceptance criteria are unchanged; existing five written verdicts retained. No new article, execution or novice certification.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-ready-download-2026-10-17.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cf69ce3f3bc32f6e009f7f1a20bc09a2d1d232195a2538be7521e982b1a629e7",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-17. Review scope and limits: One exact written conversion-path revision and its article copy. Live booking, full hub semantic certification, accepted outcome and novice setup remain unknown. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
        "reviewedAt": "2026-10-17",
        "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
        "sourceSha256": "cf69ce3f3bc32f6e009f7f1a20bc09a2d1d232195a2538be7521e982b1a629e7"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-17",
        "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
        "reviewScope": "One exact written conversion-path revision and its article copy. Live booking, full hub semantic certification, accepted outcome and novice setup remain unknown. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
        "sourceSha256": "cf69ce3f3bc32f6e009f7f1a20bc09a2d1d232195a2538be7521e982b1a629e7",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Unchanged opening quoted in dated review. Plain task, value and explained form-check connection; current linked guide body read and unchanged. Actual guide phone/desktop path diagram visible.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Adds observed appointment window/time zone, consistent required choices, assigned host and paired receiver checks; respects approved test scope and records unknown live capabilities.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
          },
          "links": {
           "state": "pass",
           "reason": "Existing owned form and opening guides retain identical bodies; relevant Digital Plumbing, Content Factory and GCT destinations returned200 and their meanings were read. No new provider-capability claim.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional booking example explicitly labeled; private original source read without transferring setup reports into accepted execution. No booking, message, purchase or client outcome claimed.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Existing calendar/lead-response owner receives exact availability mismatch and next check. Assignment and receipt need test evidence; no duplicate follow-up or automatic business-owner host assignment.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/booking-path-2026-10-09.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "create-clear-conversion-path",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T20:17:19.449635Z",
         "reviewer": "Codex root; independent source review recorded separately",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Canonical parent opening and meaningful Content Factory connection now quoted and reviewed separately from its copied skill openings. Current body supplies the setup and test steps promised.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Recipe scope and shared parent topic-hub role preserved.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Canonical article upkeep ownership not established by this scoped repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Current copied recipe gives controlled inputs, distinct results and receiving acceptance.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Selected recipe links: root read relevant owned and primary meanings; 20 URLs returned 200; linked task bodies checked. Parent opening Content Factory destination read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Teaching scenarios do not establish real task-attributed outcomes.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Explicit checked record and accepting function; relates working contact path to Post before Promote.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected instructions and section views checked; complete parent audit not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Three copied skills are not full shared-parent certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No actual call/form/client delivery or beginner setup performed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "create-clear-conversion-path",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T20:17:19.453497Z",
         "observer": "Codex separate authenticated read",
         "state": "observed",
         "reason": "Separate fresh saved-source read matches final reviewed parent bytes; anonymous readback checked separately.",
         "evidenceRefs": [
          "sha256:76375c5c067973c412c979f5f2e0aad6195047dae0d9285f789598006d956afa"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 24,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Create LinkedIn Page Matching Business Entity",
     "slug": "create-linkedin-page-matching-business-entity",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Give your business the right LinkedIn Page. Check its name, facts, links and account control.",
     "content": "---\nname: create-linkedin-page-matching-business-entity\ndescription: \"Give your business the right LinkedIn Page. Check its name, facts, links and account control.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Create LinkedIn Page Matching Business Entity\n\nDoes your business have a clear home on LinkedIn? This guide helps an owner set up or fix the right Page. Start by finding any Page that already stands for the business.\n\n**The path:** Find business Page → Confirm role → Edit facts → Read back.\n\n**Use this when:** the business needs a LinkedIn Page or its current Page contains old or conflicting identity information.\n\n## Inputs\n- The business identity record, website, existing Page URLs and approved logo and cover image.\n- An individual member account with the required Page role; for full Page-field editing, confirm super-admin access.\n- The real organization type, industry, size and current public description. No false employment changes or invented affiliations.\n\n## First-run prompt\n\n> Find the correct existing company Page. Verify the actual role and update authorized identity fields, or create a Page only if no appropriate one exists. Keep access requests, employee profiles and public Page content distinct.\n\n## Steps\n1. Identify existing Company, Showcase or Listing Pages using the supplied business facts. A valid product or branch Page is not automatically a duplicate. Record the Page URL and type before choosing the source to update.\n2. Open Page admin view through the legitimate individual member account. LinkedIn Pages have assigned roles, not a separate shared Page password. Confirm the role supports the intended action; a content role is not a substitute for every super-admin setting.\n3. For an existing Page, use its supported access or claim process when needed. Do not add a false job to a person’s profile to obtain access. If a real authorized person must complete a workplace or account check, state that precise dependency.\n4. If no appropriate Page exists, use For Business → Create a Company Page on the supported interface. Select the real type, enter the business details and attest to authority only when it is true. Record the resulting Page and its business-controlled super admin.\n5. Set the supported public name, website, industry, size and available handle from the identity record. Explain what the company does in a concise About section; company voice can use “we,” while individual experience belongs to the individual.\n6. Upload the approved logo and cover, then check their crop and text on phone and desktop. Use real rights-cleared evidence and avoid overstating customer, partner or employee relationships.\n7. Review employee affiliations as an evidence check, not an instruction to change others’ accounts. If an actual employee needs to update a profile, give that person the correct Page URL through the job’s existing handoff; do not fabricate employment or send unrequested invitations.\n8. Read back the public Page and website link. Save the final Page ID or URL, verified fields and role state. Update the business entity’s profile reference in the appropriate source if that change is in scope; do not put the company Page into a personal sameAs list.\n\n## Definition of done (QA checklist)\n\n- [ ] The chosen Page represents the correct company and preserves valid related Pages.\n- [ ] The actual operator role and business-controlled owner are recorded without shared credentials.\n- [ ] Public facts, description, logo, cover and website link are correct.\n- [ ] No employee relationship or Page-control claim exceeds its evidence.\n- [ ] Pending access and unrequested profile changes remain distinct from completed branding edits.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair has a main Company Page and a separate training Showcase Page. The main Page’s website is outdated. A verified super admin changes that website and the cover crop, then records two matching read-backs. The Showcase Page stays. A contractor’s personal profile is not changed to say “employee” just to make access easier. This teaches a clean company record without inventing relationships.\n\n## Handoff and Content Factory context\n\nGive the checked Page link to the business profile owner and to [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) when doing the broader identity check. Use the owned entity-linking method for the business’s website references.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at creation and after genuine business or branding changes. Content posts, invitations and recurring reviews require the job’s actual scope and tools.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Create LinkedIn Page Matching Business Entity](https://local-service-spotlight.github.io/task-library/?task=create-linkedin-page-matching-business-entity#task-create-linkedin-page-matching-business-entity)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [LinkedIn Page creation](https://www.linkedin.com/help/linkedin/answer/a543852/create-a-linkedin-page?lang=en)\n- [LinkedIn Page access](https://www.linkedin.com/help/linkedin/answer/a8024204)\n- [LinkedIn Page role permissions](https://www.linkedin.com/help/linkedin/answer/a550647/linkedin-page-admin-roles-permissions?lang=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual Page may have account-specific creation or claim requirements; this draft performs no access request or Page edit.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "c4677a281e249a401c6ffab0ba8adc511c9d1fb8ec8f7c29f0555dbfc306a1ea",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8f7439bfad104c15d6a0d3bb6662880aae727f75bf658854cc5525301c8c4337",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-linkedin-page-matching-business-entity#task-create-linkedin-page-matching-business-entity",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c4677a281e249a401c6ffab0ba8adc511c9d1fb8ec8f7c29f0555dbfc306a1ea",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c4677a281e249a401c6ffab0ba8adc511c9d1fb8ec8f7c29f0555dbfc306a1ea"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c4677a281e249a401c6ffab0ba8adc511c9d1fb8ec8f7c29f0555dbfc306a1ea"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 73,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create XML Sitemap and Reference in robots.txt",
     "slug": "create-xml-sitemap-and-reference-in-robots-txt",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Make a page list that search tools can read. Check that it lists the right public pages.",
     "content": "---\nname: create-xml-sitemap-and-reference-in-robots-txt\ndescription: \"Make a page list that search tools can read. Check that it lists the right public pages.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Create XML Sitemap and Reference in robots.txt\n\nSearch tools need a clear list of the pages you want people to find. This guide helps a site owner build and check that list. Start with your site’s real page list and the tool that already makes it.\n\n**The path:** Public page plan → Sitemap → Discovery link → Submission evidence.\n\n**Use this when:** a site launches, its sitemap is missing or stale, or a migration changes the pages meant for search.\n\n## Inputs\n- The canonical hostname and intended public, indexable pages, with drafts, private pages and deliberate exclusions identified.\n- The actual sitemap owner: CMS, SEO plugin or generator, plus supported access to its settings and robots.txt source.\n- The correct Search Console property and submission access if account submission is in scope. Public sitemap work does not itself prove that access.\n\n## First-run prompt\n\n> Find or generate the sitemap using the site’s existing supported source. Compare it with intended public canonical pages, add its real URL to robots.txt when appropriate, and verify the served files. Keep submission, processing and indexing as separate states.\n\n## Steps\n1. Discover any current sitemap through robots.txt, CMS settings and the actual generator. Preserve a valid existing custom or query-based URL; do not assume every site uses /sitemap_index.xml or install Rank Math just for that path.\n2. Define the intended URL set. Include suitable canonical public pages and exclude drafts, private pages, duplicate redirects and intentional noindex pages. Taxonomies and archives need a real policy decision, not a blanket include or exclude rule.\n3. Enable or configure the existing sitemap source to emit that set. If the site has no generator, create a valid XML sitemap through its supported publishing system. Use absolute canonical URLs and truthful modification dates when known.\n4. Fetch and parse the XML with an XML-aware tool. If it is a sitemap index, open its child maps and count actual page URLs separately from child-map entries. Decode XML escaping correctly.\n5. Compare the sitemap URLs with the intended set. Resolve missing key pages, broken destinations and stale hostnames at their owning source. A cross-host sitemap arrangement requires its actual supported verification setup; do not silently accept or reject it by string matching.\n6. Add or correct the Sitemap declaration in the served robots.txt using the real complete sitemap URL. Preserve existing rules and the actual virtual or physical file source. A robots reference helps discovery but does not itself submit or index anything.\n7. Open the ordinary public robots and sitemap URLs again. Check status, parseability and coverage after any supported cache refresh. Machine-readable files need valid machine content; they are not editorial pages requiring a lead image.\n8. If submission is included, submit the real sitemap in the correct Search Console property and record its actual pending or processed result. Investigate reported fetch errors. Search Console success does not guarantee that every listed page is indexed.\n\n## Definition of done (QA checklist)\n\n- [ ] The actual sitemap URL and owning source are documented.\n- [ ] XML parses; child maps and page counts are separated.\n- [ ] The intended canonical public page set matches, with explained exclusions.\n- [ ] Served robots.txt points to the working map without unintended crawl-rule changes.\n- [ ] Submission, processing and indexing have distinct evidence or explicit unverified states.\n\n## Example(s)\n\n**Fictional teaching example.** A site has eight intended public pages and two private drafts. Its sitemap index contains two child maps, not two pages. Parsing the children yields seven public URLs; the missing repair page is enabled in the generator. The next read finds eight of eight intended pages and neither draft. The lesson records “public coverage passes; Search Console submission pending” if account access has not been supplied.\n\n## Handoff and Content Factory context\n\nGive the URL-set comparison to the search owner. Use [ensure robots meta not blocking indexing](https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing#task-ensure-robots-meta-not-blocking-indexing) for a conflicting index rule, or [verify google search console and connect to ga4](https://local-service-spotlight.github.io/task-library/?task=verify-google-search-console-and-connect-to-ga4#task-verify-google-search-console-and-connect-to-ga4) for the actual account connection.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once; the generator should maintain the list as content changes. Recheck after migrations or generator changes. A recurring audit needs a configured trigger, not a model-name promise.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 3, gating 4 (runs every factory cycle or weekly; gates a phase)\n- **Browse earlier task:** `claim-and-brand-facebook-page`\n- **Browse later task:** `ensure-robots-meta-not-blocking-indexing`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Create XML Sitemap and Reference in robots.txt](https://local-service-spotlight.github.io/task-library/?task=create-xml-sitemap-and-reference-in-robots-txt#task-create-xml-sitemap-and-reference-in-robots-txt)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google sitemap creation and submission](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)\n- [Google robots meta and headers](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No dedicated canonical article is mapped in this source record. Actual intended-page policy and generator access must be supplied for execution.",
     "importance": 4,
     "freq": 4,
     "revenue": 3,
     "gating": 4,
     "phase": "Gate",
     "before": "claim-and-brand-facebook-page",
     "after": "ensure-robots-meta-not-blocking-indexing",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "runs every factory cycle or weekly; gates a phase",
     "instructionReview": {
      "source_sha256": "9c290c817d6acc06604f930358cd8179c380c094c6a8f819f17df4b799ed779e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "330970202492e3e07085d32b1ea3f55cd1c0a12ec68db5fb5a68efb61578a1ed",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9c290c817d6acc06604f930358cd8179c380c094c6a8f819f17df4b799ed779e",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9c290c817d6acc06604f930358cd8179c380c094c6a8f819f17df4b799ed779e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9c290c817d6acc06604f930358cd8179c380c094c6a8f819f17df4b799ed779e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 92,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Ensure NAP Consistency Across Platforms",
     "slug": "ensure-nap-consistency-across-platforms",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Check your name, place and phone on the web. Fix old facts so people can reach you.",
     "content": "---\nname: ensure-nap-consistency-across-platforms\ndescription: \"Check your name, place and phone on the web. Fix old facts so people can reach you.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Ensure NAP Consistency Across Platforms\n\nOld phone numbers can send people to the wrong place. This guide helps you keep your name, place and phone right on the web. Start with the facts for each shop you own.\n\n**The path:** Trusted facts → Profile list → Scoped fixes → Public comparison.\n\n**Use this when:** a business changes its name, location or phone, takes over old profiles, or finds conflicting public facts.\n\n## Inputs\n- An owner-backed identity record for each branch: public trading name, address or service-area policy, phone, website and supporting evidence.\n- The in-scope website and profile URLs, with actual editing access or a responsible owner for each.\n- Known legitimate differences such as branch numbers, approved call tracking, character limits and hidden service-area addresses.\n\n## First-run prompt\n\n> Compare the supplied public profiles with the business fact record. Fix true conflicts within scope and record legitimate platform differences. Keep private addresses private. Do not force every branch or tracking number to match one universal string.\n\n## Steps\n1. Write the trusted name, address and phone record. These facts are often called NAP. Use current business evidence and the owner’s confirmed public details; an outdated Google listing is not automatically the truth.\n2. Separate distinct locations, brands and people before comparing. A second real branch may need a different phone or address. Identify the canonical website and proper profile for each entity.\n3. List the actual surfaces in scope: website header/footer/contact/schema, Business Profile, social Pages and other important maintained listings. Record public URLs and who can edit them; missing access is a specific dependency.\n4. Compare facts, not just characters. “Street” and “St” can describe the same address, while a wrong suite or disconnected phone is a real defect. Record acceptable formatting differences instead of generating cosmetic change work.\n5. Preserve privacy and eligibility rules. A service-area business may hide its address on Google; do not publish a home address across the web just to make fields look identical. Apply the appropriate public facts on each platform.\n6. Update true mismatches through each supported source within current authority. Preserve legitimate dynamic call-tracking behavior and record its relation to the stable business number. Do not change an authentication or recovery contact because a public phone changed.\n7. Read back the public fields after save. Some platform edits are reviewed before going live; record submitted, pending and publicly visible states separately. Check structured facts and contact links alongside visible text on the website.\n8. Save a platform-by-field comparison with evidence dates and next owners. Route the remaining exact mismatches, not a vague request to fix all listings. Keep old evidence for the run record while updating the maintained identity source.\n\n## Definition of done (QA checklist)\n\n- [ ] A trusted fact record exists for each real business or branch in scope.\n- [ ] All scoped surfaces were compared, with legitimate formatting and privacy differences explained.\n- [ ] Incorrect facts were fixed and read back, or carry exact pending state and owner.\n- [ ] Tracking and private account contacts were not confused with public business identity.\n- [ ] The record links to current public proof without claiming universal web-wide consistency.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair’s owner confirms its new shop at 14 Cedar Street. The website says “14 Cedar St,” which is the same address. Facebook still says “41 Cedar Street,” a true conflict. The guide changes the transposed number and keeps the harmless abbreviation. A service-area sister business has a hidden home address, so its blank public street field is marked intentional. The comparison teaches factual consistency rather than a character-matching score.\n\n## Handoff and Content Factory context\n\nGive the maintained identity record to the profile and site owners. Use [add schema markup person localbusiness](https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness) if machine-readable facts still conflict, or [verify google business profile](https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile#task-verify-google-business-profile) when Google ownership or verification needs work.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun after a real identity change and when a discrepancy appears. Optional periodic reviews should use the approved profile list and a real schedule; no automatic edits to unrelated accounts follow.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Ensure NAP Consistency Across Platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The owner-backed facts and complete in-scope profile list are required. This draft does not claim a web-wide citation cleanup.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3b42e3856ef279c117142a5be594fcbdab9e4893463d28ebaa1e83d7f03f65c6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bd147b61539a2eb51ea3f1c4bfebbb0a0d4011fb3b8797afff83b08cac7f263e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3b42e3856ef279c117142a5be594fcbdab9e4893463d28ebaa1e83d7f03f65c6",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3b42e3856ef279c117142a5be594fcbdab9e4893463d28ebaa1e83d7f03f65c6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3b42e3856ef279c117142a5be594fcbdab9e4893463d28ebaa1e83d7f03f65c6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 189,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Ensure Proper DNS Records",
     "slug": "ensure-proper-dns-records",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Check the records that route your website and email. Fix the wrong ones and keep a clear change log.",
     "content": "---\nname: ensure-proper-dns-records\ndescription: \"Check the records that route your website and email. Fix the wrong ones and keep a clear change log.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Ensure Proper DNS Records\n\nYour web address needs to lead to the right site and mail service. This guide helps a business owner check those routes. Start with the live services you use and a copy of the current records.\n\n**The path:** Service map → DNS plan → Scoped change → Public resolution.\n\n**Use this when:** a domain is taken over, a host or mail service changes, or a routing defect is suspected.\n\n## Inputs\n- The actual authoritative DNS provider, registrar and domain scope from [verify domain ownership and registrar access](https://local-service-spotlight.github.io/task-library/?task=verify-domain-ownership-and-registrar-access#task-verify-domain-ownership-and-registrar-access).\n- Current web host targets, required hostnames, mail routing design and active service-verification requirements from the real providers.\n- Supported DNS editing access or the named DNS owner, a zone export and a rollback plan. Public records may still include sensitive infrastructure context; store full exports in the approved project record.\n\n## First-run prompt\n\n> Compare the authorized domain’s DNS records with its actual services. Prepare or apply only the scoped fixes using the supported provider route. Preserve uncertain records and existing mail routing until their purpose is established. Verify public results and document each change.\n\n## Steps\n1. Confirm where DNS is authoritative; the registrar may be a different service. Export the current zone with record names, types, values and TTLs, which control how long answers may be cached. Record the change owner and recovery route.\n2. Map each intended hostname to the provider’s required record. A records name IPv4 addresses, AAAA records name IPv6 addresses, and CNAME records alias another name. Apex alias features vary by DNS provider. Do not force a www hostname that the approved design does not use.\n3. Compare the web records with the actual host configuration. With a proxy or content delivery service, public addresses may correctly be proxy addresses rather than the origin. Fix stale A and AAAA paths together where relevant; changing one does not repair the other.\n4. Check MX records against the actual mail design, including intentional routing gateways or migration arrangements. Multiple MX records can be normal. Do not delete one merely because it is not the mailbox brand’s default.\n5. Check active TXT and other verification records against current service needs. Preserve valid ownership tokens and mail policy. Use the email-authentication task for SPF, DKIM and DMARC details rather than merging unrelated TXT text.\n6. For a suspected obsolete record, identify its service and owner first. Classify uncertain records for review. Remove only a confirmed retired record within the authorized change scope; this task does not test whether another party can claim a service or bypass any access control.\n7. Apply the minimal supported edit with its before value and time. Check authoritative answers and ordinary recursive resolution after the relevant caches expire. Record resolver and observation time; a saved DNS panel is not proof of public propagation.\n8. Verify the affected public website or controlled mail path as included in the job. Save the final purpose-per-record map, exact change list and any pending cache or receiver checks. Revert through the approved recovery route if the planned service check fails.\n\n## Definition of done (QA checklist)\n\n- [ ] Authoritative DNS and registrar roles are identified correctly.\n- [ ] Web and mail records match the actual approved design, including legitimate proxies and gateways.\n- [ ] No unknown record was removed based on a guess.\n- [ ] Changed records have before/after evidence and public resolution checks with timestamps.\n- [ ] Affected service checks pass or have precise pending limits; the final record-purpose map is saved.\n\n## Example(s)\n\n**Fictional teaching example.** A zone has a web A record, a stale AAAA record and two valid mail MX records. The provider confirms the old IPv6 route was retired. The scoped change removes that AAAA record and preserves both MX routes. The lesson compares the authoritative answer and a recursive answer after their recorded TTLs. It does not declare every resolver worldwide updated, and it does not probe a retired service for takeover.\n\n## Handoff and Content Factory context\n\nGive the DNS map to the domain owner. Continue with [configure https with no mixed content](https://local-service-spotlight.github.io/task-library/?task=configure-https-with-no-mixed-content#task-configure-https-with-no-mixed-content) for web delivery or [configure spf dkim dmarc for deliverability](https://local-service-spotlight.github.io/task-library/?task=configure-spf-dkim-dmarc-for-deliverability#task-configure-spf-dkim-dmarc-for-deliverability) for sender authentication, according to the actual changed service.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun after approved routing changes or a reported defect. Optional periodic comparisons need a stored known-good zone and configured read-only trigger; no automatic deletion of newly found records.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 2, revenue 3, gating 5 (unblocks a chain (access/plumbing))\n- **Browse earlier task:** `verify-domain-ownership-and-registrar-access`\n- **Browse later task:** `configure-https-with-no-mixed-content`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Ensure Proper DNS Records](https://local-service-spotlight.github.io/task-library/?task=ensure-proper-dns-records#task-ensure-proper-dns-records)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [DNS record types in Cloudflare documentation](https://developers.cloudflare.com/dns/manage-dns-records/reference/dns-record-types/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Dedicated canonical article is missing. Provider targets, zone access and the exact service checks must be supplied for a real run.",
     "importance": 5,
     "freq": 2,
     "revenue": 3,
     "gating": 5,
     "phase": "Gate",
     "before": "verify-domain-ownership-and-registrar-access",
     "after": "configure-https-with-no-mixed-content",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "e1ba7ba7a73768160d22fcefd3584afac3dac3ca6107b6671631769bd185aaba",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0f2ff7e060a9b04cdf63902574b4b2a96c06a438aa5391923e1a60b84e0d2106",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e1ba7ba7a73768160d22fcefd3584afac3dac3ca6107b6671631769bd185aaba",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e1ba7ba7a73768160d22fcefd3584afac3dac3ca6107b6671631769bd185aaba"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e1ba7ba7a73768160d22fcefd3584afac3dac3ca6107b6671631769bd185aaba"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 88,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Ensure Robots Meta Not Blocking Indexing",
     "slug": "ensure-robots-meta-not-blocking-indexing",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Check that public pages can be found by search tools. Keep private pages out on purpose.",
     "content": "---\nname: ensure-robots-meta-not-blocking-indexing\ndescription: \"Check that public pages can be found by search tools. Keep private pages out on purpose.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Ensure Robots Meta Not Blocking Indexing\n\nA page can be live and still tell search tools to leave it out. This guide helps a site owner find and fix that mistake. Start with the pages you want people to find.\n\n**The path:** Page intent → Crawl and index rules → Scoped fix → Eligibility check.\n\n**Use this when:** a launch or migration may have carried over staging rules, or intended public pages have unexpected indexing restrictions.\n\n## Inputs\n- The intended indexable page list and deliberate exclusions such as private, staging or thank-you pages.\n- Read access to served HTML, HTTP headers and robots.txt, plus editing access to the actual CMS, plugin or host source involved.\n- The correct Search Console property and inspection access if account verification is in scope.\n\n## First-run prompt\n\n> Check the supplied pages for unintended crawl and index restrictions. Preserve deliberate exclusions. Fix the actual owning source within scope and verify the served result. Keep indexing eligibility separate from a promise that Google will index or rank the page.\n\n## Steps\n1. Record each page’s intent: meant for search or deliberately excluded. Include representative home, service and article pages, but do not assume that every page on a live domain should be indexed.\n2. On WordPress, inspect the Reading setting that discourages search engines only when WordPress owns the site. Check the current SEO plugin defaults and per-page rules; other platforms have different sources.\n3. Read served HTML for robots and crawler-specific directives, and inspect HTTP X-Robots-Tag headers. A noindex rule concerns indexing; nofollow concerns following links. They are not interchangeable, and restrictive rules can combine across sources.\n4. Read robots.txt for relevant crawl disallows. Crawl blocking may prevent Google from seeing a page’s noindex rule and does not reliably keep its URL out of search. Do not add unsupported noindex text to robots.txt.\n5. Trace each unintended rule to the setting, template, plugin or host response that supplies it. Save the before state, then make the smallest authorized correction at that source. Preserve intentional private or duplicate-page exclusions.\n6. Fetch the ordinary public response again after the supported cache process. Check both HTML and headers; a corrected editor checkbox alone does not prove the served page changed. Keep crawler-specific and page-specific tests explicit.\n7. If Search Console access is included, compare the last indexed snapshot with a live inspection. Record whether the current page allows indexing and any other reported obstacle. Request indexing only within the actual scope; submitting a request is not a guaranteed index event.\n8. Save the page-by-page result, intended exclusions, source changes and remaining search status. If a rule returned from a deployment template, give its source owner the exact recurrence cause for a durable fix.\n\n## Definition of done (QA checklist)\n\n- [ ] Every checked page has a recorded search intent.\n- [ ] No unintended restrictive rule remains in the served HTML, headers or crawl policy for those pages.\n- [ ] Intentional exclusions remain intact and have a reason.\n- [ ] Public response and any Search Console checks are dated and distinguished from older snapshots.\n- [ ] Eligibility, request submission, actual indexing and ranking are not collapsed into one pass.\n\n## Example(s)\n\n**Fictional teaching example.** A new repair page should be searchable but returns X-Robots-Tag: noindex from a staging rule. The site’s thank-you page is intentionally excluded. The guide removes the inherited staging header from the public repair page and preserves the thank-you rule. The follow-up response shows indexing allowed for the repair page. The lesson result is “restriction fixed,” not “Google now ranks this page.”\n\n## Handoff and Content Factory context\n\nGive the exact policy and changed source to the site/search owner. Use [create xml sitemap and reference in robots txt](https://local-service-spotlight.github.io/task-library/?task=create-xml-sitemap-and-reference-in-robots-txt#task-create-xml-sitemap-and-reference-in-robots-txt) to check page discovery or the configured deployment owner to prevent a staging-rule recurrence.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch, after migrations or template changes, and when a real indexing issue is reported. A recurring check needs the intended-page policy and a configured trigger.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `create-xml-sitemap-and-reference-in-robots-txt`\n- **Browse later task:** `ensure-working-contact-form-delivers-notifications`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Ensure Robots Meta Not Blocking Indexing](https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing#task-ensure-robots-meta-not-blocking-indexing)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google robots meta and headers](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag)\n- [Google sitemap creation and submission](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No dedicated canonical article is mapped. Actual intended-page policy and optional Search Console evidence are required for execution.",
     "importance": 5,
     "freq": 4,
     "revenue": 3,
     "gating": 5,
     "phase": "Gate",
     "before": "create-xml-sitemap-and-reference-in-robots-txt",
     "after": "ensure-working-contact-form-delivers-notifications",
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "c19715e0a584a190e7ac8cce62846b6acb13b97a946b68b2bee1b2e353ce6ec7",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f544ba85a95271b6c6fba532670c7080c298f381ca1fcd110da7ecebcff4c260",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c19715e0a584a190e7ac8cce62846b6acb13b97a946b68b2bee1b2e353ce6ec7",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c19715e0a584a190e7ac8cce62846b6acb13b97a946b68b2bee1b2e353ce6ec7"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c19715e0a584a190e7ac8cce62846b6acb13b97a946b68b2bee1b2e353ce6ec7"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 85,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Ensure Site Loads Under 3 Seconds on Mobile",
     "slug": "ensure-site-loads-under-3-seconds-on-mobile",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Find what slows your site on a phone. Make a small fix and check the result.",
     "content": "---\nname: ensure-site-loads-under-3-seconds-on-mobile\ndescription: \"Find what slows your site on a phone. Make a small fix and check the result.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Ensure Site Loads Under 3 Seconds on Mobile\n\nA slow page can make a visitor give up. This guide helps a site owner find and fix the main delay on a phone. Start by testing the pages that matter most, then save the results.\n\n**The path:** Baseline → One useful fix → Same test → Business checks.\n\n**Use this when:** key mobile pages are slow, performance regresses, or a launch needs a defined mobile speed check.\n\n## Inputs\n- The home page and top landing pages, chosen from actual traffic or the launch plan.\n- The named metric and test conditions for the house under-three-second target. If none is set, define it before work; do not equate a PageSpeed score with elapsed seconds.\n- Access to the responsible image, template, script or cache source and a rollback plan; existing performance and consent requirements.\n\n## First-run prompt\n\n> Measure the supplied mobile pages under stated conditions. Fix the largest supported cause within scope and re-test the same metric. Keep lab results, real-user data and real-phone observations separate. Preserve forms, accessibility, consent and necessary tracking.\n\n## Steps\n1. State the measurement contract: pages, mobile test tool, conditions and timing metric. For example, use mobile lab Largest Contentful Paint, the time until the main visible content appears, as the house under-three-second target. That is not proof that the whole page has finished loading.\n2. Save at least two comparable baseline runs per page and use the slower run for this house check. Record scores separately from timings. In PageSpeed Insights, distinguish current lab tests from the available 28-day field data and note whether field scope is the URL or wider origin.\n3. Read the diagnostics and page behavior to identify the main delay. Large images, slow server response and blocking scripts need different repairs; do not remove a plugin just because it exists.\n4. Optimize the actual problem image or asset: size it for display, compress appropriately and preserve meaningful detail. Lazy-load suitable below-page images, but do not delay the main hero image that the visitor needs first.\n5. For script or template weight, remove confirmed unused code or defer appropriate non-critical work through the supported source. Check dependencies before changing a builder or script. Preserve form behavior, accessibility, consent and agreed measurement.\n6. Use the actual host’s cache controls where beneficial. Verify cache behavior for suitable public pages without caching private or transactional responses by mistake. A content delivery service is an option, not a universal purchase requirement.\n7. Repeat the same tests and compare the same metric with baseline. Check the page on a real phone under a stated connection when available. Field Core Web Vitals use a different population and thresholds; no single lab pass certifies them.\n8. Stop when the agreed target and functional checks pass, or when the next change has a clear unresolved dependency. Save the measured improvements and remaining bottleneck with an owner; do not loop indefinitely or cut useful content just to raise a score.\n\n## Definition of done (QA checklist)\n\n- [ ] The under-three-second claim names its metric, pages and test conditions.\n- [ ] Before/after tests are comparable and the actual numbers are saved.\n- [ ] The chosen house target passes for the declared scope, or the exact residual delay is stated.\n- [ ] Forms, accessibility, consent, images and necessary tracking still work.\n- [ ] Lab, field and phone evidence are separate; no universal user-speed or ranking guarantee is made.\n\n## Example(s)\n\n**Fictional teaching example.** Two mobile lab LCP runs on a repair page take 4.2 and 4.5 seconds. Resizing its oversized hero image produces lesson runs of 2.6 and 2.8 seconds under the same conditions. The slower result, 2.8 seconds, meets the house under-three-second LCP target. It does not meet Google’s separate good field-LCP threshold merely by being under three, and these invented lab values provide no real-user evidence.\n\n## Handoff and Content Factory context\n\nGive the measurements and changed assets to the site owner. Use [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) if the optimization touched a lead form. Route an unresolved server delay to the actual hosting owner.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before a relevant launch and after major theme, asset or hosting changes. Optional monitoring needs configured pages, conditions and a trigger; the guide does not install a paid monitor.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Ensure Site Loads Under 3 Seconds on Mobile](https://local-service-spotlight.github.io/task-library/?task=ensure-site-loads-under-3-seconds-on-mobile#task-ensure-site-loads-under-3-seconds-on-mobile)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google PageSpeed Insights data](https://developers.google.com/speed/docs/insights/v5/about)\n- [Google Core Web Vitals](https://web.dev/articles/vitals)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The project must choose the house metric; no original source defined a precise load event. Real mobile and field coverage remain unverified until measured.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "bd14be98ec15701ec1ffd8c0af0bff8fec22db0a1fd1f19ce86e2bf9dcde3e66",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c2b9b37394a1382e9f139f79bb7af94d559409cd6ccfe56ed6586b9e9309306a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-site-loads-under-3-seconds-on-mobile#task-ensure-site-loads-under-3-seconds-on-mobile",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bd14be98ec15701ec1ffd8c0af0bff8fec22db0a1fd1f19ce86e2bf9dcde3e66",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bd14be98ec15701ec1ffd8c0af0bff8fec22db0a1fd1f19ce86e2bf9dcde3e66"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bd14be98ec15701ec1ffd8c0af0bff8fec22db0a1fd1f19ce86e2bf9dcde3e66"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 104,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Ensure Working Contact Form Delivers Notifications",
     "slug": "ensure-working-contact-form-delivers-notifications",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Check that a form sends the right request to the right person. Keep proof from both ends.",
     "content": "---\nname: ensure-working-contact-form-delivers-notifications\ndescription: \"Check that a form sends the right request to the right person. Keep proof from both ends.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: complete\n---\n\n# Ensure Working Contact Form Delivers Notifications\n\nUse this guide to check that a web form sends each request to the right person. It helps you catch lost requests before you send more people to your site. Start with [a clear contact path](https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path), which picks the next step for your visitor.\n\n**The path:** Form input → Accepted request → Team receipt → Follow-up owner.\n\n**Use this when:** a form launches, its plugin or sender changes, or expected website requests are missing.\n\n## Inputs\n- The form URLs and IDs, supported form settings access and the approved monitored receiver.\n- The actual sending service and current [email authentication setup](https://local-service-spotlight.github.io/task-library/?task=configure-spf-dkim-dmarc-for-deliverability#task-configure-spf-dkim-dmarc-for-deliverability), with access to relevant delivery logs or a named mail owner.\n- The authorized test scope, clear test marker, device coverage and expected receipt window. Identify downstream customer-record, booking or automatic-reply actions before submitting.\n\n## Starting state and run record\n\nStart with the supplied form IDs, intended receiver, test marker, approved device scope and receipt window. For each test, record form ID and revision, marker and time, device, accepted or rejected result, matching receiver record and time, delivery delay, downstream effect, issue and next owner. The acceptance measure is a matching request at the approved destination within the agreed window; a success banner or mail-server acceptance alone does not pass. Keep tests separate from real leads and do not turn test counts into sales claims.\n\n## First-run prompt\n\n> Check the supplied forms end to end within the approved test scope. Fix recipient, sender or success-trigger defects at their source. Record the visitor state and actual receiver evidence separately, and keep test records distinct from real leads.\n\n## Steps\n1. Map each form to its intended receiver and follow-up team. Read the recipient, From and Reply-To settings plus any customer-system or autoresponder connections. Confirm what a test will trigger so it does not create an unrequested appointment, charge or message chain.\n2. Save the current settings and prepare a clearly marked controlled test with no real customer data. Use the supplied receiver and response window; do not substitute an arbitrary personal inbox.\n3. Test desktop and mobile paths within that authority. Check required-field errors, accessible labels and submission behavior. Record the form ID, time and test marker, avoiding private data in public evidence.\n4. Verify the actual receiving inbox or system entry and delivery time. Inspect junk folders and mail logs when needed. A browser success message or mail-server acceptance is not the same as a message reaching the monitored inbox.\n5. For a wrong recipient, update the owning form setting. For sender failure, use the site’s supported authenticated mail or provider integration and its verified domain setup. Use an owned sender address and an appropriate Reply-To; do not spoof the visitor’s address as the authenticated From identity.\n6. Ensure success is shown only after the form accepts the intended request, and that errors give a useful next step. If analytics is in scope, trigger the agreed successful-submission event at that point, not merely on a button click.\n7. Re-test the affected chain after each fix. Inspect actual received analytics events when included, honoring consent. A Meta Lead event applies only where its meaning and current setup match the real action; installing tracking is not mandatory to prove email delivery.\n8. Save the paired visitor and receiver evidence, configured destination and next owner. Mark controlled test entries according to the system’s established process so they do not inflate lead reports; do not delete records blindly.\n\n## Definition of done (QA checklist)\n\n- [ ] Desktop and mobile form behavior was checked for the declared form set.\n- [ ] Each accepted test has a matching receipt at the approved monitored destination within the stated window.\n- [ ] Sender, recipient and Reply-To behavior are correct and authenticated where required.\n- [ ] Success and optional tracking follow actual accepted submissions, with no duplicate event or false lead claim.\n- [ ] Test records, downstream effects, remaining gaps and response owner are documented.\n\n## Example(s)\n\n**Fictional teaching example.** A quote form shows “Thanks,” but its notification still goes to a retired mailbox. The lesson updates the recipient to the business’s monitored queue and sends a marked test under a supplied test scope. The mock record pairs form TEST-01 at 10:00 with a receiver entry at 10:01. A second phone test has its own marker. Two received tests prove the lesson path, not two customer leads.\n\n## Handoff and Content Factory context\n\nHand the paired form and receiver records to the named mail or lead-response owner. The handoff is accepted when that owner confirms the monitored destination and response responsibility for the tested forms; otherwise record acceptance as pending. Use [configure spf dkim dmarc for deliverability](https://local-service-spotlight.github.io/task-library/?task=configure-spf-dkim-dmarc-for-deliverability#task-configure-spf-dkim-dmarc-for-deliverability) for authentication defects or [create clear conversion path](https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path) when the path itself is confusing.\n\nThis is a setup check for **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/), the process that turns real stories into useful content. A published page needs a working way for a reader to reach the business. Check that path before **Promote** sends more people to it. Promotion, spend and customer follow-up remain separately scoped work.\n\n## When this runs\n\nRun on setup and after form, mail or plugin changes. The source proposes a quarterly re-test; use that only when adopted in the project’s actual maintenance schedule with a safe test scope and monitored owner.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `ensure-robots-meta-not-blocking-indexing`\n- **Browse later task:** `create-clear-conversion-path`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Ensure Working Contact Form Delivers Notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Workspace DKIM setup](https://knowledge.workspace.google.com/admin/security/set-up-dkim)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nContributor status records that these written instructions are complete. It is not proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real receiver evidence and authorized downstream test effects must be supplied; this authoring pass submitted no form or message.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "ensure-robots-meta-not-blocking-indexing",
     "after": "create-clear-conversion-path",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "ee8b5f159bcee7bf1fa76e30c0f1351b2b1fe59b7dd9faab76e2bf7f1a2ad870",
      "reviewed_at": "2026-10-17",
      "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
      "scope": "Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Actual three-sentence opening quoted in release review: plain task, useful business reason and explained linked prerequisite/next step. Rendered guide path inspected at phone and desktop sizes.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Starting page/form/provider scope, required access and approved tests, ordered checks, recorded outputs and objective acceptance conditions are explicit.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "All20 linked URLs returned200 with normal browser headers; root read relevant owned definitions, linked task bodies and primary source meanings. No definition is linked to an unrelated task.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional examples labeled; actual receipts, provider capability and outcome proof are required before execution can pass. Clicks, accepted requests, calls and qualified leads remain distinct; no sales uplift inferred.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Named page/mail/phone/reporting function receives the checked record and confirms it; missing confirmation remains pending. Working contact path belongs before promotion.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "e92b767a0a175475c6e478008a05171783773a84443feeb7807e4a427757692d",
       "previousReviewDate": "2026-10-13",
       "change": "Contributor status changes from needs-work to complete and the evidence note explains that this labels written instruction completeness. Method, opening, visuals, links, fictional example and acceptance criteria are unchanged; existing five written verdicts retained. No new article, execution or novice certification.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-ready-download-2026-10-17.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ee8b5f159bcee7bf1fa76e30c0f1351b2b1fe59b7dd9faab76e2bf7f1a2ad870",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-17. Review scope and limits: Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
        "reviewedAt": "2026-10-17",
        "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
        "sourceSha256": "ee8b5f159bcee7bf1fa76e30c0f1351b2b1fe59b7dd9faab76e2bf7f1a2ad870"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-17",
        "reviewer": "Codex contributor-label and evidence-note reconciliation; prior independent written verdicts retained",
        "reviewScope": "Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md Contributor-label and evidence-note reconciliation on 2026-10-17: method, opening, visuals, links, examples and acceptance unchanged; existing five written verdicts retained. Contributor instructions-complete label now matches that review. No new article/source freshness, result, novice or schedule evidence. See reviews/revenue-ready-download-2026-10-17.md.",
        "sourceSha256": "ee8b5f159bcee7bf1fa76e30c0f1351b2b1fe59b7dd9faab76e2bf7f1a2ad870",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Actual three-sentence opening quoted in release review: plain task, useful business reason and explained linked prerequisite/next step. Rendered guide path inspected at phone and desktop sizes.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Starting page/form/provider scope, required access and approved tests, ordered checks, recorded outputs and objective acceptance conditions are explicit.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "All20 linked URLs returned200 with normal browser headers; root read relevant owned definitions, linked task bodies and primary source meanings. No definition is linked to an unrelated task.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional examples labeled; actual receipts, provider capability and outcome proof are required before execution can pass. Clicks, accepted requests, calls and qualified leads remain distinct; no sales uplift inferred.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Named page/mail/phone/reporting function receives the checked record and confirms it; missing confirmation remains pending. Working contact path belongs before promotion.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "ensure-working-contact-form-delivers-notifications",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T20:17:19.449635Z",
         "reviewer": "Codex root; independent source review recorded separately",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Canonical parent opening and meaningful Content Factory connection now quoted and reviewed separately from its copied skill openings. Current body supplies the setup and test steps promised.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Recipe scope and shared parent topic-hub role preserved.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Canonical article upkeep ownership not established by this scoped repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Current copied recipe gives controlled inputs, distinct results and receiving acceptance.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Selected recipe links: root read relevant owned and primary meanings; 20 URLs returned 200; linked task bodies checked. Parent opening Content Factory destination read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Teaching scenarios do not establish real task-attributed outcomes.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Explicit checked record and accepting function; relates working contact path to Post before Promote.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected instructions and section views checked; complete parent audit not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Three copied skills are not full shared-parent certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No actual call/form/client delivery or beginner setup performed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "ensure-working-contact-form-delivers-notifications",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T20:17:19.453518Z",
         "observer": "Codex separate authenticated read",
         "state": "observed",
         "reason": "Separate fresh saved-source read matches final reviewed parent bytes; anonymous readback checked separately.",
         "evidenceRefs": [
          "sha256:76375c5c067973c412c979f5f2e0aad6195047dae0d9285f789598006d956afa"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 25,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Install Google Tag Manager Container",
     "slug": "install-google-tag-manager-container",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Set up the tag box your site needs. Check the live version and each tag you mean to use.",
     "content": "---\nname: install-google-tag-manager-container\ndescription: \"Set up the tag box your site needs. Check the live version and each tag you mean to use.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: gap\n---\n\n# Install Google Tag Manager Container\n\nTracking code can be hard to find when it is spread across a site. This guide helps a site owner put the planned tags in a clear place. Start by listing what already runs and what you need to measure.\n\n**The path:** Tag inventory → Container install → Version release → Received-event proof.\n\n**Use this when:** the project has chosen Google Tag Manager for a new measurement setup or a controlled migration from scattered tags.\n\n## Inputs\n- The site and measurement plan, existing containers, tags and consent setup. GTM is one implementation option; a valid direct Google tag is not automatically a defect.\n- Business-controlled Google Tag Manager access with the permissions needed for the actual create, edit and publish steps, plus supported site-source access.\n- A backup or export of the current setup, representative templates and a receiver account for any measurement tag being deployed.\n\n## First-run prompt\n\n> Inspect existing tracking and install or reuse the intended GTM web container within scope. Keep container presence, published version, tag firing and received events separate. Migrate tags only with a controlled duplicate-prevention plan and preserve consent behavior.\n\n## Steps\n1. Inventory existing GTM containers, direct tags, plugin integrations and their purposes. Define the intended architecture before adding another container. One clear container per site is a useful default, not a technical rule that valid multi-site or multi-container designs can never exist.\n2. Use the existing appropriate business-controlled account and Web container, or create the needed one within the authorized setup scope. Record the account and container IDs and verify actual operator capabilities without granting unnecessary access.\n3. Copy the container’s current installation snippets from GTM. Put the script high in the head and the noscript portion just after the opening body tag through the supported theme or platform integration. Avoid duplicate installation across a plugin and template.\n4. Save and inspect representative public templates: home, service, post and contact flow. Confirm the intended container ID is present in the served page. Presence proves installation, not that any measurement tag has fired.\n5. Add or migrate only the tags in the agreed measurement plan. For each, document trigger, destination, consent requirements and expected event. An empty published container can be correctly installed but provides no measurement by itself.\n6. Use Preview and Tag Assistant to inspect tag behavior and consent cases. Preview may run an unpublished workspace. For a migrated tag, coordinate removal of its old source and activation of the new one so the intended event is not lost or sent twice.\n7. Publish the reviewed container version when this deployment is authorized. Exit preview and test the ordinary public page against that live version. A current published container may work even when a newer workspace draft remains unpublished; do not confuse the two.\n8. Check the intended receiver for each in-scope tag, record version and timestamps, and retain rollback details. If this task only installed an empty container, say so and hand off measurement setup instead of claiming tracking complete.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended container is installed once per intended location or has a documented valid architecture.\n- [ ] The normal public page uses the recorded published version; preview evidence is separate.\n- [ ] Each in-scope tag has the correct trigger, consent behavior and destination.\n- [ ] Tag firing and receiver evidence are checked without unintended duplicate events.\n- [ ] Business control, source location, version and remaining measurement work are documented.\n\n## Example(s)\n\n**Fictional teaching example.** A site already has a direct analytics tag. The lesson installs a GTM container and prepares a replacement tag in Preview. That preview pass does not yet prove the public release. At the planned cutover, the direct source is removed and the reviewed GTM version is published. One normal page view then has one matching received event. If the container were published empty instead, the correct result would be “container installed; analytics not configured.”\n\n## Handoff and Content Factory context\n\nGive the container version and architecture record to the measurement owner. Use [set up ga4 with internal traffic filtering](https://local-service-spotlight.github.io/task-library/?task=set-up-ga4-with-internal-traffic-filtering#task-set-up-ga4-with-internal-traffic-filtering) for planned Analytics setup, or [install meta pixel with standard events](https://local-service-spotlight.github.io/task-library/?task=install-meta-pixel-with-standard-events#task-install-meta-pixel-with-standard-events) only when that separate measurement is in scope.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nInstall once and verify after template or tag changes. Future tag releases still need their actual scope, version and event checks; no automatic account access, schedule or universal tag migration is created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `set-up-content-library`\n- **Browse later task:** `set-up-ga4-with-internal-traffic-filtering`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Install Google Tag Manager Container](https://local-service-spotlight.github.io/task-library/?task=install-google-tag-manager-container#task-install-google-tag-manager-container)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Tag Manager web-container installation](https://support.google.com/tagmanager/answer/14847097?hl=en-AU)\n- [Google Tag Manager preview and debug](https://support.google.com/tagmanager/answer/6107056?hl=en)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Source status remains gap and the dedicated task article is missing. The historical client anecdote is not proof for a new install; actual version and receiver evidence are still required.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "set-up-content-library",
     "after": "set-up-ga4-with-internal-traffic-filtering",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "8aadbf226ce5e6349a61e0a7b546e49c0c6213e9f6943ff35a0210cf9e9bee9f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b097ac1b3d82a7ec3efd14243f47ab94dbf55845b3dbb9cdd605244c63e174bc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "8aadbf226ce5e6349a61e0a7b546e49c0c6213e9f6943ff35a0210cf9e9bee9f",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "8aadbf226ce5e6349a61e0a7b546e49c0c6213e9f6943ff35a0210cf9e9bee9f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "8aadbf226ce5e6349a61e0a7b546e49c0c6213e9f6943ff35a0210cf9e9bee9f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 21,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Install Meta Pixel With Standard Events",
     "slug": "install-meta-pixel-with-standard-events",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Set up the Meta web tags your plan needs. Check that each real action sends the right event.",
     "content": "---\nname: install-meta-pixel-with-standard-events\ndescription: \"Set up the Meta web tags your plan needs. Check that each real action sends the right event.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: gap\n---\n\n# Install Meta Pixel With Standard Events\n\nDo you know which site actions your ads can measure? This guide helps a business owner set up the planned Meta web tags. Start with the actions that matter and the account that should receive them.\n\n**The path:** Action map → Approved tag setup → Controlled event → Receiver check.\n\n**Use this when:** an authorized measurement plan needs a new Meta web data source or a repair to existing event collection.\n\n## Inputs\n- The business-controlled Meta data source and actual permissions, or the authorized setup scope for creating one. Record the correct dataset/pixel ID.\n- The site’s current integration, consent behavior and event inventory. GTM, a supported partner integration or another supported implementation may be appropriate.\n- The real action definitions, intended receiver, controlled-test scope and rollback source. Do not send private form text, sensitive customer data or secrets as event parameters.\n\n## First-run prompt\n\n> Read the actual Meta data source and current implementation instructions. Install the approved web tags and events with the existing consent controls. Verify test actions at the correct receiver without duplicate tags or invented conversions. Report browser Pixel and server integration separately.\n\n## Steps\n1. Map each business action to the measurement plan. Separate a page view, a telephone-link tap, an accepted form submission and a qualified call. A campaign may have a different objective; Meta web tracking is not a universal prerequisite for every marketing action.\n2. Confirm business control, actual operator access and the exact data-source ID in Events Manager. Reuse a suitable existing source rather than creating duplicates. Do not transfer ownership or create ad accounts merely to repair a tag.\n3. Inspect existing partner, plugin, GTM and direct code integrations. Choose the supported owning implementation and save its before state. For a GTM path, use the currently supplied installation instructions and honor existing consent requirements.\n4. Install the base web code through that one planned source. Inspect representative page types and the actual ID after publication. Correct installation does not mean the business events or a separate server-side Conversions API integration are working.\n5. Configure only the appropriate actions using current Meta event definitions. The source suggests Lead for accepted lead forms and Contact for contact actions; verify those meanings in the current accessible reference before mapping them. Do not fire Lead on every page or count a telephone tap as a completed call.\n6. Use the current browser helper and Events Manager test facility to inspect controlled actions. Record event name, ID, timestamp, trigger and relevant non-sensitive parameters. Check both permitted and withheld-consent behavior without bypassing it.\n7. After a controlled release, test the normal public page outside any preview. Check for duplicate delivery from old code. If browser and server versions of an event are intentionally used, verify the supported deduplication design separately; a browser helper alone cannot certify it.\n8. Save the implementation version and receiver results. Check later collection only under an actual configured follow-up and expected real activity. No activity is not proof of failure, and test events alone do not prove campaign performance or audience eligibility.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended data source is under documented business control with usable scoped access.\n- [ ] Base web installation and every in-scope action have distinct checked results.\n- [ ] Received events use correct definitions, IDs and consent behavior without unintended duplicates.\n- [ ] Browser and server evidence are separated; customer data is not exposed in public records.\n- [ ] A useful handoff names remaining event-reference, access or collection gaps without claiming ad results.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair’s page has a quote button and a form. The lesson maps a successful accepted form to its approved lead event, while a validation error sends none. The mock receiver table contains one accepted-form event with its test marker and no duplicate from the old plugin. A telephone tap is labeled a contact action; it is not reported as a completed call. This table is teaching data, not an actual Events Manager receipt.\n\n## Handoff and Content Factory context\n\nGive the event map and checked data-source ID to the measurement owner. Use [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) to verify form delivery or [set up call tracking for phone conversions](https://local-service-spotlight.github.io/task-library/?task=set-up-call-tracking-for-phone-conversions#task-set-up-call-tracking-for-phone-conversions) for real call outcomes. Ad deployment stays in its own authorized task.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once and recheck after code, consent or event changes. The source’s next-day collection check needs an actual configured follow-up; this Markdown file does not schedule it.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `verify-google-search-console-and-connect-to-ga4`\n- **Browse later task:** `set-up-digital-plumbing-pixels-tracking`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Install Meta Pixel With Standard Events](https://local-service-spotlight.github.io/task-library/?task=install-meta-pixel-with-standard-events#task-install-meta-pixel-with-standard-events)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Meta Pixel event reference — check current accessible version before implementation](https://developers.facebook.com/docs/meta-pixel/reference/)\n- [Meta Conversions API — separate from browser Pixel evidence](https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api/)\n- [Google Tag Manager preview and debug](https://support.google.com/tagmanager/answer/6107056?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The current Meta event-reference pages returned 429 during the earlier authoring pass; a bounded official search returned no results. Event definitions and exact account menus need the current accessible provider reference at execution. No source API or production test ran.\n- The dedicated task article remains unmapped and source status remains gap.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "verify-google-search-console-and-connect-to-ga4",
     "after": "set-up-digital-plumbing-pixels-tracking",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "968048ffbac5620a8eacc72444fda87b84edc89334f236b65979dff724c1e261",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9eb2ec4a9c81bf29466ef9d9b6bc7e793275330c3f2159386c2b75868ae443d2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "968048ffbac5620a8eacc72444fda87b84edc89334f236b65979dff724c1e261",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "968048ffbac5620a8eacc72444fda87b84edc89334f236b65979dff724c1e261"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "968048ffbac5620a8eacc72444fda87b84edc89334f236b65979dff724c1e261"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 22,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set Correct Business Categories",
     "slug": "set-correct-business-categories",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Pick the business type that fits your real work. Check what you saved and what is live.",
     "content": "---\nname: set-correct-business-categories\ndescription: \"Pick the business type that fits your real work. Check what you saved and what is live.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Set Correct Business Categories\n\nThe wrong business type can confuse people who find you on Google. This guide helps an owner choose the right type for the work they do. Start with the main service your business really sells.\n\n**The path:** Real work → Available categories → Saved choice → Public check.\n\n**Use this when:** a Google Business Profile has inaccurate categories or the business’s actual main work changes.\n\n## Inputs\n- The exact Business Profile and current editing access, with its verification state known.\n- The owner-backed core business description and real additional services or departments.\n- Current primary and additional categories, plus their source evidence and any existing review issue.\n\n## First-run prompt\n\n> Match the actual business to Google’s available categories. Make the authorized minimal category edit, then record whether it is saved, pending or publicly visible. Do not select a false category to mimic a competitor or promise a ranking lift.\n\n## Steps\n1. Describe the business as a whole and its main activity. Consider its important revenue service, but do not choose a category for a minor high-priced offering that misrepresents the overall business.\n2. Open the exact Business Profile and record current categories. Verify the role supports the edit and read any existing verification or pending-review notice before submitting another change.\n3. In Edit profile → Business category, search the current available list. Choose the most specific accurate primary category. If the exact one does not exist, a truthful broader category is valid; you cannot create a custom category.\n4. Add only a few appropriate additional categories for genuine business activities. Do not add one for every product, planned service or independently operated neighboring business.\n5. Compare the proposed set with the website’s actual service claims. Competitor categories can suggest a question to check, but are not proof of what this business does or what will improve its ranking.\n6. Save the authorized change and record the submitted values and time. Category edits may prompt reverification. Preserve that state and use the supported review or verification route rather than repeatedly resubmitting until a badge changes.\n7. Read the management state and public profile after the provider processes the edit. Check whether the intended choice is visible; a saved form or elapsed number of days is not acceptance proof.\n8. Save the chosen categories, factual reason and review result. If rejected, identify the provider’s stated reason and the exact next action, without changing to an inaccurate category just to get through.\n\n## Definition of done (QA checklist)\n\n- [ ] The primary category accurately describes the real business and is available in Google’s list.\n- [ ] Additional categories represent genuine appropriate activities.\n- [ ] The change is backed by business facts, not only competitor positions.\n- [ ] Submitted, pending, verified and public-visible states have distinct evidence.\n- [ ] No ranking, suspension or processing-time guarantee is invented.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair installs fences as its core service. The picker offers “Fence contractor,” so that is a more accurate primary choice than a broad contractor label. The owner does not provide landscaping, even though a nearby competitor lists it. That category is left out. The lesson records one submitted primary edit and marks the public result pending until it is actually observed.\n\n## Handoff and Content Factory context\n\nGive the category record to the Business Profile owner. Use [verify google business profile](https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile#task-verify-google-business-profile) if the edit triggers verification, or [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) when the underlying business facts disagree.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for genuine business changes and discovered category defects. A scheduled review may flag drift, but should not automatically resubmit or experiment with categories.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Set Correct Business Categories](https://local-service-spotlight.github.io/task-library/?task=set-correct-business-categories#task-set-correct-business-categories)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Business Profile categories](https://support.google.com/business/answer/7249669?hl=en)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Current category availability and public acceptance require the actual profile; no edit was made during drafting.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "72b68bd2560e6081e2e3154fbe6968d819957e26c1df293c06428fc49e479b7d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b6cb679b80d277fe4f5258a34257412f9ed6fa7a57eabefbf9523f194bde1b4f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-correct-business-categories#task-set-correct-business-categories",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "72b68bd2560e6081e2e3154fbe6968d819957e26c1df293c06428fc49e479b7d",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "72b68bd2560e6081e2e3154fbe6968d819957e26c1df293c06428fc49e479b7d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "72b68bd2560e6081e2e3154fbe6968d819957e26c1df293c06428fc49e479b7d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 107,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set Favicon",
     "slug": "set-favicon",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Put your own small brand icon on the site. Check that it is clear in a browser tab.",
     "content": "---\nname: set-favicon\ndescription: \"Put your own small brand icon on the site. Check that it is clear in a browser tab.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Set Favicon\n\nDoes your site’s tab still show the host’s icon? This guide helps a site owner add a clear mark for the brand. Start with a real logo or approved photo that works at a small size.\n\n**The path:** Approved mark → Site icon source → Served icon → Small-size check.\n\n**Use this when:** a site has no appropriate icon, still shows a default, or changes its brand asset.\n\n## Inputs\n- A rights-cleared brand mark or appropriate real headshot and a square source file. For the source’s WordPress workflow, prepare a 512 by 512 pixel asset.\n- The current icon-owning source and supported editing access for this platform or theme.\n- Representative public pages and a fresh browser context for checking served declarations and visible tab behavior.\n\n## First-run prompt\n\n> Set the approved site icon through its actual owning source. Check small-size legibility, served icon declarations and fresh desktop/mobile behavior. Keep browser display and Google search eligibility separate.\n\n## Steps\n1. Inspect the currently served icon declarations and the CMS’s icon setting. Find which source controls them before adding another setting; different sizes and formats can be intentional rather than duplicates.\n2. Choose a simple recognizable element from the approved brand asset. Crop it square and inspect it at roughly tab size. Do not use a busy wordmark or an invented face that ceases to be meaningful when small.\n3. Prepare the source image for the actual platform’s requirements. A 512-pixel square is the source task’s WordPress preparation target; it is not a universal Google favicon requirement. Preserve the original and record the export.\n4. Set the image in the installed WordPress version’s Site Icon control or the equivalent supported source on another platform. Confirm the actual menu for that version rather than assuming every theme exposes the old Customizer path.\n5. Save and inspect ordinary public HTML. Resolve icon references relative to the page URL and check that the intended image loads. A valid CDN or custom file path is allowed; /favicon.ico is not mandatory.\n6. Remove or correct a conflicting obsolete declaration at its owning source if it actually overrides the intended mark. Preserve legitimate alternate formats, device icons and app-specific assets.\n7. Check the tab in fresh desktop and mobile contexts and inspect bookmark or home-screen appearance where included. Separate a stale browser cache from stale served HTML. Avoid changing a good asset repeatedly to chase a local cached icon.\n8. Record the selected asset and source setting. Google has separate crawl and image eligibility rules and chooses when or whether to show the icon in search; a browser pass does not guarantee search-result display.\n\n## Definition of done (QA checklist)\n\n- [ ] The source is an approved brand asset, clear at small size.\n- [ ] The active icon declarations resolve to the intended valid files.\n- [ ] No obsolete conflicting source overrides the chosen icon.\n- [ ] Desktop/mobile checks and any local caching limit are documented.\n- [ ] Browser success is separated from search eligibility and unobserved Google display.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair has a detailed logo with a long slogan. The lesson uses its approved oak-leaf mark alone in a square export. The site declares a 32-pixel icon and a larger touch icon from that source. Both are legitimate. A stale theme icon pointing to the old host is removed, and a fresh tab shows the leaf. No Google search-display result is claimed.\n\n## Handoff and Content Factory context\n\nGive the brand asset and icon-source location to the site owner. Use [check favicon is set](https://local-service-spotlight.github.io/task-library/?task=check-favicon-is-set#task-check-favicon-is-set) during future site reviews; a theme change should preserve this setting.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at site setup or a brand/theme change. No ongoing schedule is required for the icon itself.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Set Favicon](https://local-service-spotlight.github.io/task-library/?task=set-favicon#task-set-favicon)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google favicon guidelines](https://developers.google.com/search/docs/appearance/favicon-in-search)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The dedicated article is unmapped. Current WordPress Site Icon documentation could not be fetched in this pass, so the installed platform’s actual control and requirement must be checked at execution.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "d4dae0becd905b59d7164c640b50d3850a1e1953459b93be32abc3f2163c72f7",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3756ab879060370fc755eb97d0053fbf4de32103ede2a9eddfd2930f8e550f37",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d4dae0becd905b59d7164c640b50d3850a1e1953459b93be32abc3f2163c72f7",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d4dae0becd905b59d7164c640b50d3850a1e1953459b93be32abc3f2163c72f7"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d4dae0becd905b59d7164c640b50d3850a1e1953459b93be32abc3f2163c72f7"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 187,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set Up Call Tracking for Phone Conversions",
     "slug": "set-up-call-tracking-for-phone-conversions",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Track calls from your site without losing the right phone route. Check the call and its record.",
     "content": "---\nname: set-up-call-tracking-for-phone-conversions\ndescription: \"Track calls from your site without losing the right phone route. Check the call and its record.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Set Up Call Tracking for Phone Conversions\n\nUse this guide to check which calls reach your team and where they come from. This helps you spot missed calls before you pay to bring more people to your site. It follows [the contact path check](https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path), which shows where a visitor can call you.\n\n**The path:** Call plan → Number routing → Controlled call → Measured outcome.\n\n**Use this when:** phone calls matter to the business and the agreed measurement plan needs reliable source or outcome tracking.\n\n## Inputs\n- The actual business line, receiving team, hours and approved public number policy.\n- An existing or authorized call-tracking provider and budget, number availability, supported website integration and account access. A purchase or new subscription is not implied by downloading this guide.\n- The chosen provider’s current setup and attribution instructions, with their URL and review date. Check what the actual account supports before changing it; a missing provider or unsupported feature remains a setup dependency.\n- The attribution design, approved controlled-test window, reporting destination and recording/consent policy. Keep caller details and recordings in the approved private system.\n\n## Starting state and run record\n\nStart with the approved business and receiving numbers, provider, source list, attribution question, controlled-test window and named phone/reporting owners. For each test, record source/page and revision, device, visible number and telephone-link target, test-call ID and time, routed line, provider record, connected/answered state, qualified outcome if the owner confirms it, integration event if in scope, issue and next owner. Measure click, call attempt, connected call, answered call and qualified lead as separate states. A test call proves routing only; compare lead rates or revenue only from real, consistently defined records and never infer sales uplift from setup.\n\n## First-run prompt\n\n> Configure the scoped call-tracking path with the actual provider. Check visible numbers and telephone links, forwarding and received call records. Distinguish clicks, connected calls and qualified outcomes. Do not enable recording or send new customer data to other platforms outside the approved design.\n\n## Steps\n1. Define the question to answer: calls by page, campaign, source or actual qualified outcome. Record the limits of that attribution design and whether dynamic number insertion is appropriate. A form-only business may not need this task.\n2. Confirm the stable business number and the intended receiving line. Reuse or provision the authorized tracking number or pool in the actual provider, accounting for the agreed cost and ownership. Do not purchase numbers without that scope.\n3. Configure forwarding, business-hours routing and fallback behavior in the provider. Keep recording off unless it is part of the authorized, reviewed policy and necessary notices/consent handling are in place. This guide does not supply a legal determination.\n4. Install the provider’s supported number-swap integration at the intended source. Dynamic number insertion changes a displayed phone number for a visitor or source; test that the telephone-link target changes with the visible text. [Google Tag Manager (GTM)](https://local-service-spotlight.github.io/task-library/?task=install-google-tag-manager-container#task-install-google-tag-manager-container) can load the provider’s script when that provider supports it; it is not a required dependency for every setup.\n5. Preserve the underlying identity and approved profile-number strategy. Do not blindly paste changing session numbers into schema or citations. A stable approved tracking number may be allowed by a platform’s actual rules; document the reason rather than claiming all tracking numbers always break identity.\n6. Place a marked controlled test within the agreed window. Check that the intended line rings, routing and fallback work, and a matching call record appears. A telephone tap alone does not prove connection or answer.\n7. Connect only the approved reporting integration. Map call states to their actual meanings and inspect received events. A browser Pixel event on a link click does not by itself attribute an offline completed call; missing provider support is a concrete integration gap.\n8. Record the number map, tested source rules, call IDs, outcome definitions and privacy settings. Separate test calls from customer reports and keep unsupported attribution unknown. Hand the receiving team the actual follow-up process.\n\n## Definition of done (QA checklist)\n\n- [ ] The tracking design and provider scope answer a defined business question.\n- [ ] Visible numbers and telephone targets agree for tested source/device cases.\n- [ ] A controlled call reaches the right line and has a matching provider record.\n- [ ] Connected, answered and qualified calls use distinct verified meanings in reports.\n- [ ] Recording, customer-data handling, costs and any external event integration follow the actual approved design.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair uses one tracked website number that forwards to its existing line. A lesson call record shows “answered, 42 seconds”; the website click log only shows that a phone link was tapped. The report counts one answered test call, not a qualified customer. Qualification remains unknown until the responsible team supplies the real outcome. No number is bought or called for this teaching example.\n\n## Handoff and Content Factory context\n\nHand the routing map to the named phone owner and the state definitions to the reporting owner. The handoff is accepted when the phone owner confirms the receiving line and the reporting owner confirms the event meanings against the test IDs; otherwise leave the relevant acceptance pending. Use [add click to call links for mobile](https://local-service-spotlight.github.io/task-library/?task=add-click-to-call-links-for-mobile#task-add-click-to-call-links-for-mobile) for a broken tap target or [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) for an identity mismatch.\n\nThis is a setup check for **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/), the process that turns real stories into useful content. A published page needs a working way for a reader to reach the business. Check that path before **Promote** sends more people to it. Promotion, spend and customer follow-up remain separately scoped work.\n\n## When this runs\n\nRun at installation and after routing, number, website or attribution changes. Optional recurring call checks need a real test window and receiving owner; no unannounced periodic calls are created.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 3, revenue 5, gating 4 (ads/revenue path; gates a phase)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Set Up Call Tracking for Phone Conversions](https://local-service-spotlight.github.io/task-library/?task=set-up-call-tracking-for-phone-conversions#task-set-up-call-tracking-for-phone-conversions)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The provider-specific integration and attribution limits must be checked against the chosen product’s current documentation before configuration. No calls, purchases or legal consent determinations occurred during drafting.",
     "importance": 5,
     "freq": 3,
     "revenue": 5,
     "gating": 4,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "2c9b5466af6899fb68fdb5e6decbf6798d63e6984125068e3ed95d29a2bb1180",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Actual three-sentence opening quoted in release review: plain task, useful business reason and explained linked prerequisite/next step. Rendered guide path inspected at phone and desktop sizes.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Starting page/form/provider scope, required access and approved tests, ordered checks, recorded outputs and objective acceptance conditions are explicit.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "All20 linked URLs returned200 with normal browser headers; root read relevant owned definitions, linked task bodies and primary source meanings. No definition is linked to an unrelated task.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional examples labeled; actual receipts, provider capability and outcome proof are required before execution can pass. Clicks, accepted requests, calls and qualified leads remain distinct; no sales uplift inferred.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Named page/mail/phone/reporting function receives the checked record and confirms it; missing confirmation remains pending. Working contact path belongs before promotion.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "dc69b04996dec7bd3f12d76e94dd4fac9f75155af9a0796744605e0d1a755eca",
       "previousReviewDate": "2026-10-05",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-call-tracking-for-phone-conversions#task-set-up-call-tracking-for-phone-conversions",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2c9b5466af6899fb68fdb5e6decbf6798d63e6984125068e3ed95d29a2bb1180",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2c9b5466af6899fb68fdb5e6decbf6798d63e6984125068e3ed95d29a2bb1180"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written method only. Full article, real execution, receiver result and unassisted novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "2c9b5466af6899fb68fdb5e6decbf6798d63e6984125068e3ed95d29a2bb1180",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Actual three-sentence opening quoted in release review: plain task, useful business reason and explained linked prerequisite/next step. Rendered guide path inspected at phone and desktop sizes.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Starting page/form/provider scope, required access and approved tests, ordered checks, recorded outputs and objective acceptance conditions are explicit.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "All20 linked URLs returned200 with normal browser headers; root read relevant owned definitions, linked task bodies and primary source meanings. No definition is linked to an unrelated task.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional examples labeled; actual receipts, provider capability and outcome proof are required before execution can pass. Clicks, accepted requests, calls and qualified leads remain distinct; no sales uplift inferred.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Named page/mail/phone/reporting function receives the checked record and confirms it; missing confirmation remains pending. Working contact path belongs before promotion.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "set-up-call-tracking-for-phone-conversions",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T20:17:19.449635Z",
         "reviewer": "Codex root; independent source review recorded separately",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Canonical parent opening and meaningful Content Factory connection now quoted and reviewed separately from its copied skill openings. Current body supplies the setup and test steps promised.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Recipe scope and shared parent topic-hub role preserved.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Canonical article upkeep ownership not established by this scoped repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Current copied recipe gives controlled inputs, distinct results and receiving acceptance.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Selected recipe links: root read relevant owned and primary meanings; 20 URLs returned 200; linked task bodies checked. Parent opening Content Factory destination read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Teaching scenarios do not establish real task-attributed outcomes.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Explicit checked record and accepting function; relates working contact path to Post before Promote.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected instructions and section views checked; complete parent audit not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Three copied skills are not full shared-parent certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No actual call/form/client delivery or beginner setup performed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "set-up-call-tracking-for-phone-conversions",
         "canonicalURL": "https://blitzmetrics.com/digital-plumbing",
         "sourceSha256": "5785e65d552c7e29371a338a304725fb04f235e9c5098d967e87409d48f2433e",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T20:17:19.453522Z",
         "observer": "Codex separate authenticated read",
         "state": "observed",
         "reason": "Separate fresh saved-source read matches final reviewed parent bytes; anonymous readback checked separately.",
         "evidenceRefs": [
          "sha256:76375c5c067973c412c979f5f2e0aad6195047dae0d9285f789598006d956afa"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 44,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set Up Consistent Headshots and Bios Across Profiles",
     "slug": "set-up-consistent-headshots-and-bios-across-profiles",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Use the right photo and true story on each profile. Keep a clear source for future edits.",
     "content": "---\nname: set-up-consistent-headshots-and-bios-across-profiles\ndescription: \"Use the right photo and true story on each profile. Keep a clear source for future edits.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Set Up Consistent Headshots and Bios Across Profiles\n\nDo your profiles tell the same true story? This guide helps you keep the facts and photos clear. Start with a real photo and a short story you can prove.\n\n**The path:** Verified identity → Approved assets → Profile variants → Public proof.\n\n**Use this when:** a person or business changes its public positioning or finds stale, conflicting or inappropriate profile assets.\n\n## Inputs\n- The correct person or business identity, current approved real image, rights and source-based identity confirmation. Do not identify people by comparing faces.\n- A canonical factual bio with supported claims and short/long variants suited to the actual audiences.\n- The in-scope profile list, field limits and usable editing access. Separate personal profiles from company Pages and service-area business listings.\n\n## First-run prompt\n\n> Update the supplied profile set from its approved image and factual bio. Adapt length and voice to the actual person, business and platform without inventing claims. Record public read-backs and legitimate differences. Preserve evidence HOLDs and private data.\n\n## Steps\n1. Separate the person, business and location profiles. Decide which asset each should use: a personal headshot may fit the individual while the company uses its logo. An identical face on every surface is not the definition of correct identity.\n2. Confirm the image from an approved source record and publication rights. Use a current real image for the role. Do not infer who someone is from facial appearance, and do not replace missing proof with a generated portrait.\n3. Write the factual core: who the person or business helps, what it does and a supported proof point when available. Apply the maintained credibility rules: show a real moment rather than a trophy-name paragraph, and make relationship language no stronger than its evidence.\n4. Create short and long variants without changing the underlying story. First person fits the individual’s own narrative; company “we,” a formal third-person bio or a clearly attributed quote may be appropriate. Do not force identical first lines or claim language across unlike entities.\n5. Keep anonymous, domain-only or unverified praise on HOLD until evidence and permission meet the rule. Do not turn co-appearance into friendship, mentorship or endorsement. Derivative and repurposing work inherits the same evidence limits.\n6. Store the approved source image and text versions in the project’s content library, then update each scoped profile through its supported source. Match actual crop and field limits; do not expose a private contact address to fill an optional public field.\n7. Read back the public profiles and check intended asset, name and factual meaning. Document necessary differences and pending review states. An internal verification process or confidence label does not belong in public bio copy; keep a needed compliance disclosure when applicable.\n8. Save the profile-by-profile change record, asset version and next owner. A missing account does not justify claiming every profile is updated. Route the exact remaining surface instead of asking for every login again.\n\n## Definition of done (QA checklist)\n\n- [ ] Each profile uses the right person/business identity and an approved sourced asset.\n- [ ] Bio variants preserve verified facts, appropriate voice and limited relationship claims.\n- [ ] HOLD evidence remains held across all derivatives; no fictional proof enters real copy.\n- [ ] Public crops, fields and website links are checked for the declared profile set.\n- [ ] The source library and unresolved profile owners are recorded without private contact or internal verification leakage.\n\n## Example(s)\n\n**Fictional teaching example.** Lee Hart’s personal profile says “I help local owners explain roof repairs.” Oak Repair’s company Page says “We repair roofs for local homeowners.” The profile uses Lee’s approved headshot; the Page uses the company mark. Both tell a consistent factual story without pretending they are the same entity. A draft claim that Lee is a famous speaker’s mentor remains HOLD because the only evidence is an event appearance.\n\n## Handoff and Content Factory context\n\nGive the approved asset and bio variants to the profile owners. Use [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) for business contact facts or [add schema markup person localbusiness](https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness) for matching machine-readable identities.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when the approved image, role or positioning changes. A periodic stale-profile review can be configured separately; the model does not automatically retain or publish the latest canon.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Set Up Consistent Headshots and Bios Across Profiles](https://local-service-spotlight.github.io/task-library/?task=set-up-consistent-headshots-and-bios-across-profiles#task-set-up-consistent-headshots-and-bios-across-profiles)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Schema.org sameAs](https://schema.org/sameAs)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The dedicated article is unmapped. Actual source identity, media rights, claim proof and profile access must be supplied.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "20a86e2c34279d41f64f443905858b1711137fcc0bf019bc22bc786615d493d3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c0734a70f48d37087d1a142e1463c5ef529f1ea2efbabda1192058654b3f06d6",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "20a86e2c34279d41f64f443905858b1711137fcc0bf019bc22bc786615d493d3",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "20a86e2c34279d41f64f443905858b1711137fcc0bf019bc22bc786615d493d3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "20a86e2c34279d41f64f443905858b1711137fcc0bf019bc22bc786615d493d3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 97,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set Up GA4 With Internal Traffic Filtering",
     "slug": "set-up-ga4-with-internal-traffic-filtering",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Set up your site’s visit reports. Test the rule that keeps team visits out of the final count.",
     "content": "---\nname: set-up-ga4-with-internal-traffic-filtering\ndescription: \"Set up your site’s visit reports. Test the rule that keeps team visits out of the final count.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: gap\n---\n\n# Set Up GA4 With Internal Traffic Filtering\n\nYour team’s own visits can make site reports hard to read. This guide helps an owner set up useful visit data and test what to leave out. Start with the site, the account and the events you need.\n\n**The path:** Right property → Received data → Filter test → Scoped activation.\n\n**Use this when:** the approved measurement plan needs Google Analytics setup or a tested internal-traffic exclusion.\n\n## Inputs\n- The actual business-controlled Analytics account/property or authorized setup scope, with appropriate Editor access for configuration.\n- The site’s existing tag architecture, web stream, consent policy and agreed event definitions. GTM is optional when another supported route is already correct.\n- The current internal-network rules and an external control source, stored privately, plus the authority to activate a permanent incoming-data exclusion.\n\n## First-run prompt\n\n> Inspect existing Analytics and install only the planned collection route. Define internal traffic and test the filter before activating a new exclusion. Show included and excluded control evidence, preserve valid existing settings, and keep real business outcomes separate from clicks.\n\n## Steps\n1. Check for the correct existing account, property and stream before creating another. Confirm business control and actual role. For new setup, use the agreed property name, reporting timezone and currency; do not change established reporting settings casually.\n2. Create or reuse the appropriate Web stream and record its actual measurement destination. Deploy the Google tag through the planned CMS, direct or GTM route. Avoid duplicate collection and preserve consent behavior.\n3. Check representative public pages and the receiver for intended events. A tag string or a Preview success alone does not prove normal live data. Define which actions count as key events according to the business goal; a phone click is not automatically a qualified lead.\n4. Define internal traffic using the actual rules in the stream’s tag settings. Confirm current IPv4/IPv6 or other supported matching scope and the resulting traffic_type value. A shared public IP can include people you did not intend to exclude; changing remote IPs may escape a static rule.\n5. For a new exclusion, use Testing and verify the test filter label in suitable processed reports or explorations alongside an external control. Testing deliberately keeps data while validating the rule. Do not disable an existing sound Active filter just to recreate the tutorial.\n6. Activate the new filter only after its selection is proven and that permanent exclusion is within the authorized plan. Active exclusions affect incoming data and cannot restore removed data later; they do not clean historical reports.\n7. Allow the documented processing delay and inspect the appropriate processed evidence. A missing Realtime event alone does not prove exclusion; consent, connectivity and other settings can also suppress it. Preserve included-control evidence and state any unverified filtering result.\n8. Save IDs, settings version, test times and the decision to keep Testing or use Active. Store private network details in the approved record. Hand the reporting owner the real event meanings and any coverage limit.\n\n## Definition of done (QA checklist)\n\n- [ ] Business control, property, stream, timezone and currency match the intended project.\n- [ ] One planned collection route reaches the correct receiver without unintended duplicates.\n- [ ] A new internal rule has tested selection and an included external control.\n- [ ] Filter state is accurately documented; Active exclusion has the required evidence and scope.\n- [ ] Key events, internal-data limits and private network records are handled correctly.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair’s office and external control each send one marked lesson visit. In Testing, the office visit has the test-filter label and the external visit does not. The operator can now evaluate the intended selection before an authorized Active change. If both are labeled internal, the guide fixes the overly broad rule instead of discarding all traffic. These invented rows do not represent a real Analytics run.\n\n## Handoff and Content Factory context\n\nGive the tested event and filter definitions to the reporting owner. Use [verify google search console and connect to ga4](https://local-service-spotlight.github.io/task-library/?task=verify-google-search-console-and-connect-to-ga4#task-verify-google-search-console-and-connect-to-ga4) when the plan needs linked search reports, or [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) to establish the actual lead outcome.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nConfigure once, then recheck when tags, consent, networks or measurement needs change. Optional ongoing checks require a real trigger and control data; a saved filter screen is not runtime proof.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `install-google-tag-manager-container`\n- **Browse later task:** `verify-google-search-console-and-connect-to-ga4`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Set Up GA4 With Internal Traffic Filtering](https://local-service-spotlight.github.io/task-library/?task=set-up-ga4-with-internal-traffic-filtering#task-set-up-ga4-with-internal-traffic-filtering)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Analytics setup](https://support.google.com/analytics/answer/9304153?hl=en)\n- [Google Analytics internal-traffic filters](https://support.google.com/analytics/answer/10104470?hl=en)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The dedicated article and real receiver/filter test evidence are absent. Actual network identifiers stay private and were not collected by this draft.",
     "importance": 5,
     "freq": 4,
     "revenue": 4,
     "gating": 5,
     "phase": "Gate",
     "before": "install-google-tag-manager-container",
     "after": "verify-google-search-console-and-connect-to-ga4",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "432aeec9984e703759831fe3c70935fb91494a1406ca47e3cfc288406fac3583",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2beb6692ab7eb5185beb97a98a1a2ddc6fda25e18929bb8905cee8c9ef2250a0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "432aeec9984e703759831fe3c70935fb91494a1406ca47e3cfc288406fac3583",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "432aeec9984e703759831fe3c70935fb91494a1406ca47e3cfc288406fac3583"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "432aeec9984e703759831fe3c70935fb91494a1406ca47e3cfc288406fac3583"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 65,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set Up Professional Email on Domain",
     "slug": "set-up-professional-email-on-domain",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Set up mail at your business web address. Check that it sends, arrives and reaches the right team.",
     "content": "---\nname: set-up-professional-email-on-domain\ndescription: \"Set up mail at your business web address. Check that it sends, arrives and reaches the right team.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Set Up Professional Email on Domain\n\nMail from your own web address helps people know who wrote it. This guide helps you set it up and keep old mail safe. Start with the mail you need and the service you use.\n\n**The path:** Address plan → Mailboxes → DNS cutover → Send and receive checks.\n\n**Use this when:** a business adopts domain email or changes its mail provider under an approved migration plan.\n\n## Inputs\n- The owned domain, authoritative DNS provider and actual mail-provider account or approved purchase/setup plan.\n- The required people, role addresses and mailbox, alias or shared-inbox behavior, with business-controlled administration.\n- Current mail routing, legacy account ownership, migration/retention plan, rollback values and a controlled external test receiver.\n\n## First-run prompt\n\n> Set up the agreed domain-mail addresses through the actual provider. Preserve current mail and privacy during the planned cutover. Test both directions and each important alias or role address, then update only the authorized public contact surfaces.\n\n## Steps\n1. Inventory existing mailboxes, aliases, shared inboxes and senders. Decide which addresses need stored mail, delegated team access or only an alias. One generic forwarding rule is not enough for every support or shared-mailbox need.\n2. Use the chosen business-controlled provider account and current setup instructions. Create only the authorized mailboxes and roles, accounting for actual licenses and costs. Verify the operator’s legitimate access without publishing login details.\n3. Verify the domain using the provider’s supplied method and prepare sender authentication with the email-authentication task. A mailbox’s existence does not mean it can yet send authenticated mail or receive public mail.\n4. Plan the actual cutover: existing delivery, data migration, recovery and monitoring. Copy the current provider-supplied MX values and preserve intentional gateways or coexistence routes. Do not replace nameservers or unrelated website records to set up mail.\n5. Apply the authorized MX change at authoritative DNS and verify public resolution after applicable caching. Follow the provider’s real routing design rather than assuming every old-looking MX record is disposable.\n6. Send marked controlled mail from the new address to the agreed external receiver and reply back. Check visible From identity, authenticated headers, destination and any role-address behavior. Test inbox receipt separately from a provider dashboard’s acceptance.\n7. Bridge old mail only for accounts and data within scope. Forwarding a mixed personal mailbox into a business inbox may expose private mail; use the agreed migration or handoff plan instead. Confirm the actual bridge works before claiming no mail will be missed.\n8. Update the approved website, form and profile contact fields plus signatures. Read back each change and keep private recovery addresses distinct. Save the mailbox map, routing state, test evidence and any unfinished data-migration item.\n\n## Definition of done (QA checklist)\n\n- [ ] The planned people and role addresses have the intended mailbox or alias behavior.\n- [ ] Business-controlled administration and the actual license scope are documented.\n- [ ] MX and sender-authentication setup match the provider and authorized migration plan.\n- [ ] Controlled sending, receiving and important role-address paths have actual receipts.\n- [ ] Legacy-mail handling, public updates and unresolved migration work are explicit and private data is protected.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair needs Lee’s mailbox and a team support inbox. “Support” must keep its own shared history, so it is not treated as a personal alias by default. In the lesson plan, a marked message goes from Lee’s new address to an external test receiver and a reply reaches Lee. A separate support test proves the team inbox. The old personal Gmail account is not broadly forwarded because it also contains private mail.\n\n## Handoff and Content Factory context\n\nGive the address and routing map to the mail owner. Continue with [configure spf dkim dmarc for deliverability](https://local-service-spotlight.github.io/task-library/?task=configure-spf-dkim-dmarc-for-deliverability#task-configure-spf-dkim-dmarc-for-deliverability) for complete sender validation and [ensure working contact form delivers notifications](https://local-service-spotlight.github.io/task-library/?task=ensure-working-contact-form-delivers-notifications#task-ensure-working-contact-form-delivers-notifications) for website notification receipt.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once or during a planned migration. Later mailbox, sender and staff changes use their own scope; no subscription purchase, forwarding rule or recurring send test is implied by this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 4/5 `●●●●○` — frequency 2, revenue 3, gating 4 (gates a phase)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Set Up Professional Email on Domain](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-email-on-domain#task-set-up-professional-email-on-domain)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [DNS record types in Cloudflare documentation](https://developers.cloudflare.com/dns/manage-dns-records/reference/dns-record-types/)\n- [Google Workspace SPF setup](https://knowledge.workspace.google.com/admin/security/set-up-spf)\n- [Google Workspace DKIM setup](https://knowledge.workspace.google.com/admin/security/set-up-dkim)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The dedicated task article is absent. Current chosen-provider mailbox and migration instructions are needed for its actual account; no provider was purchased or configured.",
     "importance": 4,
     "freq": 2,
     "revenue": 3,
     "gating": 4,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "gates a phase",
     "instructionReview": {
      "source_sha256": "614fcebc84b5b12513c073531b783a0828026670e07e57c0ea662157584b32b4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "fce5cb0fbe54b861b4fb4ed35d08fae62eda494a7ceddc6232d1ce2e00556b11",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "614fcebc84b5b12513c073531b783a0828026670e07e57c0ea662157584b32b4",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "614fcebc84b5b12513c073531b783a0828026670e07e57c0ea662157584b32b4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "614fcebc84b5b12513c073531b783a0828026670e07e57c0ea662157584b32b4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 94,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Set Up YouTube Channel With Proper Branding",
     "slug": "set-up-youtube-channel-with-proper-branding",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Set up a clear YouTube home for your real videos. Check the brand, links and first video state.",
     "content": "---\nname: set-up-youtube-channel-with-proper-branding\ndescription: \"Set up a clear YouTube home for your real videos. Check the brand, links and first video state.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Set Up YouTube Channel With Proper Branding\n\nYour videos need a home people can trust. This guide helps you set up a clear YouTube page for your work. Start with the right account, real photos and a useful clip.\n\n**The path:** Channel control → Brand setup → Real first video → Public handoff.\n\n**Use this when:** the project needs a new channel or an existing channel has unclear control or outdated branding.\n\n## Inputs\n- The exact existing channel, if any, and legitimate business-controlled access or authorized channel-creation scope.\n- Approved real image/logo, banner, factual bio, public website and appropriate contact email.\n- A rights-cleared real starter video and its agreed upload/publication scope, with title, description, captions and audience settings ready for review.\n\n## First-run prompt\n\n> Reuse or create the intended channel, set its approved branding and website link, and complete the first-video work already authorized. Verify channel identity, public appearance and video visibility separately. Keep missing media or publication scope explicit rather than inventing a filler upload.\n\n## Steps\n1. Find the existing channel and confirm its stable ID, handle and business relationship. Inspect actual access; a familiar channel name or an invitation is not proof of control. Do not create a duplicate just because the current login lacks access.\n2. Use the supported create-channel or legitimate recovery/access process for the actual account. YouTube channel permissions support assigned roles without shared passwords, but a Studio Owner role is not the same as transferring underlying ownership. Record the actual control arrangement.\n3. Set the channel name and an available suitable handle. Use the personal brand for the individual or the company identity for the business; do not promise the exact handle will be available.\n4. Set the approved profile image and real banner in the channel’s customization controls. Check crops on phone and desktop so important faces, logos and words are not cut off. Do not infer image identity by facial recognition.\n5. Write a short description with truthful topics and audience, using individual or company voice as appropriate. Add the canonical website and only a contact address approved for public display. Verify the link destination.\n6. Prepare the first useful real video using the maintained publishing task: supported source, accurate title, description, rights, captions and audience choices. Upload or publish within the existing authority; do not put a made-up video live just to satisfy a non-empty-channel check.\n7. Check the actual video visibility and accessible captions. Keep media muted with volume zero for testing. A private draft can prove upload preparation, but a claim that the channel is publicly launched needs an actually public video and the authorized publication receipt.\n8. Read back the public channel and any published video. Add the correct channel identity to the website’s profile references when included, keeping person and company schema separate. Save channel ID, roles, asset versions and video state for the next content owner.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended channel has documented legitimate control and usable roles.\n- [ ] Name, handle, description, image, banner and website link match the approved entity.\n- [ ] A real first video has a truthful prepared/uploaded/published state and rights/caption checks.\n- [ ] Public launch is claimed only when the channel and video are actually public within scope.\n- [ ] Website references and the next content owner use the correct channel identity.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair already has a channel under its business control. The lesson fixes the banner crop and links to its real planned quote page. A one-minute roof-care video is uploaded privately because that is the supplied stage of work. The handoff says “branding saved; first video private; public launch pending.” It does not mark the channel publicly launched simply because the upload exists.\n\n## Handoff and Content Factory context\n\nGive the channel ID and media state to the content owner. Use [upload processed video to youtube](https://local-service-spotlight.github.io/task-library/?task=upload-processed-video-to-youtube#task-upload-processed-video-to-youtube) for later uploads and [add schema markup person localbusiness](https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness) for a scoped website identity update.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once and review after branding or control changes. Recurring uploads need actual prepared content, tools and a configured cadence; this task does not create a posting schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Set Up YouTube Channel With Proper Branding](https://local-service-spotlight.github.io/task-library/?task=set-up-youtube-channel-with-proper-branding#task-set-up-youtube-channel-with-proper-branding)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [YouTube channel creation](https://support.google.com/youtube/answer/1646861?hl=en)\n- [YouTube channel permissions](https://support.google.com/youtube/answer/9481328?hl=en)\n- [YouTube player parameters](https://developers.google.com/youtube/player_parameters)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual channel capabilities and the first media source must be supplied. No channel was created or video played/uploaded during drafting.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "15f6037bd77407d572ee467f7b4f67c7de7ed21def290716424130f7a5eeeea3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7e6ec4088a37be555e2a4cda132ad9e45e8ea37d1b3f3982c6007e531380366d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-youtube-channel-with-proper-branding#task-set-up-youtube-channel-with-proper-branding",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "15f6037bd77407d572ee467f7b4f67c7de7ed21def290716424130f7a5eeeea3",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "15f6037bd77407d572ee467f7b4f67c7de7ed21def290716424130f7a5eeeea3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "15f6037bd77407d572ee467f7b4f67c7de7ed21def290716424130f7a5eeeea3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 77,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Upload Real Photos and Set Business Hours",
     "slug": "upload-real-photos-and-set-business-hours",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Show real business photos and the right opening hours. Check what people can see on Google.",
     "content": "---\nname: upload-real-photos-and-set-business-hours\ndescription: \"Show real business photos and the right opening hours. Check what people can see on Google.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Upload Real Photos and Set Business Hours\n\nPeople need to know what your business looks like and when it is open. This guide helps an owner fix the photos and hours on Google. Start with real photos and the hours your team can confirm.\n\n**The path:** Real evidence → Upload and hours → Review state → Public check.\n\n**Use this when:** a Business Profile has stale or missing owner media, changed operating hours or upcoming special dates.\n\n## Inputs\n- The exact Business Profile, legitimate editing access and actual verification state.\n- Recent rights-cleared source photos with identity/context confirmed from records, plus logo and cover choices. The source’s ten-photo goal is a house target, not a reason to invent images.\n- Owner-confirmed regular hours, breaks, service-specific hours where supported and known special dates; distinguish customer-facing hours from a separate phone service.\n\n## First-run prompt\n\n> Use the supplied real business media and confirmed hours to update the exact profile within scope. Check saved and public states separately. Preserve valid customer content, do not identify people by face, and do not promise Google will choose the requested cover first.\n\n## Steps\n1. Match photos to the actual business and location using the source record, permissions and context. Choose useful exterior, interior, team and at-work views where applicable. Do not identify people from faces or declare an image synthetic just from appearance.\n2. Check the current provider format and quality requirements and prepare suitable files without misleading alterations. Use the actual logo and a cover that fairly represents the business. Record available real images; a count shortfall is a collection need, not license to add filler.\n3. Upload through the supported profile controls and save media IDs or recognizable source references. Inspect pending, rejected and live states. An upload completion screen does not prove the public gallery changed.\n4. Review outdated owner uploads in scope and remove only those whose retirement is intended. Customer photos use a different reporting process; an old or unflattering image is not automatically a policy violation. Do not flag valid customer media just to control the gallery.\n5. Set regular hours to the actual customer-facing operation, including breaks where needed. Use the current Hours controls. A separate answering service does not make a closed storefront open 24 hours.\n6. Set known special hours for relevant upcoming dates. Use supported More hours for an appropriate service with different availability; do not force a field that the business type does not support. Unknown holiday plans remain a named owner question, not guessed hours.\n7. Read back the public hours on phone and desktop, and check the intended media are live. Google may choose a different first image despite the saved cover selection; record the observed display rather than repeatedly claiming control over it.\n8. Save the source-media list, confirmed hours, evidence dates and remaining collection/review needs. Hand off real photo refreshes and future special dates under the project’s adopted maintenance plan without claiming a ranking benefit from a fixed upload count.\n\n## Definition of done (QA checklist)\n\n- [ ] Photos are real, sourced, rights-cleared and relevant to this business or location.\n- [ ] Available count and upload/review/live states are truthful; no stock or invented filler is used.\n- [ ] Regular, break and known special hours reflect the actual operation.\n- [ ] Public display is checked without promising the selected cover always appears first.\n- [ ] Customer media, private facts and any pending hour decisions are handled through the correct scope.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair has eight usable real photos, below the house target of ten. The lesson uploads those eight and requests two additional real at-work sources through the existing owner handoff. Saturday hours are 9–12, while the phone service continues later; the storefront is not labeled open all day. The selected cover is saved, but Maps shows another valid image first. That is recorded accurately, not counted as an upload failure.\n\n## Handoff and Content Factory context\n\nGive the gallery and hours record to the profile owner. Use [set correct business categories](https://local-service-spotlight.github.io/task-library/?task=set-correct-business-categories#task-set-correct-business-categories) for a category defect or [ensure nap consistency across platforms](https://local-service-spotlight.github.io/task-library/?task=ensure-nap-consistency-across-platforms#task-ensure-nap-consistency-across-platforms) when public location facts conflict.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nUpdate when facts change and before known special dates. The source suggests a monthly photo review; adopt it only with a real source owner and configured trigger, without forcing a monthly upload when no useful new photo exists.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Upload Real Photos and Set Business Hours](https://local-service-spotlight.github.io/task-library/?task=upload-real-photos-and-set-business-hours#task-upload-real-photos-and-set-business-hours)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Business Profile photos](https://support.google.com/business/answer/6103862?hl=en)\n- [Google Business Profile hours](https://support.google.com/business/answer/15300403?hl=en)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real media rights/context and confirmed future hours must come from the project. The drafting pass uploaded no media and changed no profile.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "0f8f466fa981be3ae9ef20138870b6bb3fbedb83eaa760daaf6606d09fb54b4e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6e05ed6d9e9374dad907ebea26698041a41a5966810bfb6da7ec738d5ebec0cc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=upload-real-photos-and-set-business-hours#task-upload-real-photos-and-set-business-hours",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0f8f466fa981be3ae9ef20138870b6bb3fbedb83eaa760daaf6606d09fb54b4e",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "0f8f466fa981be3ae9ef20138870b6bb3fbedb83eaa760daaf6606d09fb54b4e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0f8f466fa981be3ae9ef20138870b6bb3fbedb83eaa760daaf6606d09fb54b4e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 108,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Verify Domain Ownership and Registrar Access",
     "slug": "verify-domain-ownership-and-registrar-access",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Find who controls your web address. Check account access, renewal and the place that holds its records.",
     "content": "---\nname: verify-domain-ownership-and-registrar-access\ndescription: \"Find who controls your web address. Check account access, renewal and the place that holds its records.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Verify Domain Ownership and Registrar Access\n\nYour site and mail need a web address that you control. This guide helps you check who holds it and when the bill is due. Start with the exact name and the account record you have.\n\n**The path:** Exact domain → Registrar record → Usable control → Renewal evidence.\n\n**Use this when:** a domain is being onboarded, control is uncertain, or renewal and recovery arrangements need verification.\n\n## Inputs\n- The exact domain names, business ownership records and any known registrar or delegated-access account.\n- Legitimate account access or the owner needed for the registrar’s actual recovery flow. Do not guess usernames or credentials.\n- Current renewal policy, billing responsibility, authoritative DNS provider and the scope for any account or paid changes.\n\n## First-run prompt\n\n> Verify registrar, domain control, renewal and DNS access using existing records and supported account checks. Report evidence and exact gaps. Do not transfer the domain, change security settings or pay for renewal unless those actions are already within the approved scope.\n\n## Steps\n1. Confirm the exact spelling and domain scope against the project’s system of record. Use current registration lookup, such as ICANN’s RDAP-based service for supported generic domains, to identify registrar and public status. Redacted registration data does not prove the owner is unknown or a vendor owns it.\n2. Check the known account and delegated access before asking for another login. Verify that the exact domain appears with the capabilities needed for the planned work. Public DNS or a working website alone does not prove registrar control.\n3. Compare the account holder and business ownership evidence. A named responsive delegated administrator may operate the domain while the business retains control. If control is genuinely missing, prepare the registrar’s supported recovery or transfer plan with the actual owner; a transfer is not an automatic consequence of this verification task.\n4. Inspect recovery contact, multi-factor setup and transfer-lock state without exposing private values. Record observed settings and the business’s recovery owner. Any needed access or security change follows the existing specific authority, rather than a blanket rule that an agent can never perform it.\n5. Check expiration, auto-renew state and the actual billing arrangement. A saved auto-renew switch is not proof of a future successful charge. The old six-month renewal rule is a house planning preference; record the actual adopted renewal date and scope instead of buying an unrequested term.\n6. Identify authoritative nameservers and the DNS provider separately from the registrar. Verify supported DNS access or a responsive named DNS owner. Do not alter nameservers merely to show that the operator has control.\n7. Record the proof for each item: registrar, exact domain, legitimate control, expiry, renewal arrangement and DNS source. Avoid copying passwords, recovery codes, full billing details or private identity documents into public outputs.\n8. Hand off any missing control or renewal issue with its exact next action and due date. Continue the approved supported recovery process when possible; pending third-party confirmation stays pending and must not be called recovered or transferred.\n\n## Definition of done (QA checklist)\n\n- [ ] The exact domain and current registrar are identified with dated evidence.\n- [ ] Legitimate business control and actual operator capability are verified or precisely unresolved.\n- [ ] Recovery, security and renewal settings are recorded without secret disclosure.\n- [ ] Authoritative DNS and its actual operator are identified separately.\n- [ ] No unrequested transfer, purchase, nameserver change or invented recovery outcome occurred.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair’s registration lookup identifies the registrar but hides registrant contact details. The business’s existing registrar account shows the exact domain and renewal date, so the public redaction is not a control failure. DNS is hosted elsewhere under a documented delegate. The lesson record marks registrar control verified and DNS editing dependent on that delegate; it does not move the domain simply to put both services in one account.\n\n## Handoff and Content Factory context\n\nGive the domain-control record to the business and DNS owners. Continue with [ensure proper dns records](https://local-service-spotlight.github.io/task-library/?task=ensure-proper-dns-records#task-ensure-proper-dns-records) for a scoped routing change or [set up professional email on domain](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-email-on-domain#task-set-up-professional-email-on-domain) once the actual needed domain control exists.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nVerify on onboarding and after ownership, recovery or provider changes. Renewal follow-up needs the actual billing policy and configured reminder; the guide does not create a charge or timer.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 3, revenue 3, gating 5 (unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** `ensure-proper-dns-records`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Verify Domain Ownership and Registrar Access](https://local-service-spotlight.github.io/task-library/?task=verify-domain-ownership-and-registrar-access#task-verify-domain-ownership-and-registrar-access)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [ICANN RDAP registration lookup](https://www.icann.org/en/announcements/details/icann-update-launching-rdap-sunsetting-whois-27-01-2025-en)\n- [DNS record types in Cloudflare documentation](https://developers.cloudflare.com/dns/manage-dns-records/reference/dns-record-types/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real account capability, control evidence and renewal billing status must be checked in the authorized account. No domain lookup or account action was performed for a real client during drafting.",
     "importance": 5,
     "freq": 3,
     "revenue": 3,
     "gating": 5,
     "phase": "Gate",
     "before": null,
     "after": "ensure-proper-dns-records",
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "7dfe598773c95647a764f56ded1b680cb358516ea9b00cb4bdf244541b3b39ac",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "433bd356c72efa3795dfa96d1fa269c8461b7c170966b4627c9a9d3a437046ba",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-domain-ownership-and-registrar-access#task-verify-domain-ownership-and-registrar-access",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7dfe598773c95647a764f56ded1b680cb358516ea9b00cb4bdf244541b3b39ac",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7dfe598773c95647a764f56ded1b680cb358516ea9b00cb4bdf244541b3b39ac"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7dfe598773c95647a764f56ded1b680cb358516ea9b00cb4bdf244541b3b39ac"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 87,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Verify Google Business Profile",
     "slug": "verify-google-business-profile",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Set up the right business page on Google. Check who can use it and what is still due.",
     "content": "---\nname: verify-google-business-profile\ndescription: \"Set up the right business page on Google. Check who can use it and what is still due.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: complete\n---\n\n# Verify Google Business Profile\n\nPeople need to find the right business on Maps. This guide helps you set up and check its Google page. Start with the real facts and any page that is there now.\n\n**The path:** Eligible business → Existing profile → Offered proof → Verified state.\n\n**Use this when:** an eligible business needs verification, has uncertain profile control, or receives a reverification request.\n\n## Inputs\n- The actual business activity, public trading name, appropriate address or service-area details and phone, supported by current records.\n- The exact existing Profile ID or URL and legitimate business-controlled Google access, or the authorized setup/control-recovery scope.\n- The owner or operator who can supply the real proof Google requests, using the method offered to that profile. Keep identity documents and private footage out of public evidence.\n\n## First-run prompt\n\n> Find the correct eligible Business Profile and inspect its control and verification state. Complete the supported method Google offers within current authority. Preserve pending review, legitimate ownership and private evidence; do not create duplicates or claim Maps visibility proves verification.\n\n## Steps\n1. Check business eligibility against current Google representation rules. An online-only personal brand does not qualify just because it has a website. Use the real customer-facing or service-area business model and preserve address privacy where required.\n2. Find existing profiles by the known business name, location and supplied ID. Distinguish the intended business from legitimate branches or unrelated names. Do not create a second profile to bypass a missing-access problem.\n3. Inspect actual management access and verification state. If the profile exists, use the supported claim or access-request route as needed. If none exists and it is eligible, create the correct profile within authorized scope. A public Maps listing can exist without your verified control.\n4. Confirm business-controlled ownership and the operator’s actual role. Review unfamiliar accounts with the owner; do not automatically remove or demote people just because their names are new to this agent. Transfers and removals use the specific existing authority and supported process.\n5. Complete the verification method or combination Google offers. For required on-site video or other business proof, use real current evidence and follow the actual prompts. Do not fabricate a storefront, manipulate location proof or substitute stock footage. Keep agent playback silent.\n6. Save the submission state and time without exposing verification codes or private records. Google may review the evidence and request another step. Pending is not verified; do not promise that waiting a fixed number of days will finish it.\n7. Reopen the management view and verify the actual confirmation or outstanding request. If the process fails, record the provider’s stated reason and use its supported correction or appeal route. A model cannot force verification through endless retries.\n8. Compare public business facts and Maps display with the approved identity record, allowing legitimate formatting and service-area differences. Record management verification, public visibility and account control as separate results and hand off exact open items.\n\n## Definition of done (QA checklist)\n\n- [ ] The business is eligible and the exact appropriate profile is used without a bypass duplicate.\n- [ ] Business control and operator role have actual evidence.\n- [ ] Google’s requested proof is genuine, private where needed and submitted through its supported process.\n- [ ] Verified, pending, failed and public-visible states are recorded distinctly.\n- [ ] Public business facts match reality without forced private-address exposure or invented ranking claims.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair already appears on Maps, but its management view asks for verification. The owner supplies the actual requested business proof and sees “pending review.” The lesson record therefore says “public listing visible; verification pending; owner control checked.” When a later management confirmation is actually observed, that same run can be updated. The initial Maps appearance alone never counts as verification.\n\n## Handoff and Content Factory context\n\nGive the confirmed state and Profile ID to the business owner. Once the actual required access and verification are ready, continue with [upload real photos and set business hours](https://local-service-spotlight.github.io/task-library/?task=upload-real-photos-and-set-business-hours#task-upload-real-photos-and-set-business-hours) or [set correct business categories](https://local-service-spotlight.github.io/task-library/?task=set-correct-business-categories#task-set-correct-business-categories) according to the remaining need.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for first verification or an actual control/reverification issue. A pending review can have a configured follow-up under the existing job, with the same execution ID; this guide does not create an automatic retry loop.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Verify Google Business Profile](https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile#task-verify-google-business-profile)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Business Profile verification](https://support.google.com/business/answer/7107242?hl=en)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The contributor’s complete status is preserved, but this rewritten guide has no new independent runtime certification. Actual profile control, proof and provider confirmation remain execution requirements.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "33b7a2c8806b0662a106621abe84861a30bca3b2b5433036ee7bb89e52b3fc90",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "299e2a943c12f9fa7b35551775f2f8b41fbf2514fdd1e7adf3806e3ab49e41bc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile#task-verify-google-business-profile",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "33b7a2c8806b0662a106621abe84861a30bca3b2b5433036ee7bb89e52b3fc90",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "33b7a2c8806b0662a106621abe84861a30bca3b2b5433036ee7bb89e52b3fc90"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "33b7a2c8806b0662a106621abe84861a30bca3b2b5433036ee7bb89e52b3fc90"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 112,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify Google Search Console and Connect to GA4",
     "slug": "verify-google-search-console-and-connect-to-ga4",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Connect your search reports to the right site. Link them to your visit reports when that is in your plan.",
     "content": "---\nname: verify-google-search-console-and-connect-to-ga4\ndescription: \"Connect your search reports to the right site. Link them to your visit reports when that is in your plan.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Verify Google Search Console and Connect to GA4\n\nDo you know which searches bring people to your site? This guide helps an owner get the right search reports and link them to site visits. Start by checking the accounts and site records you already have.\n\n**The path:** Property scope → Verified control → Sitemap → Analytics link.\n\n**Use this when:** the project needs verified search-report access or a correct Search Console link to an existing Analytics property.\n\n## Inputs\n- The actual site and reporting scope, existing Search Console properties, legitimate business-controlled account and access register.\n- A supported verification method for that scope, with DNS or site-source access only when the chosen method needs it.\n- For linking: the matching GA4 web stream, Analytics Editor role and Search Console verified-owner capability. Full-user access alone is not the linking prerequisite.\n\n## First-run prompt\n\n> Inspect existing Search Console and Analytics before creating anything. Verify the property scope, preserve business control, submit the actual sitemap and make the authorized matching link. Record report access, link state, data availability and publication dependencies separately.\n\n## Steps\n1. Build the site list from the work actually in scope, including sites you publish to but do not host. Read the register and account before inferring missing access from public HTML; a DNS-verified property may have no visible verification tag.\n2. Choose the appropriate property scope. A Domain property covers its protocol and subdomain variants and uses DNS verification. A valid URL-prefix property can serve a narrower need using a supported method; it is not inherently defective. Reuse correct existing properties.\n3. Complete the verification method supplied for that exact property through the supported DNS or site source. Read back the required public record where applicable and the account confirmation. Retain verification material needed for continued ownership; do not remove a valid record after success.\n4. Review actual business control and operator permissions. Make only authorized role changes, and do not remove unknown users without establishing their legitimate role. Verification, Full-user access and verified-owner capability are distinct.\n5. Find the real XML sitemap, verify its public content and submit it in the appropriate property when in scope. Save pending or processed results and actual errors. Sitemaps help discovery; Google can discover pages without one, and submission does not guarantee indexing.\n6. For the requested Analytics link, confirm the two properties cover the same pages and inspect any existing link. In Analytics Admin → Product links → Search Console links, select the verified property and matching web stream, review and submit. Do not break an existing valid link or expand scope merely to fit this tutorial.\n7. Check the saved link and report collection visibility; publish the Search Console collection from the Analytics Library when that report configuration is included. Query data availability depends on actual collection and processing. A new low-traffic site need not produce queries within 48 hours of setup.\n8. Save the property identifiers, scope, verification method, sitemap status, link and first observed data date when one exists. Search Console provides observation; it is not a technical requirement for a page to be indexed. A missing Analytics link does not create a blanket prohibition on unrelated already-authorized publishing.\n\n## Definition of done (QA checklist)\n\n- [ ] The correct site set and property scope are recorded from actual work, not only hosting inventory.\n- [ ] Verification and usable access have actual account evidence.\n- [ ] The real sitemap has a truthful public/submitted/processed state.\n- [ ] Any Analytics link uses matching pages and the required roles, without unintended link changes.\n- [ ] Visible reports, available data and unobserved results are distinct; no automatic indexing or universal publication gate is claimed.\n\n## Example(s)\n\n**Fictional teaching example.** Oak Repair has a valid Domain property verified by DNS, so its homepage has no HTML verification tag. The lesson keeps that property. The operator’s Full-user role can support reporting work but cannot establish the requested Analytics link; the verified owner and Analytics Editor capability are needed for that step. The record marks “search access usable; link awaiting correct capability,” while other authorized page work continues.\n\n## Handoff and Content Factory context\n\nGive the property and link record to the reporting owner. Use [create xml sitemap and reference in robots txt](https://local-service-spotlight.github.io/task-library/?task=create-xml-sitemap-and-reference-in-robots-txt#task-create-xml-sitemap-and-reference-in-robots-txt) for a sitemap defect or [set up ga4 with internal traffic filtering](https://local-service-spotlight.github.io/task-library/?task=set-up-ga4-with-internal-traffic-filtering#task-set-up-ga4-with-internal-traffic-filtering) when the planned Analytics stream is absent.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up once and recheck after domain, ownership or stream changes. Ongoing search reporting follows the project’s real reporting schedule; this recipe does not create a timer or promise future query volume.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `set-up-ga4-with-internal-traffic-filtering`\n- **Browse later task:** `install-meta-pixel-with-standard-events`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Verify Google Search Console and Connect to GA4](https://local-service-spotlight.github.io/task-library/?task=verify-google-search-console-and-connect-to-ga4#task-verify-google-search-console-and-connect-to-ga4)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Search Console verification](https://support.google.com/webmasters/answer/9008080?hl=en)\n- [Link Search Console and Analytics](https://support.google.com/analytics/answer/10737381?hl=en)\n- [Google sitemap creation and submission](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual account confirmation and first-data evidence are still required. The source’s historical client incident remains a lesson about coverage, not a recreated current execution count.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 5,
     "phase": "Gate",
     "before": "set-up-ga4-with-internal-traffic-filtering",
     "after": "install-meta-pixel-with-standard-events",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "10d3fd7bea80f5edae4025eb2d17f0d78965c9bf7953b375d89f70784d245193",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8b7e0bb80e9d494de7683b2cdb523fb92ab6f668f617b76bd60c7812982b7a63",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-google-search-console-and-connect-to-ga4#task-verify-google-search-console-and-connect-to-ga4",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "10d3fd7bea80f5edae4025eb2d17f0d78965c9bf7953b375d89f70784d245193",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "10d3fd7bea80f5edae4025eb2d17f0d78965c9bf7953b375d89f70784d245193"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "10d3fd7bea80f5edae4025eb2d17f0d78965c9bf7953b375d89f70784d245193"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 62,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Write Proper Title Tags and Meta Descriptions",
     "slug": "write-proper-title-tags-and-meta-descriptions",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/digital-plumbing",
     "articleKind": "topic-hub",
     "desc": "Write clear page titles and search summaries. Make each one match the page it describes.",
     "content": "---\nname: write-proper-title-tags-and-meta-descriptions\ndescription: \"Write clear page titles and search summaries. Make each one match the page it describes.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: /digital-plumbing\nstatus: needs-work\n---\n\n# Write Proper Title Tags and Meta Descriptions\n\nSearch results help people choose which page to open. This guide helps a site owner write clear titles and short page summaries. Start with the pages you want found and the question each one answers.\n\n**The path:** Page intent → Clear title → Useful summary → Served check.\n\n**Use this when:** new pages need metadata or existing intended-search pages have missing, misleading or unnecessarily duplicated metadata.\n\n## Inputs\n- The full in-scope intended-search page list, current titles/descriptions and canonical URL decisions.\n- Each page’s actual purpose, reader and supported content, using the [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) brief and owned SEO Tree.\n- Access to the actual CMS, SEO plugin or template that controls the served title and description. Rank Math is not a prerequisite when another source already owns these fields.\n\n## First-run prompt\n\n> Review every page in the supplied scope and write truthful, useful metadata for its actual purpose. Treat length as a readability target, not a Google hard limit. Save through the owning source and compare the public result, keeping search-engine display choices separate.\n\n## Steps\n1. Inventory the intended indexable URLs and their served title and meta-description values. Separate missing or copied boilerplate from legitimate related pages, redirects and deliberate noindex content. State the page count so a sample is not mistaken for the full inventory.\n2. Read each page and assign its distinct reader question or purpose in the SEO Tree. Related pages can share vocabulary without being duplicates; do not force a different keyword merely to make a spreadsheet unique.\n3. Write a concise descriptive title that matches the page. Use the natural topic phrase where it helps and the brand where useful. The source’s roughly 60-character target is a house brevity aid, not a Google maximum or a reason to cut the meaning.\n4. Write a clear meta description that summarizes the actual content and useful reason to visit. The roughly 160-character target is also a house aid. Avoid fake proof, unsupported promises or awkward repeated keywords.\n5. For personal stories and evidence claims, preserve the source’s actual voice and relationship limits. Do not turn a co-appearance into an endorsement in a short title, or add a trophy-name list to attract clicks. Keep necessary material disclosures.\n6. Save the fields in the real owning plugin or template without duplicating sources. Confirm that the existing template, builder or language variant does not override the specific page metadata.\n7. Read every changed public URL and compare its title and description to the intended values. Check escaping, meaningful text, obvious duplicates and page-source ownership. Use a snippet preview as an approximation, not proof of a fixed Google display width.\n8. If actual search results are observed, record query, date and shown text separately. Google can choose a different title link or snippet from page content. Save the page-to-purpose map and remaining issues; do not promise zero truncation across all queries and devices.\n\n## Definition of done (QA checklist)\n\n- [ ] All in-scope intended-search pages have a recorded metadata decision and coverage result.\n- [ ] Titles and descriptions accurately describe their page and useful reader purpose.\n- [ ] House length guidance improves clarity without false Google-limit or keyword-stuffing rules.\n- [ ] Served fields match the intended source and no misleading duplicate boilerplate remains.\n- [ ] Search observations are dated and distinguished from authored fields or previews.\n\n## Example(s)\n\n**Fictional teaching example.** A repair page’s old title is “Home | Best Service.” The lesson title becomes “Roof leak checks | Oak Repair,” and its summary says what a visitor can learn before asking for a check. A separate page explains emergency steps, so it keeps related roof wording but serves a different question. The useful result is two truthful page purposes with matching served fields, not a claim that Google must display them verbatim.\n\n## Handoff and Content Factory context\n\nGive the page-to-purpose map to the content/search owner. Use [ensure robots meta not blocking indexing](https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing#task-ensure-robots-meta-not-blocking-indexing) for an eligibility issue or [create xml sitemap and reference in robots txt](https://local-service-spotlight.github.io/task-library/?task=create-xml-sitemap-and-reference-in-robots-txt#task-create-xml-sitemap-and-reference-in-robots-txt) for missing discovery coverage.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when a page is created or its meaning changes. Existing content reviews can check drift; no automatic keyword rotation or rewriting is needed on a timer.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/digital-plumbing\n- Exact task: [Write Proper Title Tags and Meta Descriptions](https://local-service-spotlight.github.io/task-library/?task=write-proper-title-tags-and-meta-descriptions#task-write-proper-title-tags-and-meta-descriptions)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n- [Google title links](https://developers.google.com/search/docs/appearance/title-link)\n- [Google snippets](https://developers.google.com/search/docs/appearance/snippet)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real page content and the owning metadata source must be supplied. No search-ranking or click-through improvement is claimed from the teaching draft.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2f107018b67ea26a86aaaea841b37e89cbbacd9d797d4dd2c66cb8d389feb201",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5398039f9f159dbbe572b071105b557eef3f1306fd0b4b3698047518b85fc434",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=write-proper-title-tags-and-meta-descriptions#task-write-proper-title-tags-and-meta-descriptions",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2f107018b67ea26a86aaaea841b37e89cbbacd9d797d4dd2c66cb8d389feb201",
      "articleKey": "blitzmetrics.com/digital-plumbing",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2f107018b67ea26a86aaaea841b37e89cbbacd9d797d4dd2c66cb8d389feb201"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2f107018b67ea26a86aaaea841b37e89cbbacd9d797d4dd2c66cb8d389feb201"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/digital-plumbing"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 110,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build an agency website for a vertical",
     "slug": "build-agency-website-for-vertical",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/agency-site-playbook/",
     "articleKind": "task-recipe",
     "desc": "Build an agency site for the trade you serve. Show real people, useful services and a clear next step.",
     "content": "---\nname: build-agency-website-for-vertical\ndescription: \"Build an agency site for the trade you serve. Show real people, useful services and a clear next step.\"\ncategory: Digital Plumbing\nstage: —\ndefinitive_article: https://blitzmetrics.com/agency-site-playbook/\nstatus: needs-work\n---\n\n# Build an agency website for a vertical\n\nDoes your agency site show whom you help and why they should trust you? This guide helps an owner build a site for one clear trade. Start with the founder’s real story, the work you sell and proof you can use.\n\n**The path:** Market and proof → Nine site parts → Supported build → Public QA.\n\n**Use this when:** a named operator needs an agency site for a defined market under the network’s reviewed agency-site playbook.\n\n## Inputs\n- The confirmed agency name, exact domain, market, offer and explicit trade carve-outs from the current project record.\n- Verified founder story, real media, actual service methods and client evidence cleared for public use. Current roster/engagement controls scope; the client tracker supplies money/routing facts rather than replacing the roster.\n- Authorized site/host access and any actual domain/hosting purchase scope, plus supported deployment and rollback procedures.\n- The reviewed network intake destination, accountable receiving owner and current task/relationship records so this build does not duplicate another active worker.\n\n## First-run prompt\n\n> Build the scoped agency site using the current playbook and real supplied proof. Implement its nine relevant components, truthful service-method links and shared network intake. Preserve trade carve-outs and existing authority. Verify ordinary public pages and receipt of the contact path before claiming launch.\n\n## Steps\n1. Resolve the exact market, agency identity and allowed trades from the project record. Explain its role: the spotlight site develops industry coverage, the agency serves clients, the founder’s personal site establishes their identity, and client sites provide real proof. Do not invent that all four already exist.\n2. Verify or acquire the exact authorized domain and provision through the current supported hosting route. Read the actual price, term, renewal and security choices; the article’s old roughly-eleven-dollar, one-session and four-nameserver example is not a current universal contract. Preserve valid existing hosting and domain protection.\n3. Plan the nine components: a real founder hero and clear promise; founder About story; services linked to maintained methods; industries and carve-outs; approved client wall; actual results and reporting anatomy; shared audit intake; entity and measurement setup appropriate to the plan; and the source’s three launch articles on origin, reporting philosophy and method. Mark any evidence gap before writing claims.\n4. Build the hero and About page from the founder’s real sources. Keep the opening at grade 5, with a meaningful photo or useful diagram in the first desktop and phone viewport. Use evidence-based scenes and precise relationships; no trophy-name paragraph, invented mentorship or unverified result belongs in the copy.\n5. Build service and industry pages around the work actually offered. Link each method to its maintained owned guide and organize the pages with the SEO Tree and public Money Tree where applicable. Add verified client examples only under current scope and permission; private tracker data and inactive-client assumptions must not become public logos.\n6. Connect the reviewed shared network audit intake and its actual receiver. Add the correct Person/business identity records, profile links and chosen measurement setup through their existing sources. Use supported components; do not rebuild or replace the shared intake merely because a generic template includes a form.\n7. Prepare the three source-defined launch articles using actual founder content, truthful reporting examples and maintained method links. Publish the authorized work through the supported source. Check every scoped canonical public route, real 404 behavior, links, phone contact, media, page openings and trade carve-outs; cache-busters alone do not prove the normal page is current.\n8. Verify the contact path and intended receiver using the agreed test scope. Save the nine-component coverage, page inventory, source/deployment/rollback state and exact QA evidence. Write the run’s meta article and post the project summary only within the current communication scope. Send any durable improvement to its owning master source for review, then propagate accepted changes.\n\n## Definition of done (QA checklist)\n\n- [ ] The site reflects its actual agency, founder, market, offer and explicit carve-outs.\n- [ ] All nine playbook components have meaningful content or precise evidence-backed open items; missing proof is not replaced by filler.\n- [ ] Real media, client claims, relationships and service-method links meet the maintained source rules.\n- [ ] Ordinary public pages pass the declared first-screen, link, functional and contact checks, with source/deployment state recorded.\n- [ ] The actual intake receiver, run write-up and next owner are verified; historical cost, runtime and deployment examples are not presented as current guarantees.\n\n## Example(s)\n\n**Fictional teaching example.** Cedar Trade Marketing serves fence installers and explicitly excludes roofing. Its founder supplies a real interview and approved photos; two clients permit specific case summaries. The nine-part page map includes a founder hero/About, fence services with method links, an industry carve-out page, the two-case client wall, a labeled reporting example, the approved shared audit link, identity/measurement setup and three launch articles. During lesson QA, a template mentions roofing. That defect is removed and rechecked rather than hidden by a high component count. The example is a build plan, not a live agency or two real client results.\n\n## Handoff and Content Factory context\n\nGive the site inventory and real contact-test evidence to the operator and site QA owner. Follow the maintained [Website QA Audit](https://blitzmetrics.com/website-qa-audit/) and use [create clear conversion path](https://local-service-spotlight.github.io/task-library/?task=create-clear-conversion-path#task-create-clear-conversion-path) if intake remains confusing. Retain network-source ownership for improvements.\n\nThis setup supports the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun once per new site or a scoped substantial rebuild. Ongoing reporting, relationships and site reviews use their existing owners and reconciled schedules; this guide does not launch another weekly agent.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/agency-site-playbook/\n- Exact task: [Build an agency website for a vertical](https://local-service-spotlight.github.io/task-library/?task=build-agency-website-for-vertical#task-build-agency-website-for-vertical)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real founder/client proof, trade boundaries, current intake and host-specific setup must be supplied. The current article’s historical procurement and fleet-command anecdotes need upstream qualification. No site, domain or client operation was performed by this draft.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "Gate",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "27ba500d6e219f93232b2618ae00be29cabfc9b81ebfed861943120dfff7ec28",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d65011042fbe431599311045d8c8279a4155b622ecce0d4d63e9c37905f63002",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-agency-website-for-vertical#task-build-agency-website-for-vertical",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "27ba500d6e219f93232b2618ae00be29cabfc9b81ebfed861943120dfff7ec28",
      "articleKey": "blitzmetrics.com/agency-site-playbook",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "27ba500d6e219f93232b2618ae00be29cabfc9b81ebfed861943120dfff7ec28"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "27ba500d6e219f93232b2618ae00be29cabfc9b81ebfed861943120dfff7ec28"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/agency-site-playbook/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 100,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "dollar-a-day",
   "name": "Dollar a Day Campaigns",
   "icon": "💵",
   "color": "#10b981",
   "description": "The Dollar a Day advertising strategy: test at $1/day, find winners, scale gradually",
   "tasks": [
    {
     "title": "Analyze cost per result and engagement",
     "slug": "analyze-cost-per-result-and-engagement",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Check what each ad cost and what it did. Choose the next step from the facts.",
     "content": "---\nname: analyze-cost-per-result-and-engagement\ndescription: \"Check what each ad cost and what it did. Choose the next step from the facts.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Analyze cost per result and engagement\n\nYou need to know which ads earn their keep. This guide helps you read the cost and the result of each test. Start with the test log and the goal you set before the ads ran.\n\n**The path:** Test log → checked costs → fair verdict → next action.\n\n**Use this when:** A test reaches its planned seven-day review, or a budget, delivery or safety issue needs an earlier check.\n\n## Inputs\n- Read access to the exact ad account and a dated export for each test; currency, time zone, objective and reporting window.\n- The written goal, target cost per result, business definition of a useful lead or sale, and any agreed minimum evidence for a decision.\n- Creative and audience IDs, start/end times, changes, spend ceiling, tracking check and attribution setting. Missing data stays unknown.\n\n## First-run prompt\n\n> Read these test records and score each against its stated goal. Reconcile spend and results, show each calculation and mark weak evidence. Return a dated keep, stop, change or hold recommendation with the next owner. Do not change ads unless that action is in the supplied scope.\n\n## Steps\n1. Use the exact account and date range from the test log. Export each full planned window. Keep a test that started later separate; do not compare its two days with another test’s seven days as if the exposure were equal.\n2. Reconcile row totals to the campaign export. Label paid versus organic results, currency, time zone, attribution window and known reporting delay. A tracking failure is a measurement gap, not proof that no customer responded.\n3. Compute cost per result as spend divided by the matching counted result. With zero results, show spend and zero results; cost per result is undefined. Keep cost per view, click, lead and sale in separate columns.\n4. Compare each result with the target written before launch. For leads, check the agreed quality test in the permitted customer system. State whether a reported sale is platform-attributed, matched to an order or still unverified.\n5. Read shares, substantive comments and the platform’s actual view or watch-time fields. Compare similar video lengths and formats. Do not invent retention by dividing unlike metrics or claim every reaction is a unique person.\n6. Use same-creative or same-audience comparisons to form a possible explanation. Auction delivery, time and overlap may also differ. A simple side-by-side test does not prove the changed variable caused the gap.\n7. Give each test a verdict with its reason: eligible winner, stop, change for a new test, or hold for insufficient evidence. A hold needs a due date and a spending decision within the existing ceiling; it is not permission to leave an ad running forever.\n8. Write a short [Metrics, Analysis, and Action report](https://blitzmetrics.com/maa/): what happened, what the evidence suggests, and what happens next. Record early emergency pauses separately from the planned day-seven verdict.\n\n## Definition of done (QA checklist)\n\n- [ ] Every row has its exact IDs, full or partial dates, currency and result definition.\n- [ ] Spend totals reconcile; zero or missing denominators are not shown as a zero cost.\n- [ ] The verdict uses the pre-set goal and states sample or attribution limits.\n- [ ] Every action has an owner, due date and scope; no unauthorized spend was inferred.\n- [ ] Source export and calculations can reproduce the report.\n\n## Example(s)\n\n**Fictional teaching example:** A shop tests two clips for seven days. Each spends $7. The target is at most $2 per useful site visit. Clip A records five such visits, so $7 ÷ 5 = $1.40. Clip B records two, so $7 ÷ 2 = $3.50. A is a candidate for the next small test; B misses the target. These seven visits are not seven leads. A third clip has no tracking data, so its outcome is unknown, not a $0 cost winner. The report names the ad operator to check A’s next budget and end date.\n\n## Handoff and Content Factory context\n\nSend stopped candidates to [kill underperforming ads](https://local-service-spotlight.github.io/task-library/?task=kill-underperforming-ads#task-kill-underperforming-ads) and qualified winners to [scale winners by increasing budget gradually](https://local-service-spotlight.github.io/task-library/?task=scale-winners-by-increasing-budget-gradually#task-scale-winners-by-increasing-budget-gradually). The campaign owner receives the report; missing tracking goes to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking).\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at each test’s due date. A recurring review is useful only for an active campaign with an agreed cadence, connected reporting access and a real trigger. Continue any already authorized delivery and spend checks between reviews.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `run-multiple-simultaneous-tests`\n- **Browse later task:** `kill-underperforming-ads`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real account export or execution result is supplied by this guide.\n- Each campaign must supply its own target and minimum decision evidence; no universal cost threshold is invented.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "run-multiple-simultaneous-tests",
     "after": "kill-underperforming-ads",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "c169e69cc1ae47e662e4dcf9de6f97961a5c576a6652682c14a307aeefeeb4db",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "1363e5cd759e1f1ade8df403b16a3757f3015d9b8f029969ed810b5e7706c8a1",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c169e69cc1ae47e662e4dcf9de6f97961a5c576a6652682c14a307aeefeeb4db",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c169e69cc1ae47e662e4dcf9de6f97961a5c576a6652682c14a307aeefeeb4db"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c169e69cc1ae47e662e4dcf9de6f97961a5c576a6652682c14a307aeefeeb4db"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 58,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Boost one-minute videos for personal branding",
     "slug": "boost-one-minute-videos-for-personal-branding",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Use a small ad test to share a helpful clip with more of the right people.",
     "content": "---\nname: boost-one-minute-videos-for-personal-branding\ndescription: \"Use a small ad test to share a helpful clip with more of the right people.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Boost one-minute videos for personal branding\n\nYou have a short clip that people found useful. This guide helps you test it with more people who may need your help. Start with the real post and the proof that it worked.\n\n**The path:** Proven clip → right people → small test → checked result.\n\n**Use this when:** A real personal-brand post has earned useful organic response and the owner has a defined paid-test goal.\n\n## Inputs\n- The original post URL, recent organic metrics and the person’s actual Page or eligible professional account; role access to the connected ad account.\n- A clear audience and goal from [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/), an approved creative and claims, and the full account/currency/budget/date scope for any paid test.\n- Rights to the footage, people, music and testimonial; captions or an accurate transcript, a checked profile and a working destination when used.\n\n## First-run prompt\n\n> Review these clips and choose only those with real signal and clear rights. Prepare the exact account, original post, audience, budget, end date and success measure for a small personal-brand test. Carry out only the paid actions already authorized and report saved settings separately from actual delivery.\n\n## Steps\n1. Rank the person’s recent clips against their own baseline. Select up to three to five that answer a buyer’s real question, show useful work or contain a verified proof moment. Use fewer if fewer qualify.\n2. Keep the person and company identities clear. Use the actual authorized identity that owns the post. A Public Figure category is not a universal requirement for every Meta ad, and a company Page does not become a personal Page by changing its label.\n3. Check the opening, captions and visible proof with sound off. Retain the person’s actual words and context. A shared stage or photograph proves only that moment, not friendship, client status or endorsement.\n4. Name the goal before choosing settings: relevant attention, profile visits or a defined business action. Choose the current eligible objective and the matching reported metric; do not count a view as a lead.\n5. Use the supported existing-post option where available and verify the original post ID in preview. Confirm format, music and placement eligibility. If the original cannot be promoted, record that limitation before preparing a distinct derivative.\n6. Build a small relevant audience within real service or market limits. Read whether the interface treats an input as a boundary or a suggestion. Do not assume a list or a famous person’s name guarantees delivery to those people.\n7. Plan the method’s $1-per-day, seven-day test where the platform accepts it. Confirm minimums, budget type, actual spend limits, fees and combined tests before launch. If the account cannot fit the approved amount, leave that test pending; do not silently raise the budget.\n8. For an authorized launch, re-read the saved identity, post, dates and budget. Check delivery and spend early, then review the planned full window with the same target. Brand-name searches or new followers can be supporting observations; they do not prove the ad caused a sale.\n\n## Definition of done (QA checklist)\n\n- [ ] The selected clip has linked organic evidence and usable media rights.\n- [ ] Person/company identity and original post or disclosed derivative are correct.\n- [ ] Goal, audience, result definition, budget controls and end date are recorded.\n- [ ] Saved settings, delivery and business outcome are reported as separate states.\n- [ ] The due review has an owner and a bounded keep/stop/next-test decision.\n\n## Example(s)\n\n**Fictional teaching example:** A bike shop owner posts a 55-second tip on fixing a loose seat. It gets 12 useful questions and shares, while similar recent clips usually get three. She chooses a seven-day awareness test with a nominal $7 plan in an eligible account. The preview uses her real post and readable captions. At review, the operator records $6.80 spend and the platform’s actual view count. Two shop inquiries are recorded separately; neither is called an ad sale without matching evidence. The next test is proposed within a new dated budget, not left on by default.\n\n## Handoff and Content Factory context\n\nGive the campaign owner the test log for [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). Send eligible proven clips to [execute switch boosts to new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boosts-to-new-audiences#task-execute-switch-boosts-to-new-audiences) only when the next audience test is in scope.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne seven-day test per chosen clip. A series can add one qualified post per day within an agreed total budget. Monthly brand reviews or new tests require an actual recurring arrangement; this file creates none.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `boost-top-3-5-facebook-posts`\n- **Browse later task:** `set-1-day-budget-per-ad-set`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Boost one-minute videos for personal branding](https://local-service-spotlight.github.io/task-library/?task=boost-one-minute-videos-for-personal-branding#task-boost-one-minute-videos-for-personal-branding)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n- [Instagram music permissions](https://www.facebook.com/help/instagram/402084904469945)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Current Meta budget and audience help returned a login/block response; exact account controls must be checked at execution.\n- No real clip, proof rights, spend authorization or account readiness is established by this draft.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "boost-top-3-5-facebook-posts",
     "after": "set-1-day-budget-per-ad-set",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "35aa9b6be18c5288637248b9f952b1bbc7da5a73637869d0ec44fd0148f3343b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "05954116ddabf6fa65cd5eddbadeecdf3c3d97fed1698b8a77e9d06cbbd23d6f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=boost-one-minute-videos-for-personal-branding#task-boost-one-minute-videos-for-personal-branding",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "35aa9b6be18c5288637248b9f952b1bbc7da5a73637869d0ec44fd0148f3343b",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "35aa9b6be18c5288637248b9f952b1bbc7da5a73637869d0ec44fd0148f3343b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "35aa9b6be18c5288637248b9f952b1bbc7da5a73637869d0ec44fd0148f3343b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 46,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build audience layers",
     "slug": "build-audience-layers",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Choose clear groups for an ad test. Keep the goal, cost and limits easy to check.",
     "content": "---\nname: build-audience-layers\ndescription: \"Choose clear groups for an ad test. Keep the goal, cost and limits easy to check.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Build audience layers\n\nYour ad needs to reach people who may need your help. This guide helps you choose a few clear groups to test. Start with the place you serve and the problem your post solves.\n\n**The path:** Real buyer need → allowed groups → clear test rows → budget plan.\n\n**Use this when:** Proven content and a goal are ready, and the campaign needs a testable audience plan.\n\n## Inputs\n- The actual service area or market, offer, buyer problem and campaign goal.\n- Read access to the current platform’s available audience settings, estimates and policy/category requirements.\n- Approved first-party audience sources, if used, with the right to use them for advertising; the creative shortlist and total test budget.\n\n## First-run prompt\n\n> Build a small audience plan for this goal and these posts. Name the reason for each group, actual supported settings, size/eligibility evidence and one variable to compare. Distinguish strict controls from suggestions. Do not upload lists, create audiences or launch ads beyond the supplied scope.\n\n## Steps\n1. Write the audience in plain terms: who has this need, where the business can serve them, and why this post helps. Begin with actual customer evidence, not a guessed age band such as all homeowners aged 30–65.\n2. Read the platform’s current category restrictions for the actual offer. Use supported service-area controls; do not add protected-trait exclusions or work around restrictions on housing, jobs, credit or other restricted ads.\n3. Make a broad eligible group inside the real market as one possible baseline. Add only distinct, relevant interest or behavior groups that the account actually offers. Do not force three to five groups if the budget or evidence supports fewer.\n4. For warm groups, list the permitted source, time window and current status: website visitors, eligible video viewers or platform engagers. A created audience is not proof it has enough matched people to deliver.\n5. Use customer-list or look-alike audiences only when source rights, platform terms and current eligibility are satisfied. Do not scrape or upload private contacts merely because an address is available.\n6. Record each setting as a required control, an optional suggestion or unavailable. If an automated audience mode can expand beyond a suggestion, do not label the resulting row an exact interest-only test.\n7. Build a table with test ID, audience definition, exclusions actually supported, creative ID, goal, budget and review date. Change one planned variable for a useful comparison, while noting overlap and non-random delivery.\n8. Pass the table to the budget task before launch. Keep audience-size estimates dated; they are not guaranteed people reached and cannot be turned into a money budget using an undefined percentage formula.\n\n## Definition of done (QA checklist)\n\n- [ ] Each group has a source-backed reason tied to the offer and service area.\n- [ ] Settings reflect actual availability and distinguish controls from suggestions.\n- [ ] Warm/list groups have recorded rights and eligibility; missing size is unknown.\n- [ ] The table names one comparison variable and overlap limits.\n- [ ] The combined budget is checked before any groups are activated.\n\n## Example(s)\n\n**Fictional teaching example:** A repair shop serves one town. Its seat-fix video has earned organic shares. The plan has A: the town with no extra interest suggestion, and B: the same town with an available cycling-interest suggestion. Both use the same post. If the interface can expand B, the report calls it an audience-suggestion test, not delivery only to cyclists. A third row for prior site visitors stays pending because the audience is too small. No emails are uploaded to fill the gap.\n\n## Handoff and Content Factory context\n\nSend the reviewed table to [set 1 day budget per ad set](https://local-service-spotlight.github.io/task-library/?task=set-1-day-budget-per-ad-set#task-set-1-day-budget-per-ad-set). The campaign owner resolves audience-source or service-area gaps before the relevant test is funded.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nBuild once for a test plan, then revise when the offer, service area, audience rights or platform options change. Review existing groups as part of the campaign’s agreed check; do not create a separate schedule by default.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Build audience layers](https://local-service-spotlight.github.io/task-library/?task=build-audience-layers#task-build-audience-layers)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Meta’s current public audience page was not readable in this check; execution must inspect the supported settings without bypassing access limits.\n- No actual customer list, eligible audience or campaign permission is supplied.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "d72c4ff564613cdd08852d425409e4de838ebff630169ee5f576abf5246bb739",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "26107dd30354c33e3a966d2d2a73223b1cc885f364edb786802f1fbba1ad435f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-audience-layers#task-build-audience-layers",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d72c4ff564613cdd08852d425409e4de838ebff630169ee5f576abf5246bb739",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d72c4ff564613cdd08852d425409e4de838ebff630169ee5f576abf5246bb739"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d72c4ff564613cdd08852d425409e4de838ebff630169ee5f576abf5246bb739"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 43,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Create Facebook/Instagram campaigns with location targeting",
     "slug": "create-facebook-instagram-campaigns-with-location-targeting",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Set up a small local ad test with the right post, place, cost and end date.",
     "content": "---\nname: create-facebook-instagram-campaigns-with-location-targeting\ndescription: \"Set up a small local ad test with the right post, place, cost and end date.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Create Facebook/Instagram campaigns with location targeting\n\nYou want more people in the area you serve to see a useful post. This guide helps you set up a small local ad test. Start with your service area and one post that has worked.\n\n**The path:** Service area → proven post → saved test → delivery check.\n\n**Use this when:** The business has a proven post, a defined local goal and authorized scope for a Meta campaign.\n\n## Inputs\n- Exact business portfolio, ad account, Page and Instagram identity with the roles needed for the planned action.\n- Actual service area, current offer, verified content rights and original post ID.\n- Goal and success target, account currency/time zone, billing owner, spend ceiling and dates; required tracking evidence for that goal.\n\n## First-run prompt\n\n> Prepare this Facebook/Instagram test using the existing approved post and service area. Check the identity, goal, current audience controls, budget type and end date. Launch only within the supplied authority, then re-read the saved settings and delivery. Report any unsupported minimum or location requirement without broadening it.\n\n## Steps\n1. Read the agreed [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) and prerequisite record. Confirm the offer is real, customer proof is usable and the post already earned relevant signal. Paid distribution is not the repair for an unproven offer.\n2. Open the exact authorized account and confirm which Page/Instagram identity will appear. Reuse existing valid assets; do not create a duplicate account or transfer ownership to solve a role gap.\n3. Choose the objective that measures the stated job. An on-platform engagement test needs its own platform metric; a website-lead test also needs a checked destination and the required conversion path. Do not install every tracker for every goal.\n4. Enter the supported location controls for the real service area and check any special-category restrictions. Do not default to guessed ages, home ownership or every available interest. Read expansion/suggestion labels before claiming a tight local audience.\n5. Use the original eligible post, then inspect each chosen placement with sound off. Check captions, crops, identity, claims, destination and mobile usability. Save a distinct creative only if the authorized plan calls for it and note the new ID.\n6. Set the method’s small seven-day test where accepted. Record ad-set versus campaign budget control, account minimums, budget pacing and actual total limits. Calculate all concurrent commitments; $1/day is not a promise that every day bills exactly $1.\n7. Re-read the final summary before an authorized launch, including currency, dates and budget. After saving, record actual IDs and status. A draft or approved ad without impressions is not verified delivery.\n8. Check spend, delivery, link and location-quality evidence early. Protect the existing ceiling and correct harmful errors within scope. At day seven, score against the original target and route the next action rather than extending the end date by default.\n\n## Definition of done (QA checklist)\n\n- [ ] Correct owner/account/Page/Instagram and original post IDs are recorded.\n- [ ] Service-area settings and any expansion or policy limits are explicit.\n- [ ] The goal’s actual tracking works or the exact affected step is pending.\n- [ ] Budget level, pacing, combined ceiling and end date pass read-back.\n- [ ] Saved, reviewed, delivering and successful are separate reported states.\n\n## Example(s)\n\n**Fictional teaching example:** A shop serves Cedar Town and wants local people to watch a repair tip. Its real service boundary is recorded before settings are chosen. The preview shows the same post on both chosen placements with legible captions. A seven-day test is staged at $1/day where supported, with the account’s spend controls documented. If the location option includes people only recently in the area, that limit stays in the log. The report checks actual inquiries for service fit rather than promising every viewer lives nearby.\n\n## Handoff and Content Factory context\n\nGive the campaign owner the saved settings and due dates for [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). Route a tracking defect to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking); a content defect returns to the content owner before a new test.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne campaign setup and one dated test. Routine delivery checks follow the existing campaign arrangement. Further boosts, recurring reports or larger budgets need the scope and a working trigger already in place.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `set-1-day-budget-per-ad-set`\n- **Browse later task:** `create-new-saved-audiences-from-audience-insights`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Create Facebook/Instagram campaigns with location targeting](https://local-service-spotlight.github.io/task-library/?task=create-facebook-instagram-campaigns-with-location-targeting#task-create-facebook-instagram-campaigns-with-location-targeting)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The current Meta help bodies were access-blocked; no account UI was inspected during authoring.\n- The live account must supply its supported minimums, controls and policy category.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "set-1-day-budget-per-ad-set",
     "after": "create-new-saved-audiences-from-audience-insights",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "0282619bb5d9946ae431ddd3b9c1f4cfeaf6c609795bcb46d004358ac7a3babc",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "78d4fbe2aa36eca66860c49faadad4406984ecbbfe2025322081785aabc72667",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-facebook-instagram-campaigns-with-location-targeting#task-create-facebook-instagram-campaigns-with-location-targeting",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0282619bb5d9946ae431ddd3b9c1f4cfeaf6c609795bcb46d004358ac7a3babc",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "0282619bb5d9946ae431ddd3b9c1f4cfeaf6c609795bcb46d004358ac7a3babc"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0282619bb5d9946ae431ddd3b9c1f4cfeaf6c609795bcb46d004358ac7a3babc"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 35,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create YouTube campaigns using ADUCATE model",
     "slug": "create-youtube-campaigns-using-aducate-model",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Use a helpful video in a small ad test. Check the cost, views and next step.",
     "content": "---\nname: create-youtube-campaigns-using-aducate-model\ndescription: \"Use a helpful video in a small ad test. Check the cost, views and next step.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Create YouTube campaigns using ADUCATE model\n\nYou have a video that teaches one useful thing. This guide helps you test it as a YouTube ad. Start with the viewer’s problem and the result you want the test to measure.\n\n**The path:** Useful video → fitting format → bounded campaign → measured result.\n\n**Use this when:** A proven teaching video fits the campaign goal and the owner wants a paid YouTube test.\n\n## Inputs\n- Exact Google Ads account, YouTube video/channel, required account roles and link permissions for the chosen features.\n- Approved video, media rights, captions, destination and goal; conversion setup only when that goal needs it.\n- Currency, dates, allowed budget, success target, campaign type and test log; the source’s ADUCATE label does not supply an acronym definition.\n\n## First-run prompt\n\n> Use this approved teaching video and goal to prepare a bounded YouTube test. Verify the current format, campaign-level budget and reporting fields. Keep the documented teaching structure, and do not invent an expansion of ADUCATE. Execute only authorized steps and distinguish draft, delivery and outcome.\n\n## Steps\n1. Start with the owned Dollar-a-Day method: useful content with organic proof, then a small test. Write the viewer’s question, the lesson, its evidence and one fitting next step. The linked owned source does not define every letter of ADUCATE; do not invent those definitions.\n2. Confirm the video is available on the correct YouTube channel and usable in the chosen ad. Review captions, factual claims, rights and the destination. Keep the opening useful instead of inserting an unsupported promise.\n3. Choose a current campaign type and format for the goal. For skippable in-stream, the viewer can skip after five seconds, so put the point early. In-feed and Shorts work differently; do not apply a five-second skip rule to every format.\n4. Choose supported audience and location settings that fit the offer. If using viewer remarketing, check the actual format, audience eligibility and permissions. A view does not guarantee that person can enter a retargeting list.\n5. Set the budget at the campaign level. An ad group can have its own bids or targeting, but it does not provide a separate Google Ads budget. Separate budgeted tests need an appropriate campaign structure, with overlap and total commitments checked.\n6. For a fixed test, consider the supported campaign-total option when creating a new campaign. It has a total amount and end date; existing campaigns cannot simply switch budget type. An average daily budget is flexible and may spend more on a day, so do not label $1/day a hard $7 weekly cap.\n7. Before an authorized launch, re-read dates, networks/placements, objective, bidding, budget and video ID. Check early delivery and destination behavior with media silent. Do not click your own paid ad to test a landing page.\n8. At the due review, use the actual format-specific metrics. Keep Google Ads TrueView views, public YouTube views, paid watch time and organic Studio metrics distinct. Report cost for the matching result; missing retention stays unknown.\n\n## Definition of done (QA checklist)\n\n- [ ] The teaching structure and proof are clear; no unsupported acronym is invented.\n- [ ] The chosen format, video rights, captions and destination pass review.\n- [ ] Campaign-level budget, amount, pacing and dates match scope.\n- [ ] Early status and delivery read-back is distinct from the final performance review.\n- [ ] The report names metric definitions and avoids mixed-source or mixed-denominator calculations.\n\n## Example(s)\n\n**Fictional teaching example:** A repair video opens with a loose seat and shows the fix. The planner chooses a supported skippable format and a new campaign with a $14 total budget over seven days, because that amount is the approved test. It is labeled a $14 test, not renamed a $1/day test. At review, the account reports $12 spend and 240 TrueView views, so cost per TrueView view is $0.05. That does not establish 240 unique people, full-video completions or new customers. The next step depends on the written goal.\n\n## Handoff and Content Factory context\n\nGive the campaign owner the campaign/video IDs and matching metrics for [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). Missing media goes to [upload processed video to youtube](https://local-service-spotlight.github.io/task-library/?task=upload-processed-video-to-youtube#task-upload-processed-video-to-youtube); a true conversion-path gap goes to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking).\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet up one bounded test. Any periodic readout uses the actual campaign’s dates and existing monitoring scope. No recurring spend or new scheduler is created by the guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `review-budget-allocation-by-channel`\n- **Browse later task:** `set-up-tiktok-campaigns`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Create YouTube campaigns using ADUCATE model](https://local-service-spotlight.github.io/task-library/?task=create-youtube-campaigns-using-aducate-model#task-create-youtube-campaigns-using-aducate-model)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [Google video ad formats](https://support.google.com/google-ads/answer/2375464?hl=en)\n- [Google Ads campaign budgets](https://support.google.com/google-ads/answer/2375454?hl=en)\n- [Google Ads total budgets](https://support.google.com/google-ads/answer/10486938?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The dedicated ADUCATE definition and a verified real example remain missing from the supplied owned source.\n- No campaign or tracking access was tested; actual supported options and policy eligibility remain account-specific.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Promote",
     "before": "review-budget-allocation-by-channel",
     "after": "set-up-tiktok-campaigns",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "e49270bb2aac2afd57c23c0fd476b0d7a9e8264c86de8da3e02aa02780be7e34",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f01d0a832d1525a80c8ba801f254c89f2912a0d751559bb8e422940c54344ce1",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-youtube-campaigns-using-aducate-model#task-create-youtube-campaigns-using-aducate-model",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e49270bb2aac2afd57c23c0fd476b0d7a9e8264c86de8da3e02aa02780be7e34",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e49270bb2aac2afd57c23c0fd476b0d7a9e8264c86de8da3e02aa02780be7e34"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e49270bb2aac2afd57c23c0fd476b0d7a9e8264c86de8da3e02aa02780be7e34"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 74,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Execute switch boosts to new audiences",
     "slug": "execute-switch-boosts-to-new-audiences",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Test a proven post with a new group. Keep the old test clear and the new cost small.",
     "content": "---\nname: execute-switch-boosts-to-new-audiences\ndescription: \"Test a proven post with a new group. Keep the old test clear and the new cost small.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Execute switch boosts to new audiences\n\nA post worked with one group of people. You want to see if it helps another group too. This guide helps you make that test without losing track of the first result.\n\n**The path:** Proven post → new group → separate test → compare results.\n\n**Use this when:** An existing post has a qualified paid result and a new relevant audience hypothesis fits the available budget.\n\n## Inputs\n- Original post/ad IDs, full-window result and pre-set target; current budget/end date of any still-running winner.\n- The next audience’s source, fit, allowed settings and eligibility.\n- Authority for the specific new test or replacement, aggregate budget ceiling, dates and current account roles.\n\n## First-run prompt\n\n> Prepare a switch-boost test using this verified winning post and the proposed new audience. Keep IDs, budgets and dates separate from the old test. Reuse the original post only where the platform supports it. Act within the provided test scope, then return read-back and the due comparison.\n\n## Steps\n1. Recheck that the original qualifies against the written goal, with enough evidence for the proposed next test. A high reaction count alone does not make it a conversion winner.\n2. Name why the new audience might benefit from the same content. Use a real service area, relevant interest or eligible warm group. Check any list rights and unsupported settings before preparing the row.\n3. Decide whether the scope is an additional test or a replacement. For an additional test, keep the original record and its existing end date unchanged. For a replacement, record the old stop and new start explicitly; neither choice grants extra spending authority.\n4. Where supported, select the existing original post and confirm its ID in preview. Do not promise all comments, reactions or placements will carry across accounts or platforms. Label a required new creative as a derivative with its own ID.\n5. Keep the creative, goal and planned window comparable while changing the chosen audience variable. Record unavoidable differences such as placement, time, audience overlap or currency; a normal auction comparison is not randomized proof.\n6. Price the new test at the method’s $1/day for seven days where feasible. Read current minimums and true spend controls. Add the old and new commitments before any authorized activation.\n7. After saving or launching within scope, read back both records. Check the correct post, audience, status, budget and end date. Monitor early delivery; do not edit the original’s audience by accident or duplicate the same active test on a retry.\n8. Compare the full windows using the same metric. Keep, stop or hold the new test with a due date. A failure in this audience/window is useful evidence, not proof the post can never work elsewhere.\n\n## Definition of done (QA checklist)\n\n- [ ] The original winner has linked evidence and retains its exact record.\n- [ ] New audience fit, rights and available settings are checked.\n- [ ] Additional-test versus replacement scope and total cost are explicit.\n- [ ] Original-post reuse or a new derivative is verified in preview/read-back.\n- [ ] The final comparison includes confounds and a bounded next action.\n\n## Example(s)\n\n**Fictional teaching example:** A repair tip beat its view-cost target in Cedar Town. The shop also serves Maple Town, so the next test uses the same eligible post there. The original still has three days left in its approved run. The log records both commitments before the seven-day Maple test is activated. Maple’s cost is higher, but its run began during a holiday. The report stops that test under its rule and records the timing limit; it does not declare all Maple customers a poor fit.\n\n## Handoff and Content Factory context\n\nSend the results to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). Proven stage-specific posts can feed [sequence content from awareness to conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-from-awareness-to-conversion#task-sequence-content-from-awareness-to-conversion) when eligible audience sources and that next scope exist.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne new audience hypothesis per bounded test. Batch or recurring switch tests are optional and must fit the existing budget and review capacity; no automatic sequence of paid launches is implied.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `execute-switch-boost-to-target-new-audiences`\n- **Browse later task:** `sequence-content-cold-warm-conversion`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Execute switch boosts to new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boosts-to-new-audiences#task-execute-switch-boosts-to-new-audiences)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Current account support for existing-post reuse and audience controls was not tested.\n- A real winning record and authority for the new test must be supplied.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "execute-switch-boost-to-target-new-audiences",
     "after": "sequence-content-cold-warm-conversion",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "c805e5c5ca843a814ca95926156cf5d2961dc0a33792904527cba7ced24d6647",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e047fdc08da919c25b0c986a4f73b27515843391ce3920c06aff7b65d8d7dd89",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=execute-switch-boosts-to-new-audiences#task-execute-switch-boosts-to-new-audiences",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c805e5c5ca843a814ca95926156cf5d2961dc0a33792904527cba7ced24d6647",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c805e5c5ca843a814ca95926156cf5d2961dc0a33792904527cba7ced24d6647"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c805e5c5ca843a814ca95926156cf5d2961dc0a33792904527cba7ced24d6647"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 49,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Identify signals worth amplifying",
     "slug": "identify-signals-worth-amplifying",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Find posts that helped people. Use that proof to choose what to boost.",
     "content": "---\nname: identify-signals-worth-amplifying\ndescription: \"Find posts that helped people. Use that proof to choose what to boost.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Identify signals worth amplifying\n\nYou do not need to guess which post to boost. Look for posts that people already found useful. This guide helps you make a short list from your own results before you spend on ads.\n\n**The path:** Recent posts → fair baseline → useful proof → short list.\n\n**Use this when:** The team needs proven content for a small paid test or a fresh winner shortlist.\n\n## Inputs\n- The account’s available recent organic posts and metrics, ideally 60–90 days, with post URLs, dates and formats.\n- The business goal, audience, ordinary baseline and content/media rights.\n- Evidence for names, claims and results; current ad eligibility and a place to save the shortlist. Read-only exports are enough for this task.\n\n## First-run prompt\n\n> Rank these posts against their own account’s comparable baseline. Show the numerator, denominator, sample size and useful response behind each candidate. Select only proven, relevant, usable posts. Return the shortlist and gaps without spending, posting or inventing missing metrics.\n\n## Steps\n1. Collect the available recent organic history. Record the actual date range and any missing posts or metrics. Separate already-paid results so paid reach does not masquerade as organic proof.\n2. Group comparable formats and goals. A 20-second clip and a long interview need different watch-time context; different platforms may define a view differently.\n3. Compute a consistent engagement measure where reach exists: (reactions + comments + shares) ÷ reach × 100. Label this an interaction rate, not a unique-person rate. If reach is zero or missing, do not invent a ratio.\n4. Compare with the account’s own median for a comparable group. The source’s two-to-three-times baseline can be a shortlist heuristic, not a universal win threshold. If the median is zero or the sample tiny, show absolute counts and that limit.\n5. Read the actual responses. Questions, useful shares and relevant discussion may matter more than low-effort reactions. Remove spam or irrelevant response from the qualitative argument; do not secretly rewrite the source export.\n6. Check whether each post helps the stated audience and goal. Keep proof tied to its source moment. Do not upgrade a co-appearance into a customer story, endorsement or close relationship.\n7. Verify that the original post, media rights, captions, destination and current ad rules allow the proposed use. A strong post with an unresolved claim or rights issue remains on hold for paid use.\n8. Choose up to three to five qualified candidates, with the evidence, reason and intended goal for each. If none qualifies, return that finding and a content task. Test fresh ideas organically first; do not divert an assumed 10% of paid budget into unproven content.\n\n## Definition of done (QA checklist)\n\n- [ ] Dates, paid/organic split and comparable groups are recorded.\n- [ ] Every ratio has the correct denominator and a sample-size limit.\n- [ ] Each candidate has useful response and goal fit, not only a popularity rank.\n- [ ] Claims, rights and ad eligibility gaps remain explicit.\n- [ ] The short list can be reproduced from linked post records; no budget action occurred.\n\n## Example(s)\n\n**Fictional teaching example:** A shop’s ten recent repair clips have a median interaction rate of 2%. The seat-fix clip has 20 reactions, six comments and four shares on 500 people reached: 30 ÷ 500 × 100 = 6%. That is three times the median. The reviewer reads the comments and finds real repair questions. A joke gets more likes but no buyer relevance, so it is not picked for this goal. The seat clip goes on the shortlist only after its music and claims are checked.\n\n## Handoff and Content Factory context\n\nGive the campaign owner the evidence-backed shortlist for [build audience layers](https://local-service-spotlight.github.io/task-library/?task=build-audience-layers#task-build-audience-layers). If useful source content is missing, return to [record one minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos) with the actual questions found in the comments.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before a paid-test batch or during the already agreed content review. A repeated scan requires actual access to current exports and a configured trigger; a skill file does not watch an account on its own.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `email-and-dm-client-about-published-article`\n- **Browse later task:** `run-dollar-a-day-campaign-on-winning-content`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Identify signals worth amplifying](https://local-service-spotlight.github.io/task-library/?task=identify-signals-worth-amplifying#task-identify-signals-worth-amplifying)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real account history, content rights or paid-use approval is supplied here.\n- The owned article’s broad algorithm and income claims are not used as evidence that a given post will win.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "email-and-dm-client-about-published-article",
     "after": "run-dollar-a-day-campaign-on-winning-content",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "01684149c410337cf4066e053ba4852166a0922eeb7bda4f62a958b595d49632",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "529420be0e32dfafea22649939b31582322d7d7b0ad790d3a57b5fe63a21f745",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=identify-signals-worth-amplifying#task-identify-signals-worth-amplifying",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "01684149c410337cf4066e053ba4852166a0922eeb7bda4f62a958b595d49632",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "01684149c410337cf4066e053ba4852166a0922eeb7bda4f62a958b595d49632"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "01684149c410337cf4066e053ba4852166a0922eeb7bda4f62a958b595d49632"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 38,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Kill underperforming ads",
     "slug": "kill-underperforming-ads",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Stop ads that miss the agreed goal. Save the result so the next test can learn from it.",
     "content": "---\nname: kill-underperforming-ads\ndescription: \"Stop ads that miss the agreed goal. Save the result so the next test can learn from it.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Kill underperforming ads\n\nAn ad can spend money without doing the job you gave it. This guide helps you stop weak tests and keep a clear record. Start with the goal, the test dates and the actual cost.\n\n**The path:** Due test → checked rule → exact pause → saved lesson.\n\n**Use this when:** A test reaches its decision date, or an active ad violates an already agreed safety or spending rule.\n\n## Inputs\n- Exact account/ad-set/ad IDs, current status, full-window report and target from the test plan.\n- The pause/stop authority already granted, any early-stop rule, remaining budget and other workers’ current actions.\n- A dated test log with the original creative, audience, changes, output evidence and next owner.\n\n## First-run prompt\n\n> Review these due ads against their agreed targets and stop rules. Name the exact records to pause and why. Apply only the pauses already authorized, re-read the status, and keep all history. Report recommendations separately if action authority or evidence is missing.\n\n## Steps\n1. Match each due row to the exact account and object ID. Check whether another worker already paused it or a current plan replaced the old instruction. Do not act from a similar display name alone.\n2. Confirm the reporting window, goal, result definition and tracking state. Separate poor measured performance from an absent or broken measurement. Use the original target, not a threshold chosen to make the desired verdict fit.\n3. At the planned seven-day review, stop ads that fail the agreed rule. The method often retires about 90% across a portfolio; this is not a requirement to force nine losses from ten or remove a qualifying winner to meet a quota.\n4. Act sooner on wrong destinations, unauthorized delivery/spend or other agreed safety conditions. Record the early-stop reason and partial window. A seven-day test is not permission to ignore a harmful error.\n5. Pause the exact relevant ad or ad set within authority, preserving historical records. Check the campaign hierarchy so a broader pause does not stop unrelated work. Do not delete the evidence or silently replace the creative mid-test.\n6. Read back the saved effective status and timestamp. A reported pause and zero future delivery are separate observations; reports and billing may include activity from before the pause. Escalate a failed state change to the campaign owner without blindly repeating it.\n7. Record spend, results, reason and one lesson. Unspent money remains uncommitted unless the existing scope authorizes a specific reallocation. A pause does not itself authorize a new test or larger winner budget.\n8. Send qualified winners and unresolved tracking rows to their separate next tasks. End with a clear stop/keep/hold list and an owner for each unresolved row.\n\n## Definition of done (QA checklist)\n\n- [ ] Every pause is tied to an exact ID, rule and current authorization.\n- [ ] Full-window verdicts and early protective stops are distinguished.\n- [ ] Paused state is read back; failed changes remain open.\n- [ ] Historical metrics and creative/audience records are retained.\n- [ ] No forced failure quota, deletion or unauthorized budget reallocation is claimed.\n\n## Example(s)\n\n**Fictional teaching example:** Three tests finish their week. A costs $1.40 per useful visit against a $2 target. B costs $3.50. C has broken tracking. The operator is authorized to pause failed or unmeasurable tests at the end date. B and C are paused by ID, then read back. C is labeled unknown outcome, not proven bad content. A’s existing end date still applies. The $7 that might have funded a new B test is not automatically moved to A.\n\n## Handoff and Content Factory context\n\nSend an eligible winner to [scale winners by increasing budget gradually](https://local-service-spotlight.github.io/task-library/?task=scale-winners-by-increasing-budget-gradually#task-scale-winners-by-increasing-budget-gradually). Send measurement gaps to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking) and the campaign owner. The content owner gets the specific failed hypothesis for future organic work.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at each test’s agreed due date and whenever an existing stop rule triggers. An automatic pausing rule requires explicit configured scope, permissions, state and a verified trigger; this guide does not create one.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `analyze-cost-per-result-and-engagement`\n- **Browse later task:** `scale-winners-by-increasing-budget-gradually`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Kill underperforming ads](https://local-service-spotlight.github.io/task-library/?task=kill-underperforming-ads#task-kill-underperforming-ads)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Meta significant-edit help](https://www.facebook.com/business/help/316478108955072)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual stop thresholds, account access and pause receipts must come from the real campaign.\n- Meta’s significant-edit help was login-blocked; the old claim that all edits reset learning is not treated as verified.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "analyze-cost-per-result-and-engagement",
     "after": "scale-winners-by-increasing-budget-gradually",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "bbea442ab2fd611cfe1d8727912601f2d296c294dfc27d809904af35326448d6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2eda749a52eee802a21bd5010b1270aecef267436eab38a36126d89cebdb48d6",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=kill-underperforming-ads#task-kill-underperforming-ads",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bbea442ab2fd611cfe1d8727912601f2d296c294dfc27d809904af35326448d6",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bbea442ab2fd611cfe1d8727912601f2d296c294dfc27d809904af35326448d6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bbea442ab2fd611cfe1d8727912601f2d296c294dfc27d809904af35326448d6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 39,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Run multiple simultaneous tests",
     "slug": "run-multiple-simultaneous-tests",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Run a few small ad tests with clear limits. Compare the same goal when each test ends.",
     "content": "---\nname: run-multiple-simultaneous-tests\ndescription: \"Run a few small ad tests with clear limits. Compare the same goal when each test ends.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Run multiple simultaneous tests\n\nYou want to learn which post or group is a better fit. This guide helps you plan a few small tests at once. Start with one clear question and the total amount you can use.\n\n**The path:** One question → priced test rows → bounded runs → fair review.\n\n**Use this when:** More than one proven creative or audience hypothesis is ready and the budget and review capacity support parallel tests.\n\n## Inputs\n- Qualified posts, reviewed audience rows, a common goal and target; enough evidence to define a useful comparison.\n- Exact account/currency/time zone, permitted budget controls, approved total amount and dates.\n- Access for the planned actions and a shared log of active tests, remaining commitments, safety rules and review owner.\n\n## First-run prompt\n\n> Build a small test matrix for this question and total budget. Keep each row identifiable, priced and due for review. Compare one planned variable at a time, note overlap, and carry out only authorized launches. Do not create a fixed quota of tests or add budget to make an unsupported minimum fit.\n\n## Steps\n1. Choose the question first: two eligible posts with the same audience, or the same post with two audience settings. Do not change the goal, creative, audience and landing page together and call the result an explanation of one factor.\n2. Start with only as many rows as the budget and reviewer can handle. The core method can layer one post per day; parallel testing is an option, not a requirement to launch 10–30 cells at once.\n3. Create a row for every planned test with source post ID, audience, goal, budget type, amount, start/end times and success rule. Where Google Ads is used, budget belongs to the campaign; do not pretend each ad group has an independent cap.\n4. Price the whole plan before launch. Three nominal $1/day tests for seven days mean $21, not $7. Verify platform minimums, average-versus-total behavior, fees and true limits; fewer tests or a pending plan is better than an unapproved increase.\n5. Check shared/campaign budget behavior. If the chosen setup can move money across rows, report that allocation limit. Separate settings alone do not guarantee equal spend or a randomized experiment.\n6. Inspect previews and saved settings, then launch only within the existing authority. Read back all IDs, dates and budgets. On a retry, reconcile the log first so the same row is not launched twice.\n7. Check early delivery, broken links, missing events and ceiling drift. Avoid unnecessary changes during the planned window, but apply already authorized protective stops. Record any change and its date.\n8. Review each row after its own full window. For staggered launches, due dates differ. Compare matching metrics, note sample and auction limits, and send every row to a keep, stop or bounded hold decision.\n\n## Definition of done (QA checklist)\n\n- [ ] The matrix answers one clear question with identified source posts.\n- [ ] All row commitments fit the actual authorized total and current platform controls.\n- [ ] Independent budgets are not claimed where allocation is pooled.\n- [ ] Launch/retry checks prevent duplicate active rows and record early issues.\n- [ ] Every row has its own due date and evidence-qualified verdict.\n\n## Example(s)\n\n**Fictional teaching example:** A shop has $21 for three seven-day tests in a setup that supports the plan. The matrix records three $7 nominal commitments and the actual spend controls. All use one goal, but only A and B compare two clips with the same audience; C explores a different audience and is labeled exploratory. If a row is rejected or receives too little delivery, it is not called a loser from zero results alone. The final report preserves actual spend instead of filling each row with a made-up $7.\n\n## Handoff and Content Factory context\n\nSend each due row to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). The campaign owner controls the remaining commitments and any new test plan; stopped rows go to [kill underperforming ads](https://local-service-spotlight.github.io/task-library/?task=kill-underperforming-ads#task-kill-underperforming-ads).\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne bounded matrix. Staggered additions or recurring batches are optional, with a real total budget, reviewer and trigger. A model or task pack does not create either a spend limit or a schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `set-up-remarketing-ads-for-landing-page-abandoners`\n- **Browse later task:** `analyze-cost-per-result-and-engagement`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Run multiple simultaneous tests](https://local-service-spotlight.github.io/task-library/?task=run-multiple-simultaneous-tests#task-run-multiple-simultaneous-tests)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Google Ads campaign budgets](https://support.google.com/google-ads/answer/2375454?hl=en)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- A real platform may not support the nominal $1/day plan or yield enough data in seven days.\n- No matrix was launched or account/scheduler connected during guide authoring.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "set-up-remarketing-ads-for-landing-page-abandoners",
     "after": "analyze-cost-per-result-and-engagement",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "59d247ee852116fe3ae86314a0c5373bbf7293d36a85b571604bfafb1c893eda",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bb9f96601106bda39f0abf9ff3faf13b57eedf4e5ee87cc2c20090af52177b97",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-multiple-simultaneous-tests#task-run-multiple-simultaneous-tests",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "59d247ee852116fe3ae86314a0c5373bbf7293d36a85b571604bfafb1c893eda",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "59d247ee852116fe3ae86314a0c5373bbf7293d36a85b571604bfafb1c893eda"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "59d247ee852116fe3ae86314a0c5373bbf7293d36a85b571604bfafb1c893eda"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 61,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Run Twitter/X promotion for thought leader threads",
     "slug": "run-twitter-x-promotion-for-thought-leader-threads",
     "status": "needs-work",
     "stage": "Promote",
     "article": null,
     "articleKind": "unknown",
     "desc": "Share a strong post with a wider group. Test the cost and keep the real result.",
     "content": "---\nname: run-twitter-x-promotion-for-thought-leader-threads\ndescription: \"Share a strong post with a wider group. Test the cost and keep the real result.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Run Twitter/X promotion for thought leader threads\n\nA thread can share a useful idea beyond your own fans. This guide helps you test a strong post on X with a clear cost limit. Start with a post that earned real replies or shares.\n\n**The path:** Strong thread → fitting audience → bounded promotion → measured response.\n\n**Use this when:** A person’s published thread has useful organic evidence and a paid X test fits the stated goal.\n\n## Inputs\n- Original thread and first-post URLs, recent comparable metrics and permission to promote this person’s content.\n- The actual eligible X Ads account, ad role and billing scope; account-specific minimums, currency and dates.\n- Goal, target, audience hypothesis and creative rights; a checked destination and the tracking actually needed for a website goal.\n\n## First-run prompt\n\n> Review this thread’s organic evidence and prepare an X test with the original entry post where eligible. Verify the actual audience mode, budget limits, dates and metric. Do not promise delivery to a named person or their exact followers. Apply only the actions already authorized and report the real saved state.\n\n## Steps\n1. Read the whole thread and its evidence, then compare replies, reposts, bookmarks or profile actions with the person’s comparable recent posts. Do not select a viral argument that does not serve the stated business goal.\n2. Check account and post eligibility in the authorized interface. Verify the ad identity and rights to the words, images and linked material. A platform or account restriction is not permission to open a substitute identity.\n3. Write the goal and matching result: relevant engagement, a defined profile action or website traffic. A website tag is not required just to count every platform-reported click; use the tracking needed for the actual downstream outcome.\n4. Choose the first post when it gives a clear entry to the approved thread and is eligible for promotion. Read the promoted preview and linked thread. Keep the source URL; do not promise every reader opens the rest of the thread.\n5. Use relevant interests or follower look-alike inputs offered by the platform. X describes look-alikes as people with similar interests to an account’s followers, not an exact list of those followers. Keep the actual geography and other supported controls in the log.\n6. Read how targeting options combine. Multiple audience inputs may broaden a group rather than require every condition. Record overlap and the exact selected settings; do not sum overlapping interest reports as unique people.\n7. Set the smallest supported test that fits the approved amount and dates, using the current budget level and controls. If $1/day is not available, name the real cost and leave an out-of-scope test pending. Avoid unnecessary edits but still check early errors and spend.\n8. At the seven-day due review, compare the matching cost and useful response with the target. Report observed follows or inquiries separately from claimed attribution. Route the exact next action; do not double the budget or launch the next thread by default.\n\n## Definition of done (QA checklist)\n\n- [ ] Original thread, entry post, rights and paid eligibility are documented.\n- [ ] Goal and metric match; click, follow and sale are not interchangeable.\n- [ ] Follower look-alikes and overlapping audience reports are described correctly.\n- [ ] Real account budget controls and dates fit the authorized total.\n- [ ] Read-back and full-window verdict are saved with evidence limits.\n\n## Example(s)\n\n**Fictional teaching example:** A shop owner’s thread on safe bike checks gets 18 useful replies, above her normal range of two to four. The plan uses the original first post and a relevant cycling-account look-alike input. It says “people with similar interests,” not “all followers of this rider.” The test log shows actual cost per relevant engagement at review. One journalist later follows the account, but the report does not claim the ad reached that person or caused the follow without evidence.\n\n## Handoff and Content Factory context\n\nSend the report to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). The content owner receives the specific questions or weak entry point to improve through normal organic work.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne paid thread test. A recurring thread review or launch series needs an agreed scope, actual access, budget and trigger; this file does not create a standing X campaign.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `set-up-tiktok-campaigns`\n- **Browse later task:** `engage-with-social-comments`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Dedicated canonical article: not mapped in this source record. Use the maintained owned training below until that article gap is reviewed.\n- Exact task: [Run Twitter/X promotion for thought leader threads](https://local-service-spotlight.github.io/task-library/?task=run-twitter-x-promotion-for-thought-leader-threads#task-run-twitter-x-promotion-for-thought-leader-threads)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [X interest and follower look-alike targeting](https://business.x.com/en/help/campaign-setup/campaign-targeting/interest-and-follower-targeting)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- This source still has no dedicated X definitive article; /dad supplies the parent method.\n- Current X account eligibility, budget controls and post approval were not tested during authoring.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "set-up-tiktok-campaigns",
     "after": "engage-with-social-comments",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "fddb0aba02750b121275c2adda636f07264def34e0db9a57e05fe94520e6bbaa",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6f02e90b514673befca2a6c5e126e105feabdb555f4d640d19c7f6f1d52a921c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "fddb0aba02750b121275c2adda636f07264def34e0db9a57e05fe94520e6bbaa",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "fddb0aba02750b121275c2adda636f07264def34e0db9a57e05fe94520e6bbaa"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "fddb0aba02750b121275c2adda636f07264def34e0db9a57e05fe94520e6bbaa"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 56,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Scale winners by increasing budget gradually",
     "slug": "scale-winners-by-increasing-budget-gradually",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Give a strong ad a careful next test. Cut back if the cost no longer meets the goal.",
     "content": "---\nname: scale-winners-by-increasing-budget-gradually\ndescription: \"Give a strong ad a careful next test. Cut back if the cost no longer meets the goal.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Scale winners by increasing budget gradually\n\nA small ad test has done well. You want to reach more people without losing control of the cost. This guide helps you choose the next step and know when to cut back.\n\n**The path:** Qualified winner → bounded next spend → fresh check → keep or step back.\n\n**Use this when:** A full-window winner meets the written goal and a longer run or budget increase is within the campaign’s authority.\n\n## Inputs\n- Winner IDs, full-window report, goal/target and evidence of useful result quality.\n- Current and proposed budget, currency, dates, remaining aggregate commitments and the scope for increases or rollback.\n- Adjustment log, reporting delay, decision window and supported platform controls; an actual operator or configured rule for the due review.\n\n## First-run prompt\n\n> Check this winner and propose the next dated budget step. Distinguish a $30 total over 30 days from $30 per day. Keep any increase within the source’s no-more-than-two-times ceiling and the lower actual authorized limit. Define the recheck and step-back rule before making any authorized change.\n\n## Steps\n1. Requalify the winner using the full test window, matched goal and result quality. A single cheap day or a low-count result does not establish performance at a larger budget.\n2. Use the current owned method’s next stage where appropriate: $30 total over 30 days for a proven winner. This extends a small run; it is not $30/day and does not itself authorize new spend. Check whether the platform’s supported controls can enforce that plan.\n3. If a separate larger-budget test is warranted and authorized, write the proposed amount and dates first. Preserve the source task’s ceiling of no more than 2× per adjustment, or a lower campaign limit. This is a method guardrail, not a claim that doubling is always safe or avoids learning changes.\n4. Change one planned budget variable at a time and record the exact before/after state. Keep creative and targeting stable where possible. Do not raise a budget, widen audiences and extend dates together without recording the new scope and comparison limits.\n5. Set a dated recheck window before the change, allowing for the account’s actual reporting delay and enough evidence for the chosen goal. Continue early spend and delivery checks; do not schedule automatic repeated doublings.\n6. If the comparable cost per useful result crosses the written target after an increase, step back to the last supported budget within the agreed rollback authority, or pause if required by the stop rule. Verify tracking and lag; do not declare permanent audience exhaustion from one noisy period.\n7. Watch actual frequency, useful response and cost together. Higher repeat exposure with weaker response is a reason to inspect fatigue, not a universal numeric frequency cutoff. A new audience is a separate switch test with its own budget, not guaranteed cheaper reach.\n8. Read back any change and log the next review. Keep uncommitted money unspent. The older 90/10 allocation language is not permission to fund unproven paid content or exceed the budget; maintain a source-backed organic pipeline for future small tests.\n\n## Definition of done (QA checklist)\n\n- [ ] The winner and proposed next stage are supported by dated evidence.\n- [ ] $30 over 30 days and all daily/total units are unambiguous.\n- [ ] Any increase is at most 2× and within the actual lower authorized limit.\n- [ ] Recheck and cost-crossing rollback rules have an owner and recorded state.\n- [ ] Frequency, uncertainty and total commitments are tracked without guaranteed-learning claims.\n\n## Example(s)\n\n**Fictional teaching example:** An ad spends $7 for seven useful visits against a $2 target. A $30 total, 30-day continuation is approved and recorded as such. Later, a separate budget test raises a supported daily setting from $2 to $3, a 1.5× change. After the planned comparable window and tracking check, cost rises to $2.40 per useful visit. The operator uses the agreed rollback to $2 and reads it back. The report does not say that all 1.5× changes are safe or that the higher cost proves the audience is exhausted.\n\n## Handoff and Content Factory context\n\nGive new-audience ideas to [execute switch boosts to new audiences](https://local-service-spotlight.github.io/task-library/?task=execute-switch-boosts-to-new-audiences#task-execute-switch-boosts-to-new-audiences) and due performance checks to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). The campaign owner controls the total commitment and any further increase.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne qualified budget decision and its due recheck. An ongoing scaling loop needs actual account access, durable state, an agreed cadence and bounded authority; this task does not install or guarantee that loop.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `kill-underperforming-ads`\n- **Browse later task:** `review-budget-allocation-by-channel`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Scale winners by increasing budget gradually](https://local-service-spotlight.github.io/task-library/?task=scale-winners-by-increasing-budget-gradually#task-scale-winners-by-increasing-budget-gradually)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Meta significant-edit help](https://www.facebook.com/business/help/316478108955072)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The owned article’s money-as-10%-of-audience sentence has undefined units and is not used as a formula.\n- The source has no universal recheck duration, minimum sample or numeric fatigue cutoff; these must come from the real campaign plan.\n- Meta’s significant-edit page was not readable in this check; no guaranteed safe-change threshold is inferred.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "kill-underperforming-ads",
     "after": "review-budget-allocation-by-channel",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "4394f3a85f7710af0fdd4d72f77cd0a78b4644e6f1198afc5e2f46f8f3e5fba2",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "89353034e481ad371e1c46220fbc3d49f6132aba3bd287df08ceb62d4e528b12",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=scale-winners-by-increasing-budget-gradually#task-scale-winners-by-increasing-budget-gradually",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4394f3a85f7710af0fdd4d72f77cd0a78b4644e6f1198afc5e2f46f8f3e5fba2",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4394f3a85f7710af0fdd4d72f77cd0a78b4644e6f1198afc5e2f46f8f3e5fba2"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4394f3a85f7710af0fdd4d72f77cd0a78b4644e6f1198afc5e2f46f8f3e5fba2"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 52,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Sequence content from awareness to conversion",
     "slug": "sequence-content-from-awareness-to-conversion",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Give each post a clear job. Help people learn, see proof and take a useful next step.",
     "content": "---\nname: sequence-content-from-awareness-to-conversion\ndescription: \"Give each post a clear job. Help people learn, see proof and take a useful next step.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Sequence content from awareness to conversion\n\nPeople need different help at each stage of a choice. Some need a clear answer. Others need proof or a way to get help. This guide helps you put the right posts in a useful order.\n\n**The path:** Helpful introduction → deeper proof → fitting offer → stage review.\n\n**Use this when:** The campaign has proven posts for more than one stage and needs a coherent path toward the business goal.\n\n## Inputs\n- Proven source posts, their goals, rights and metrics; actual offer and working next-step destination.\n- Current eligible audience sources, retention windows, exclusions and tracking limits.\n- Stage targets, total budget, dates, current account roles and action scope; a tracker that relates posts and audiences without claiming person-by-person knowledge.\n\n## First-run prompt\n\n> Map these approved posts into an introduction, proof and offer path. Use actual supported audience rules and one clear metric per stage. Show any missing proof or audience eligibility. Do not promise every viewer moves through the sequence or create new spending outside scope.\n\n## Steps\n1. Write the path in plain terms: introduce why this matters, show how the work helps, then offer a fitting next step. The owned 3×3 method collects three WHY, three HOW and three WHAT pieces; do not fill missing slots with weak or invented proof.\n2. Assign each existing post a primary job and source link. WHY content may introduce the person or purpose; HOW teaches and builds trust; WHAT explains the offer. Choose by what the actual post does, not an automatic label based on who appears.\n3. Match one main metric to each job, such as a defined view measure, a useful engagement or a qualified lead. Record definitions and targets so a cheap awareness result is not mistaken for profitable conversion.\n4. List the actual eligible audience source and time window for the next stage. Platform consent, matching, format and minimum-size rules can limit remarketing. A viewer is not automatically an identifiable or reachable lead.\n5. Use the supported inclusion and exclusion settings needed for the plan. Read whether an audience is a strict rule or only a suggestion. Do not claim a perfectly isolated sequence when expansion, overlap or unavailable controls prevent it.\n6. Pair deeper proof with people for whom it is relevant, and connect the offer to a clear need. The default nurture path is useful, but “strangers must never see an offer” is not a universal rule; high-intent goals may call for a direct relevant offer within the plan.\n7. Price every active stage and verify the chosen budget controls and dates. $1/day per eligible small test is the method’s starting idea, not proof every platform or small warm group can deliver it. Keep an unavailable stage pending instead of broadening it without scope.\n8. Review stage costs and actual downstream quality together. Find the specific weak link and name one next action. Do not add reach, views and leads together as unique people or attribute every sale to the sequence.\n\n## Definition of done (QA checklist)\n\n- [ ] Every used post has a source-backed stage job and metric.\n- [ ] Missing 3×3 pieces remain gaps rather than fabricated winners.\n- [ ] Audience eligibility, controls and overlap limits are explicit.\n- [ ] Each stage fits the actual budget and dates.\n- [ ] The review identifies a specific weak link and next owner without overstating attribution.\n\n## Example(s)\n\n**Fictional teaching example:** A repair shop has an owner’s WHY story, a seat-fix HOW clip and a WHAT post explaining a tune-up appointment. It has only these three qualified pieces, so the 3×3 plan records six open slots. An eligible engaged-viewer audience can receive the deeper proof, but a site-visitor group is too small for the intended offer test. That stage stays pending. The team can still check the offer page and gather organic proof; it does not claim everyone who watched the first clip saw all three.\n\n## Handoff and Content Factory context\n\nSend missing source content to its content owner through [record one minute videos](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos). Give the stage report to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement) and any budget decision to the campaign owner.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nDesign once, then review on the active campaign’s agreed weekly cadence when one exists. Actual audience and budget checks need a configured owner/trigger; this file does not create a perpetual funnel.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `sequence-content-cold-warm-conversion`\n- **Browse later task:** `set-up-remarketing-ads-for-landing-page-abandoners`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Sequence content from awareness to conversion](https://local-service-spotlight.github.io/task-library/?task=sequence-content-from-awareness-to-conversion#task-sequence-content-from-awareness-to-conversion)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Metrics, Analysis, and Action](https://blitzmetrics.com/maa/)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n- [Google video ad formats](https://support.google.com/google-ads/answer/2375464?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real audience eligibility or complete nine-piece winner set is supplied.\n- The owned article’s universal viewer-retargeting wording needs its own correction; this draft does not certify that body claim.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "sequence-content-cold-warm-conversion",
     "after": "set-up-remarketing-ads-for-landing-page-abandoners",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "3e8c58f2dfdb7580f46f3bcc350785e27152972b1c7924854966885b2ee39ad6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "68a352861eaa6f8d9d03d8213e5d7207398cc2f5cb6a3123155a140091a442fc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=sequence-content-from-awareness-to-conversion#task-sequence-content-from-awareness-to-conversion",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3e8c58f2dfdb7580f46f3bcc350785e27152972b1c7924854966885b2ee39ad6",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3e8c58f2dfdb7580f46f3bcc350785e27152972b1c7924854966885b2ee39ad6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3e8c58f2dfdb7580f46f3bcc350785e27152972b1c7924854966885b2ee39ad6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 37,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set $1/day budget per ad set",
     "slug": "set-1-day-budget-per-ad-set",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Price a small ad test before it starts. Check the real spend limit and the end date.",
     "content": "---\nname: set-1-day-budget-per-ad-set\ndescription: \"Price a small ad test before it starts. Check the real spend limit and the end date.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Set $1/day budget per ad set\n\nA small ad test needs a clear price. This guide helps you set a starting budget and check the total cost. Start with the number of tests and the date each one must end.\n\n**The path:** Test rows → real budget controls → total commitment → saved limits.\n\n**Use this when:** The approved content and audience plan is ready to be priced and configured for a small test.\n\n## Inputs\n- The exact test rows, goal, dates and planned number of active tests.\n- Account currency, time zone, current minimums and available budget/limit controls; access for the planned configuration.\n- The billing owner, authorized total, any fees and existing campaign commitments; due review and stop authority.\n\n## First-run prompt\n\n> Price this test matrix using the actual account’s budget controls. Use $1/day for seven days only where supported, show the full commitment, and distinguish averages from caps. Re-read any authorized saved settings. Leave a plan that exceeds the supplied amount pending instead of silently raising it.\n\n## Steps\n1. Confirm the goal and qualified source content before funding anything. The method starts with a small paid test of proven work; small spend still has a real cost and does not guarantee useful sample size.\n2. Map the actual budget level. In a Meta setup with ad-set budgets, a row can use that control; a pooled campaign budget may allocate differently. Google Ads budgets belong to campaigns, not ad groups. Do not force the task’s historical title onto every platform.\n3. Read the account’s accepted minimum, currency, billing terms and objective-specific settings. Try the nominal $1/day only if supported within scope. If a platform requires more, show the true amount or choose fewer tests through the existing decision process; do not relabel $20 as one dollar.\n4. Choose a supported daily or total/lifetime plan appropriate to the ceiling. A daily average can vary by day. For a hard total, verify the actual total/limit control and dates; an informal reminder is not a platform-enforced cap.\n5. Calculate every commitment, including overlapping old tests. At the nominal method amount, one seven-day test plans $7; five plan $35. Show currency and any separately applicable fees. The calculation is a plan, not a fabricated future charge.\n6. Set the exact start/end dates and the due review before an authorized activation. Record what happens at expiry and who can pause. A calendar entry alone does not prove an automatic stop exists.\n7. Re-read all saved budgets, limits and dates by ID. If the chosen campaign mode pools spend, preserve that fact in the log. A successful save is distinct from policy approval and actual delivery.\n8. Check spend and delivery early within the existing scope, then review the full planned window. Avoid unnecessary mid-test changes, but do not ignore a wrong amount, broken destination or other agreed protective-stop condition.\n\n## Definition of done (QA checklist)\n\n- [ ] Real budget level, minimum, currency and pacing are documented.\n- [ ] Nominal daily math is not confused with a hard total cap.\n- [ ] All overlapping commitments fit the actual authorized envelope.\n- [ ] Saved limits, dates and expiry behavior are read back.\n- [ ] The due reviewer and early protective checks are real, not model promises.\n\n## Example(s)\n\n**Fictional teaching example:** Five eligible seven-day tests at a nominal $1/day plan $35 in total. Two start Monday and three start Wednesday, so their end dates differ. The operator records the platform’s actual spend controls and any fees before activation. If only $21 is authorized, the five-row plan does not pass: three rows may fit after scope is reconciled. The guide does not call $35 “zero risk,” and it does not promise that typing a daily amount creates a hard weekly cap.\n\n## Handoff and Content Factory context\n\nSend the priced, checked rows to [run multiple simultaneous tests](https://local-service-spotlight.github.io/task-library/?task=run-multiple-simultaneous-tests#task-run-multiple-simultaneous-tests) or the specific platform setup task. The campaign owner receives any unsupported minimum or total-cost conflict.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nSet once per test plan and recheck after any authorized budget/date change. Day-seven review follows the actual test dates. Recurring launches require an existing budget arrangement and a working trigger.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 4 (runs every factory cycle or weekly; ads/revenue path; gates a phase)\n- **Browse earlier task:** `boost-one-minute-videos-for-personal-branding`\n- **Browse later task:** `create-facebook-instagram-campaigns-with-location-targeting`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Set $1/day budget per ad set](https://local-service-spotlight.github.io/task-library/?task=set-1-day-budget-per-ad-set#task-set-1-day-budget-per-ad-set)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [Google Ads campaign budgets](https://support.google.com/google-ads/answer/2375454?hl=en)\n- [Google Ads total budgets](https://support.google.com/google-ads/answer/10486938?hl=en)\n- [TikTok Ads Manager budgets](https://ads.tiktok.com/resources/help/article/budget?lang=en)\n- [Meta budget help](https://www.facebook.com/business/help/190490051321426)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The exact live account minimums, limit behavior and billing fees are not supplied.\n- Some platforms cannot run the named dollar amount; their real budget must be stated without expanding authority.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 4,
     "phase": "Promote",
     "before": "boost-one-minute-videos-for-personal-branding",
     "after": "create-facebook-instagram-campaigns-with-location-targeting",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; gates a phase",
     "instructionReview": {
      "source_sha256": "5ecc5dc3330fdd6bfb150ccc335cbcc519d5e2cc9533e1fc1d2f61fd69b9ca7a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e85f652030b4239ca25dc3bb929791e267f9262f8a710abc27311f024e69d4c9",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-1-day-budget-per-ad-set#task-set-1-day-budget-per-ad-set",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5ecc5dc3330fdd6bfb150ccc335cbcc519d5e2cc9533e1fc1d2f61fd69b9ca7a",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5ecc5dc3330fdd6bfb150ccc335cbcc519d5e2cc9533e1fc1d2f61fd69b9ca7a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5ecc5dc3330fdd6bfb150ccc335cbcc519d5e2cc9533e1fc1d2f61fd69b9ca7a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 41,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Set up digital plumbing (pixels, tracking)",
     "slug": "set-up-digital-plumbing-pixels-tracking",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Check that an ad result can be traced. Fix the missing part before you rely on the count.",
     "content": "---\nname: set-up-digital-plumbing-pixels-tracking\ndescription: \"Check that an ad result can be traced. Fix the missing part before you rely on the count.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Set up digital plumbing (pixels, tracking)\n\nYou need to know what an ad did for your business. This guide helps you check the path from a click or view to the result you care about. Start by naming that result.\n\n**The path:** Goal → needed tracking → safe check → usable evidence.\n\n**Use this when:** An ad goal needs measurement that has not yet been checked, or existing tracking has changed or failed.\n\n## Inputs\n- The exact business/ad account, site or on-platform form, and the goal to measure.\n- Access only to the assets needed for the chosen setup; current ownership/role record and permission for any change or test.\n- Event definitions, consent/privacy requirements, duplicate-tag inventory and an agreed safe test path; destination owner and evidence store.\n\n## First-run prompt\n\n> Map the tracking needed for this ad goal. Reuse the existing valid setup and test only the authorized path. Separate installed code, observed event and received business result. Do not install every provider, upload customer data or trigger a real order/message unless those specific actions are in scope.\n\n## Steps\n1. Name the result: an on-platform view, a submitted lead, a call, a booking or a purchase. Draw the actual path and its evidence points. An engagement-only test does not require every website analytics tool to exist first.\n2. Check the exact asset ownership and current role access with the owner’s records. Reuse valid business assets and roles. A missing permission affects that step; it does not require broad admin credentials to every platform.\n3. Inventory existing tags, event sources and integrations before adding anything. Decide which supported setup records the required event without duplicates. Use the maintained [Digital Plumbing guide](https://blitzmetrics.com/digital-plumbing/) and the exact provider instructions for that route.\n4. Define the event and parameters using real business behavior. A button click may be an attempted lead, not a received inquiry; a page load is not a purchase. Keep personal data and secrets out of tracking URLs and public evidence.\n5. Apply the site’s actual consent and privacy rules to collection and audience use. Do not assume all visitors or video viewers become usable audiences. A customer list is a separate permissioned source, not a required upload for every launch.\n6. Use the agreed test route and required tools to verify collection. For a website conversion, trace the event to analytics and the receiving form/CRM only when those systems are part of the goal. Label test data and avoid triggering paid orders or real customer notifications outside scope.\n7. If Tag Manager is used, distinguish previewing an unpublished draft from checking the normal published site. If GA4 is used, inspect the received event and parameters; missing events may reflect consent, setup or delay. A tag firing is not proof that the business received a useful lead.\n8. Save the exact checked path, versions, result and limits. Fix or route the missing component; do not mark all tracking complete from one settings screen. Give the campaign owner the measurement that can actually support a decision.\n\n## Definition of done (QA checklist)\n\n- [ ] The tracking plan fits the stated goal and reuses valid assets.\n- [ ] Required roles and source ownership are recorded without exposed credentials.\n- [ ] Events measure the intended action and do not duplicate or leak data.\n- [ ] The safe test distinguishes code, received event and business outcome.\n- [ ] Unverified consent, audience or downstream steps remain explicit.\n\n## Example(s)\n\n**Fictional teaching example:** A shop wants quote requests from its website. The existing form sends to a test inbox under the agreed test plan. The check finds a Lead event on every button click, even when the form is empty. The operator documents the defect and, within the approved change scope, moves measurement to the confirmed submission path. A labeled test then appears in the expected event report and test inbox. This proves that test path, not future lead quality or all platforms on the site.\n\n## Handoff and Content Factory context\n\nSend the checked measurement record to the campaign owner for [set 1 day budget per ad set](https://local-service-spotlight.github.io/task-library/?task=set-1-day-budget-per-ad-set#task-set-1-day-budget-per-ad-set). Route specific installation or consent defects to the actual site/integration owner using the maintained Digital Plumbing tasks.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nCheck before relying on a new or changed measurement path. Repeat after relevant site, form, consent or tag changes. Periodic monitoring is optional and needs a real configured job; no universal standing schedule is added.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `install-meta-pixel-with-standard-events`\n- **Browse later task:** `set-up-meta-business-manager-and-public-figure-pages`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Set up digital plumbing (pixels, tracking)](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Google Tag Manager preview and debug](https://support.google.com/tagmanager/answer/6107056?hl=en)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No client account, consent setup or end-to-end test was accessed in this authoring batch.\n- The owned /dad body still overstates automatic viewer remarketing; each real account needs eligibility evidence.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "install-meta-pixel-with-standard-events",
     "after": "set-up-meta-business-manager-and-public-figure-pages",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "460b5521f011a85d5fddd32f88ba536df76971d516411f13b60e967673dd0a43",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "92458b09e2acc4a83c49635c87b7adab09f95827254545bcdd6660a6413f4f04",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "460b5521f011a85d5fddd32f88ba536df76971d516411f13b60e967673dd0a43",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "460b5521f011a85d5fddd32f88ba536df76971d516411f13b60e967673dd0a43"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "460b5521f011a85d5fddd32f88ba536df76971d516411f13b60e967673dd0a43"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 26,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Set up Meta Business Manager and Public Figure pages",
     "slug": "set-up-meta-business-manager-and-public-figure-pages",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Check who owns the ad tools and the public page. Set up only the parts the job needs.",
     "content": "---\nname: set-up-meta-business-manager-and-public-figure-pages\ndescription: \"Check who owns the ad tools and the public page. Set up only the parts the job needs.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Set up Meta Business Manager and Public Figure pages\n\nYour page and ad tools should stay under the right owner’s control. This guide helps you check what exists and fill the real gaps. Start with the person or business the page is meant to show.\n\n**The path:** Real identity → existing assets → correct access → checked setup.\n\n**Use this when:** A personal brand needs the Meta assets for an authorized campaign, or an existing setup’s ownership/access is unclear.\n\n## Inputs\n- The actual person/business identity, authorized owner and existing portfolio, Page, Instagram and ad-account records.\n- An authenticated owner or authorized administrator with the required roles; recovery contact through the official route if access is missing.\n- Approved name, headshot, bio, source posts and site link; the exact scope for setup, connections, publishing or billing changes.\n\n## First-run prompt\n\n> Inspect the existing Meta assets for this person or business. Map ownership and roles, reuse valid assets, and make only the setup changes already authorized. Do not ask for shared login credentials or use a paid boost as automatic setup proof. Return checked IDs, access scope and the smallest unresolved gap.\n\n## Steps\n1. Identify whether the page represents the person or the company. Keep real names, headshot/logo, bio and website consistent with that entity. Do not imply a personal Page is the company or create an unnecessary duplicate to satisfy the historical task title.\n2. Inventory the existing business portfolio, Pages, Instagram identities, ad accounts and event data sources. Record ownership separately from assigned task access. A visible asset does not prove the operator can manage every setting.\n3. Use the owner’s existing portfolio where appropriate. If setup or access is missing, use the supported invitation or recovery process with the current authorized administrator. Do not request the owner’s password or bypass account verification.\n4. Assign only the roles required for the actual job when those grants are authorized. Preserve business control while allowing agreed agency/partner access. Document who can edit, view reports or spend without publishing private identifiers in a public article.\n5. Create or update a person’s Page only when the plan needs it and the action is authorized. Choose an accurate available category; Public Figure is a descriptive choice, not a universal prerequisite for all Meta ads. Review the approved bio, real image and useful source posts.\n6. Connect the specific Page, Instagram identity, ad account or event source that the campaign needs using the supported interface. Domain verification and pixel connections apply when required by the chosen features, not as a reason to install every integration.\n7. Read back the ownership/role and connection settings, then inspect the public identity and existing content with media silent. Keep seeded draft content separate from actually published posts. A setup check does not need an automatic paid test boost.\n8. Save an access map with checked date, role scope, unresolved step and next owner. If a paid test is already separately in scope, hand it to the campaign task with its own budget and dates; setup completion alone does not prove delivery or attribution.\n\n## Definition of done (QA checklist)\n\n- [ ] The real person/company identity and existing assets are correctly mapped.\n- [ ] Ownership, assigned roles and permissions are distinct and supported.\n- [ ] Only needed, authorized connections or grants were made.\n- [ ] Public identity and saved setup were checked without unscoped media or spend.\n- [ ] Campaign delivery is a separate next task; access gaps are not concealed.\n\n## Example(s)\n\n**Fictional teaching example:** A bike shop owner already has a personal-brand Page and a business ad account. The operator can view reports but cannot edit the Page bio. The map records that exact gap and names the current Page administrator as the route for the approved edit. No second Page is created and no password is requested. A separate company Page remains a separate entity. The setup report is complete as an inspection even though the bio change is pending; it does not invent a delivered $1 boost.\n\n## Handoff and Content Factory context\n\nGive the checked asset map to [create facebook instagram campaigns with location targeting](https://local-service-spotlight.github.io/task-library/?task=create-facebook-instagram-campaigns-with-location-targeting#task-create-facebook-instagram-campaigns-with-location-targeting) or [boost one minute videos for personal branding](https://local-service-spotlight.github.io/task-library/?task=boost-one-minute-videos-for-personal-branding#task-boost-one-minute-videos-for-personal-branding) when that campaign is in scope. The actual account administrator owns any remaining access step.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne setup/inspection, with a fresh check after ownership, personnel or integration changes. Recurring access reviews may be part of an existing arrangement, but this guide creates no grants or schedule on its own.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Gate\n- **Importance:** 5/5 `●●●●●` — frequency 3, revenue 5, gating 5 (ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** `set-up-digital-plumbing-pixels-tracking`\n- **Browse later task:** `claim-and-brand-facebook-page`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Record only the property IDs, access and checks required by this task in the client register. Pass the verified result to the task that needs it.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Set up Meta Business Manager and Public Figure pages](https://local-service-spotlight.github.io/task-library/?task=set-up-meta-business-manager-and-public-figure-pages#task-set-up-meta-business-manager-and-public-figure-pages)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Digital Plumbing training](https://blitzmetrics.com/digital-plumbing/)\n- [Meta Facebook Page access](https://www.facebook.com/help/187316341316631)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No actual Meta account was inspected or changed during authoring.\n- Current interface labels and feature-specific verification requirements must be checked in the authorized account.",
     "importance": 5,
     "freq": 3,
     "revenue": 5,
     "gating": 5,
     "phase": "Gate",
     "before": "set-up-digital-plumbing-pixels-tracking",
     "after": "claim-and-brand-facebook-page",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "d5a4fb5b597038ed830ca00096318adb85ea1260a2083348122fdc626e13bf67",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "743cdd6b5409330d12e89af7363670bd768f55bff229342414df0c00479100d2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-meta-business-manager-and-public-figure-pages#task-set-up-meta-business-manager-and-public-figure-pages",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d5a4fb5b597038ed830ca00096318adb85ea1260a2083348122fdc626e13bf67",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d5a4fb5b597038ed830ca00096318adb85ea1260a2083348122fdc626e13bf67"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d5a4fb5b597038ed830ca00096318adb85ea1260a2083348122fdc626e13bf67"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 32,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set up TikTok campaigns",
     "slug": "set-up-tiktok-campaigns",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Plan a small TikTok ad test at its real price. Use a strong clip and check the result.",
     "content": "---\nname: set-up-tiktok-campaigns\ndescription: \"Plan a small TikTok ad test at its real price. Use a strong clip and check the result.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Set up TikTok campaigns\n\nYou have a useful clip and want to test it on TikTok. The test may cost more than one dollar a day. This guide helps you check the real price and decide if it fits your plan.\n\n**The path:** Proven clip → actual minimum → bounded test → useful result.\n\n**Use this when:** A proven video fits TikTok’s audience and the owner wants a bounded paid test at the platform’s actual cost.\n\n## Inputs\n- The eligible TikTok Ads account, authorized identity and roles; actual billing currency, allowed budget and dates.\n- A proven video with commercial music/footage rights, readable captions and an appropriate destination.\n- Goal, target and required event measurement; exact current campaign/ad-group settings and minimums.\n\n## First-run prompt\n\n> Prepare a TikTok test from this approved clip and goal. Read the current minimum budgets and state the full real cost. If it exceeds the authorized amount, return that gap rather than launching. Keep account setup, creative approval, delivery and result evidence separate.\n\n## Steps\n1. Use the owned Dollar-a-Day discipline: proven useful content first, then a bounded test. A winner from another platform is a candidate, not proof it will perform the same on TikTok.\n2. Confirm the actual ad account, identity and content permission. Review rights for commercial use, including music; do not assume a song allowed in an organic post is cleared for an ad.\n3. Write the goal and metric, then choose the eligible objective and measurement route. A website conversion goal needs its actual event path checked; an on-platform view goal does not automatically require a website pixel.\n4. Prepare the video for the chosen format with a clear opening, useful lesson, fitting next step and captions. Check placement crops with media muted. Native style can be a creative approach; raw footage is not guaranteed to outperform edited work.\n5. Read the current budget rules before building a matrix. TikTok’s official guide states daily budgets must exceed $50 at campaign level and $20 at ad-group level; lifetime rules differ. Confirm the controls used by this actual campaign and quote the real commitment, not a renamed “dollar.”\n6. Select supported audience settings tied to the actual market and goal. Record constraints, suggestions and eligibility instead of copying every age/interest layer from Meta. Use fewer tests if the permitted budget and review capacity require it.\n7. If authorized and feasible, set the real budget, dates and creative, then read back the saved state and early delivery. If the minimum does not fit, leave the paid test pending and retain the organic candidate. Do not switch budget type or expand scope just to make launch pass.\n8. At the due review, compare the matching cost, view/watch metrics and useful response with the goal. Send stop, hold or further-test decisions to the campaign owner. Any later increase is a separately checked change; ≤2× is not a promise about TikTok learning behavior.\n\n## Definition of done (QA checklist)\n\n- [ ] Creative rights, identity and cross-platform evidence limits are recorded.\n- [ ] The actual objective and necessary measurement match the goal.\n- [ ] Minimums, budget type, full amount and dates are explicit.\n- [ ] Infeasible spend stays pending without an automatic increase.\n- [ ] Saved settings, delivery and performance verdict have distinct evidence.\n\n## Example(s)\n\n**Fictional teaching example:** A shop has only $21 authorized for all testing this week. Its seat-fix clip is a good organic candidate, but the chosen TikTok ad setup requires a daily amount above $20 at the ad-group level. A seven-day paid plan cannot fit $21. The planner records the exact mismatch and keeps the TikTok paid step pending; no new card is added and no budget is raised. The same clip may still be reviewed for an existing organic posting plan. This is a completed feasibility check, not a completed ad campaign.\n\n## Handoff and Content Factory context\n\nSend a feasible authorized campaign’s log to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). The campaign owner resolves a budget mismatch; the content owner retains useful clips for appropriate organic or later paid work.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne bounded setup/test. A weekly performance review applies only to an actual active campaign under an agreed arrangement. A guide or downloaded pack does not schedule ad spend.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** `create-youtube-campaigns-using-aducate-model`\n- **Browse later task:** `run-twitter-x-promotion-for-thought-leader-threads`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Set up TikTok campaigns](https://local-service-spotlight.github.io/task-library/?task=set-up-tiktok-campaigns#task-set-up-tiktok-campaigns)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [TikTok Ads Manager budgets](https://ads.tiktok.com/resources/help/article/budget?lang=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No real TikTok budget screen, account eligibility, creative approval or campaign was tested.\n- Current account currency and supported budget controls must be verified before a paid plan is accepted.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "Promote",
     "before": "create-youtube-campaigns-using-aducate-model",
     "after": "run-twitter-x-promotion-for-thought-leader-threads",
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "d76b4d772d42888645b762048865e6b896da99c41fcc5d9093e53980352ed1c4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0e50d60e4fdd3b59371a5a7d7b9524f8bb511985e0d1720647305111fa4f25df",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-tiktok-campaigns#task-set-up-tiktok-campaigns",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d76b4d772d42888645b762048865e6b896da99c41fcc5d9093e53980352ed1c4",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d76b4d772d42888645b762048865e6b896da99c41fcc5d9093e53980352ed1c4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d76b4d772d42888645b762048865e6b896da99c41fcc5d9093e53980352ed1c4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 76,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Use Dollar a Day to influence media coverage",
     "slug": "use-dollar-a-day-to-influence-media-coverage",
     "status": "needs-work",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Share useful proof with the right readers. Keep a clear record of real press links.",
     "content": "---\nname: use-dollar-a-day-to-influence-media-coverage\ndescription: \"Share useful proof with the right readers. Keep a clear record of real press links.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: needs-work\n---\n\n# Use Dollar a Day to influence media coverage\n\nYou have a useful story that could help a writer’s readers. This guide helps you share that proof and track real interest. Start with the story and the kind of reader it serves.\n\n**The path:** Useful proof → relevant readership → bounded test → verified mention.\n\n**Use this when:** Earned coverage is a stated goal and the business has relevant, quotable evidence fit for public use.\n\n## Inputs\n- A verified story, underlying sources and permission for public claims, media and data.\n- A researched list of relevant outlets/beats and public professional contact context; no scraped private-contact audience is assumed.\n- Campaign goal, permitted audience options, exact budget/dates and separate authority for any outreach, posting or paid action.\n\n## First-run prompt\n\n> Review this story’s proof and build a relevant readership plan for the stated coverage goal. Keep ad distribution separate from journalist outreach and earned coverage. Use only authorized audience sources and actions. Report observed mentions with dates and links, without claiming a named person saw an ad.\n\n## Steps\n1. Define the desired coverage by topic and outlet fit. Research a manageable list of journalists, editors or hosts whose actual work serves that audience. Names are editorial context, not a promise that the ad system can reach each person.\n2. Choose something useful to their readers: a documented method, a real result with its limits, or original data with a clear method. Do not manufacture a controversy, testimonial or relationship to make the pitch stronger.\n3. Check every public claim against the actual source. A mention, interview or shared stage proves only that event. Preserve permission and confidentiality; a client result cannot be reused merely because it exists in a private file.\n4. Map available broad professional/topic or market audiences to the readership. Use any custom audience only with the required rights and current platform eligibility. Do not scrape press emails or assume a tiny named list can deliver ads.\n5. If a paid test is in scope, use the real supported minimum, budget controls and dates. Record the audience as a proxy or look-alike where that is what the platform provides. $1/day does not guarantee repeated exposure to a specific journalist.\n6. Prepare useful outreach separately: a relevant source, brief explanation or genuine response to published work. Send only when that message is authorized. Ads do not authorize email, comments, tags or thank-you videos to anyone.\n7. When a mention is observed, read the exact public source and capture its date, wording and relationship strength. Keep paid placements, contributed material and independent editorial coverage distinct. Reuse or amplify only the material and excerpt rights actually allowed.\n8. Review observed inquiries, replies and verified coverage on the agreed cycle. A mention after an ad is a sequence in time, not proof the ad caused it. Name the next story or follow-up from actual evidence rather than promising press results.\n\n## Definition of done (QA checklist)\n\n- [ ] The story is relevant and every public proof claim is source-backed.\n- [ ] Named media research is not mislabeled as exact-person ad delivery.\n- [ ] Audience data rights and real budget controls are checked.\n- [ ] Outreach, publication and spending remain within their distinct existing scopes.\n- [ ] Verified coverage, paid placement and causal uncertainty are accurately recorded.\n\n## Example(s)\n\n**Fictional teaching example:** A repair shop publishes a documented guide to common school-bike faults using permissioned, anonymous aggregate service data. A local transport newsletter is a relevant reader match. The paid test targets an available local topic audience, not a promise to reach its editor. Later, the newsletter links the guide. The record keeps the link and date, calls it an observed mention and says attribution is unknown. It does not turn the mention into an endorsement or claim a private friendship with the editor.\n\n## Handoff and Content Factory context\n\nGive verified public mentions to the content owner for source-accurate use. Give paid results to [analyze cost per result and engagement](https://local-service-spotlight.github.io/task-library/?task=analyze-cost-per-result-and-engagement#task-analyze-cost-per-result-and-engagement). The assigned relationship owner handles only the specific outreach or follow-up already authorized.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nOne story plan and its bounded test. The source suggests a monthly media review; use it only when adopted for an actual campaign with a named owner and trigger. Monthly rotation is not a license for automatic messages or spend.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** `list-top-3-5-recommendations-for-next-7-days`\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Use Dollar a Day to influence media coverage](https://local-service-spotlight.github.io/task-library/?task=use-dollar-a-day-to-influence-media-coverage#task-use-dollar-a-day-to-influence-media-coverage)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [X interest and follower look-alike targeting](https://business.x.com/en/help/campaign-setup/campaign-targeting/interest-and-follower-targeting)\n- [Meta Advantage+ audience help](https://www.facebook.com/business/ads/meta-advantage-plus/audience)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No actual media-contact data, outreach authority or earned coverage is supplied by this teaching guide.\n- The owned article’s exact-follower and universal retargeting claims need correction at their source.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Promote",
     "before": "list-top-3-5-recommendations-for-next-7-days",
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "84b5fb70031ac7b83783412ca710a11b44163a0252ddce183be952eaec0e07c6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "08156259d5843dda97d865725c62a2be319d41d352e4ea4b8e3f08c03fff0438",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=use-dollar-a-day-to-influence-media-coverage#task-use-dollar-a-day-to-influence-media-coverage",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "84b5fb70031ac7b83783412ca710a11b44163a0252ddce183be952eaec0e07c6",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "84b5fb70031ac7b83783412ca710a11b44163a0252ddce183be952eaec0e07c6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "84b5fb70031ac7b83783412ca710a11b44163a0252ddce183be952eaec0e07c6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 50,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Verify prerequisites (product, customers, content)",
     "slug": "verify-prerequisites-product-customers-content",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/dad",
     "articleKind": "unknown",
     "desc": "Check what you sell and the proof that it helps. Do this before you pay for ads.",
     "content": "---\nname: verify-prerequisites-product-customers-content\ndescription: \"Check what you sell and the proof that it helps. Do this before you pay for ads.\"\ncategory: Dollar a Day Campaigns\nstage: Promote\ndefinitive_article: /dad\nstatus: complete\n---\n\n# Verify prerequisites (product, customers, content)\n\nAds help more people see what your business does. Before you spend, check that the offer helps people and that you have proof to share. This guide helps you find what is ready and what needs work.\n\n**The path:** Real offer → customer proof → useful content → honest decision.\n\n**Use this when:** Paid amplification is proposed for a business or offer, or a previous prerequisite gap has been repaired.\n\n## Inputs\n- Permitted evidence of real sales, delivery, customer response and unit economics; an actual business owner who can resolve missing facts.\n- Source reviews/testimonials and reuse rights; recent organic posts and their available metrics.\n- The proposed goal, audience and budget context; a tracker for the three findings and next owner.\n\n## First-run prompt\n\n> Check this offer, customer evidence and organic content before paid amplification. Link the evidence for each finding, mark missing facts unknown and give a clear ready, needs-work or hold decision. Do not create reviews, invent sales or treat a catalog status as permission to spend.\n\n## Steps\n1. Name the exact offer and buyer need. Read evidence of actual delivery and customer value, not only the owner’s pitch. A launch for a new offer needs that gap stated rather than borrowing another offer’s proof.\n2. Check the product/service case with appropriate records: real purchases, fulfilled work, referrals or repeat use where relevant. A long-life service may not have repeat purchases within a short window; judge its actual buying cycle instead of forcing that sign.\n3. Review the available margin and target acquisition cost with the business owner’s records. Keep gross revenue, margin and allowable ad cost separate. If the economics are not supplied, mark the financial premise unknown rather than inventing a target.\n4. Collect at least three verifiable instances of positive customer experience for this source task’s proof check, when available. Verify the original review or testimonial and permission for reuse. Do not solicit only positive reviews, pay for praise or turn an anecdote into a fabricated endorsement.\n5. Inspect the actual organic content and its useful signal. Use comparable recent posts, comments, shares and watch data. Strong content means evidence of relevance, not a polished video or a famous name alone.\n6. Record each of the three prerequisites with linked evidence and a clear finding: ready, needs work, or unknown. A ready finding has a reason. If a needed premise is weak or unknown, the paid-launch step remains pending even though the inspection itself can be finished.\n7. Route the exact gap: service/value to the operations owner, customer-proof verification to the evidence owner, or missing useful content to the content owner. Do not claim another skill will manufacture genuine customer delight.\n8. When the required premises are supported, write the [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/) baseline and hand over to measurement/budget planning. Passing this inspection is not a spend authorization or proof that any campaign has run.\n\n## Definition of done (QA checklist)\n\n- [ ] The exact offer and business evidence support the product finding.\n- [ ] Customer proof is verifiable, permissioned and not manufactured.\n- [ ] Organic content has relevant source metrics or a stated gap.\n- [ ] All three findings preserve unknowns and name the next owner.\n- [ ] Readiness, budget authority and actual campaign outcome are separate states.\n\n## Example(s)\n\n**Fictional teaching example:** A repair shop has real completed jobs, three verified customer reviews and a seat-fix clip with useful questions. Its owner has not supplied the margin or target lead cost. The report marks product delivery and customer proof as supported, and the paid-cost premise as unknown. The operator can finish this inspection and route the missing economics to the owner. It does not invent a target to pass the gate or claim the clip has already brought paid customers.\n\n## Handoff and Content Factory context\n\nSupported premises go to [set up digital plumbing pixels tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-digital-plumbing-pixels-tracking#task-set-up-digital-plumbing-pixels-tracking) and [identify signals worth amplifying](https://local-service-spotlight.github.io/task-library/?task=identify-signals-worth-amplifying#task-identify-signals-worth-amplifying). The actual business, evidence or content owner receives each named gap before the affected paid step proceeds.\n\nThis task is in Promote within the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. Use the proof and checked posts from earlier stages; a Promote task does not automatically redo all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before a new paid-amplification plan and after meaningful offer or evidence changes. Recheck a prior gap when new proof arrives. This is not a mandatory new recurring schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 3, revenue 5, gating 5 (ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Maintained method: https://blitzmetrics.com/dollar-a-day/\n- Source mapping needs reconciliation: the preserved `definitive_article: /dad` points to the coaching program. The method page above is `/dollar-a-day/`; this record does not certify the coaching page as a task recipe.\n- Exact task: [Verify prerequisites (product, customers, content)](https://local-service-spotlight.github.io/task-library/?task=verify-prerequisites-product-customers-content#task-verify-prerequisites-product-customers-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Dollar-a-Day method](https://blitzmetrics.com/dollar-a-day/)\n- [Goals, Content, and Targeting](https://blitzmetrics.com/gct-business-strategy/)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/)\n- [Content Factory](https://localservicespotlight.com/content-factory/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- No actual sales records, customer permissions or financial target is supplied here.\n- Three examples support a source checklist; they do not prove universal customer satisfaction or a future paid result.",
     "importance": 5,
     "freq": 3,
     "revenue": 5,
     "gating": 5,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "e732c1bbc8219318b6e849b6bc1a1e3ccf96a75cfec4fd8c6aa740e3b57c57ed",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f8a95e824c5580dec5e756ebe5e490566c5a25e14679afbe3b25046fd497a116",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-prerequisites-product-customers-content#task-verify-prerequisites-product-customers-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e732c1bbc8219318b6e849b6bc1a1e3ccf96a75cfec4fd8c6aa740e3b57c57ed",
      "articleKey": "blitzmetrics.com/dad",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e732c1bbc8219318b6e849b6bc1a1e3ccf96a75cfec4fd8c6aa740e3b57c57ed"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e732c1bbc8219318b6e849b6bc1a1e3ccf96a75cfec4fd8c6aa740e3b57c57ed"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/dad"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 33,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    }
   ]
  },
  {
   "folder": "website-qa-audit",
   "name": "Website QA Audit",
   "icon": "✅",
   "color": "#06b6d4",
   "description": "Systematic three-layer review: Digital Plumbing, Content Architecture, Authority & Trust",
   "tasks": [
    {
     "title": "Audit internal links between all blog posts",
     "slug": "audit-internal-links-between-all-blog-posts",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Help readers find the next useful page. Check links in each post and fix gaps in the site map.",
     "content": "---\nname: audit-internal-links-between-all-blog-posts\ndescription: \"Help readers find the next useful page. Check links in each post and fix gaps in the site map.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Audit internal links between all blog posts\n\nYour best post is less useful if no one can find it. This guide helps you link each post to the next useful page. Start with a full list of live posts, not just the pages a tool found.\n\n**The path:** Full post list → Link map → Relevant fixes → Fresh check.\n\n**Use this when:** A site launch, content review or defined batch of posts needs its internal links checked.\n\n## Inputs\n- The exact site, published post inventory and scope of pages to inspect. Include posts known to the CMS even if a crawl cannot reach them.\n- The site’s [SEO Tree](https://blitzmetrics.com/seo-tree/): the main guide for each topic and the actual service or offer pages.\n- A browser and a link report from an available crawler or supported CMS tool. Link Whisper is optional; a report is useful only when its scan date and coverage are known.\n- Access for authorized edits, the current page source, and a tracker for unresolved inbound links owned by another editor.\n\n## First-run prompt\n\n> Use the supplied site, published inventory and topic map. Reconcile them with a fresh link report. Check relevant body links and incoming links separately. Perform already-authorized edits, verify canonical destinations, and return coverage, exact remaining gaps and next owners.\n\n## Steps\n1. Join the published post inventory with the crawl list by final canonical URL. Record exclusions such as private drafts and identify published pages absent from the crawl. A crawler that starts at the home page cannot alone prove that it found every orphan.\n2. For each post, list body links to other posts, its main topic guide and any genuinely useful service page. Separate navigation/footer links from contextual links in the article. Record live status and named-anchor destinations.\n3. Build inbound links from the same inventory. An orphan has no known incoming link in the defined scope; it is not the same as a page with no outgoing links. Mark missing coverage as unknown instead of asserting a site-wide zero.\n4. Read each page’s purpose. Add a link to the maintained guide where the reader needs that explanation. Add another post or service link when it answers the next question; a policy or reference page does not need a forced sales link.\n5. Choose an existing relevant article or hub for each missing inbound link. Write the exact sentence and descriptive anchor. Follow [entity linking](https://blitzmetrics.com/entity-linking/) for people, brands, owned explainers and primary proof. Do not turn every mention into a link.\n6. Make the edits already authorized through the supported page source. Preserve the canonical URL and check for concurrent changes. If the inbound source is outside this job, give its owner the exact proposed placement and keep that link pending.\n7. Refresh the report after the edits and open the changed canonical pages as a visitor. Confirm the intended body links, final targets and fragments. A plugin’s count from yesterday does not verify today’s links.\n8. Save the inspected denominator, relevant link additions, remaining orphans, unknown pages and next owners. Report coverage separately from findings; do not promise rankings or traffic from link counts.\n\n## Definition of done (QA checklist)\n\n- [ ] The published inventory and crawl are reconciled, with scope, date and missing coverage stated.\n- [ ] Body links follow the page’s role and lead to relevant working canonical targets.\n- [ ] Inbound and outbound gaps are separate; no page is called an orphan merely because it lacks outgoing links.\n- [ ] Authorized repairs are visible on the canonical pages; other-owner placements remain pending.\n- [ ] A fresh report and exact unresolved list support the result.\n\n## Example(s)\n\n**Fictional teaching example — no site was scanned or edited.** Maple Cycle’s CMS lists three posts: “Repair quote,” “Photos to send,” and “Brake wear.” The crawler finds the first two. The CMS list reveals that “Brake wear” still needs an inbound-link check.\n\n“Repair quote” already links to “Photos to send.” The proposed new sentence in “Photos to send” is “Use the brake-wear guide if you are not sure which close-up to take.” That is a relevant inbound placement for the third post. The audit still checks the target and public source after saving.\n\nThe teaching result is “3 known posts; 1 newly proposed inbound placement; public repair not yet verified.” It is not “all orphan pages fixed” based on a two-page crawl.\n\n## Handoff and Content Factory context\n\nThe content owner receives the updated topic map and unresolved placements. [Check broken links](https://local-service-spotlight.github.io/task-library/?task=check-for-broken-links#task-check-for-broken-links) verifies link destinations; it does not decide the editorial relevance of every link.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for a launch or a defined content audit, then after relevant new posts or link changes. Use an existing recurring review only if it is configured for this site.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Audit internal links between all blog posts](https://local-service-spotlight.github.io/task-library/?task=audit-internal-links-between-all-blog-posts#task-audit-internal-links-between-all-blog-posts)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual published inventory, current crawl coverage, edit access and public before/after evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7e5dc14fe7ee507dc40d96b8a49ad4e22fb49b07f2c20a277975e786a500145e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8f84ed2a876b96039c6c22d34d57c381e0705a8b7b9ee9d6128330805fd3bbd3",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=audit-internal-links-between-all-blog-posts#task-audit-internal-links-between-all-blog-posts",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7e5dc14fe7ee507dc40d96b8a49ad4e22fb49b07f2c20a277975e786a500145e",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7e5dc14fe7ee507dc40d96b8a49ad4e22fb49b07f2c20a277975e786a500145e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7e5dc14fe7ee507dc40d96b8a49ad4e22fb49b07f2c20a277975e786a500145e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 157,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check all CTA buttons lead to correct destinations",
     "slug": "check-all-cta-buttons-lead-to-correct-destinations",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that each button does what its words say. Find wrong links before a customer gets stuck.",
     "content": "---\nname: check-all-cta-buttons-lead-to-correct-destinations\ndescription: \"Check that each button does what its words say. Find wrong links before a customer gets stuck.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: needs-work\n---\n\n# Check all CTA buttons lead to correct destinations\n\nA wrong button can stop a customer from taking the next step. This guide helps you check each button on a phone and a large screen. Start by writing down what the button should do.\n\n**The path:** Button promise → Expected action → Safe check → Fixed or pending result.\n\n**Use this when:** A site, landing page or changed form needs its call-to-action buttons checked. A call to action is the next step you ask a visitor to take.\n\n## Inputs\n- The exact pages and button inventory, including menus, sticky bars, forms and mobile-only versions.\n- The intended destination or action for each button, plus the correct public phone/email details where applicable.\n- Desktop and phone browser views, supported page-edit access, and the existing scope for repairs and any real submissions.\n- A designated test receiver and authorized test details only when a form, booking or other submitted action is part of the job.\n\n## First-run prompt\n\n> Use the provided pages and expected button actions. Check targets and desktop/phone behavior, perform only the real submissions already in scope, and verify their receipts. Fix authorized issues and return a button-by-button result that separates navigation from actual delivery or transactions.\n\n## Steps\n1. List every button in scope with its page, visible words, location and expected result. Distinguish links, local section jumps, script-driven dialogs and actual submitted actions.\n2. Inspect each link target before interacting. Check final URLs and named anchors. A “Home” button can correctly lead home; a # link can correctly open a real dialog or jump to an existing section. Decide by the stated purpose, not by a blanket URL rule.\n3. Open ordinary page links and harmless dialogs, then verify the visible destination and close behavior. Check redirects, accidental draft URLs, overlays and buttons that appear active but do nothing.\n4. For phone and email buttons, inspect the tel: or mailto: value and confirm the intended receiver. A correctly formatted link or opened handler does not prove a completed call or delivered email. Do not place a call or send a message merely to check the link.\n5. For forms, checkout, booking, downloads behind an opt-in and other state-changing actions, use the real authorized test scope. If submission is not included, finish link/layout checks and mark delivery or transaction behavior untested. If included, use the designated receiver and verify the resulting record and receipt without inventing a customer action.\n6. Repeat the relevant check at 1440×860 and 390×844. Confirm the visible button is usable, is not hidden by a banner and has a meaningful accessible name. Record mobile-specific targets separately when they differ.\n7. Repair exact wrong targets or broken behavior already in scope through the supported source. Preserve existing working targets and recheck changed buttons on the normal canonical page.\n8. Log a row per button: expected action, inspected target, interaction performed, observed outcome, result and next owner. Separate link pass, submission pass and receiver confirmation.\n\n## Definition of done (QA checklist)\n\n- [ ] Every in-scope visible button has an expected action and an observed result on the intended viewports.\n- [ ] Targets, anchors and dialogs match the button promise; legitimate local actions are not falsely failed.\n- [ ] No call, send, booking, subscription or payment is inferred from a link check.\n- [ ] Authorized repairs are rechecked; delivery and transaction tests outside scope remain explicitly untested.\n- [ ] Failures and unknown results name the exact button and next owner.\n\n## Example(s)\n\n**Fictional teaching example — no button was clicked or request sent.** Maple Cycle has “Get a repair quote,” “Call the shop,” and “See our work.”\n\nThe sample quote button opens the correct form. Its layout passes, but delivery remains untested without a submitted test and receiver receipt. The call button contains the wrong phone number, so it fails the target check without placing a call. “See our work” points to `#work`, and that section exists; the local jump is valid.\n\nThe report separates these outcomes instead of calling all three buttons “working” because they look blue.\n\n## Handoff and Content Factory context\n\nThe page owner receives exact target fixes. [Verify the opt-in form](https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works) owns a required form test, while the designated business receiver confirms delivery when that test is in scope.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before launch and after a relevant button, form or destination change. This guide does not schedule calls, messages or repeat submissions.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check all CTA buttons lead to correct destinations](https://local-service-spotlight.github.io/task-library/?task=check-all-cta-buttons-lead-to-correct-destinations#task-check-all-cta-buttons-lead-to-correct-destinations)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The intended action map, actual receiver and authorized submission scope must come from the site’s project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3285b9b116ce749a7cf9d796171890edf2414803bbb9b87c319394a64193496f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2bf606d6155ebd1b9ba997622033f719f900632a5eeb34fc7bd6c7cfb93d7bf2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-all-cta-buttons-lead-to-correct-destinations#task-check-all-cta-buttons-lead-to-correct-destinations",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3285b9b116ce749a7cf9d796171890edf2414803bbb9b87c319394a64193496f",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3285b9b116ce749a7cf9d796171890edf2414803bbb9b87c319394a64193496f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3285b9b116ce749a7cf9d796171890edf2414803bbb9b87c319394a64193496f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 155,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Check each homepage section includes relevant image",
     "slug": "check-each-homepage-section-includes-relevant-image",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Give each main home page section a useful visual. Check that it helps readers on a phone too.",
     "content": "---\nname: check-each-homepage-section-includes-relevant-image\ndescription: \"Give each main home page section a useful visual. Check that it helps readers on a phone too.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check each homepage section includes relevant image\n\nPeople should see what your business does, not just read a wall of text. This guide helps you check the pictures in each main part of your home page. Start with the live page on a phone and a large screen.\n\n**The path:** Main sections → Useful visuals → Two screen sizes → Exact fixes.\n\n**Use this when:** A home page is being built, changed or audited for the owned visual standard.\n\n## Inputs\n- The exact canonical home page, current page source and a list of major sections.\n- Real approved photos, screenshots, diagrams or embedded media that support each section’s point, with source and use rights.\n- Browser views at 1440×860 and 390×844, and access to repair visuals or a named page owner.\n- The current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and the page’s intended reader and result.\n\n## First-run prompt\n\n> Review the supplied home page at 1440×860 and 390×844. List major sections, their main point and the useful visual actually visible. Fix authorized layout issues with real approved assets. Record missing proof and exact section results; do not replace gaps with invented images or claims.\n\n## Steps\n1. Open the normal public home page at both viewports. Record the date, URL and visible first screen. Identify the hero, service, about, proof, offer and other major content sections actually present.\n2. For each major section, state its main point in one line and identify the visual that helps explain or prove it. Utility links, a small legal footer or a simple spacer are not reasons to invent another picture; record a reason when the section rule does not apply.\n3. Inspect the visual itself. A real job photo, useful diagram, source screenshot or relevant player can qualify. A blank colored box, decorative icon row or unrelated landscape does not establish the section’s meaning.\n4. Check that the first desktop and phone viewports contain meaningful visible visual content. A border, offscreen image, broken asset or tiny unreadable diagram label is not enough. A longer diagram can continue below the fold if the visible part communicates a useful complete point.\n5. Scroll through both layouts and check each major section. Confirm the image is not hidden on mobile, stretched, covered by an overlay or separated so far from the relevant text that the relationship is lost.\n6. Check factual fit and rights. A photo of one event proves that scene; it does not by itself prove a client relationship, award or speaking role. For missing proof, specify a real asset to obtain rather than inventing an experience or using a stock stand-in.\n7. Add or repair relevant visuals already in scope using the supported builder. Preserve existing useful media and its aspect ratio. Give informative images suitable alt text; decorative elements follow their own accessibility treatment.\n8. Reopen the normal canonical page after saving. Keep per-section evidence and a short list of missing assets or fixes with the responsible owner. A source edit alone does not prove visitor visibility.\n\n## Definition of done (QA checklist)\n\n- [ ] Each major section has a relevant useful visual or a documented reason the section rule does not apply.\n- [ ] Both first viewports show meaningful readable content, not only an image container.\n- [ ] Mobile visibility, aspect ratio and surrounding layout are checked on the canonical page.\n- [ ] Visuals have appropriate provenance, context and text alternatives.\n- [ ] Any missing real asset remains a specific request, not fictional proof.\n\n## Example(s)\n\n**Fictional teaching example — no page was changed.** Maple Cycle’s home page has a hero, repair service section, about section, quote offer and a small legal footer.\n\nThe hero’s real workshop photo supports the business. The repair section has only a gray rectangle, so its visual check fails. The proposed fix is an approved close-up of an actual repair with a caption explaining the work. The quote section uses a real preview of the photo checklist. The legal footer needs usable links, not an invented stock picture.\n\nIf the workshop photo is hidden at phone width, desktop success does not pass the phone check.\n\n## Handoff and Content Factory context\n\nThe page owner receives the section map and real asset requests. [Check long stretches of text](https://local-service-spotlight.github.io/task-library/?task=ensure-no-text-only-sections-spanning-full-viewport#task-ensure-no-text-only-sections-spanning-full-viewport) reviews the broader visual rhythm; [Check image text alternatives](https://local-service-spotlight.github.io/task-library/?task=verify-all-images-have-descriptive-alt-text#task-verify-all-images-have-descriptive-alt-text) covers accessibility.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for a new home page and after material section or layout changes. Recurring review uses only the site’s existing agreed schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check each homepage section includes relevant image](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [W3C image text alternatives](https://www.w3.org/WAI/tutorials/images/decision-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual assets, use rights and rendered evidence are still required for the target site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c54815526d126ae4bdfe710c0591c48423286275b544d84df1260031ef86ac21",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ae22d94a405f75208026d58012350aea849e25e777692e71751bad5f22fcde59",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c54815526d126ae4bdfe710c0591c48423286275b544d84df1260031ef86ac21",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c54815526d126ae4bdfe710c0591c48423286275b544d84df1260031ef86ac21"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c54815526d126ae4bdfe710c0591c48423286275b544d84df1260031ef86ac21"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 158,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check favicon is set",
     "slug": "check-favicon-is-set",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the small icon next to your site’s name. Make sure it is clear and uses the right brand.",
     "content": "---\nname: check-favicon-is-set\ndescription: \"Check the small icon next to your site’s name. Make sure it is clear and uses the right brand.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: needs-work\n---\n\n# Check favicon is set\n\nThe small icon in a browser tab helps people spot your site. This guide helps you check that it loads and uses your brand. Start with the live home page and the icon it declares.\n\n**The path:** Declared icon → Real image → Browser view → Search eligibility.\n\n**Use this when:** A site launch, brand change or audit needs the browser/site icon checked.\n\n## Inputs\n- The canonical home page and approved square brand icon or clear identity mark.\n- Public page source, icon response and browser tab view; supported site settings access if a correction is in scope.\n- The expected hostname and any deliberately separate subdomain icons.\n- A record of the prior icon source and declared icon links for safe comparison.\n\n## First-run prompt\n\n> Inspect the supplied home page’s declared icons, actual image responses and browser display. Fix authorized icon settings through the supported source. Report exact asset dimensions, desktop/mobile observations and Google eligibility separately from any observed search result.\n\n## Steps\n1. Read the home page’s icon declarations, such as link rel=\"icon\", and resolve the href to its real URL. A relative path, absolute path or supported CDN URL can be valid. Do not require /favicon.ico when the page correctly declares another path.\n2. Fetch or inspect the declared asset as an image. Confirm it is not a 200 response containing an HTML error page. Record format, dimensions and square aspect ratio, and check that the mark remains clear at tab size.\n3. Open the canonical home page in a fresh browser context and inspect the actual tab icon. Compare it with the declared file. Check the mobile browser’s displayed site identity where available; installing a home-screen shortcut is not required for this audit.\n4. Inspect competing icon declarations and relevant supported site settings if the wrong icon persists. In WordPress, use the current Site Icon control supported by that site’s version/theme; do not assume an old menu path is universal.\n5. Apply the authorized icon or declaration correction. Preserve the approved brand and a stable asset URL where appropriate. Recheck the normal page and browser after the supported cache refresh, rather than treating a cache-busted asset alone as success.\n6. For Google eligibility, follow its current favicon rules: a square image at least 8×8 pixels, with a larger image than 48×48 recommended; home page and icon must be crawlable by the relevant Google crawlers. Keep this separate from the larger dimensions a CMS may request for its Site Icon upload.\n7. Record browser display and search eligibility separately. Google can take days or weeks to recrawl and does not guarantee favicon display even when the rules are met. An old search icon is not proof the saved icon change failed.\n8. Save the actual icon URL, dimensions, checks, date and any unresolved browser/cache or search observation. Do not create a new app manifest or install anything just to complete this single check.\n\n## Definition of done (QA checklist)\n\n- [ ] The declared icon resolves to the correct real square image and is legible at small size.\n- [ ] The normal browser view uses the intended icon, or a specific cache/display gap remains.\n- [ ] A missing undeclared /favicon.ico is not falsely reported as the declared icon failing.\n- [ ] Google eligibility and observed search display are recorded as different results.\n- [ ] No app install or unrelated global theme change was added to the task.\n\n## Example(s)\n\n**Fictional teaching example — no site settings were changed.** Maple Cycle declares `/media/maple-icon.png`, a 192×192 square icon. That file loads as an image and appears in the browser tab. `/favicon.ico` returns 404.\n\nThe browser icon check passes because the declared valid file is what the browser uses. The missing optional root path is not a failure. If a Google result still shows an older icon, record “browser correct; search still shows prior icon as of this check” and recheck under the agreed scope. Do not claim that requesting a recrawl guarantees replacement.\n\n## Handoff and Content Factory context\n\nThe site owner receives the icon evidence and any supported settings/cache fix. If only search display is pending, a future observation belongs to the existing search review owner, not a new guaranteed timer.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and when branding or icon delivery changes. A search recrawl follow-up is optional and needs an actual owner or configured schedule.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check favicon is set](https://local-service-spotlight.github.io/task-library/?task=check-favicon-is-set#task-check-favicon-is-set)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google favicon guidelines](https://developers.google.com/search/docs/appearance/favicon-in-search)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual site icon, current CMS control, cache behavior and browser observation require the target site.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1d9ca4015543dc44c225c0139fcf432459d3fc1526b0110e1d16f62a0bc31b63",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b05f255eeb66e8908787ce0f4a8c3eaf0be06831f8a7c0ea0504f5faafbe6bd2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-favicon-is-set#task-check-favicon-is-set",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1d9ca4015543dc44c225c0139fcf432459d3fc1526b0110e1d16f62a0bc31b63",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1d9ca4015543dc44c225c0139fcf432459d3fc1526b0110e1d16f62a0bc31b63"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1d9ca4015543dc44c225c0139fcf432459d3fc1526b0110e1d16f62a0bc31b63"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 188,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Check for broken links",
     "slug": "check-for-broken-links",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Find links that leave readers stuck. Check the cause and fix the right target.",
     "content": "---\nname: check-for-broken-links\ndescription: \"Find links that leave readers stuck. Check the cause and fix the right target.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check for broken links\n\nA dead link wastes a reader’s time. This guide helps you find links that fail and choose the right fix. Start with a clear list of pages so you know what the check covers.\n\n**The path:** Known pages → Link results → Cause and fix → Fresh evidence.\n\n**Use this when:** A launch, migration, content update or defined audit needs link destinations checked.\n\n## Inputs\n- The canonical site, full published URL list where available, and the agreed internal/external link scope.\n- An available crawler or supported link report, a browser and the ability to inspect response status and final destinations.\n- The current topic/URL map and edit scope, including any authorized redirects.\n- An issue tracker with exact source pages, anchor text, target URLs and owners.\n\n## First-run prompt\n\n> Use the supplied published inventory and link scope. Build a dated report, verify each failure’s cause, fix already-authorized exact targets and recheck normal canonical pages. Separate broken, restricted, transient and untested results, and return remaining issues with owners.\n\n## Steps\n1. Record the known page inventory and crawl settings. Reconcile crawl coverage with the published list; list restricted or unvisited pages. Save the scan date and avoid claiming the whole site was checked from a small sample.\n2. Collect each source page and outgoing target, separating internal links, external links and named fragments. Exclude actions such as tel:, mailto: and state-changing submissions from an ordinary HTTP crawl; send them to their relevant safe test.\n3. Review reported failures. A 404 or 410 differs from a 401/403 access block, 429 rate limit or temporary 5xx response. Some targets reject HEAD requests or bots but work for a normal visitor. Verify with the appropriate safe page read rather than repeatedly hammering the server.\n4. Inspect apparent successes too: a 200 status can contain an error or unrelated page. Check that the destination answers the anchor’s promise and that a #fragment exists. A redirect is not automatically broken; note its final destination, loops and unnecessary internal chains.\n5. For an internal stale link, identify the exact equivalent current page and update the source link directly within scope. Use a redirect only when the actual URL migration warrants it. Do not send every missing page to the home page.\n6. For an external failure, verify whether the source moved or an authoritative replacement supports the same claim. Update it or remove/rewrite the unsupported sentence as appropriate. A login-blocked valid primary source is an access limitation, not automatic evidence that the link is dead.\n7. Apply authorized repairs with the supported page or redirect source. Preserve unrelated links and concurrent edits. Stage any unresolved content decision with the exact owner and proposed replacement.\n8. Rerun the relevant scan after changes and inspect changed canonical source pages. Log checked links, confirmed failures, repaired/verified links and remaining unknowns. Zero known failures within a stated scope is not a promise that all future links will work.\n\n## Definition of done (QA checklist)\n\n- [ ] Scope, scan date and missing coverage are explicit.\n- [ ] Each failure records its exact source, target, observed response and actual cause where known.\n- [ ] Access restrictions, rate limits, transient errors and broken destinations are not collapsed into one result.\n- [ ] Repairs point to relevant canonical equivalents and survive a fresh public check.\n- [ ] Unresolved issues have owners and no unsupported site-wide zero claim.\n\n## Example(s)\n\n**Fictional teaching example — no links were requested.** Maple Cycle’s sample scan reports three problems. `/old-quote/` redirects twice to the current quote guide; an internal body link should use that final guide directly. A parts supplier returns 403 to the crawler but opens for a normal visitor, so the result is “crawler restricted,” not “dead supplier.” `/brake-photo/#rear-view` opens a real page but has no matching section, so the fragment needs correction.\n\nThe useful report keeps those three causes separate. Redirecting all three targets to the home page would hide the problem and mislead the reader.\n\n## Handoff and Content Factory context\n\nThe site/content owner receives verified fixes and unresolved targets. [Review internal link relevance](https://local-service-spotlight.github.io/task-library/?task=audit-internal-links-between-all-blog-posts#task-audit-internal-links-between-all-blog-posts) handles missing editorial connections that a status-code check cannot judge.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for defined audits and after relevant migrations or edits. A scheduled crawl is optional and must use the site’s real configured cadence and rate limits.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check for broken links](https://local-service-spotlight.github.io/task-library/?task=check-for-broken-links#task-check-for-broken-links)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Current site coverage, actual destination responses and authorized repair/readback evidence remain site-specific.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3a35f3cc1b5aceadd1bf8647839970a48f66a762ddf299fbe54297fce9f3b587",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-for-broken-links#task-check-for-broken-links",
     "executionHistory": {
      "status": "partial",
      "recordedRuns": 1,
      "completedRuns": 1,
      "failedRuns": 0,
      "partialRuns": 0,
      "completedLast30Days": 1,
      "lastCompletedAt": "2026-10-14T16:38:03.477390+00:00",
      "executionIds": [
       "proof-resolution-20261014"
      ],
      "executionOutcomes": [
       {
        "executionId": "proof-resolution-20261014",
        "status": "completed",
        "startedAt": "2026-10-14T16:08:33.518776+00:00",
        "finishedAt": "2026-10-14T16:38:03.477390+00:00"
       }
      ],
      "acceptanceReviews": [
       {
        "version": 1,
        "reviewId": "proof-resolution-20261014-broken-links-independent-1",
        "taskSlug": "check-for-broken-links",
        "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
        "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
        "reviewedAt": "2026-10-14T16:39:00Z",
        "reviewer": "codex-independent-qa-20261014",
        "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
        "criteria": {
         "scopeAndCause": {
          "state": "pass",
          "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
          "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "result": {
          "state": "pass",
          "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
          "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "normalPublicDestinations": {
          "state": "pass",
          "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
          "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
           "https://localservicespotlight.com/content-factory/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
          "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "proof-resolution-20261014"
       }
      ],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 1,
      "recordedAcceptedReviewCount": 1,
      "acceptedRecordedOutputs": [
       {
        "version": 1,
        "reviewId": "proof-resolution-20261014-broken-links-independent-1",
        "taskSlug": "check-for-broken-links",
        "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
        "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
        "reviewedAt": "2026-10-14T16:39:00Z",
        "reviewer": "codex-independent-qa-20261014",
        "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
        "criteria": {
         "scopeAndCause": {
          "state": "pass",
          "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
          "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "result": {
          "state": "pass",
          "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
          "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
          ],
          "privateEvidenceRecorded": true
         },
         "normalPublicDestinations": {
          "state": "pass",
          "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
          "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
           "https://localservicespotlight.com/content-factory/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
          "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
          "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "proof-resolution-20261014",
        "finishedAt": "2026-10-14T16:38:03.477390+00:00",
        "result": "Fixed five visible Content Factory links and matching copied guide in owned post109504; guarded native save and ordinary anonymous parity passed. Published accepted-proof summaries and corrected same historical source acceptance without creating a job. Public source/projections match; seven archives and phone/desktop entry checks pass; 224 tests and independent source review pass. Full task certification and novice-human setup remain unproven."
       }
      ],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "pass",
        "reason": "1 distinct execution ID(s) name this task; outcomes remain separate.",
        "executionIds": [
         "proof-resolution-20261014"
        ],
        "historyStatus": "partial"
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "The separate current article revision observation is outside the 24-hour freshness window.",
        "acceptanceReview": {
         "version": 1,
         "reviewId": "proof-resolution-20261014-broken-links-independent-1",
         "taskSlug": "check-for-broken-links",
         "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
         "recipeSourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
         "representation": "wordpress-content-html",
         "instructionSourceSha256": "58692df57dd4cf30997450214fb01df49bf87da93e0281213099ccc473bf4ead",
         "reviewedAt": "2026-10-14T16:39:00Z",
         "reviewer": "codex-independent-qa-20261014",
         "nextHandoff": "The current Codex task owner closes the existing link-repair record and its public receipt; Task Library maintenance retains unrelated global-script, semantic, novice and migration limits.",
         "criteria": {
          "scopeAndCause": {
           "state": "pass",
           "expectedResult": "Name the checked page and link inventory, distinguish restrictions from broken destinations, and avoid a whole-site coverage claim.",
           "observedResult": "The named article scope contains five Content Factory hrefs and one embedded guide copy. The base reference is corrected to the verified maintained guide. HTTP errors/access restrictions are not treated as proof of404; other page links and the separate global placeholder script are outside scope.",
           "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [],
           "privateEvidenceRecorded": true
          },
          "result": {
           "state": "pass",
           "expectedResult": "Repair the five agreed article links and embedded copy without unrelated or concurrent source loss; preserve post identity and metadata.",
           "observedResult": "Presave content matches the original. Stored post109504 body exactly matches six reviewed URL-base replacements at SHA404a17f721ea1fe36a08428ee5fae1c32cd7190c01c30943bd7cf65a11661501. Title, status, slug, URL, original date, featured media and taxonomy are preserved.",
           "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ],
           "privateEvidenceRecorded": true
          },
          "normalPublicDestinations": {
           "state": "pass",
           "expectedResult": "Fresh normal public source contains exactly the repaired hrefs and copied guide, with relevant destination and valid named fragments.",
           "observedResult": "Captured normal article response HTTP200 shows exactly five expected LSS hrefs, zero old bases in article content and the corrected guide copy. Target HTTPS200 contains all four matching stage IDs/headings. Rendered body parity preserves everything except six bases and automatic cross-domain link attributes.",
           "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
            "https://localservicespotlight.com/content-factory/"
           ],
           "privateEvidenceRecorded": true
          },
          "handoff": {
           "state": "pass",
           "expectedResult": "Deliver the exact changed-page findings, receipts, remaining scope limits and next action to the existing task/content maintenance owner.",
           "observedResult": "Verified native/public article receipts and explicit limits were delivered directly to the current Codex task owner. Published review/meta and the existing queue retain this bounded repair and next maintenance route. The global script, migration, novice and semantic limits remain separate; no new job or follow-up clock was created.",
           "sourceUrl": "https://blitzmetrics.com/website-qa-audit/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://local-service-spotlight.github.io/task-library/maintenance/proof-resolution-2026-10-14.html"
           ],
           "privateEvidenceRecorded": true
          }
         },
         "executionId": "proof-resolution-20261014"
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "check-for-broken-links",
         "canonicalURL": "https://blitzmetrics.com/website-qa-audit",
         "sourceSha256": "3a0dcacf864a33f52b95c8246c40cb2029c4644c005f7454c8a6a6f384880148",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-14T16:40:00.139340Z",
         "observer": "Codex separate post-acceptance authenticated source read",
         "state": "observed",
         "reason": "Exact scoped broken-link recipe remains unchanged after independent result and receiving handoff acceptance. No novice or whole-site certification is implied.",
         "evidenceRefs": [
          "sha256:8586cf535a3e30b423851070c3cc3838c5e2658d8c9da13d525f1409dc5f9588"
         ]
        }
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 159,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check lead magnet section has visual mockup",
     "slug": "check-lead-magnet-section-has-visual-mockup",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Show people what they will get from your free offer. Check that the preview matches the real file.",
     "content": "---\nname: check-lead-magnet-section-has-visual-mockup\ndescription: \"Show people what they will get from your free offer. Check that the preview matches the real file.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check lead magnet section has visual mockup\n\nPeople should know what your free offer gives them. This guide helps you check the picture beside the offer. Start with the real file so the preview does not promise something else.\n\n**The path:** Actual offer → Honest preview → Page and phone check → Delivery handoff.\n\n**Use this when:** A page offers a downloadable guide, checklist or similar opt-in resource. A lead magnet is the useful resource offered in return for contact details.\n\n## Inputs\n- The canonical offer pages, current downloadable file or approved resource, and its version/title.\n- The approved cover, real preview or accurate visual mockup, with source rights and any private details removed.\n- The offer text, form/CTA and expected delivery path; submission scope and test receiver if delivery testing is included.\n- Supported page/media edit access and the owner of the actual offer file.\n\n## First-run prompt\n\n> Compare the supplied offer file with every scoped page preview and promise. Fix authorized visual mismatches using real approved assets. Check desktop and phone visibility, then report visual accuracy separately from form and delivery tests.\n\n## Steps\n1. List the offer’s live placements in scope, including a landing page, home-page section or active popup if present. If the site has no such offer, record not applicable with the reason; do not invent a resource just to pass the check.\n2. Open the actual supplied resource and read its title and main contents. Confirm the version and whether it is a PDF, checklist, video or something else. A cover image alone does not verify the promised contents.\n3. Compare the preview with that resource. Use a real cover or page view, or a clearly honest mockup of the digital file. Do not imply a physical book, extra chapters or proven results the offer does not provide.\n4. Check that the preview sits with the relevant promise and CTA on desktop and phone. Its useful text or shape should be recognizable, not a tiny unreadable stamp. Confirm it loads, preserves aspect ratio and does not obscure form controls.\n5. Read the visible title, description, file format and CTA together. They should describe the same offer. Remove exposed client/contact details from a preview before it becomes public; do not upload private source pages to a design service without the job’s authority.\n6. Repair the preview or placement already in scope using the actual source asset and supported editor. Keep a useful existing image if it already fits. If the real resource is unavailable, specify the missing file/version rather than drawing an invented cover as proof.\n7. Recheck the normal canonical placements after saving. Keep visual/offer accuracy separate from form submission, email arrival and download access; perform those tests only under their actual scope and receipts.\n8. Record the asset version, checked placements, screenshot evidence and any delivery handoff. Do not claim better conversion from this image audit without an actual measured comparison.\n\n## Definition of done (QA checklist)\n\n- [ ] The preview matches a real available resource and its current promise.\n- [ ] Every in-scope offer placement has a useful visible preview on desktop and phone.\n- [ ] No private data, fake physical format or unsupported result is implied.\n- [ ] Canonical visual changes are checked; delivery remains separately measured or explicitly untested.\n- [ ] Missing resource or rights evidence has an exact owner.\n\n## Example(s)\n\n**Fictional teaching example — no offer was created.** Maple Cycle’s sample free resource is a two-page “Photos for a repair quote” PDF. Its old picture says “Complete bike care handbook.” That preview fails because it promises a different resource.\n\nThe teaching fix uses a real preview of the two-page checklist and the words “Two-page photo checklist.” The image check can pass once the correct preview is visible. It does not prove that a submitted email receives the file; the opt-in test needs its own receiver evidence.\n\n## Handoff and Content Factory context\n\nThe page owner receives the verified visual and file version. [Verify the opt-in form and delivery](https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works) owns the next functional check when included in the project.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when an offer or its placement changes. There is no need to create a new offer, email sequence or recurring campaign for this check.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check lead magnet section has visual mockup](https://local-service-spotlight.github.io/task-library/?task=check-lead-magnet-section-has-visual-mockup#task-check-lead-magnet-section-has-visual-mockup)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real resource, rights, page placements and delivery evidence require the actual project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c6094107be6c092b65f3f9974e8d39a98dc37a87beef5dc6a3655b7e46cc9823",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "874b170f685087a059f0746106d33463cfaa0c04b9bc4ee41b2091a9d6c10443",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-lead-magnet-section-has-visual-mockup#task-check-lead-magnet-section-has-visual-mockup",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c6094107be6c092b65f3f9974e8d39a98dc37a87beef5dc6a3655b7e46cc9823",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c6094107be6c092b65f3f9974e8d39a98dc37a87beef5dc6a3655b7e46cc9823"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c6094107be6c092b65f3f9974e8d39a98dc37a87beef5dc6a3655b7e46cc9823"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 160,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check meta description under 160 chars",
     "slug": "check-meta-description-under-160-chars",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Give each page a clear short search summary. Check what the live page actually sends.",
     "content": "---\nname: check-meta-description-under-160-chars\ndescription: \"Give each page a clear short search summary. Check what the live page actually sends.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check meta description under 160 chars\n\nA clear search summary helps people know what a page offers. This guide helps you check that summary and trim weak words. Start with the live page, since a saved draft may say something else.\n\n**The path:** Page purpose → Served summary → Useful wording → Saved and live check.\n\n**Use this when:** A defined set of public pages needs its meta descriptions checked. A meta description is the page’s suggested search summary.\n\n## Inputs\n- The exact public pages and intended search topics, with intentional private/non-indexable pages identified.\n- Public source inspection and supported CMS/SEO metadata access for authorized changes.\n- The actual page content and any current house length target.\n- A report with URL, served description, character-count method and result.\n\n## First-run prompt\n\n> Read each supplied page and its actual served description. Draft or apply authorized specific summaries, record the house length target separately from Google behavior, and verify the canonical result. Return exact text, count method and unresolved delivery issues without promising search display.\n\n## Steps\n1. Define the page set. A page listed by a crawler is not proof that Google indexed it. Separate intended public search pages from private or deliberately excluded pages.\n2. Read the actual meta name=\"description\" content in the served page and compare it with the saved source setting where access is available. Note blank, duplicate or conflicting declarations and site templates that generate unexpected text.\n3. Read the page’s purpose and proposed summary together. Write a specific truthful sentence or two that tells the reader what is useful. Use the topic’s normal words naturally; a plugin’s focus keyword is not a compulsory phrase in every description.\n4. Treat roughly 160 characters as the existing house brevity target, not a Google technical maximum. Google has no fixed meta-description length limit and may use page text or truncate a snippet to the display width. Keep any justified longer description distinct from a factual failure.\n5. Count the decoded text using a stated method, then review clarity, repeated boilerplate and misleading claims. Duplicate summaries deserve page-context review; do not force meaningless unique wording on equivalent variants just to satisfy a count.\n6. Update the correct supported metadata source for authorized pages. Preserve canonical URLs, titles and visibility unless those changes are separately part of the job. Avoid writing a second description tag into body content.\n7. Reopen the canonical page and verify the actual served description. Record saved-but-stale delivery separately if a cache or static layer still shows the old tag.\n8. Save the before/after summary, count, reason for any house-target exception and public check date. Observed search snippets are a separate dated observation; this edit cannot promise a specific snippet or click-through increase.\n\n## Definition of done (QA checklist)\n\n- [ ] Each intended page has a truthful useful served description or a precise unresolved issue.\n- [ ] The house length target is recorded separately from Google requirements.\n- [ ] Descriptions fit page content and are not keyword-stuffed or copied blindly.\n- [ ] Changes preserve unrelated URL/visibility settings and are checked on canonical source.\n- [ ] Search display and traffic claims are not inferred from the metadata edit.\n\n## Example(s)\n\n**Fictional teaching example — no search metadata was saved.** Maple Cycle’s quote guide has the summary “Welcome to our website, the best service for everyone.” It says little about this page.\n\nThe teaching replacement is “See which bike photos to send for a repair quote, what details to include, and when the shop needs to inspect it.” The editor counts the actual decoded string and checks the house target. The main test is that the sentence accurately describes the guide.\n\nIf Google later shows a different excerpt for one query, that alone does not mean the description tag was missing or broken.\n\n## Handoff and Content Factory context\n\nThe content owner receives the metadata report. [Check page titles](https://local-service-spotlight.github.io/task-library/?task=check-seo-title-under-60-chars-with-focus-keyword#task-check-seo-title-under-60-chars-with-focus-keyword) is a related check, not evidence that descriptions have been tested.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at page launch or when its purpose or summary changes. Search-result observations follow an existing review cadence rather than a guaranteed instant update.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check meta description under 160 chars](https://local-service-spotlight.github.io/task-library/?task=check-meta-description-under-160-chars#task-check-meta-description-under-160-chars)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google snippets](https://developers.google.com/search/docs/appearance/snippet)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual page set, current metadata and canonical readback require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2a9bdf0b8b74de0d8d79c9479acab627f9323fa251a25ad26b14734a8d813107",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d1bbeb75cffd8bc5aef21c5ddf5f473a4b52cc7bd2eda660ba3735e48174e802",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-meta-description-under-160-chars#task-check-meta-description-under-160-chars",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2a9bdf0b8b74de0d8d79c9479acab627f9323fa251a25ad26b14734a8d813107",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2a9bdf0b8b74de0d8d79c9479acab627f9323fa251a25ad26b14734a8d813107"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2a9bdf0b8b74de0d8d79c9479acab627f9323fa251a25ad26b14734a8d813107"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 161,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check schema connects to all verified profiles",
     "slug": "check-schema-connects-to-all-verified-profiles",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that each profile link points to the right person or firm.",
     "content": "---\nname: check-schema-connects-to-all-verified-profiles\ndescription: \"Check that each profile link points to the right person or firm.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check schema connects to all verified profiles\n\nYour site should link to the right person or firm. This guide helps you check the data that tells search tools who you are. Start with public pages whose owner you can prove.\n\n**The path:** Verified identity → Right schema node → Relevant profiles → Source and tool checks.\n\n**Use this when:** A site’s structured identity data is being added, changed or audited. Schema is machine-readable information about the page; sameAs links identify that same person or organization elsewhere.\n\n## Inputs\n- The exact site and visible person/business identity, with a verified public-profile list and evidence for each owner.\n- The served structured data, supported schema source and edit scope. A plugin is optional; existing custom code may be the correct source.\n- An appropriate structured-data validator and Google’s Rich Results Test where a supported feature is involved.\n- An issue log that separates syntax, entity identity, profile access and Google feature eligibility.\n\n## First-run prompt\n\n> Inspect the supplied site’s visible identity, served schema and verified public-profile inventory. Map sameAs URLs to the correct entity nodes, fix authorized exact-source issues, and record facts, syntax, access limitations and Google feature checks separately.\n\n## Steps\n1. Write down which entity each page describes: a person, company, local business or several linked entities. Give each existing node its correct identity; do not combine the owner’s personal profiles and company profiles into one list by convenience.\n2. Inspect the served schema and its @id links. Find the applicable Person, Organization or LocalBusiness node and its sameAs values. Record duplicate/conflicting nodes generated by separate plugins or code.\n3. For each sameAs URL, check that it unambiguously identifies that same entity. A person’s LinkedIn profile can belong on that person’s node; the company’s Facebook page belongs on the company node. A business listing is not automatically the individual’s identity page.\n4. Compare against the applicable verified public-profile inventory. Include relevant identity references missing from that node, using canonical URLs. “All verified profiles” means the right approved identity set, not every private account, social post or page linked anywhere on the site.\n5. Inspect redirects and visible profile identity where accessible. A login wall or rate limit is an access limitation, not proof the profile is deleted. If identity cannot be checked, keep that specific URL unknown and request the actual owner evidence.\n6. Update the supported schema source within scope. Keep identity consistent with visible page content. Do not manufacture a profile or relationship to fill a schema field, and do not install another SEO plugin solely to edit a graph that already has a supported source.\n7. Validate syntax and applicable vocabulary, then test Google-supported features where relevant. A generic Person or Organization graph may not produce a rich-result feature. Zero tool errors does not certify that the identities are true or guarantee a Knowledge Panel.\n8. Recheck the served canonical graph and save the exact node-to-profile map, evidence and remaining gaps. Hand off only the result of this check, not a claimed completed full-site audit.\n\n## Definition of done (QA checklist)\n\n- [ ] Each profile maps to the same actual entity as its schema node.\n- [ ] Applicable verified public profiles and @id relationships are recorded without personal/company conflation.\n- [ ] Source facts, syntax and Google feature eligibility have separate results.\n- [ ] The canonical served graph matches authorized edits, with access-limited targets marked unknown.\n- [ ] No new profile, relationship or Knowledge Panel result is invented.\n\n## Example(s)\n\n**Fictional teaching example — no structured data was changed.** Alex owns Maple Cycle. The sample Person node points to Alex’s personal profile; the Organization node points to Maple Cycle’s company page.\n\nAn old graph puts the shop’s business listing in Alex’s sameAs array. The proposed correction moves that identity reference to the business node and preserves the supported relationship between Alex and the shop. It does not delete the business profile from the site.\n\nA clean syntax check plus “no supported rich results detected” can still be consistent with useful identity markup. The reviewer must verify the facts separately.\n\n## Handoff and Content Factory context\n\nThe technical owner receives the served identity map and exact unresolved profile evidence. [Verify Person schema](https://local-service-spotlight.github.io/task-library/?task=verify-person-schema-with-sameas-links#task-verify-person-schema-with-sameas-links) is appropriate only when a real Person node is in scope; business profiles stay with the correct business entity.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and when verified identities, profiles or schema sources change. Do not create profile-monitoring schedules without an existing defined job.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check schema connects to all verified profiles](https://local-service-spotlight.github.io/task-library/?task=check-schema-connects-to-all-verified-profiles#task-check-schema-connects-to-all-verified-profiles)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n- [Schema.org sameAs](https://schema.org/sameAs)\n- [Google structured-data introduction](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual public-profile identity proof, schema source and canonical validation evidence require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "009a2db268d3e3d045d2b367ba6af0692c34d8280be0ec2bab7f2b3914f4cad6",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "48481af14905d524c3db3eca1067a1b3a3ff8fcd403aa01fd2523303b744ce54",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-schema-connects-to-all-verified-profiles#task-check-schema-connects-to-all-verified-profiles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "009a2db268d3e3d045d2b367ba6af0692c34d8280be0ec2bab7f2b3914f4cad6",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "009a2db268d3e3d045d2b367ba6af0692c34d8280be0ec2bab7f2b3914f4cad6"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "009a2db268d3e3d045d2b367ba6af0692c34d8280be0ec2bab7f2b3914f4cad6"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 111,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check SEO title under 60 chars with focus keyword",
     "slug": "check-seo-title-under-60-chars-with-focus-keyword",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that each page has a clear title. Use words that fit the page and help people choose it.",
     "content": "---\nname: check-seo-title-under-60-chars-with-focus-keyword\ndescription: \"Check that each page has a clear title. Use words that fit the page and help people choose it.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check SEO title under 60 chars with focus keyword\n\nA clear title tells people what they will find. This guide helps you check the page name used by browsers and search. Start by reading the live page and its real title tag.\n\n**The path:** Page purpose → Served title → Clear wording → Canonical recheck.\n\n**Use this when:** A page set needs its browser/search titles reviewed before launch or after content changes.\n\n## Inputs\n- The exact public pages, actual content and intended topics.\n- The served title tags, visible H1 headings and supported CMS/SEO template settings if edits are in scope.\n- The current house title-length target and brand naming rules.\n- A dated report with URL, before/after title and counting method.\n\n## First-run prompt\n\n> Read the supplied pages and served title tags. Correct misleading or weak titles within the authorized scope, use the house length target as guidance, and verify live source without changing stable URLs. Report exact text, count and any template or delivery gap.\n\n## Steps\n1. Read each page’s purpose. Identify what a reader should expect there and whether it is a guide, service page, story or reference. Choose specific words that reflect the content.\n2. Inspect the served HTML title, the visible main heading and the CMS value. These can differ because of templates or stale delivery. Record blank titles, duplicate declarations and misleading generated text.\n3. Review concision and useful topic wording. The old task name’s 60-character target is a house guideline, not a Google limit. Google may truncate by display width and may construct a different title link from other page signals.\n4. Use the natural main topic where it helps clarity. A Rank Math focus-keyword field is an editorial aid, not a required search-engine input. Avoid repetitive keyword lists or a promise that the page cannot support.\n5. Assess repeated titles in context. Distinct useful pages usually need distinct clear titles; similar variants may have another canonicalization issue. A normal “Page title | Brand” format can be valid and is not automatically unfinished.\n6. Write or apply the authorized title through the supported source. Keep the page’s existing URL and content type. Do not change a stable slug merely to satisfy the keyword phrase or character target.\n7. Reopen the normal canonical source and browser tab to verify the actual title. Record H1 consistency without forcing exact duplication where a useful editorial variation makes sense.\n8. Save before/after text, character count, house-target exceptions and checked date. A search preview is a simulation; only a dated actual search result shows what Google displayed then, and neither promises future ranking.\n\n## Definition of done (QA checklist)\n\n- [ ] The actual served title clearly and truthfully represents the page.\n- [ ] The approximate 60-character house target is not labeled a Google requirement.\n- [ ] Topic wording is natural and template/duplicate issues are reviewed in context.\n- [ ] Authorized changes preserve the canonical URL and survive public source readback.\n- [ ] Browser title, H1 and observed Google title link remain distinct evidence fields.\n\n## Example(s)\n\n**Fictional teaching example — no title was saved.** Maple Cycle’s quote guide uses “Home | Maple Cycle” because an old template value was copied.\n\nThe teaching title is “Bike repair photos to send | Maple Cycle.” It names the guide and retains the real brand. The editor checks the decoded character count and the actual served tag. There is no need to rename the established `/repair-quote/` URL.\n\nA separate brake-wear guide should use its own specific title; forcing “bike repair quote” into both titles would make their purposes less clear.\n\n## Handoff and Content Factory context\n\nThe content owner receives the title report. [Check search summaries](https://local-service-spotlight.github.io/task-library/?task=check-meta-description-under-160-chars#task-check-meta-description-under-160-chars) follows as a related metadata task; the title check alone does not complete it.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for new pages and material topic/template changes. An existing search review can observe later title links; this guide does not schedule one automatically.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check SEO title under 60 chars with focus keyword](https://local-service-spotlight.github.io/task-library/?task=check-seo-title-under-60-chars-with-focus-keyword#task-check-seo-title-under-60-chars-with-focus-keyword)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google title links](https://developers.google.com/search/docs/appearance/title-link)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual title template, page topics and canonical served checks remain site-specific.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1b98f3cc09fead2d688444e919eb0d4ae79f78f3657a2fecbbb07317ea655f65",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "edbaa178df56b259389ff7d3f17ee08f0dbd5595f9654e0fd952c3fbfe50919a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-seo-title-under-60-chars-with-focus-keyword#task-check-seo-title-under-60-chars-with-focus-keyword",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1b98f3cc09fead2d688444e919eb0d4ae79f78f3657a2fecbbb07317ea655f65",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1b98f3cc09fead2d688444e919eb0d4ae79f78f3657a2fecbbb07317ea655f65"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1b98f3cc09fead2d688444e919eb0d4ae79f78f3657a2fecbbb07317ea655f65"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 162,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Check social profiles linked and prominent",
     "slug": "check-social-profiles-linked-and-prominent",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Help people find your real public profiles. Check the links and make them easy to use.",
     "content": "---\nname: check-social-profiles-linked-and-prominent\ndescription: \"Help people find your real public profiles. Check the links and make them easy to use.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Check social profiles linked and prominent\n\nVisitors may want to see your work on another site. This guide helps you link to the right public profiles. Start with a checked list so you do not send people to someone else.\n\n**The path:** Verified profiles → Clear placement → Right destinations → Phone check.\n\n**Use this when:** A site launch, identity change or social-link audit needs public profile navigation checked.\n\n## Inputs\n- The exact site and approved public-profile inventory with person/company identity evidence.\n- The current home, about and footer layouts, including mobile navigation.\n- Supported edit access and the scope for link/label changes.\n- A record of restricted or retired profiles and the actual owner who can resolve identity gaps.\n\n## First-run prompt\n\n> Use the supplied site and verified public-profile list. Check the right entity, visible placement and labels at desktop and phone widths. Fix already-authorized link issues, preserve private-account limits, and return exact public destinations with unresolved identity evidence.\n\n## Steps\n1. Review the public-profile inventory and classify each owner as the person or business. Include useful public accounts approved for this site; do not expose private accounts or create new ones to fill an icon row.\n2. Inspect the home page, about page and footer on desktop and phone. Record where visitors can find the relevant profiles. The house goal is clear discovery, not repeating every icon in every section.\n3. Check each link’s exact destination and visible owner where accessible. Use canonical profile URLs instead of search-result links or unrelated posts. A shared display name alone is not enough to establish identity.\n4. Read the link or icon’s accessible name and visible context. A visitor should know whether it leads to the founder’s LinkedIn or the company’s page. Icons that depend only on color or an absent label need correction.\n5. Verify phone placement, tap usability and overlays. A footer icon hidden on mobile is not a passed phone check. Keep ordinary profile navigation separate from logging in, following, messaging or claiming an account.\n6. Review schema consistency with the applicable entity map. Do not require a business footer link to appear in the owner’s personal sameAs array. Use [Check schema profile identity](https://local-service-spotlight.github.io/task-library/?task=check-schema-connects-to-all-verified-profiles#task-check-schema-connects-to-all-verified-profiles) for that distinct check.\n7. Apply authorized destination, label or placement repairs through the supported source. Preserve valid profile links and record any owner evidence still missing rather than guessing an account.\n8. Reopen the canonical pages at both viewports and save the actual link inventory, checked date and remaining access limitations. A login-restricted profile can remain unknown without being called dead.\n\n## Definition of done (QA checklist)\n\n- [ ] Useful approved public profiles are easy to find on desktop and phone.\n- [ ] Each destination is the intended person or company, with evidence or a precise unknown.\n- [ ] Labels explain the destination, and icons remain usable on mobile.\n- [ ] Navigation checks do not imply follows, messages, login success or account ownership.\n- [ ] Schema identity and navigation are related but not falsely forced to have identical lists.\n\n## Example(s)\n\n**Fictional teaching example — no profile was opened or linked.** Maple Cycle’s footer has two LinkedIn icons. One belongs to founder Alex; the other belongs to the company, but both are labeled only “LinkedIn.”\n\nThe teaching fix labels them “Alex on LinkedIn” and “Maple Cycle on LinkedIn,” uses their verified canonical profile URLs and checks the phone layout. A third profile with a similar name lacks owner evidence, so it remains pending rather than being added to complete a row.\n\n## Handoff and Content Factory context\n\nThe site owner receives the profile map and any identity questions. [Review footer navigation](https://local-service-spotlight.github.io/task-library/?task=verify-footer-includes-social-links-and-secondary-nav#task-verify-footer-includes-social-links-and-secondary-nav) covers the broader footer layout when that task is in scope.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and when public profile identity or navigation changes. Any periodic check needs the real site cadence; no follows or outreach are created by this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Check social profiles linked and prominent](https://local-service-spotlight.github.io/task-library/?task=check-social-profiles-linked-and-prominent#task-check-social-profiles-linked-and-prominent)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The verified public-profile inventory and actual desktop/phone checks require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e89a2ea00e6c2d2e3f9aefdc4d5e3b0b13f1a3073372b639f6cfc1493af0dbb3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "950c9e8cba9b519d158245d336f2ce728792d9c9b54bfefdb643068e4283485e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-social-profiles-linked-and-prominent#task-check-social-profiles-linked-and-prominent",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e89a2ea00e6c2d2e3f9aefdc4d5e3b0b13f1a3073372b639f6cfc1493af0dbb3",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e89a2ea00e6c2d2e3f9aefdc4d5e3b0b13f1a3073372b639f6cfc1493af0dbb3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e89a2ea00e6c2d2e3f9aefdc4d5e3b0b13f1a3073372b639f6cfc1493af0dbb3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 163,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Ensure no stock images used",
     "slug": "ensure-no-stock-images-used",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Use real proof and honest visuals on the site. Find stock stand-ins and photos whose source is not known.",
     "content": "---\nname: ensure-no-stock-images-used\ndescription: \"Use real proof and honest visuals on the site. Find stock stand-ins and photos whose source is not known.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Ensure no stock images used\n\nYour site should show the work and people it claims to show. This guide helps you check where each photo came from. Start with the source files, so a guess about a picture does not become a fact.\n\n**The path:** Image inventory → Source and rights → Honest use → Verified replacement.\n\n**Use this when:** A site’s visuals need review against the owned no-stock proof-photo rule.\n\n## Inputs\n- The scoped pages and image inventory, including backgrounds, thumbnails, decorative assets and repeated files.\n- Original approved media, project/event records, licenses or permissions and the owner who can resolve missing provenance.\n- The current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and the factual claim each image is meant to support.\n- Supported media/page edit access and authorized replacement scope.\n\n## First-run prompt\n\n> Inventory the supplied site images and trace their source, rights and implied claims. Distinguish real proof, stock stand-ins, honest diagrams and unknown assets. Complete authorized replacements with approved material, then return evidence and exact unresolved source requests without inventing authenticity.\n\n## Steps\n1. List each distinct asset and every placement in scope. Record its file/URL, visible caption, alt text and the claim implied by its context. Separate proof photos, diagrams, real screenshots and decorative artwork.\n2. Trace proof photos to original files or a reliable source record. Confirm who/what is actually shown, when relevant, and permission for this use. A plausible-looking workshop is not proof that it is this business’s workshop.\n3. Classify the evidence: verified real source, confirmed stock stand-in, honest illustration/diagram, or unknown. A diagram can teach a process without pretending to be a photo of real work. Do not pass an AI-generated person or event as documentary proof.\n4. Use reverse-image search only as a permitted supporting lead on already-public assets. Multiple matches can be legitimate reuse or copying; no matches do not prove authenticity. Do not upload private customer photos to a third-party search or design tool without existing authority.\n5. For confirmed stock stand-ins, write a replacement brief tied to the section’s point: the actual team member, real job scene or accurate diagram needed. For unknown images, request the precise source/rights evidence instead of asserting stock by appearance.\n6. Select an approved real replacement or honest teaching visual within scope. Preserve context, crop and rights; do not label a supplied job photo as a different customer’s result. Keep a valid existing asset when the evidence supports it.\n7. Apply authorized replacements through the supported source and check desktop/phone placement, aspect ratio, alt text and captions. Do not delete a public asset just to hide an unknown before the replacement and scope are resolved.\n8. Save the asset inventory with classifications, evidence, changed placements and remaining gaps. This task verifies visual truthfulness and house policy; it does not establish a Google penalty or ranking effect from the mere presence of stock.\n\n## Definition of done (QA checklist)\n\n- [ ] Every scoped visual has a documented role and source classification.\n- [ ] Proof photos match the actual people/work claimed, with appropriate rights.\n- [ ] Stock, unknown and honest illustrative visuals are not conflated.\n- [ ] Replacement briefs and completed fixes are exact and rechecked publicly when changed.\n- [ ] Private uploads, invented events and unsupported SEO penalty claims are absent.\n\n## Example(s)\n\n**Fictional teaching example — no asset was replaced.** Maple Cycle’s “Our team” section uses a licensed stock photo of strangers. A repair-step diagram was drawn from the shop’s real method. A third workshop photo has no source record.\n\nThe first fails the owned proof-photo policy despite having a license. The diagram can remain if its labels are accurate and it is clearly a diagram. The third stays “source unknown” until the owner supplies evidence; its appearance alone does not prove that it is stock.\n\nThe teaching replacement request asks for an approved photo of the actual team, not an invented claim that a photo shoot already took place.\n\n## Handoff and Content Factory context\n\nThe content owner receives the source register and real replacement requests. [Review section visuals](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image) checks placement after approved replacements exist.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before first publication and when new assets or claims are added. Recurring review uses the site’s actual policy; a model does not maintain an asset register by itself.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Ensure no stock images used](https://local-service-spotlight.github.io/task-library/?task=ensure-no-stock-images-used#task-ensure-no-stock-images-used)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Original asset provenance, use rights and authorized replacements require the actual project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7a772dad0ca37f4e81b6b7c5abf195c3317a345211f0c9f881d63588f658986e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "513bc8c986dd7b4cfceda7dcd81854f01f262813b29d8fbec6f5bd225d3dff42",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-no-stock-images-used#task-ensure-no-stock-images-used",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7a772dad0ca37f4e81b6b7c5abf195c3317a345211f0c9f881d63588f658986e",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7a772dad0ca37f4e81b6b7c5abf195c3317a345211f0c9f881d63588f658986e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7a772dad0ca37f4e81b6b7c5abf195c3317a345211f0c9f881d63588f658986e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 164,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Ensure no text-only sections spanning full viewport",
     "slug": "ensure-no-text-only-sections-spanning-full-viewport",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Break up long walls of text with useful visuals. Check that the page is clear on a phone too.",
     "content": "---\nname: ensure-no-text-only-sections-spanning-full-viewport\ndescription: \"Break up long walls of text with useful visuals. Check that the page is clear on a phone too.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Ensure no text-only sections spanning full viewport\n\nA wall of text can make a useful page hard to follow. This guide helps you give readers clear breaks and useful pictures. Start at the top, then check the long sections on a phone and a large screen.\n\n**The path:** First screen → Long text stretches → Useful visual or edit → Two-width check.\n\n**Use this when:** A public page or defined page set needs first-screen visuals and long text sections reviewed.\n\n## Inputs\n- The canonical pages in scope, their intended readers and current full content.\n- Real relevant photos, diagrams or source screenshots with appropriate rights.\n- Views at 1280×800 and 390×844, the supported editor and authorized layout/edit scope.\n- The current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and an issue log for exact sections and missing assets.\n\n## First-run prompt\n\n> Review the supplied canonical pages at desktop and phone sizes. Check the first meaningful visual and full-body text stretches. Make authorized clarity/layout fixes with accurate visuals, then report exact before/after observations and missing assets without claiming unmeasured engagement results.\n\n## Steps\n1. Open each normal canonical URL at both viewports. Capture the initial screen before scrolling and identify the useful visual content actually visible. A blank box, loading border or offscreen image does not satisfy the opening rule.\n2. Read the opening. It should explain who the page helps, why and the useful result at grade 5 or below. Confirm the visual reinforces that point rather than adding unrelated decoration to pass a box.\n3. Scroll the full in-scope body at each width and identify continuous stretches of unbroken text that fill a screen. Record section names and approximate start/end positions. A few short paragraphs separated by a clear relevant visual differ from a large uninterrupted slab.\n4. Use judgment on necessary utility or reference material, with an explicit reason where the visual rule does not apply. Do not insert random pictures into a legal clause or data table simply to interrupt every possible scrolling window. Keep the main article’s first-screen rule intact.\n5. Choose a fix tied to meaning: shorten repetition, divide the explanation into clear steps, add a real source photo, or draw a small accurate diagram of the process. A decorative band or meaningless icon row does not make the explanation clearer.\n6. Keep visuals readable at phone size. Check actual labels, image content, width and aspect ratio. A long diagram may continue below the fold if the visible part already communicates a useful complete point; a tiny full-figure thumbnail is not automatically better.\n7. Apply authorized text/layout changes in the supported source, preserving useful media and factual meaning. Give any missing real asset an owner rather than inventing proof.\n8. Recheck the first screen and repaired sections on normal canonical desktop and phone pages. Save exact observations and remaining gaps. This house layout check does not by itself measure bounce rate, engagement or conversion.\n\n## Required first-screen visual gate\n\nEvery visitor-facing page, including home, money, relationship, archive and\nutility pages, must show a relevant authentic photograph, source-video poster\nor useful diagram above the fold. At 390x844 and 1280x800, test the anonymous\nunscrolled first visit with JavaScript on and off. A logo, social icon, decorative\nbackground, thin strip, broken image or empty player rectangle fails.\n\nUse the [canonical numeric standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/visuals-above-the-fold.md) and its\n[shared browser checker](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/scripts/rendered_visual_check.mjs) in the real builder/publisher:\n`rendered_visual_check.mjs --url URL --selector CSS --output DIRECTORY`.\nMeasure the complete preview with site chrome before release and the ordinary\npublic URL after the authorized release. Save both screenshot/JSON receipts.\nThe checker can measure a loaded photographic CSS background as well as images,\ndiagrams and video posters. Its geometry pass remains `REVIEW_REQUIRED` until\nan independent reviewer opens the actual screenshots and source evidence and\naccepts the relevance, authentic moment, useful crop, labels and permission.\nA source-order regex or an `<img>` count cannot mark this gate complete.\n\nYouTube uses youtube-nocookie.com with rel=0, cc_load_policy=1 and cc_lang_pref.\nNo media autoplays on first paint. Before any separate playback verification,\nmute and set volume zero; if that cannot be verified, use metadata, captions,\nframes or a loaded poster and record playback NOT_TESTED. Never play through\nthe user's speakers without their explicit current request.\n\n## Definition of done (QA checklist)\n\n- [ ] The opening earns attention and explains this reader's situation, reason to care, useful outcome and mechanism under `step-7-write-hook-and-establish-context`; saved quoted meaning review is separate from image geometry\n- [ ] Preview and ordinary-live first-screen geometry plus source-backed screenshot review pass on both viewports; actual evidence stored\n\n- [ ] Both first viewports show a meaningful readable visual with clear opening context.\n- [ ] The full scoped body is reviewed for long unbroken text stretches at both widths.\n- [ ] Fixes help explain the section and preserve source facts and useful existing media.\n- [ ] Phone labels/content are readable with no sideways overflow.\n- [ ] Exceptions and missing assets are specific, and no unmeasured behavior improvement is claimed.\n\n## Example(s)\n\n**Fictional teaching example — no layout was changed.** Maple Cycle’s quote guide opens with a useful workshop photo, but the phone view then shows two full screens of dense instructions.\n\nThe teaching revision removes repeated advice and adds a four-step diagram: “Take clear photos → Add the bike issue → Send to the shop → Receive the next step.” Each label fits at phone width. The diagram describes the guide’s actual process and does not claim that a quote or sale has happened.\n\nThe reviewer still checks the normal phone page after saving; an image tag in the source is not proof that readers can see it.\n\n## Handoff and Content Factory context\n\nThe page owner receives the repaired-section evidence. [Review major home-page visuals](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image) is a companion check for home pages; broader page QA uses its own defined scope.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publishing or after significant content/layout changes. An ongoing layout monitor requires a configured site-specific job; this guide creates none.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Ensure no text-only sections spanning full viewport](https://local-service-spotlight.github.io/task-library/?task=ensure-no-text-only-sections-spanning-full-viewport#task-ensure-no-text-only-sections-spanning-full-viewport)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual viewport observations, supported editor behavior and missing real assets require the target pages.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "455b0f12869d0cfa9a3213d0df5662478daab69554aa786bf2bb7c34c2fe94ab",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "560a13b937425967007f5cce2d251b860e0a0442fe7031c2ada4f4fd40f8ae84",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-no-text-only-sections-spanning-full-viewport#task-ensure-no-text-only-sections-spanning-full-viewport",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "455b0f12869d0cfa9a3213d0df5662478daab69554aa786bf2bb7c34c2fe94ab",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "455b0f12869d0cfa9a3213d0df5662478daab69554aa786bf2bb7c34c2fe94ab"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "455b0f12869d0cfa9a3213d0df5662478daab69554aa786bf2bb7c34c2fe94ab"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 165,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Ensure robots meta not blocking indexing",
     "slug": "ensure-robots-meta-not-blocking-indexing--qa-audit",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that public pages can be read by search engines. Keep private pages private.",
     "content": "---\nname: ensure-robots-meta-not-blocking-indexing--qa-audit\ndescription: \"Check that public pages can be read by search engines. Keep private pages private.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Ensure robots meta not blocking indexing\n\nA public page should not be hidden from search by mistake. This guide helps you check the rules that search engines receive. Start by deciding which pages should be public and which should stay out of search.\n\n**The path:** Page intent → Served rules → Exact cause → Verified correction.\n\n**Use this when:** A launch, migration or audit needs unintended indexing restrictions checked.\n\n## Inputs\n- The exact URLs and owner-supplied index intent: public, intentionally excluded, private or staging.\n- Public response headers, page source, robots.txt and redirect/canonical information.\n- Supported CMS/server configuration access for repairs already in scope; Search Console access if indexed/live-test evidence is required.\n- A dated evidence log and current source/configuration snapshot before changes.\n\n## First-run prompt\n\n> Use the supplied URL list and intended visibility. Inspect current headers, meta directives and crawl rules, correct already-authorized unintended restrictions, and verify canonical responses. Keep private exclusions intact and report eligibility, observed indexed state and unavailable account evidence separately.\n\n## Steps\n1. Record the intended visibility of each page before diagnosing its rules. Keep deliberate private, staging and low-value exclusions. A global “make everything indexable” change is not a valid audit repair.\n2. Read the normal final page response, including redirect chain and X-Robots-Tag headers, then inspect robots and googlebot meta tags in the served HTML. Record all applicable directives; multiple rules can combine restrictively.\n3. Separate noindex from nofollow. Noindex asks a crawler that can read it not to index the page; nofollow concerns following links. The shorthand none combines both. Do not call a nofollow-only page non-indexable merely because of that directive.\n4. Inspect the applicable robots.txt crawl rules for the host and user agent. A disallowed page can prevent Google from reading its noindex instruction and may still appear as a URL in search. Google does not use a noindex directive in robots.txt as a supported indexing control.\n5. Compare with supported CMS settings when access exists. On WordPress, the search-engine-visibility setting is one possible source, not the only cause. Check page-level SEO settings, templates and response headers before changing unrelated global options.\n6. If Search Console is available, record the indexed inspection result and crawl date separately from a current live test. “Indexing allowed” establishes eligibility for that test, not a promise that Google has indexed or will rank the page. Without access, finish public-rule checks and label Search Console evidence unavailable.\n7. Repair only the unintended exact restriction already in scope using the supported source. Preserve intentional exclusions and privacy. Recheck the canonical headers, body rules and relevant crawl rule after saving; do not rely only on a CMS checkbox.\n8. Save intent, before/after directives, cause, actual test date and remaining issues. Hand any indexing request or later observation to its authorized search owner, without promising immediate indexing.\n\n## Definition of done (QA checklist)\n\n- [ ] Each checked URL has an explicit intended visibility and actual served directives.\n- [ ] Noindex, nofollow and crawl blocking are distinguished accurately.\n- [ ] Repairs preserve intentional private/staging restrictions and target the actual supported source.\n- [ ] Public rule changes are verified on canonical responses; Search Console snapshot/live evidence remain separate.\n- [ ] Eligibility, actual indexed state and rankings are not treated as the same outcome.\n\n## Example(s)\n\n**Fictional teaching example — no search settings were changed.** Maple Cycle’s public quote guide serves `noindex, follow` left from staging. Its private staff page is intentionally excluded. A third public page has only `nofollow`.\n\nThe proposed scoped repair removes the accidental noindex from the quote guide through its real metadata source, then checks the served response. It leaves the staff page’s intended protection alone. The nofollow-only page needs a link-policy review; it is not failed as “noindex” based on that token.\n\nA successful live eligibility check still does not justify writing “Google has indexed all three pages.”\n\n## Handoff and Content Factory context\n\nThe site/search owner receives exact directive evidence and any approved next inspection. [Verify the sitemap](https://local-service-spotlight.github.io/task-library/?task=verify-xml-sitemap-exists-and-in-robotstxt#task-verify-xml-sitemap-exists-and-in-robotstxt) is a related discovery check; sitemap presence does not override noindex.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before launch and after relevant CMS, header or migration changes. Later index observations use the actual agreed search-review cadence, not a guaranteed automated recurrence.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 3, gating 5 (runs every factory cycle or weekly; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Ensure robots meta not blocking indexing](https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing--qa-audit#task-ensure-robots-meta-not-blocking-indexing--qa-audit)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google robots meta and headers](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The target site’s visibility intent, supported configuration source and actual Search Console evidence require the project.",
     "importance": 5,
     "freq": 4,
     "revenue": 3,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "runs every factory cycle or weekly; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "cb4c2ec50cb06ee849e0d46a3163b0e7a0a040b09227e9dba8eac6d4e0e92bd8",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3084f1497c27d18d7f3d2a318aad7ce0c522346674a1936260ff461ef22878ec",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "possible-duplicate: review for merge with ensure-robots-meta-not-blocking-indexing",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing--qa-audit#task-ensure-robots-meta-not-blocking-indexing--qa-audit",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cb4c2ec50cb06ee849e0d46a3163b0e7a0a040b09227e9dba8eac6d4e0e92bd8",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "cb4c2ec50cb06ee849e0d46a3163b0e7a0a040b09227e9dba8eac6d4e0e92bd8"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "cb4c2ec50cb06ee849e0d46a3163b0e7a0a040b09227e9dba8eac6d4e0e92bd8"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 86,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Test mobile load time under 3 seconds",
     "slug": "test-mobile-load-time-under-3-seconds",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Find slow pages on a phone. Save clear speed results and the next fix to check.",
     "content": "---\nname: test-mobile-load-time-under-3-seconds\ndescription: \"Find slow pages on a phone. Save clear speed results and the next fix to check.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Test mobile load time under 3 seconds\n\nA slow page can make a customer wait for the useful part. This guide helps you check mobile speed and find the cause of a delay. Start with the pages people need most, then record what the test measured.\n\n**The path:** Known pages → Lab and real-user data → Cause → Measured fix.\n\n**Use this when:** A launch, template change or defined performance audit needs mobile page-speed evidence.\n\n## Inputs\n- The canonical page list and priority templates, with traffic evidence when it exists. Do not assume most traffic is mobile without the actual report.\n- PageSpeed Insights or an available Lighthouse setup, plus a place to save full reports and test conditions.\n- The site’s house target, repair scope and actual technical owner.\n- Existing baseline reports, source revisions and any real-user data available for the page or origin.\n\n## First-run prompt\n\n> Measure the supplied page set with mobile reports. Keep lab, house target and real-user metrics separate, preserve test conditions and coverage, and diagnose actual reported causes. Complete authorized fixes and return comparable before/after evidence plus remaining owners.\n\n## Steps\n1. Define the sample or full page set. Start with the home page, important service pages and representative articles from the requested scope. Record the denominator; a template sample is not every page.\n2. Run a mobile PageSpeed or Lighthouse test and retain the report, date, URL and environment. Read its mobile result rather than desktop. LCP, Largest Contentful Paint, measures when the largest visible content element renders; it is not the moment every page function has finished loading.\n3. Record lab LCP and the performance score separately. For the source’s house check, compare mobile lab LCP with under 3.0 seconds. Label that target explicitly; a 2.8-second result is not automatically a good Core Web Vitals result.\n4. Read real-user data separately when available. Record whether it describes this URL or the entire origin and its time window. No field data means insufficient evidence, not zero delay or an automatic failure.\n5. For current Core Web Vitals, evaluate the reported 75th-percentile LCP, INP and CLS together. Good thresholds are LCP at most 2.5 seconds, INP at most 200 milliseconds and CLS at most 0.1. Do not substitute a single lab score for that field assessment.\n6. Repeat a suspect or failing lab test under the same conditions once and retain both results. The source’s conservative house comparison may use the worse run, labeled as such. Do not repeatedly retest until a lucky pass replaces the original evidence.\n7. Read the report’s actual diagnostics. Match the suggested issue to the page: oversized lead image, delayed server response or blocking work, for example. Prepare or perform the exact authorized supported-source fix without removing useful first-screen content just to improve a score.\n8. Recheck changed pages under comparable conditions and save before/after reports plus visual/function regression results. Field history will not instantly reflect a new deployment. Hand remaining causes to the technical owner with an actual next check.\n\n## Definition of done (QA checklist)\n\n- [ ] Each scoped page has a dated mobile report and stated coverage.\n- [ ] Lab LCP, house under-3-second target, performance score and field Core Web Vitals are separate results.\n- [ ] URL/origin field scope and missing data are explicit.\n- [ ] Repeated measurements are retained without cherry-picking.\n- [ ] Repairs have comparable evidence and preserve useful content and function.\n\n## Example(s)\n\n**Fictional teaching example — no speed test was run.** Maple Cycle’s sample home page has lab LCP readings of 2.8 and 3.2 seconds. Its origin-level field report shows LCP 2.7 seconds, INP 150 milliseconds and CLS 0.06.\n\nUsing the house’s worse-run rule, the lab check fails the under-3-second target. The field LCP is also outside the good threshold, even though the other two metrics are good. The origin report cannot prove this one URL’s field result.\n\nThe next action is to inspect the delayed hero-image load shown in the sample diagnostic, then retain a comparable new report. It is not to declare the page fixed because one run was 2.8 seconds.\n\n## Handoff and Content Factory context\n\nThe technical owner receives the exact diagnostic and source revision. [Recheck useful home-page visuals](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image) catches a speed fix that accidentally hides or degrades the lead visual.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after material performance changes. An ongoing monitor requires the existing page set, rate limits and configured cadence; this task does not schedule unlimited whole-site tests.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Test mobile load time under 3 seconds](https://local-service-spotlight.github.io/task-library/?task=test-mobile-load-time-under-3-seconds#task-test-mobile-load-time-under-3-seconds)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google PageSpeed Insights data](https://developers.google.com/speed/docs/insights/v5/about)\n- [Google Core Web Vitals](https://web.dev/articles/vitals)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual reports, traffic mix, repair source and comparable runtime evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "5b9c08b57b99eccaffa5e7f545b944ea390fc80d55346f6b25286a7e743fef0d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3dd88c3c9e2b4c1d9ceba67b9f2c1903bb591c91270f748e33a5e4ebc39e2009",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=test-mobile-load-time-under-3-seconds#task-test-mobile-load-time-under-3-seconds",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5b9c08b57b99eccaffa5e7f545b944ea390fc80d55346f6b25286a7e743fef0d",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5b9c08b57b99eccaffa5e7f545b944ea390fc80d55346f6b25286a7e743fef0d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5b9c08b57b99eccaffa5e7f545b944ea390fc80d55346f6b25286a7e743fef0d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 166,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify achievements are evidenced, not just claimed",
     "slug": "verify-achievements-are-evidenced-not-just-claimed",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the proof behind each claim. Keep real stories and remove claims the facts cannot support.",
     "content": "---\nname: verify-achievements-are-evidenced-not-just-claimed\ndescription: \"Check the proof behind each claim. Keep real stories and remove claims the facts cannot support.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify achievements are evidenced, not just claimed\n\nPeople should be able to check the claims on your site. This guide helps you match each claim to real proof. Start with what the page says, then find the source that backs it up.\n\n**The path:** Exact claim → Primary proof → Honest public wording → Checked result.\n\n**Use this when:** A site or page set needs its achievements, results, praise and relationship language reviewed.\n\n## Inputs\n- The scoped pages, including home/about, bios, logo walls, results and testimonials.\n- The actual proof inventory: primary features, dated result records, named quotes, certificates and source media with appropriate use rights.\n- The page role and site voice, plus supported edit scope and the responsible content owner.\n- An internal claim-to-source table; private evidence and review labels remain in that record.\n\n## First-run prompt\n\n> Review the supplied pages and primary proof. Map exact claims to evidence, preserve source-supported first-person scenes where appropriate, and narrow unsupported relationship or result wording. Complete authorized edits; retain HOLD and internal records without publishing verification theater or invented praise.\n\n## Steps\n1. Read the full scoped copy and list each achievement or result claim with its exact sentence and location. Include numerical results, dates, awards, credentials, logos, client/partner wording and implied endorsements.\n2. Inspect the primary evidence for each claim. A press link must identify the subject and actual feature; a metric must have its period, denominator and source. An undated screenshot or logo by itself may not support the stated result.\n3. On a personal-brand site, tell the supported moment in the owner’s real voice: what happened, why it mattered and a relevant human detail, with a compact source link. Do not invent a memory to satisfy style. Fail a trophy-name paragraph that piles up famous people, brands or titles without a specific shared scene and useful lesson.\n4. Make relationship language no stronger than the evidence. A photo, interview or co-appearance does not alone establish friend, client, partner, mentor or endorsement. Narrow the noun and verb to the actual source or keep the stronger claim HOLD.\n5. Check praise against the exact source quote, named person and applicable role/company or city, with permission where required. Anonymous praise or attribution only to a domain/company remains HOLD; do not replace the missing speaker with a guessed owner.\n6. Keep the public page natural. Remove repeated defensive caveats, confidence scores, proof-record IDs, internal verification process labels and repurposing instructions unless that system is the actual subject. Preserve a materially necessary legal, regulatory, or compliance disclosure, limited to the claim that requires it.\n7. Prepare the supported wording, source link or removal for each failed claim. Carry out authorized edits through the current source. Missing proof stays HOLD for public publication and repurposing; a caveat is not a workaround for an unsupported claim.\n8. Recheck the canonical public wording, evidence links and visual context after changes. Keep the internal claim table private as appropriate, record exact unresolved evidence and hand it to the owner. Do not call the entire site verified if only the about page was reviewed.\n\n## Definition of done (QA checklist)\n\n- [ ] Every claim in the stated scope has sufficient evidence or an explicit unresolved HOLD/removal.\n- [ ] Personal-brand proof uses supported scenes and lessons rather than trophy-name lists.\n- [ ] Relationship nouns and numerical scope match the record; named praise is exact and properly sourced.\n- [ ] Public copy omits internal review/repurposing metadata and repeated defensive caveats, while retaining necessary scoped compliance disclosure.\n- [ ] Authorized public edits and source links are rechecked; the internal audit table is retained separately.\n\n## Example(s)\n\n**Fictional teaching example — no real person’s claim was checked.** Alex’s sample page says, “I partner with the city’s top bike shop.” The supplied fictional record shows only that Alex appeared in a shop’s repair workshop video.\n\nThe supported scene is: “At the repair workshop, I showed how a clear brake photo helps the shop decide what to inspect next.” The real execution would link the actual source segment. “Partner” remains HOLD unless a separate record supports that relationship.\n\nDo not append “This does not prove partnership” to the public paragraph. Use the accurate sentence. The stronger claim stays out of derivative posts too until its proof exists.\n\n## Handoff and Content Factory context\n\nThe content owner receives exact accepted wording and missing proof. [Verify social-proof photos](https://local-service-spotlight.github.io/task-library/?task=verify-social-proof-photos-present#task-verify-social-proof-photos-present) checks photo context. Any later repurposing must inherit these evidence limits, not restore a stronger claim.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publication and when claims or supporting evidence change. Recurring rechecks use a real defined scope and tracker; no automatic lifetime verification is promised.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify achievements are evidenced, not just claimed](https://local-service-spotlight.github.io/task-library/?task=verify-achievements-are-evidenced-not-just-claimed#task-verify-achievements-are-evidenced-not-just-claimed)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual primary evidence, exact quote permission, site-wide coverage and public change receipts require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f41cc8ec84f8d82be0c07385e3f1307d837db96d6e4244f9afcbb9618f4cf57a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d89f83648b0a2ab229fd1ecc3def2dab5b4386e9b5308204e828b67a046d4fa2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-achievements-are-evidenced-not-just-claimed#task-verify-achievements-are-evidenced-not-just-claimed",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f41cc8ec84f8d82be0c07385e3f1307d837db96d6e4244f9afcbb9618f4cf57a",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f41cc8ec84f8d82be0c07385e3f1307d837db96d6e4244f9afcbb9618f4cf57a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f41cc8ec84f8d82be0c07385e3f1307d837db96d6e4244f9afcbb9618f4cf57a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 167,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify all images have descriptive alt text",
     "slug": "verify-all-images-have-descriptive-alt-text",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Help people who cannot see an image get its point. Check each image where it is used.",
     "content": "---\nname: verify-all-images-have-descriptive-alt-text\ndescription: \"Help people who cannot see an image get its point. Check each image where it is used.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify all images have descriptive alt text\n\nSome readers hear a page read by a screen reader. This guide helps you give each useful image the right words. Start with what the image does on that page, not just its file name.\n\n**The path:** Image placement → Purpose → Right text alternative → Served check.\n\n**Use this when:** A page set needs image text alternatives reviewed for accessibility.\n\n## Inputs\n- The scoped page inventory and image placements, including linked images, background visuals and diagrams.\n- The actual images and surrounding text, an available crawl/report and rendered page inspection.\n- Supported page/media edit access and the current [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n- A log that distinguishes missing attributes, intentional empty alternatives and descriptions that need correction.\n\n## First-run prompt\n\n> Review each supplied image placement and its role. Draft or apply authorized text alternatives based on what the image actually communicates. Preserve intentional decorative empties, name functional links correctly, and verify served content with a clear coverage and exception log.\n\n## Steps\n1. Inventory image placements as well as distinct files. The same file can do different jobs on different pages, so a media-library row alone is not enough.\n2. Classify each image by its purpose. An informative photo needs the useful information in context; a decorative image normally uses an empty alt value. Missing alt is not the same as an intentionally empty attribute.\n3. For an image that is the only content of a link or button, provide an accessible name that explains its destination or action. Do not merely describe “blue arrow” when the reader needs to know “Next repair step.”\n4. For text embedded in an image, make the meaningful words available as text. For a complex diagram, give a brief identifying alternative and a nearby equivalent explanation or accessible detail. Do not stuff all chart values into an unreadable alt sentence.\n5. Review existing alternatives against the actual visual and source facts. Replace file names, vague “image” text and keyword lists. Do not identify an unknown person or invent an achievement from appearance. A universal 100-character cutoff is not the accessibility rule.\n6. Fix each affected placement through the supported source. In WordPress, confirm how that site stores existing block/builder alt values; changing a media-library default alone may leave old placements unchanged.\n7. Inspect the served page and accessible names after saving. Check linked images, lazy-loaded content and mobile variants. Decorative CSS backgrounds need no duplicated prose, but a meaningful background-only message needs an accessible equivalent.\n8. Save placement counts, purpose decisions, before/after alternatives and remaining unknown visual facts. A clean crawler report is one input, not proof that the wording communicates the right thing.\n\n## Definition of done (QA checklist)\n\n- [ ] All scoped image placements have a purpose-based text-alternative decision.\n- [ ] Informative, decorative, functional and complex images are treated appropriately.\n- [ ] Descriptions match source facts without keyword stuffing or invented identity.\n- [ ] Actual served placements reflect authorized changes; media defaults alone are not the final check.\n- [ ] Coverage, deliberate empty alternatives and unresolved source facts are explicit.\n\n## Example(s)\n\n**Fictional teaching example — no alt text was changed.** Maple Cycle uses a brake photo beside instructions. The teaching alternative is “Brake pad worn close to its wear line,” if that is what the source photo truly shows.\n\nA repeated decorative chain pattern uses `alt=\"\"`. A logo that is the only link back home needs an accessible name such as “Maple Cycle home.” A four-step repair diagram has a short label plus the full steps in nearby text.\n\nWriting “bike repair shop best bike repair” on all four images would not help the reader understand their different roles.\n\n## Handoff and Content Factory context\n\nThe page/accessibility owner receives exact placement fixes and unresolved visual facts. [Check image provenance](https://local-service-spotlight.github.io/task-library/?task=ensure-no-stock-images-used#task-ensure-no-stock-images-used) handles source authenticity, which alt wording cannot establish.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publishing and when images, links or surrounding context change. A repeated file can need another review if its use changes.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify all images have descriptive alt text](https://local-service-spotlight.github.io/task-library/?task=verify-all-images-have-descriptive-alt-text#task-verify-all-images-have-descriptive-alt-text)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [W3C image text alternatives](https://www.w3.org/WAI/tutorials/images/decision-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real image content, supported builder behavior and accessible page evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "0a39862284f0ca0a53a073ecc5cc9c510b3b1d5f3e2db482f755fa3e0ada3f2c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "cd8b05aa21d38b44eb8f3027c1baae15a3c60c2665d7035ab0330ec2d874a6ae",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-all-images-have-descriptive-alt-text#task-verify-all-images-have-descriptive-alt-text",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0a39862284f0ca0a53a073ecc5cc9c510b3b1d5f3e2db482f755fa3e0ada3f2c",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "0a39862284f0ca0a53a073ecc5cc9c510b3b1d5f3e2db482f755fa3e0ada3f2c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0a39862284f0ca0a53a073ecc5cc9c510b3b1d5f3e2db482f755fa3e0ada3f2c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 168,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify all pages written in first person",
     "slug": "verify-all-pages-written-in-first-person",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Help a personal site sound like its owner. Keep quotes and formal bios in their proper voice.",
     "content": "---\nname: verify-all-pages-written-in-first-person\ndescription: \"Help a personal site sound like its owner. Keep quotes and formal bios in their proper voice.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify all pages written in first person\n\nYour personal site should sound like you. This guide helps you find copy that talks about you like a brochure. Start with the page’s purpose, so you do not rewrite a quote or formal bio by mistake.\n\n**The path:** Page role → Exact wording → Source-backed voice → Checked copy.\n\n**Use this when:** A personal-brand site’s editorial voice is being audited. A company site or a deliberately third-person executive bio needs its own stated voice decision.\n\n## Inputs\n- The scoped page inventory, site owner identity and agreed personal-brand voice.\n- Actual interviews, approved first-person statements and facts needed to support a rewrite.\n- A list of legitimate quoted, third-party, legal or executive-bio content and its owner-approved role.\n- Supported edit scope and a report for exact sentences, decisions and source references.\n\n## First-run prompt\n\n> Review the supplied personal-site pages, intended roles and real source statements. Find exact voice mismatches, preserve quotes and formal exceptions, and make authorized source-backed revisions with grade-5 openings. Report remaining proof or voice decisions without inventing the owner’s experience.\n\n## Steps\n1. Classify the site and page roles before checking pronouns. A personal editorial page normally speaks as “I” or “my”; a company may truthfully use “we.” A designated formal executive bio can intentionally remain third person.\n2. Read the home/about and every other page in scope silently. Search for the owner’s name and third-person constructions to find candidates, then read the surrounding passage. A pattern match is a lead, not a verdict.\n3. Separate the owner’s narrative from exact testimonials, press quotes, captions and third-party bios. Do not change another speaker’s quote into “I” or manufacture the owner’s speech.\n4. For a real voice mismatch, rewrite with the actual speaker’s facts and tone. Use a specific supported scene and useful lesson rather than a trophy-name resume paragraph. Changing “Alex has advised” to “I have advised” does not verify the claim.\n5. Check relationship words and praise under the maintained credibility rules. Keep unsupported friend/client/partner claims and anonymous praise HOLD. Source limits follow the content into repurposing; a voice edit does not make stronger claims true.\n6. Check the opening at grade 5 or below and explain the useful result in plain words. Keep internal confidence scores, production labels and repeated defensive caveats out of public copy, while preserving a necessary scoped compliance disclosure.\n7. Apply authorized exact-source edits. Preserve deliberate third-person exceptions with their reason in the internal report. Do not read media aloud or play a speaker’s clip through the user’s speakers to complete a voice review.\n8. Recheck the canonical page after saving. Record page-level results, exact changed sentences and remaining source/voice decisions; a search-engine query is not proof that every page has been read.\n\n## Definition of done (QA checklist)\n\n- [ ] The personal-brand or other intended voice is defined for each scoped page.\n- [ ] Exact quotes and legitimate formal/third-party exceptions are preserved.\n- [ ] First-person rewrites are source-supported and retain credibility/HOLD limits.\n- [ ] Openings meet the grade-5 rule and public copy avoids internal review theater.\n- [ ] Authorized changes are checked publicly with an exact scope and exception list.\n\n## Example(s)\n\n**Fictional teaching example — no copy was rewritten.** Alex’s personal about page says, “Alex helps riders take useful repair photos.” The supplied fictional interview contains the same point in Alex’s own words.\n\nThe teaching rewrite is “I help riders take clear photos so the shop can plan the next step.” A separate downloadable speaker bio remains “Alex teaches…” because its declared purpose is a formal third-person introduction. A customer’s exact quote stays in the customer’s voice.\n\nThe correct audit does not replace every occurrence of Alex’s name with “I.”\n\n## Handoff and Content Factory context\n\nThe content owner receives exact voice changes and exceptions. [Verify achievement evidence](https://local-service-spotlight.github.io/task-library/?task=verify-achievements-are-evidenced-not-just-claimed#task-verify-achievements-are-evidenced-not-just-claimed) checks the truth of claims that a pronoun edit cannot prove.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publication and after material copy changes. The default does not convert company sites or locked executive bios into personal first-person pages.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify all pages written in first person](https://local-service-spotlight.github.io/task-library/?task=verify-all-pages-written-in-first-person#task-verify-all-pages-written-in-first-person)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual approved voice, source statements and declared formal-bio exceptions require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f5cf8cb35c23c2a96579472a1eb0addfe5d12027581b5aaff72dac03719b9f27",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ea0dacb1a629b18b14ea7f83f85176dbda8b591d7283c308c5929f0121ab6807",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-all-pages-written-in-first-person#task-verify-all-pages-written-in-first-person",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f5cf8cb35c23c2a96579472a1eb0addfe5d12027581b5aaff72dac03719b9f27",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f5cf8cb35c23c2a96579472a1eb0addfe5d12027581b5aaff72dac03719b9f27"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f5cf8cb35c23c2a96579472a1eb0addfe5d12027581b5aaff72dac03719b9f27"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 169,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify at least one video embed on homepage",
     "slug": "verify-at-least-one-video-embed-on-homepage",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the real video on the home page. Make sure people can view it there and read its captions.",
     "content": "---\nname: verify-at-least-one-video-embed-on-homepage\ndescription: \"Check the real video on the home page. Make sure people can view it there and read its captions.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify at least one video embed on homepage\n\nA real video can help people meet the person behind the site. This guide helps you check that the player works on the page. Start with the right source video and keep all agent tests silent.\n\n**The path:** Real source → Actual player → Silent two-width check → Evidence.\n\n**Use this when:** A personal-brand home page is being checked for the owned real-video requirement. For another page role, use the agreed relevant source rather than assuming every site is one person’s brand.\n\n## Inputs\n- The canonical home page, actual source video and evidence that it features the intended owner or relevant approved representative.\n- The current embed/host settings and permission to embed the source, including a third-party host when that is legitimate.\n- Desktop and phone views plus a way to verify player mute and volume zero before playback.\n- Available caption track, supported page edit access and a place for player/layout evidence.\n\n## First-run prompt\n\n> Use the supplied home page and source video. Inspect autoplay first, verify an actual relevant embed at both viewports, and test playback only after mute and volume zero are proven. Apply authorized fixes and report source, captions, visible layout and actual playback evidence separately.\n\n## Steps\n1. Inspect the page source for autoplay before opening a player. Ensure agent previews cannot emit sound; if mute and volume zero cannot be controlled before playback, use captions, frames and metadata and leave playback untested.\n2. Locate the actual embedded player in the page body. A static thumbnail or link to another site is useful navigation but does not meet the in-page player requirement.\n3. Confirm the source video and its factual role from the approved inventory. Do not require that every valid source be uploaded to the owner’s own channel; an authorized third-party interview can be the correct source if embedding is permitted.\n4. Check that at least one relevant player is present and usable at 1440×860 and 390×844. Preserve the intended aspect ratio and a useful first-screen visual; the player need not displace an existing good lead photo.\n5. For YouTube, apply [captions by default](https://local-service-spotlight.github.io/task-library/?task=enable-youtube-captions-by-default#task-enable-youtube-captions-by-default) through the supported embed. Use the page’s caption language and disable first-load autoplay. Caption preferences do not create missing captions; rel=0 restricts related videos to the same channel rather than removing them all.\n6. When verified muted playback is possible and in scope, start the player briefly on each viewport, confirm time advances and no blocking error appears, then stop it. Record player error codes or source restrictions rather than attributing every unrelated console warning to the embed.\n7. Check actual captions for availability and useful visible text without claiming a full transcript/audio review from a short silent test. Repair authorized source/embed/caption settings; missing source-owner permission or captions gets a concrete handoff.\n8. Recheck the normal canonical page after changes and save source ID, location, viewport, mute state, caption result and playback scope. A poster loaded or a player script present alone is not verified playback.\n\n## Definition of done (QA checklist)\n\n- [ ] At least one actual in-page player uses the intended legitimate source for this page role.\n- [ ] Desktop and phone layout fit and first-load autoplay is disabled.\n- [ ] Any playback was muted at volume zero before start; unavailable control leaves playback untested.\n- [ ] Captions are actually available or a precise caption gap remains.\n- [ ] Loaded, playable, source-verified and fully reviewed are distinct evidence states.\n\n## Example(s)\n\n**Fictional teaching example — no video was played.** Maple Cycle’s page has a picture with a play triangle that opens YouTube in another tab. It also has an interview player farther down the page, but the phone layout hides it.\n\nThe picture does not count as an embed. The teaching fix restores the real interview player in the phone layout and checks its legitimate source, captions and silent playback controls. If the tester cannot verify mute before start, the report says “player visible; playback untested,” not “video works.”\n\n## Handoff and Content Factory context\n\nThe page owner receives the player evidence. [Embed the source video](https://local-service-spotlight.github.io/task-library/?task=step-10-embed-source-video#task-step-10-embed-source-video) handles a missing/incorrect player, while the source owner supplies any required caption or embedding permission.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and when the source, visibility, player or layout changes. A recurring check needs an actual configured owner and cadence; no silent failure monitor is created by this file.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify at least one video embed on homepage](https://local-service-spotlight.github.io/task-library/?task=verify-at-least-one-video-embed-on-homepage#task-verify-at-least-one-video-embed-on-homepage)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [YouTube player parameters](https://developers.google.com/youtube/player_parameters)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual player controls, source rights, caption availability and rendered playback evidence require the page.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "503aab89f024687c03281be934180a4a5e8a0f6c97180a6689829814a6700e6c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9d399b4c53b0edcea5559c408b9c0d95f8dad82d36c13f2aeed613ddd167ab67",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-at-least-one-video-embed-on-homepage#task-verify-at-least-one-video-embed-on-homepage",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "503aab89f024687c03281be934180a4a5e8a0f6c97180a6689829814a6700e6c",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "503aab89f024687c03281be934180a4a5e8a0f6c97180a6689829814a6700e6c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "503aab89f024687c03281be934180a4a5e8a0f6c97180a6689829814a6700e6c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 170,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify email opt-in form exists and works",
     "slug": "verify-email-opt-in-form-exists-and-works",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that a sign-up form does what it promises. Trace a test from the page to the right inbox.",
     "content": "---\nname: verify-email-opt-in-form-exists-and-works\ndescription: \"Check that a sign-up form does what it promises. Trace a test from the page to the right inbox.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify email opt-in form exists and works\n\nA sign-up box should do more than show a success message. This guide helps you check that the right list and promised email receive a test. Start with the real form, its offer and a test inbox you control.\n\n**The path:** Offer and form → Authorized test → List and email evidence → Exact result.\n\n**Use this when:** A site’s agreed email-sign-up offer needs an end-to-end test before launch or after a relevant change.\n\n## Inputs\n- The scoped form placements and actual promised outcome, including whether an opt-in is part of this site’s plan.\n- The connected email platform/list, supported form settings, relevant access and exact designated test receiver.\n- Existing authority for the test submission and its expected downstream messages; the duplicate/cleanup plan for test records.\n- The actual offered file/link, expected notifications and current consent/confirmation flow.\n\n## First-run prompt\n\n> Review the supplied form, offer, platform and test plan. Complete already-authorized tests on desktop and phone, verify list/confirmation/message states separately, and fix scoped faults. Return exact evidence and remaining access or delivery issues without exposing private addresses or creating duplicate tests.\n\n## Steps\n1. List every distinct form and placement in scope, including mobile-only versions. If the approved site plan has no email opt-in, record the product decision rather than creating a form to satisfy an old universal checklist.\n2. Read the promise and current flow. Record the expected list, confirmation step, owner notification if configured, and lead-magnet delivery. Do not assume every form uses immediate single opt-in or must send an owner notification.\n3. Check the page layout, labels, validation and privacy/consent text. Verify the actual connected destination in the supported settings before a live test. If the job is read-only, complete those checks and leave submission/delivery explicitly untested.\n4. For an authorized end-to-end test, use the designated controlled address and a recognizable test reference. Confirm no other worker has just submitted the same test. Submit once from the specified desktop flow and record its actual success/error state.\n5. Read back the platform record and its exact subscription state. A pending double-opt-in contact is not an active subscriber until the intended confirmation is completed. Keep API/form success separate from the actual list record.\n6. Check the test inbox for the promised message, working resource link and any configured owner notification. Record delay, bounce, spam placement or missing delivery. Do not call dispatch or a thank-you screen delivered email.\n7. Repeat the required phone flow with a planned separate test identity or the platform’s known existing-contact behavior, so duplicate suppression does not look like a new delivery failure. Fix already-authorized settings and re-test the changed step without flooding the list.\n8. Record each placement/flow result, actual recipient/list evidence, checked time and test-record cleanup under the existing plan. Any follow-up timer or cleanup send must be part of that plan; do not unsubscribe or remove a real customer.\n\n## Definition of done (QA checklist)\n\n- [ ] The actual offer and expected form flow are stated, with no invented universal opt-in requirement.\n- [ ] Each in-scope test distinguishes page success, platform record, confirmation state and delivered message.\n- [ ] Desktop and phone evidence use a controlled duplicate-aware test plan.\n- [ ] Failures, spam placement and missing access remain specific, not passed by a screenshot of the form.\n- [ ] Test identities and cleanup stay within authorized scope and public reports contain no private recipient data.\n\n## Example(s)\n\n**Fictional teaching example — no form was submitted.** Maple Cycle offers a photo checklist. Its sample flow requires the user to confirm an email address before receiving the file.\n\nThe page says success and the platform shows “pending confirmation.” That is the expected intermediate state. After the controlled test inbox receives the confirmation and the authorized tester confirms it, the subscriber becomes active and the checklist message should arrive.\n\nIf the checklist is missing, the task remains partial even though the form and list record worked. The report names the failed delivery step instead of adding repeated test subscribers.\n\n## Handoff and Content Factory context\n\nThe form/email owner receives the exact failed step and test reference. [Check the offer preview](https://local-service-spotlight.github.io/task-library/?task=check-lead-magnet-section-has-visual-mockup#task-check-lead-magnet-section-has-visual-mockup) is a companion visual check, not proof of delivery.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after form, list or delivery-flow changes. A recurring submission test needs a configured cadence, controlled identity and cleanup plan; this guide does not start perpetual live sign-ups.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify email opt-in form exists and works](https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual platform settings, test authority/receiver, delivered messages and cleanup state require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "8bfcdbad5113bb7308c7728e5aef2ba53e54edf82202b625e88be443aee3da36",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0914961f30d39d8d0bed2a92ae8afb2cb02e2ff2cfbc1e4c688dfd5d19054552",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "8bfcdbad5113bb7308c7728e5aef2ba53e54edf82202b625e88be443aee3da36",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "8bfcdbad5113bb7308c7728e5aef2ba53e54edf82202b625e88be443aee3da36"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "8bfcdbad5113bb7308c7728e5aef2ba53e54edf82202b625e88be443aee3da36"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 171,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify entity linking follows decision tree",
     "slug": "verify-entity-linking-follows-decision-tree",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Send readers to the right source for each name or idea. Keep each topic tied to its main guide.",
     "content": "---\nname: verify-entity-linking-follows-decision-tree\ndescription: \"Send readers to the right source for each name or idea. Keep each topic tied to its main guide.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify entity linking follows decision tree\n\nA useful link should take readers where they expect to go. This guide helps you check links for people, firms and ideas. Start with the site’s trusted topic map, then read the target page.\n\n**The path:** Mention and purpose → Verified owner → Exact target → Public recheck.\n\n**Use this when:** A page set needs its first-mention links checked against the maintained entity decision tree.\n\n## Inputs\n- The full scoped body-link inventory with page, anchor text, destination and surrounding sentence.\n- The maintained [entity-linking guide](https://blitzmetrics.com/entity-linking/) and verified person/network-company destinations.\n- The [SEO Tree](https://blitzmetrics.com/seo-tree/) map of maintained owned explainers and current canonical URLs.\n- Supported edit scope and a tracker for missing owned guides or unresolved identities.\n\n## First-run prompt\n\n> Use the supplied page set, current entity decision tree and owned topic map. Classify each link’s purpose, preserve exact primary-proof/action links, and fix authorized first-mention routes. Verify canonical targets and return precise missing-guide or identity gaps.\n\n## Steps\n1. Read each linked mention in context. Identify whether it names a person, a network organization, an outside tool/entity, a concept, or a specific proof/action destination. A string alone does not reveal the link’s purpose.\n2. For a person, use the verified personal entity home. For an organization in our network, use its verified entity home. Do not invent a domain from a name or treat a similar search result as identity proof.\n3. For a BlitzMetrics concept, choose its one maintained canonical guide. For an outside tool, concept or well-known entity used as an explanation, link the first meaningful mention to our maintained guide when it exists. If it does not, leave plain text and record the real guide gap.\n4. Keep direct external links when the exact destination supplies primary evidence or a needed sign-in, installation or download action. Label that purpose clearly. Replacing a necessary download with a generic owned article can break the task just as indiscriminate outbound explanations weaken the tree.\n5. Read the selected target and resolve its canonical URL and any #anchor. Confirm it teaches the same topic or establishes the named identity. Do not route to a competing duplicate, unrelated support story or empty task search.\n6. Use the actual entity name or a short descriptive phrase as the anchor. Link the first meaningful body mention rather than every occurrence. Three to six words is a useful house preference, not a reason to distort a person’s two-word name.\n7. Apply the authorized exact-source changes. Preserve necessary proof and action links, and give missing owned destinations a named owner rather than creating an unreviewed rival hub.\n8. Recheck changed links on the normal canonical pages and save the internal routing table with scope, purposes, targets, exceptions and remaining gaps. Do not claim rankings or full-site routing coverage from a sample.\n\n## Definition of done (QA checklist)\n\n- [ ] People, network organizations and owned concepts use their verified canonical destinations.\n- [ ] Outside explanatory mentions use the maintained owned guide or a recorded gap.\n- [ ] Precise external proof and execution links retain their actual purpose.\n- [ ] First-mention anchors are descriptive and resolve correctly, including fragments.\n- [ ] Scope, unresolved identity and missing guide work are recorded without inventing routes.\n\n## Example(s)\n\n**Fictional teaching example — no link was changed.** Maple Cycle’s article explains how a video becomes a guide. The first explanatory mention of an editing tool points to the maintained owned training when one exists. A later “Download the editor” step may still need the provider’s real download page.\n\nThe founder’s name links to the verified personal home, while the business name links to Maple Cycle’s verified company home. An unmapped concept remains plain text with an internal guide request; it does not get an invented `/best-guide/` target.\n\n## Handoff and Content Factory context\n\nThe content owner receives the accepted routing table. [Follow the canonical entity decision tree](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) owns the policy; [Check broken targets](https://local-service-spotlight.github.io/task-library/?task=check-for-broken-links#task-check-for-broken-links) verifies destination failures separately.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publication and when named entities, guide owners or URLs change. A reused mapping must be checked against the current source rather than assumed remembered by a model.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify entity linking follows decision tree](https://local-service-spotlight.github.io/task-library/?task=verify-entity-linking-follows-decision-tree#task-verify-entity-linking-follows-decision-tree)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Current owned entity decision tree](https://blitzmetrics.com/entity-linking/)\n- [SEO Tree](https://blitzmetrics.com/seo-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual verified entity map and any missing maintained owned guide remain project-specific.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7c488f877e5bae8c9db4ad32b597252ba97cd526791a0ad76b3629526c8e7823",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2c172ad9bd974103132dd0e50d7ae0db91f01e03c098b7c17d3e0d80c0a2ba68",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-entity-linking-follows-decision-tree#task-verify-entity-linking-follows-decision-tree",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7c488f877e5bae8c9db4ad32b597252ba97cd526791a0ad76b3629526c8e7823",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7c488f877e5bae8c9db4ad32b597252ba97cd526791a0ad76b3629526c8e7823"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7c488f877e5bae8c9db4ad32b597252ba97cd526791a0ad76b3629526c8e7823"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 172,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify featured images unique per blog post",
     "slug": "verify-featured-images-unique-per-blog-post",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Give each post its own clear image. Find blank cards and covers that all look the same.",
     "content": "---\nname: verify-featured-images-unique-per-blog-post\ndescription: \"Give each post its own clear image. Find blank cards and covers that all look the same.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify featured images unique per blog post\n\nA row of the same picture makes posts hard to tell apart. This guide helps you give each post a useful cover. Start with the full post list and the images readers really see.\n\n**The path:** Post list → Asset and archive map → Relevant cover → Canonical check.\n\n**Use this when:** A blog/archive or new post batch needs its featured images checked under the owned editorial standard.\n\n## Inputs\n- The exact published post inventory and archive/card templates in scope.\n- Featured-media settings or equivalent supported cover source, actual image files and their provenance.\n- Approved real photos, source screenshots or meaningful accurate diagrams tied to each post.\n- Supported edit access and a post-to-asset report with actual public placement evidence.\n\n## First-run prompt\n\n> Map the supplied posts to their actual cover sources and visible cards. Identify missing or repeated visuals, choose truthful relevant assets within scope, and verify canonical desktop/phone layouts. Return the post-to-asset table and any real source requests or reviewed exceptions.\n\n## Steps\n1. Join the published post list with its stored featured-media ID/URL and live archive card. Record where the theme intentionally uses another supported cover source; a missing WP featured-media field alone does not prove the public card is blank.\n2. Inspect the archive grid and individual post pages on desktop and phone. Identify missing covers, unrelated fallbacks and visual repeats that obscure the topics.\n3. Compare distinct files and visual content, not only file names. Different IDs or crops can still reuse the same underlying picture. The same source frame with a new filename is not a genuinely distinct proof asset.\n4. Apply the house standard of a useful article-specific cover. Prefer real relevant photos or approved accurate visuals. A process diagram can be appropriate; the no-stock proof rule does not require an invented photo when the article explains a method.\n5. For each missing or repeated cover, choose an actual relevant asset or write an exact source request. Do not distort a real scene, label it as another job or claim search results must show the chosen cover.\n6. Set the authorized cover through the correct source, preserving existing body media and canonical URL. Check crop, focal subject, aspect ratio and accessible text in the actual template.\n7. Verify the normal archive and post after saving, plus the served social-image setting if it is in scope. Archive cover, body lead image and social preview can be different fields; record their actual relationship instead of assuming one edit changes all three.\n8. Save each post’s final asset, source/rights, visual-distinctness result and remaining exceptions. A permitted special-case reuse needs an explicit editorial reason; do not silently pass a wall of defaults.\n\n## Definition of done (QA checklist)\n\n- [ ] The full scoped post inventory is mapped to stored and visibly served covers.\n- [ ] Article covers are relevant and visually distinct under the house standard or have an explicit reviewed exception.\n- [ ] Assets retain truthful provenance and appropriate rights.\n- [ ] Desktop/phone crops and canonical archive/post rendering are checked after edits.\n- [ ] Social/search preview outcomes are not inferred from a featured-media ID.\n\n## Example(s)\n\n**Fictional teaching example — no cover image was assigned.** Maple Cycle has three posts about quote photos, worn brake pads and preparing for a visit. Each currently uses the same shop-logo card.\n\nThe teaching plan uses an approved quote-photo example, a real brake close-up and a useful preparation checklist diagram. Copying the logo into three new filenames would not make the covers meaningfully distinct. The reviewer checks each actual archive crop after assignment rather than only inspecting the media-library IDs.\n\n## Handoff and Content Factory context\n\nThe editor receives the cover map. [Prepare article photos and featured media](https://local-service-spotlight.github.io/task-library/?task=step-8-add-photos-and-featured-image#task-step-8-add-photos-and-featured-image) supplies missing article assets; [Check home-page article cards](https://local-service-spotlight.github.io/task-library/?task=add-homepage-blog-card-thumbnails#task-add-homepage-blog-card-thumbnails) covers a separate home-page module.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for a new post batch and after archive or cover-source changes. No media generation, upload or continuing scheduler is automatically installed.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify featured images unique per blog post](https://local-service-spotlight.github.io/task-library/?task=verify-featured-images-unique-per-blog-post#task-verify-featured-images-unique-per-blog-post)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual post inventory, cover-source mapping and approved replacement assets require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "21afe4eec3ac99b634d34804128fd4653dd12dc6094d9ea54ab19cb3a7b6c3f8",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f65c5966d13dbb2606df1231f1d5487ea57b8fd187996d24db9d79d89454dd99",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-featured-images-unique-per-blog-post#task-verify-featured-images-unique-per-blog-post",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "21afe4eec3ac99b634d34804128fd4653dd12dc6094d9ea54ab19cb3a7b6c3f8",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "21afe4eec3ac99b634d34804128fd4653dd12dc6094d9ea54ab19cb3a7b6c3f8"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "21afe4eec3ac99b634d34804128fd4653dd12dc6094d9ea54ab19cb3a7b6c3f8"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 173,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify footer includes social links and secondary nav",
     "slug": "verify-footer-includes-social-links-and-secondary-nav",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Give readers useful links at the end of a page. Check the footer on a phone and a large screen.",
     "content": "---\nname: verify-footer-includes-social-links-and-secondary-nav\ndescription: \"Give readers useful links at the end of a page. Check the footer on a phone and a large screen.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify footer includes social links and secondary nav\n\nPeople who reach the end of a page still need a next step. This guide helps you check the links in the footer. Start with the pages and public profiles your visitors should be able to find.\n\n**The path:** Expected destinations → Template coverage → Link and phone checks → Verified footer.\n\n**Use this when:** A site launch, footer redesign or navigation audit needs its shared footer reviewed.\n\n## Inputs\n- The canonical site, known page templates and any deliberately distinct landing-page footers.\n- The actual key pages and approved public-profile inventory, with person/company identity.\n- Desktop/phone views, supported menu/theme/builder access and authorized changes.\n- A footer map recording templates, link text, exact destinations and justified exceptions.\n\n## First-run prompt\n\n> Use the supplied template and destination map. Check the footer’s real links, labels and desktop/phone layout on each template, make authorized shared-source fixes, and return exact coverage and exceptions without inventing pages or profile identities.\n\n## Steps\n1. List the site’s useful secondary destinations, such as about, services, articles and contact, plus applicable existing policy links. Do not create a nonexistent service page or legal text simply because a generic checklist names it.\n2. Inspect the footer on the home page and representative examples of every actual template. Record intentional landing-page differences rather than assuming one home-page check covers all pages.\n3. Check that navigation labels and social links are visible and understandable. Use meaningful accessible names for icons, and separate the person’s public profile from the company’s where both are shown.\n4. Read each ordinary target and confirm the intended canonical page/profile. Check named anchors and redirects. Do not place calls, send messages or follow accounts merely to test a footer link.\n5. Review the relevant identity map without forcing every footer profile into one Person sameAs array. A company footer destination can belong to an Organization node while remaining a useful navigation link.\n6. Repeat at 1440×860 and 390×844 after scrolling to the footer. Check wrapping, tap usability, collapsed sections and overlaps with sticky banners. Record which template and width fail.\n7. Repair authorized menu, label or layout issues through the supported shared source, and check for effects on all affected templates. Preserve intentional variations and unrelated site settings.\n8. Reopen normal canonical pages and save per-template results with exact remaining link or layout gaps. One shared menu definition does not prove every template actually renders it.\n\n## Definition of done (QA checklist)\n\n- [ ] Applicable key destinations and approved public profiles are easy to find in the actual footer.\n- [ ] Each checked link resolves to the right page or entity, with limitations stated.\n- [ ] Every known template is represented or explicitly untested.\n- [ ] Desktop/phone wrapping and controls work without overflow or overlays.\n- [ ] Intentional exceptions and authorized changes are documented and publicly rechecked.\n\n## Example(s)\n\n**Fictional teaching example — no footer was changed.** Maple Cycle’s home and article templates share one footer, but its quote landing page uses another. The home footer works on a phone; the landing footer hides the contact link under a sticky bar.\n\nThe audit records a landing-template phone failure instead of passing the whole site from the home page. The teaching fix adjusts that supported footer’s spacing and rechecks it. The company social link remains labeled as the company, not inserted into the founder’s personal identity array.\n\n## Handoff and Content Factory context\n\nThe site owner receives the template/link map. [Review public profile links](https://local-service-spotlight.github.io/task-library/?task=check-social-profiles-linked-and-prominent#task-check-social-profiles-linked-and-prominent) verifies broader profile discovery; [Check broken destinations](https://local-service-spotlight.github.io/task-library/?task=check-for-broken-links#task-check-for-broken-links) can supply current response evidence.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after shared menu, template or destination changes. Recurrence uses an actual defined site review, not a model’s assumed memory.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify footer includes social links and secondary nav](https://local-service-spotlight.github.io/task-library/?task=verify-footer-includes-social-links-and-secondary-nav#task-verify-footer-includes-social-links-and-secondary-nav)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Entity linking](https://blitzmetrics.com/entity-linking/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual template inventory and approved navigation/profile destinations require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7e6d3e40363be083c4f255fe9b264db1257f5e7f6d83a3551fe590929f12de34",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "212ff8738fb8b2f344f26c380685f98665f5988ef94d789f085672e7cca2f502",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-footer-includes-social-links-and-secondary-nav#task-verify-footer-includes-social-links-and-secondary-nav",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7e6d3e40363be083c4f255fe9b264db1257f5e7f6d83a3551fe590929f12de34",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7e6d3e40363be083c4f255fe9b264db1257f5e7f6d83a3551fe590929f12de34"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7e6d3e40363be083c4f255fe9b264db1257f5e7f6d83a3551fe590929f12de34"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 174,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify GA4 configured with internal traffic filtered",
     "slug": "verify-ga4-configured-with-internal-traffic-filtered",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Keep team visits from skewing site reports. Check the right data source and test the filter with care.",
     "content": "---\nname: verify-ga4-configured-with-internal-traffic-filtered\ndescription: \"Keep team visits from skewing site reports. Check the right data source and test the filter with care.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify GA4 configured with internal traffic filtered\n\nYour own visits can change the numbers in a site report. This guide helps you check how team traffic is marked and kept out. Start with the right account and the real rule the team uses.\n\n**The path:** Right property → Real events → Tested internal rule → Verified report state.\n\n**Use this when:** A site’s Google Analytics 4 measurement and internal-traffic treatment need verification. GA4 is the site’s visitor/event reporting tool.\n\n## Inputs\n- The canonical site, expected GA4 property/web stream and measurement IDs from the actual measurement plan.\n- Read access for checks and appropriate Editor access for authorized filter changes; supported tag/container configuration access as needed.\n- Approved current internal network definitions and controlled internal/external test sessions, kept in the private project record.\n- Existing filter state, event/consent requirements, change scope and a dated before-state snapshot.\n\n## First-run prompt\n\n> Use the supplied measurement plan, GA4 access and authorized filter scope. Verify actual event destinations and internal/external classification, preserve Testing until the real evidence supports an authorized activation, and return exact state and gaps without exposing private networks or bypassing consent.\n\n## Steps\n1. Confirm the intended property and stream IDs against the project plan and served implementation. Multiple streams or a multi-domain setup can be legitimate; investigate unexpected duplicate event delivery rather than enforcing exactly one web stream per property.\n2. Trace an authorized controlled visit to an actual received event using the supported tools. Record the page, consent state, measurement destination and timestamp. A tag found in HTML or fired in a preview does not alone prove that this property received the event.\n3. Inspect the actual internal-traffic rule and its traffic_type value. Check relevant current IPv4/IPv6 ranges or the approved alternative classification method. A home/office IP list will not automatically cover travel, changed networks or every remote team member.\n4. Record whether the data filter is Testing, Active or Inactive. For a new or changed rule, use the documented Testing state to verify classification before an authorized activation. Active exclusions permanently remove matching incoming data from processing; they do not clean old reports.\n5. Use controlled internal and external sessions to check the intended classification. In Testing, the Test data filter name dimension in an exploration provides evidence while retaining the data. Allow documented processing delay; immediate absence in Realtime alone cannot prove a correct exclusion.\n6. If activation is part of the already-authorized measurement change and the test demonstrates the correct scope, apply it and record the exact filter state. Otherwise keep the tested/pending state truthful; do not activate merely to make the checklist green.\n7. Check the continuing expected external event flow and any observed internal behavior with timestamps and consent context. DebugView can be affected by privacy/consent settings; do not disable those controls to force an event through. Label delayed or unavailable evidence as pending.\n8. Save configuration and test evidence privately, then report coverage and remaining gaps without exposing team IPs or personal test data. Recheck authorized changes using actual received/report evidence rather than a missing dot in Realtime.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended property/stream and actual received events are identified without a false one-stream requirement.\n- [ ] Internal rules match the real approved network/classification scope and unknown coverage is stated.\n- [ ] Testing and Active are separate states; permanent exclusions are activated only within the actual authorized change after evidence.\n- [ ] Internal/external test evidence and processing delay are recorded without using absence alone as proof.\n- [ ] Consent controls and private team/network details are preserved.\n\n## Example(s)\n\n**Fictional teaching example — no Analytics account was changed.** Maple Cycle’s team works from an office and a changing mobile hotspot. The sample rule covers the office network only.\n\nA controlled office session receives the test-filter label in the expected exploration; an external session does not. The hotspot coverage remains unknown until its approved classification is defined. That result supports the office rule, not a claim that all team visits are excluded.\n\nIf the filter is still Testing, the report says so. A zero in Realtime is not enough reason to activate permanent exclusion or claim the old reports were cleaned.\n\n## Handoff and Content Factory context\n\nThe measurement owner receives private configuration evidence and remaining classification work. [Verify the tag container](https://local-service-spotlight.github.io/task-library/?task=verify-gtm-installed-and-firing-on-every-page#task-verify-gtm-installed-and-firing-on-every-page) is relevant if GTM actually delivers these tags; direct supported Google-tag setups are not automatically failures.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at initial measurement QA and after relevant stream, tag, consent, filter or team-network changes. Repeated work needs a defined state source and actual trigger; no automatic IP-change detection is promised.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify GA4 configured with internal traffic filtered](https://local-service-spotlight.github.io/task-library/?task=verify-ga4-configured-with-internal-traffic-filtered#task-verify-ga4-configured-with-internal-traffic-filtered)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google Analytics internal-traffic filters](https://support.google.com/analytics/answer/10104470?hl=en)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual account access, approved internal classification, activation scope and received/report evidence require the project.",
     "importance": 5,
     "freq": 4,
     "revenue": 4,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "63febbf0159b7388edb43c6659585cea5b4f9b394eb29381219df9dc7411c774",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d5dfb57d241a64d7031f8b0851a4baa2739bf64299a53cdaa6a6f7ecbca54989",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-ga4-configured-with-internal-traffic-filtered#task-verify-ga4-configured-with-internal-traffic-filtered",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "63febbf0159b7388edb43c6659585cea5b4f9b394eb29381219df9dc7411c774",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "63febbf0159b7388edb43c6659585cea5b4f9b394eb29381219df9dc7411c774"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "63febbf0159b7388edb43c6659585cea5b4f9b394eb29381219df9dc7411c774"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 66,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify Google Business Profile is verified",
     "slug": "verify-google-business-profile-is-verified",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check your firm’s profile. Find out who owns it and if the public facts are right.",
     "content": "---\nname: verify-google-business-profile-is-verified\ndescription: \"Check your firm’s profile. Find out who owns it and if the public facts are right.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify Google Business Profile is verified\n\nYour firm’s profile should show the right facts. This guide helps you check its status and who can edit it. Start with the exact page and the right account.\n\n**The path:** Exact profile → Account status → Public facts → Specific next owner.\n\n**Use this when:** An eligible business’s Google Business Profile needs its verification, control and public details audited.\n\n## Inputs\n- The exact Business Profile ID/link, site URL and known business identity from the project.\n- Authorized manager/owner access or a current trustworthy account-status receipt; the business-controlled primary owner record.\n- The actual name, contact details, operating status, category and storefront/service-area model.\n- The existing scope for any profile edit or verification action and a private evidence log.\n\n## First-run prompt\n\n> Inspect the supplied exact Business Profile using authorized access. Record verification, owner/control and public-fact consistency separately, preserve address privacy and real operating state, and complete only the profile actions already in scope. Return the actual pending owner or Google review step without promising ranking.\n\n## Steps\n1. Confirm this is an eligible actual business and the correct profile, not a duplicate or similarly named listing. A personal online brand without an eligible local business should not get a fictional address or new listing to satisfy the check.\n2. Open the exact managed profile through the authorized account and inspect its current status. Record verified, verification pending, needs verification, suspended or unavailable exactly as observed. Public Search/Maps visibility alone does not establish account verification or control.\n3. Inspect the owner/manager roles available to this account. Confirm the business’s intended primary owner and flag an old agency or unknown owner for a separate ownership resolution. Do not transfer ownership or remove managers during a read-only status audit.\n4. Compare the public listing with the actual site/business record: website destination, name, phone, category and operating state. Check factual consistency, not meaningless punctuation equality. A legitimate temporarily closed state should not be “fixed” to open without current business evidence.\n5. Respect the actual service-area/storefront policy. Do not expose a home or hidden service-area address simply to make a footer and listing match. Record the approved public contact details and any policy/identity question for the owner.\n6. If a verification action is already in scope, follow only the methods Google actually offers for this profile. Submitted evidence, pending review and a received verified confirmation are different states. The method and approval timing are not guaranteed by the guide.\n7. Check the actual public profile and website link separately after any authorized changes. A verified account does not guarantee a map-pack rank, Knowledge Panel appearance or visibility for every query.\n8. Save status, role and public-fact evidence with timestamps, redact private account details in public summaries, and hand off the exact pending verification/control issue. Do not call a submitted request complete before confirmation.\n\n## Definition of done (QA checklist)\n\n- [ ] The exact eligible business/profile and observed account status are recorded.\n- [ ] Business control and primary-owner intent have evidence or a precise access gap.\n- [ ] Public facts match the real business without exposing intentionally hidden addresses.\n- [ ] Verification submitted, approved and publicly observed are distinct states.\n- [ ] No ranking, ownership transfer or automatic verification outcome is invented.\n\n## Example(s)\n\n**Fictional teaching example — no Business Profile was opened.** Maple Cycle appears in Maps, but the available management record still says verification pending. The agency has manager access; the business owner retains primary ownership.\n\nThe report says “public listing visible; verification pending; business control confirmed from current roles.” It does not infer verified status from the Maps result. For a separate mobile repair business, a correctly hidden service-area address would remain hidden rather than being copied into the public footer.\n\n## Handoff and Content Factory context\n\nThe business/profile owner receives any exact access, ownership or verification issue. [Check schema profile links](https://local-service-spotlight.github.io/task-library/?task=check-schema-connects-to-all-verified-profiles#task-check-schema-connects-to-all-verified-profiles) follows only after the correct public identity destination is established.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after relevant identity, account-control or status changes. Continued monitoring requires a real defined job; verification is not guaranteed to remain unchanged forever.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify Google Business Profile is verified](https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile-is-verified#task-verify-google-business-profile-is-verified)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google Business Profile verification](https://support.google.com/business/answer/7107242?hl=en)\n- [Google business representation rules](https://support.google.com/business/answer/3038177?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual manager status, business-controlled ownership evidence and any Google verification outcome require the real profile.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "d895e2ac9f3bb39167aaf3017d67b71a42fafdae378a35342deb43c78d40df40",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0153e2915d034fc7d56ad355018c5e7df034a7f91a0e5c51896260abc4508afa",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile-is-verified#task-verify-google-business-profile-is-verified",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d895e2ac9f3bb39167aaf3017d67b71a42fafdae378a35342deb43c78d40df40",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d895e2ac9f3bb39167aaf3017d67b71a42fafdae378a35342deb43c78d40df40"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d895e2ac9f3bb39167aaf3017d67b71a42fafdae378a35342deb43c78d40df40"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 175,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify GTM installed and firing on every page",
     "slug": "verify-gtm-installed-and-firing-on-every-page",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that the site loads the right tag tool. Then check the tags and where their data goes.",
     "content": "---\nname: verify-gtm-installed-and-firing-on-every-page\ndescription: \"Check that the site loads the right tag tool. Then check the tags and where their data goes.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify GTM installed and firing on every page\n\nA code snippet alone does not prove your site reports visits. This guide helps you check the tag tool and the data it sends. Start with the real tracking plan and the pages it covers.\n\n**The path:** Expected container → Loaded code → Intended tag events → Real destination evidence.\n\n**Use this when:** A site that uses Google Tag Manager needs its installation and intended tag behavior audited. GTM loads configured tags according to their triggers and consent rules.\n\n## Inputs\n- The exact site/page inventory, expected web-container IDs and intended measurement plan.\n- Authorized read access to the relevant GTM container/version plus supported page and tag tools.\n- The actual required tags, triggers, consent behavior and downstream destination IDs.\n- A scope for repairs, publication and test interactions, plus a record of source and live versions.\n\n## First-run prompt\n\n> Use the supplied tracking plan, container and page inventory. Check source presence, actual container load, intended tag behavior and downstream evidence separately. Preserve consent and version boundaries, complete already-authorized fixes/publication, and return exact coverage and remaining test gaps.\n\n## Steps\n1. Confirm the actual architecture and expected container. A site may use a direct Google tag or another supported setup; missing GTM is not automatically a failure when the measurement plan does not require it. Do not install a new container just to satisfy this task label.\n2. Reconcile the scoped published page list with crawl coverage. Inspect expected web snippets and IDs in the normal served source, using the supported integration. For a standard web container, the documented script belongs high in head and the noscript fallback after the opening body.\n3. Check the running page with Tag Assistant or supported diagnostics. Record container loading separately from source presence. A static fetch that finds GTM- text does not prove a browser loaded the container.\n4. Inspect each intended tag’s trigger and consent condition. Run only the test interactions already in scope and record fired/not-fired reasons. A lead tag should not be forced to fire on every page load; a legitimate consent block is not an instruction to bypass consent.\n5. Distinguish preview from normal live delivery. GTM Preview may run an unpublished draft. Record the previewed version and check the actual published configuration used by a normal visitor before claiming production behavior.\n6. Look for unintended duplicate installations or events. Exactly one expected path is a useful simple-site design, but multiple intentionally documented containers are not automatically wrong. Follow the real architecture and avoid removing another valid owner’s tag.\n7. Where the job includes end-to-end measurement, verify the intended destination received the controlled event with matching context. Container loaded, tag fired and destination received are three separate evidence fields.\n8. Repair authorized exact-source/tag issues, publish only when that change is already in scope, and recheck normal canonical pages and relevant destinations. Report page coverage and every remaining unknown instead of saying every downstream tag works because GTM is present.\n\n## Definition of done (QA checklist)\n\n- [ ] The actual required architecture, IDs and page coverage are documented.\n- [ ] Snippet presence, container load, tag firing and destination receipt are separate checks.\n- [ ] Preview success is not mistaken for the published normal-visitor result.\n- [ ] Trigger/consent rules and intentional multi-container designs are preserved.\n- [ ] Authorized changes have actual canonical/version evidence; untested pages/events remain explicit.\n\n## Example(s)\n\n**Fictional teaching example — no tag was executed.** Maple Cycle’s source contains the expected GTM ID, and the browser loads that container. In Preview, a new quote event fires, but the normal published version does not contain it yet.\n\nThe installation check can pass while the new event remains preview-only. The report still needs an authorized published version and actual receiver evidence before claiming the new quote event works live. It must not generate a fake customer quote just to make an event appear.\n\n## Handoff and Content Factory context\n\nThe measurement owner receives the page/version/tag map. [Verify GA4 receipt and internal-traffic treatment](https://local-service-spotlight.github.io/task-library/?task=verify-ga4-configured-with-internal-traffic-filtered#task-verify-ga4-configured-with-internal-traffic-filtered) handles the Analytics-specific destination checks; other tags use their own scoped tests.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at installation and after relevant templates, container versions, triggers or consent rules change. Repeated checks need an actual configured job and stored version map, not guaranteed model persistence.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify GTM installed and firing on every page](https://local-service-spotlight.github.io/task-library/?task=verify-gtm-installed-and-firing-on-every-page#task-verify-gtm-installed-and-firing-on-every-page)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google Tag Manager web-container installation](https://support.google.com/tagmanager/answer/14847097?hl=en-AU)\n- [Google Tag Manager preview and debug](https://support.google.com/tagmanager/answer/6107056?hl=en)\n- [Google Analytics DebugView](https://support.google.com/analytics/answer/7201382?hl=en)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual tracking architecture, current published version, event test scope and destination evidence require the project.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "dacffb5d416d178d48f0457e6ac34dbe9cd84a51e67fbdd65ea5695dca5710bd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b132cfe2d9a5e3422b05b8aa866f48aa35c7330c4df49b848662ec3337be4f6c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-gtm-installed-and-firing-on-every-page#task-verify-gtm-installed-and-firing-on-every-page",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "dacffb5d416d178d48f0457e6ac34dbe9cd84a51e67fbdd65ea5695dca5710bd",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "dacffb5d416d178d48f0457e6ac34dbe9cd84a51e67fbdd65ea5695dca5710bd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "dacffb5d416d178d48f0457e6ac34dbe9cd84a51e67fbdd65ea5695dca5710bd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 29,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify hero section contains real photo of person",
     "slug": "verify-hero-section-contains-real-photo-of-person",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Let people see who is behind a personal site. Check that the real photo stays clear on a phone.",
     "content": "---\nname: verify-hero-section-contains-real-photo-of-person\ndescription: \"Let people see who is behind a personal site. Check that the real photo stays clear on a phone.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify hero section contains real photo of person\n\nPeople should see the person behind a personal site right away. This guide helps you check the main photo at the top. Start with a real approved photo and its source record.\n\n**The path:** Approved source → Real person in context → First-screen crop → Canonical evidence.\n\n**Use this when:** A personal-brand home-page hero needs its real-owner-photo requirement checked. Other site roles use their own relevant visual plan.\n\n## Inputs\n- The canonical personal-site home page and its current hero source/layout.\n- The approved original photo and a source record or owner confirmation of who it depicts and permitted use.\n- Desktop/phone views at 1440×860 and 390×844, with supported page/media edit scope.\n- An asset/viewport report and the actual owner who can resolve missing source evidence.\n\n## First-run prompt\n\n> Review the supplied personal-site hero and approved photo record. Verify source identity, honest context and first-screen desktop/phone crops, perform authorized layout repairs, and return exact visual evidence or a specific missing-asset request without guessing who a face belongs to.\n\n## Steps\n1. Confirm the site role and intended person. The personal-brand hero should use that real person’s approved photograph; do not automatically apply the same single-founder rule to a company or another declared page role.\n2. Trace the selected photo to its source record and approved identity/use information. Do not guess identity from a face comparison or treat a similar-looking stock model as the owner.\n3. Inspect the initial canonical desktop viewport. Confirm useful photo content is visible with the opening, not only a blank frame, background sliver, logo or illustration substituted for the required real-owner photo.\n4. Repeat on the phone viewport. Check that the crop retains the person, the face is not covered by text/banner controls, and the photo is large and clear enough to register. Preserve aspect ratio and choose a suitable crop rather than stretching the image.\n5. Check the implied scene and caption against the source. A photo can show the person at a place without proving a client, partner or endorsement relationship. Keep stronger unsupported claims HOLD rather than using a photo as a shortcut to credibility.\n6. Use reverse-image search only as an authorized clue on public assets if needed. A reused photo is not automatically stock, and no search match does not prove authenticity. Private originals stay out of third-party uploads unless that use is already authorized.\n7. Apply authorized asset/crop/layout fixes through the supported source and preserve useful existing media. If no approved real-owner photo exists, give the owner an exact asset request; do not invent a photo shoot or pass an AI avatar as proof.\n8. Reopen the normal home page at both widths and save the actual asset, source evidence, visible bounds/crop and remaining gaps. A changed image setting is not enough if a public cache still shows the old hero.\n\n## Definition of done (QA checklist)\n\n- [ ] The task applies to the declared personal-brand role and intended owner.\n- [ ] The real photograph has source-backed identity and use rights, not a visual guess.\n- [ ] Meaningful owner-photo content is clear in both first viewports with a valid crop.\n- [ ] Photo context does not create an unsupported relationship or achievement claim.\n- [ ] Authorized changes are publicly checked or the exact asset/delivery gap remains.\n\n## Example(s)\n\n**Fictional teaching example — no hero image was inspected.** Alex supplies an approved original workshop photo for a personal site. The desktop hero shows Alex clearly, but the phone crop displays only the workbench.\n\nThe teaching fix changes the supported focal crop so Alex remains visible at 390×844, then checks the canonical page. The source photo can support “At my workshop” if the source record says that; it does not establish a partnership with a brand whose logo happens to be in the scene.\n\n## Handoff and Content Factory context\n\nThe page owner receives source and viewport evidence. [Check major home-page visuals](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image) reviews the sections below; the hero result alone does not pass them.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after hero, crop or template changes. Other landing-page heroes are included only in the actual scope, not silently added as a lifetime monitor.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify hero section contains real photo of person](https://local-service-spotlight.github.io/task-library/?task=verify-hero-section-contains-real-photo-of-person#task-verify-hero-section-contains-real-photo-of-person)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual approved photo/source identity, use rights and canonical viewport evidence require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2ee29b40d016c0b69ac29cb1aaf3c4c42c9d4dd02a0d81a85aa2b6611c03b8d8",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "88bc804268894abe3837775fa41d55c778e7d2f7d0933c6484268f390b8c0e5b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-hero-section-contains-real-photo-of-person#task-verify-hero-section-contains-real-photo-of-person",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2ee29b40d016c0b69ac29cb1aaf3c4c42c9d4dd02a0d81a85aa2b6611c03b8d8",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2ee29b40d016c0b69ac29cb1aaf3c4c42c9d4dd02a0d81a85aa2b6611c03b8d8"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2ee29b40d016c0b69ac29cb1aaf3c4c42c9d4dd02a0d81a85aa2b6611c03b8d8"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 176,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify HTTPS with no mixed content",
     "slug": "verify-https-with-no-mixed-content",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that pages and their files use safe web links. Find the exact source of a browser warning.",
     "content": "---\nname: verify-https-with-no-mixed-content\ndescription: \"Check that pages and their files use safe web links. Find the exact source of a browser warning.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify HTTPS with no mixed content\n\nA browser warning can keep people from using your site. This guide helps you check that pages and their files load over HTTPS. Start with the real public URLs and the host names the site uses.\n\n**The path:** Canonical page → Host variants → Loaded resources → Exact fix and recheck.\n\n**Use this when:** A launch, migration or defined site audit needs HTTPS delivery and mixed-content checks.\n\n## Inputs\n- The canonical URL list and actual supported host variants, plus known embedded forms/media/widgets.\n- A browser with connection, network and console diagnostics, and an available scoped crawl report.\n- The supported page/server configuration sources and authorized repair scope.\n- A before-state record and the technical owner for certificate, DNS or delivery issues outside the current edit.\n\n## First-run prompt\n\n> Inspect the supplied canonical pages and configured host variants. Record connection, redirect and actual insecure-resource evidence. Make authorized supported-source fixes, preserve browser protections, and return normal visitor rechecks plus exact remaining technical owners.\n\n## Steps\n1. Define the canonical HTTPS host and scoped URL set. Record which www/non-www and old host aliases are actually configured; do not invent new DNS records merely to test a hypothetical variant.\n2. Open the normal HTTPS page and inspect the browser’s connection details and any certificate error. Modern browsers may use a site-controls icon instead of a padlock. A familiar icon is not the whole evidence record, and an HTTPS connection does not certify the content or business.\n3. Check the configured HTTP and alternate-host variants for the intended permanent canonical redirect, preserving page path where appropriate. A valid 308 can be appropriate as well as 301; record loops, wrong targets and unnecessary chains instead of enforcing one status code universally.\n4. Inspect actual resource requests and relevant console messages while viewing representative templates and the rest of the agreed scope. HTTPS pages that load insecure subresources can have mixed content even when the main page uses HTTPS.\n5. Record each insecure resource, its initiating page/source and browser behavior. Some requests are auto-upgraded, others blocked. A plain text http URL or top-level navigation link is not automatically the same as an insecure loaded script or image.\n6. Trace the issue to the supported markup, theme setting, stylesheet or integration. Confirm a valid HTTPS resource exists before changing it. Do not blindly replace every string in serialized builder data or change global security controls to suppress a warning.\n7. Apply exact authorized repairs and use the supported publishing/cache route if needed. For a certificate or host problem beyond the current scope, provide the responsible owner the exact hostname and observed failure rather than bypassing the warning.\n8. Recheck normal canonical pages, redirects and affected resources in the browser after saving. Retain coverage, source revision and unresolved warnings; a static scan alone cannot prove all scripts/widgets executed safely.\n\n## Definition of done (QA checklist)\n\n- [ ] Scoped pages have valid HTTPS connection evidence and intended canonical redirects.\n- [ ] Actual loaded subresources and browser behavior are checked, with literal text/ordinary links distinguished.\n- [ ] Repairs use valid secure targets and preserve supported data formats and controls.\n- [ ] Changed canonical responses and resource loads are rechecked after publication.\n- [ ] Coverage and remaining certificate/host/resource gaps are explicit without a whole-site security guarantee.\n\n## Example(s)\n\n**Fictional teaching example — no server was tested.** Maple Cycle’s guide loads over HTTPS. Its logo request uses HTTP and is upgraded by the browser, while an old booking iframe is blocked. A body link to an old historical article is ordinary navigation, not a loaded iframe.\n\nThe teaching repair checks the correct secure logo and booking endpoints, updates their supported sources and verifies the actual requests. Changing a browser setting to allow insecure content would not fix the visitor’s page.\n\n## Handoff and Content Factory context\n\nThe site technical owner receives certificate, redirect or resource issues. [Check mobile performance](https://local-service-spotlight.github.io/task-library/?task=test-mobile-load-time-under-3-seconds#task-test-mobile-load-time-under-3-seconds) can verify a relevant delivery change without substituting a speed score for HTTPS checks.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after relevant host, certificate, resource or template changes. A continuing monitor requires its real configured scope and cadence.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 2, revenue 3, gating 5 (unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify HTTPS with no mixed content](https://local-service-spotlight.github.io/task-library/?task=verify-https-with-no-mixed-content#task-verify-https-with-no-mixed-content)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [MDN mixed content](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual host/certificate state, supported repair access and canonical resource evidence require the site.",
     "importance": 5,
     "freq": 2,
     "revenue": 3,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "1aafa2c5b689ea1bb63b7c267226ae2e07c498ea83f009306a16cc82c74706ba",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5564ccfd195646a4d3c877170bcb45fb7f64390f5c97ab2d400d13a446472947",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-https-with-no-mixed-content#task-verify-https-with-no-mixed-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1aafa2c5b689ea1bb63b7c267226ae2e07c498ea83f009306a16cc82c74706ba",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1aafa2c5b689ea1bb63b7c267226ae2e07c498ea83f009306a16cc82c74706ba"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1aafa2c5b689ea1bb63b7c267226ae2e07c498ea83f009306a16cc82c74706ba"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 91,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify Meta pixel installed with lead events",
     "slug": "verify-meta-pixel-installed-with-lead-events",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that the right site events reach the right ad account. Keep a click separate from a real lead.",
     "content": "---\nname: verify-meta-pixel-installed-with-lead-events\ndescription: \"Check that the right site events reach the right ad account. Keep a click separate from a real lead.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify Meta pixel installed with lead events\n\nAn ad report should count the action that really happened. This guide helps you check the site’s event signals and where they go. Start with the agreed event map, not a guess that every click is a lead.\n\n**The path:** Event plan → Browser behavior → Received event → Real business result.\n\n**Use this when:** A site with an authorized Meta measurement setup needs its Pixel and intended lead-event behavior audited. A Pixel is browser-side event code; a separate server integration needs its own evidence.\n\n## Inputs\n- The exact site, expected business-controlled Pixel/data source and intended event map.\n- Authorized read access to its current diagnostic tools and supported tag source; edit scope if repairs are included.\n- The required consent behavior and controlled test receiver/identity for any real form, booking or other action.\n- The current accessible provider event definitions and an event log recording browser/server origin, duplicates and actual business outcomes.\n\n## First-run prompt\n\n> Use the supplied Meta measurement plan and actual data-source access. Check event meaning, browser behavior, received origin and business outcome separately. Perform only authorized controlled actions, fix scoped faults using current supported guidance, and report consent, duplicate and evidence gaps without launching ads.\n\n## Steps\n1. Confirm the measurement setup is actually part of the site’s plan and belongs to the intended business. Do not install ad tracking on every audited site or create an ad campaign merely to satisfy this task.\n2. Map each business action to its intended event and firing condition. A page view, phone-link click, accepted inquiry and completed booking are different outcomes. Use Lead only where the current event definition and measurement plan support it, not for every button or page visit.\n3. Inspect the existing public tag source and controlled browser diagnostics for expected IDs and consent behavior. Record code presence and observed event attempts separately. Honor the site’s actual privacy controls rather than forcing blocked tags to run.\n4. Use current supported provider diagnostics to inspect received events in the exact data source. An event shown in Events Manager is not automatically server-side evidence; record its actual reported connection/origin. The browser Pixel and Conversions API are distinct delivery paths.\n5. Perform the real business-action test only when it is already authorized and has a controlled receiver. Verify the form/list/booking outcome separately from the event. A fired Lead event cannot prove the business received an inquiry.\n6. Check whether one action is counted as intended. Unexpected repeated browser events or browser/server duplicates need investigation against the real integration’s deduplication design. Do not delete a valid second data source solely because the old checklist said exactly one Pixel.\n7. Repair only the authorized event/source issue with the current supported implementation and documented event semantics. Inspect parameters and URLs for unintended private form data, preserve consent, and avoid fabricated customer records or paid actions.\n8. Recheck the normal published configuration and actual received event evidence after changes. Save coverage, test identity privately, timestamps, expected/observed event and business result. If current provider docs or account access cannot be read, finish the bounded evidence review and keep the exact implementation question pending.\n\n## Definition of done (QA checklist)\n\n- [ ] The intended business-controlled source and event meanings are defined.\n- [ ] Code presence, browser firing, received browser/server evidence and business delivery are separate results.\n- [ ] Consent, controlled test scope and private data handling are preserved.\n- [ ] One action’s actual counting/deduplication is checked under the real integration.\n- [ ] Unverified current provider instructions or missing account evidence remain explicit, not a claimed live pass.\n\n## Example(s)\n\n**Fictional teaching example — no event or lead was created.** Maple Cycle’s sample quote button fires Lead when the form opens. The customer can close it without sending anything, so the event does not match the plan’s “accepted inquiry” definition.\n\nThe teaching repair waits for the actual accepted form result, then checks both the business receiver and the measured event. If the diagnostics show a browser event only, record browser receipt; do not label it a working server integration. A closed form should not be counted as a completed inquiry.\n\n## Handoff and Content Factory context\n\nThe measurement owner receives the exact event/source issue. [Verify the actual form flow](https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works) supplies delivery evidence where relevant. A Conversions API implementation is separate work unless already in this job.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at setup and after relevant tag, consent or conversion-flow changes. Recurring live tests require a controlled identity, receiver and configured cadence; no campaign or repeat lead submission is started by this guide.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify Meta pixel installed with lead events](https://local-service-spotlight.github.io/task-library/?task=verify-meta-pixel-installed-with-lead-events#task-verify-meta-pixel-installed-with-lead-events)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Meta Pixel event reference — check current accessible version before implementation](https://developers.facebook.com/docs/meta-pixel/reference/)\n- [Meta Conversions API — separate from browser Pixel evidence](https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Meta event/reference and Conversions API pages returned 429 during this authoring pass; their contents and current menus were not verified. Recheck accessible current official instructions before an implementation change.\n- The actual measurement plan, test receiver, privacy requirements, integration source and live event receipts require the project.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "95bb1cc8d4c1686e080a34546b227ed291d8200a67ee92c8acf134abc3403d6b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "663ef39c362ea6a07971ed7a4e9b8e99e288956101085f1b92ac0196c81b7d3b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-meta-pixel-installed-with-lead-events#task-verify-meta-pixel-installed-with-lead-events",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "95bb1cc8d4c1686e080a34546b227ed291d8200a67ee92c8acf134abc3403d6b",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "95bb1cc8d4c1686e080a34546b227ed291d8200a67ee92c8acf134abc3403d6b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "95bb1cc8d4c1686e080a34546b227ed291d8200a67ee92c8acf134abc3403d6b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 30,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify minimum 5 distinct images on homepage",
     "slug": "verify-minimum-5-distinct-images-on-homepage",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Count the useful images on a personal home page. Make sure five real visuals can be seen on a phone too.",
     "content": "---\nname: verify-minimum-5-distinct-images-on-homepage\ndescription: \"Count the useful images on a personal home page. Make sure five real visuals can be seen on a phone too.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify minimum 5 distinct images on homepage\n\nA personal home page should show real people and work. This guide helps you count useful images without counting the same photo twice. Start with the full page on a phone and a large screen.\n\n**The path:** Full page → Qualifying visuals → Distinct counts → Real gap list.\n\n**Use this when:** A personal-brand home page is checked against the owned minimum-five-content-visuals house standard.\n\n## Inputs\n- The canonical home page and declared site role.\n- The actual rendered visual inventory on desktop/phone and asset provenance records.\n- Results from the relevant source/relevance checks, or access to perform them.\n- Supported layout/media edit scope and approved real assets for missing sections.\n\n## First-run prompt\n\n> Count the supplied personal home page’s real useful visuals at desktop and phone widths. Deduplicate underlying content, exclude decoration, verify sources and the separate lead visual, then fix authorized gaps or return exact asset requests. State counts as house-policy results, not ranking proof.\n\n## Steps\n1. Confirm the personal-brand house standard applies. Five is a minimum editorial target for that page role, not a Google ranking rule or a reason to force five portraits onto every kind of site.\n2. Inspect the entire home page at 1440×860 and 390×844, scrolling through lazy-loaded sections. Record what visitors can actually see, not every downloaded network image.\n3. Identify useful content visuals: relevant real photos, real source screenshots or meaningful accurate diagrams allowed by the maintained article standard. Exclude logos, tiny icons, textures, spacers and favicons from this content count.\n4. Deduplicate by underlying content. The same photo in two sizes or minor crops counts once; several nodes in one diagram count as one diagram. Distinct actual scenes or useful independent diagrams can count separately.\n5. Verify each candidate’s relevance and provenance. Confirmed stock stand-ins or unknown-source proof photos cannot silently fill the total. A declared diagram teaches a concept; it does not pretend to prove a real event.\n6. Count qualifying visuals separately for desktop and phone. A useful image hidden on mobile does not count for mobile. The five images can occur across the full page; the first viewport separately needs a meaningful readable lead visual.\n7. For a shortfall, specify the actual section and source asset needed. Apply authorized useful asset/layout changes, preserving truthful context and reasonable load behavior. Do not generate cosmetic variants solely to inflate the number.\n8. Recheck the normal canonical page and save the itemized counts, sources, viewports and remaining gaps. Passing five does not pass every visual-quality or site-audit check.\n\n## Definition of done (QA checklist)\n\n- [ ] The minimum-five house rule is applied to the intended page role.\n- [ ] The counted list excludes decoration and repeats and includes only relevant supported visuals.\n- [ ] Desktop and phone totals are based on actual visible full-page content.\n- [ ] The first meaningful visual is checked separately from the full-page total.\n- [ ] Shortfalls name real assets/sections, and no ranking or completed-proof claim comes from the count alone.\n\n## Example(s)\n\n**Fictional teaching example — no page was counted.** Maple Cycle’s founder page shows a workshop photo twice, a repair close-up, a source interview frame, a useful quote-process diagram and four social icons.\n\nThe count is four qualifying visuals: the repeated workshop scene counts once and the icons do not count. If the repair close-up is hidden on the phone, the phone count is three. The teaching fix requests another relevant real scene and restores the missing mobile visual; it does not duplicate the workshop photo again.\n\n## Handoff and Content Factory context\n\nThe page owner receives the itemized count and missing assets. [Check section relevance](https://local-service-spotlight.github.io/task-library/?task=check-each-homepage-section-includes-relevant-image#task-check-each-homepage-section-includes-relevant-image) and [Check image provenance](https://local-service-spotlight.github.io/task-library/?task=ensure-no-stock-images-used#task-ensure-no-stock-images-used) provide the supporting quality checks.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun when building or materially changing the home page. A continuing count monitor needs a real configured job and current asset record.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify minimum 5 distinct images on homepage](https://local-service-spotlight.github.io/task-library/?task=verify-minimum-5-distinct-images-on-homepage#task-verify-minimum-5-distinct-images-on-homepage)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual full-page visible assets, their rights/provenance and rendered counts require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "a19ca57cababf174ec1726b300f19e60a0bd5403ab5faf020780da86deaa4e8f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e79bd7ae689d972569e9c78e295c9ef3d2022143023aa3d9bde8de7422256265",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-minimum-5-distinct-images-on-homepage#task-verify-minimum-5-distinct-images-on-homepage",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a19ca57cababf174ec1726b300f19e60a0bd5403ab5faf020780da86deaa4e8f",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a19ca57cababf174ec1726b300f19e60a0bd5403ab5faf020780da86deaa4e8f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a19ca57cababf174ec1726b300f19e60a0bd5403ab5faf020780da86deaa4e8f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 177,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify Person schema with sameAs links",
     "slug": "verify-person-schema-with-sameas-links",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the site data about a real person. Link it to the same person’s trusted public pages.",
     "content": "---\nname: verify-person-schema-with-sameas-links\ndescription: \"Check the site data about a real person. Link it to the same person’s trusted public pages.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: needs-work\n---\n\n# Verify Person schema with sameAs links\n\nYour personal site should describe the right person to search tools. This guide helps you check that data and its profile links. Start with the real page, the person’s known facts and trusted public sources.\n\n**The path:** Visible person → Correct data node → Same-identity links → Source and tool checks.\n\n**Use this when:** A personal site or another page genuinely about a person needs its Person structured data checked.\n\n## Inputs\n- The exact page set that emits or should emit Person data, plus the visible person’s source-backed facts.\n- Verified public identity URLs and the supported schema source, including existing plugin/custom graph relationships.\n- A general schema validator and a Google-supported feature test only where that feature applies.\n- Read/edit scope and a record of current nodes, IDs and unresolved identity evidence.\n\n## First-run prompt\n\n> Inspect the supplied pages, person facts and identity map. Verify the appropriate Person node, sameAs targets and graph relationships, correct authorized supported-source faults, and report syntax, facts, access limits and Google feature eligibility separately.\n\n## Steps\n1. Confirm Person is the correct subject. A local-business home page may primarily describe an Organization or LocalBusiness. Do not rename a business to match its owner or force Person markup onto every site.\n2. Inspect the normal served structured data and identify the actual Person node, stable @id and relevant links from other nodes. Record duplicate/conflicting identities rather than deleting all but one without understanding the graph.\n3. Compare the name, URL and any additional facts with the visible page and approved source record. Job title, image and other properties are not universally mandatory simply because an old checklist lists them; do not invent values to remove a generic warning.\n4. Review sameAs references as identity claims. Use canonical public pages that identify the same person unambiguously, not the company’s profile, an unrelated article or an unverified similar name.\n5. Open or otherwise verify each applicable profile with permitted read access. A restricted profile is a precise access/identity gap, not automatic proof it is dead. Confirm actual source identity rather than matching a face by appearance.\n6. Validate the graph’s syntax and vocabulary. Use Google’s test for supported rich-result features when relevant, but do not require generic Person markup to appear as a standalone rich result. No detected Google feature is not the same as malformed schema.\n7. Apply authorized corrections through the supported owner of that graph. Preserve real @id relationships and visible factual consistency; do not add a second plugin simply to create another Person block.\n8. Recheck the actual canonical served data, relevant profiles and validator results. Save separate syntax, facts, identity and feature-eligibility findings. A clean graph does not guarantee a Knowledge Panel or search ranking.\n\n## Definition of done (QA checklist)\n\n- [ ] Person is the correct entity for the declared page role and has source-backed visible facts.\n- [ ] sameAs URLs identify the same person without company/profile conflation.\n- [ ] Existing graph relationships and supported implementation source are preserved.\n- [ ] Generic schema validity and Google feature eligibility remain separate results.\n- [ ] Canonical readback and exact unresolved identity evidence support the outcome.\n\n## Example(s)\n\n**Fictional teaching example — no markup was deployed.** Alex’s personal about page has a Person node linked to Alex’s verified personal home and public profile. Maple Cycle’s business listing belongs to a separate business node.\n\nThe sample Person node omits jobTitle because the source record does not establish a current title. The reviewer does not invent “CEO” to complete a field. Syntax can pass while a restricted profile remains unverified and Google reports no supported rich-result feature. Those are three separate findings.\n\n## Handoff and Content Factory context\n\nThe technical/content owner receives the served graph and remaining identity proof. [Review all applicable profile links](https://local-service-spotlight.github.io/task-library/?task=check-schema-connects-to-all-verified-profiles#task-check-schema-connects-to-all-verified-profiles) handles the broader person-and-business map without combining their identities.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at identity setup and after relevant source, profile or schema changes. No profile creation or automatic lifetime monitoring is implied.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify Person schema with sameAs links](https://local-service-spotlight.github.io/task-library/?task=verify-person-schema-with-sameas-links#task-verify-person-schema-with-sameas-links)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Schema.org sameAs](https://schema.org/sameAs)\n- [Google structured-data introduction](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The actual graph, approved identity facts, accessible profiles and served validation evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1d549716b20d3426e1e7437915090f9e3f47a7d8dcce93da85640c85cdefb46c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9b87d9ff9c2df5d89d6dc40b569ab1aaf4bd4429e1921c2943dc1b8fdfc6584c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-person-schema-with-sameas-links#task-verify-person-schema-with-sameas-links",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1d549716b20d3426e1e7437915090f9e3f47a7d8dcce93da85640c85cdefb46c",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1d549716b20d3426e1e7437915090f9e3f47a7d8dcce93da85640c85cdefb46c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1d549716b20d3426e1e7437915090f9e3f47a7d8dcce93da85640c85cdefb46c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 109,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Verify Rank Math score above 70 on every page",
     "slug": "verify-rank-math-score-above-70-on-every-page",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Use the SEO score to find useful fixes. Keep facts and clear writing ahead of points.",
     "content": "---\nname: verify-rank-math-score-above-70-on-every-page\ndescription: \"Use the SEO score to find useful fixes. Keep facts and clear writing ahead of points.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify Rank Math score above 70 on every page\n\nAn SEO score can help you spot things to check. This guide helps you use it without adding weak words just for points. Start with what each page is for and what the live page really shows.\n\n**The path:** Page purpose → Actual plugin tests → Useful corrections → Score and page evidence.\n\n**Use this when:** A WordPress site that uses Rank Math needs its in-scope on-page test results reviewed against the house target.\n\n## Inputs\n- The exact published post/page set and actual supported Rank Math version/integration.\n- Editor read access for scores/tests and authorized content/metadata edits.\n- Each page’s intended reader/topic, source facts and current house standard.\n- A per-page report with actual score, failed tests, editor limitations and public evidence.\n\n## First-run prompt\n\n> Use the supplied Rank Math site and page scope. Capture actual scores and failed tests, make authorized changes that help the reader and match source facts, and document conflicts or tooling gaps. Verify public content separately and do not treat a score as proof of ranking or full QA.\n\n## Steps\n1. Confirm the site actually uses Rank Math and that its supported editor can read these pages. Do not install or replace an SEO plugin solely to generate a score for a read-only audit.\n2. Collect the current score and test details for every scoped page, including a no-score state. An unreadable builder body or absent score is a specific tooling gap, not automatically poor live content.\n3. Record the legacy house threshold as at least 70/100 where it applies. Rank Math’s own color bands and tests may differ. The score is neither Google’s grade nor a complete site-health or semantic-certification score.\n4. Check that the selected focus topic reflects the actual page and supporting search evidence when available. Do not invent demand or choose a meaningless phrase that happens to earn points.\n5. Review each failed test against the maintained guidelines and current platform rules. Fix a misleading title or genuinely useful missing link. Do not pad word count, stuff keywords into image alt text, invent an experience or force an external link to win points.\n6. Record justified exceptions where a plugin test conflicts with the page role, accessibility or facts. A concise contact page need not become a long article. A high score cannot override failed proof, wrong identity, unreadable layout or a broken lead path.\n7. Apply authorized meaningful corrections in the supported source, recheck the plugin result and verify the actual canonical metadata/content. Do not assume a green editor score proves the changed page is publicly served.\n8. Save scores and useful corrections separately from unresolved exceptions. The task is a documented on-page review; a promise to loop until every URL reaches a number would hide legitimate conflicts and tooling gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] Actual scores/test details and unavailable states are recorded for the stated scope.\n- [ ] The at-least-70 house target is distinct from Google outcomes and plugin color bands.\n- [ ] Corrections improve the actual page without proof fabrication, padding or accessibility damage.\n- [ ] Below-target justified exceptions remain visible; high scores do not overrule substantive failures.\n- [ ] Canonical content and plugin values are checked separately after edits.\n\n## Example(s)\n\n**Fictional teaching example — no plugin score was read.** Maple Cycle’s contact page has a sample score of 68. The plugin wants more text and the focus phrase in every image description. Its current phone, hours and contact instructions are clear.\n\nThe reviewer fixes a genuinely misleading title but records why padding the contact page or stuffing a decorative image’s alt text is wrong. If the score remains below the house target, the report keeps the exception visible. It does not claim Google failed the page or fabricate extra copy to cross 70.\n\n## Handoff and Content Factory context\n\nThe content owner receives useful fixes and exact scoring exceptions. [Configure supported search metadata](https://local-service-spotlight.github.io/task-library/?task=step-14a-configure-rankmath-seo-plugin#task-step-14a-configure-rankmath-seo-plugin) addresses setup defects when that is the actual next need.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publication or after material content/plugin changes. A score monitor requires a configured job; it must not rewrite pages indefinitely to game a threshold.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify Rank Math score above 70 on every page](https://local-service-spotlight.github.io/task-library/?task=verify-rank-math-score-above-70-on-every-page#task-verify-rank-math-score-above-70-on-every-page)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Rank Math post tests](https://rankmath.com/kb/score-100-in-tests/)\n- [Google title links](https://developers.google.com/search/docs/appearance/title-link)\n- [Google snippets](https://developers.google.com/search/docs/appearance/snippet)\n- [W3C image text alternatives](https://www.w3.org/WAI/tutorials/images/decision-tree/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual current plugin results, builder compatibility and canonical content evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7e03658d876fa9ec77a99b4e5d19ca51f242537d8d0619a73da114274eae45b1",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9cbf7b54845d16cb285a7fb7ec97c768bfb69bf94acf74bc38e10616c3a99473",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-rank-math-score-above-70-on-every-page#task-verify-rank-math-score-above-70-on-every-page",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7e03658d876fa9ec77a99b4e5d19ca51f242537d8d0619a73da114274eae45b1",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7e03658d876fa9ec77a99b4e5d19ca51f242537d8d0619a73da114274eae45b1"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7e03658d876fa9ec77a99b4e5d19ca51f242537d8d0619a73da114274eae45b1"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 178,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify social proof photos present",
     "slug": "verify-social-proof-photos-present",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Show the real source behind a proof section. Keep photos and claims tied to what actually happened.",
     "content": "---\nname: verify-social-proof-photos-present\ndescription: \"Show the real source behind a proof section. Keep photos and claims tied to what actually happened.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify social proof photos present\n\nA proof section should show something real that readers can check. This guide helps you match each claim with an honest visual and source. Start with the actual record, not a picture chosen just to fill space.\n\n**The path:** Claim and scene → Real visual source → Accurate caption → Publication gate.\n\n**Use this when:** A site’s testimonial, results, event, review or press sections need their visual evidence and public captions reviewed.\n\n## Inputs\n- All scoped proof placements, including slides, result cards, press logos and review embeds.\n- Original approved photos, exact primary quotes, review/metric sources and permitted visual captures.\n- The maintained credibility/attribution standard, supported edit scope and the actual content owner.\n- An internal proof record separate from client-facing/public copy.\n\n## First-run prompt\n\n> Review the supplied proof blocks, real assets and primary evidence. Match visual scope, exact quotes and relationship wording, complete authorized truthful changes, and retain HOLD for missing evidence. Keep private scoring/repurposing metadata out of public copy while preserving necessary compliance disclosure.\n\n## Steps\n1. Inventory every scoped proof block and state the exact claim it makes. A source-backed text quote can be evidence, but the owned page standard also requires a meaningful real visual for the proof section; these are separate checks.\n2. Find the actual relevant photo or artifact: a permitted reviewer portrait, real job scene, primary-review capture or correctly scoped results screenshot. A stock face, unrelated logo or synthetic event image cannot stand in for missing evidence.\n3. Trace the asset to its source and rights. Reverse-image results can provide leads, not prove identity or authenticity. Do not upload private source images to a third party without authority, and do not guess a person’s identity from their face.\n4. Match the image, caption and claim. A results capture needs the right metric and period; an event photo supports the depicted moment, not an automatic friend, partner, client or mentor relationship. Stronger unsupported relationship wording stays HOLD.\n5. Write a compact source-supported scene and useful lesson, with the relevant identity/date/source when known. Reject a trophy-name wall or name-dropping caption that substitutes familiar people and brands for an actual shared moment.\n6. Check attached praise against the exact named person’s source quote and applicable attribution/permission. A logo, domain, initials or “happy customer” is not a named speaker. Incomplete praise remains HOLD for publication and repurposing.\n7. Keep internal scores, proof IDs, inventory/harvester labels, repurposing instructions and repeated “this does not prove” caveats out of unrelated public copy. Preserve a materially necessary legal, regulatory, or compliance disclosure scoped to the triggering claim.\n8. Apply authorized accurate visual/caption changes or remove held public proof within scope. Recheck canonical desktop/phone readability and source links. Save the internal evidence table and missing-source requests without publishing its confidence/status fields.\n\n## Definition of done (QA checklist)\n\n- [ ] Every scoped proof section has a relevant real visual plus sufficient underlying claim evidence.\n- [ ] Photo provenance, factual scope and rights are established or explicitly unresolved.\n- [ ] Captions show a real scene and lesson without trophy-name or inflated relationship claims.\n- [ ] Quotes are exact and fully attributed; incomplete proof remains HOLD across repurposing.\n- [ ] Public copy avoids internal review theater and preserves necessary scoped compliance disclosure.\n\n## Example(s)\n\n**Fictional teaching example — no proof block was changed.** A sample photo shows Alex explaining a repair checklist at a workshop. The draft caption says “My trusted partner endorses my system.” The source record supports only that workshop scene.\n\nThe teaching caption describes the real demonstration and its useful lesson, then links the actual source when one exists. The partnership/endorsement claim remains HOLD. Adding “This is not proof of endorsement” would leave the wrong framing in place; the better fix is to use the accurate scene.\n\nAn attached quote signed only “maplecycle.example” still needs a named speaker and its exact source before becoming a testimonial.\n\n## Handoff and Content Factory context\n\nThe content owner receives accurate visual/caption changes and held proof requests. [Check testimonial headshots](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-include-headshots-with-attribution#task-verify-testimonials-include-headshots-with-attribution) and [Check full attribution](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-with-full-attribution#task-verify-testimonials-with-full-attribution) apply to actual praise blocks.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before proof is published or repurposed and when sources, captions or visual placements change. Stored prior verdicts need source/version comparison; no automatic perpetual verification is promised.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify social proof photos present](https://local-service-spotlight.github.io/task-library/?task=verify-social-proof-photos-present#task-verify-social-proof-photos-present)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual primary proof, asset rights, complete quote attribution and canonical visual evidence require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "cfaa8707f95a7f79cd87eded5371e9399c72cdcba618ba1c42c188befa7b910c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "96915d14b28aee73103f8a509b471ed55a3f28549fd2a527aac386b54f398f44",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-social-proof-photos-present#task-verify-social-proof-photos-present",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cfaa8707f95a7f79cd87eded5371e9399c72cdcba618ba1c42c188befa7b910c",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "cfaa8707f95a7f79cd87eded5371e9399c72cdcba618ba1c42c188befa7b910c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "cfaa8707f95a7f79cd87eded5371e9399c72cdcba618ba1c42c188befa7b910c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 179,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify testimonials include headshots with attribution",
     "slug": "verify-testimonials-include-headshots-with-attribution",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the person behind each quote. Use a real approved photo and a full name.",
     "content": "---\nname: verify-testimonials-include-headshots-with-attribution\ndescription: \"Check the person behind each quote. Use a real approved photo and a full name.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify testimonials include headshots with attribution\n\nA quote should come from a real named person. This guide helps you check the face and name shown with each quote. Start with the person’s source record, not a stock photo or a guess.\n\n**The path:** Every placement → Named source → Approved headshot → Visible or held result.\n\n**Use this when:** A site’s testimonial blocks need the owned headshot-and-name presentation gate checked.\n\n## Inputs\n- The full scoped testimonial inventory, including carousel slides and responsive variants.\n- Each exact quote’s primary source, speaker identity, approved portrait and applicable use permission.\n- Supported page/widget edit access and scope for correcting or removing incomplete blocks.\n- A private attribution/asset register and the real owner for missing evidence requests.\n\n## First-run prompt\n\n> Use the supplied testimonial source records and placement list. Verify full names, actual approved portraits, exact quote associations and permission. Fix authorized complete blocks, hold incomplete ones, and return precise missing evidence without guessing identity or sending unrequested outreach.\n\n## Steps\n1. List each distinct testimonial and every placement. Inspect static copies and slides; advance only silent text/image carousels where safe. A hidden slide is still a public placement even when the first slide looks complete.\n2. Read the displayed full name and compare it with the primary quote/source record. Initials, a first name alone, “happy customer” or a domain/company are incomplete speaker attribution under this standard.\n3. Trace the headshot to the approved source and the named speaker’s identity record. Do not assign a similar face, avatar, logo, stock person or generated portrait to make a quote look real.\n4. Check the exact words and use permission alongside the photo. A name and portrait do not establish that the person supplied this quote. A public profile image is not automatically permission for every testimonial use.\n5. Keep missing name, portrait, source or required permission HOLD and outside the public testimonial block. Write the exact evidence request for the owner. Do not contact the speaker unless outreach is already part of the job.\n6. If an asset is questioned, use reliable original records and owner confirmation; an authorized reverse search is only a supporting lead. Multiple appearances online do not prove stock, and a clean search does not certify identity.\n7. Apply authorized complete assets/attribution or held-block removal through the supported source. Check desktop and phone portrait crop, name/quote pairing and carousel behavior. Do not pair one person’s photo with another slide’s quote.\n8. Record the visible result for every placement and hand the verified name/portrait evidence to the full-attribution check. Passing this visual gate alone does not certify the role/company, source quote or every other trust requirement.\n\n## Definition of done (QA checklist)\n\n- [ ] Every public testimonial placement pairs the correct named speaker with an approved real portrait.\n- [ ] Exact quote/source and required permission support the association.\n- [ ] Incomplete or uncertain blocks remain HOLD without invented replacements.\n- [ ] Desktop/phone and slide pairing are checked on canonical pages after changes.\n- [ ] The full-attribution review remains distinct from this portrait/name gate.\n\n## Example(s)\n\n**Fictional teaching example — no person’s photo or quote was used.** A sample slider shows “Alex Rivera” beside a shop logo. The supplied record includes Alex’s exact words and permission for an actual portrait, but the portrait is missing from the folder.\n\nThe task remains HOLD for that testimonial until the approved portrait is obtained and paired correctly. Searching for another Alex Rivera and copying a face would not solve the gap. A teaching mockup must never be published as customer praise.\n\n## Handoff and Content Factory context\n\nThe content owner receives the portrait/name inventory and held requests. [Verify full testimonial attribution](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-with-full-attribution#task-verify-testimonials-with-full-attribution) uses those source records for the remaining trust fields.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before a testimonial is published and when its source, image or placement changes. Recurring review does not automatically authorize contacting every speaker again.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify testimonials include headshots with attribution](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-include-headshots-with-attribution#task-verify-testimonials-include-headshots-with-attribution)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Real approved portraits, primary quotes, identity/use permission and canonical placement checks require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c57e6e92123761fbb1d7ae90d3c19334639d181d0ba04ebc2926faca62d07ef0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "cdb0ec597403ecc5e81efb77ff1501914b951dd68540067e112382d6602789c0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-include-headshots-with-attribution#task-verify-testimonials-include-headshots-with-attribution",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c57e6e92123761fbb1d7ae90d3c19334639d181d0ba04ebc2926faca62d07ef0",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c57e6e92123761fbb1d7ae90d3c19334639d181d0ba04ebc2926faca62d07ef0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c57e6e92123761fbb1d7ae90d3c19334639d181d0ba04ebc2926faca62d07ef0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 180,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify testimonials with full attribution",
     "slug": "verify-testimonials-with-full-attribution",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check who said each quote and where it came from. Hold praise that lacks the facts readers need.",
     "content": "---\nname: verify-testimonials-with-full-attribution\ndescription: \"Check who said each quote and where it came from. Hold praise that lacks the facts readers need.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify testimonials with full attribution\n\nReaders should know who gave the praise on your site. This guide helps you check the quote, the name and the source behind it. Start with the original words, then fill the real facts without guessing.\n\n**The path:** Exact quote → Named speaker → Relevant context and rights → Verified publication.\n\n**Use this when:** A testimonial needs its complete attribution and source reviewed before publication or reuse.\n\n## Inputs\n- The complete scoped testimonial/placement inventory and prior name/headshot review if available.\n- Primary source for each exact quote, full name and source-backed role/company or consumer context such as city.\n- Approved real portrait and any required permission for quote, name, photo and link use.\n- Supported edit scope and an internal field-by-field record with the responsible content owner.\n\n## First-run prompt\n\n> Audit the supplied testimonial records field by field. Compare exact quotes, verify speaker/context and use rights, preserve consumer and dated-role truth, and complete authorized changes. Return accepted versus HOLD items with exact evidence gaps and no private-data exposure or invented praise.\n\n## Steps\n1. List the fields for each item: exact quote, full name, relevant role, company or appropriate consumer city/context, real portrait, primary source and permission state. Apply the actual speaker context; do not invent a corporate title for a household customer.\n2. Compare the public words with the original source. Do not put a paraphrase, composite or strengthened result inside quotation marks. Retain any omission or editorial treatment accurately under the source’s permission.\n3. Verify the named speaker and relevant context from reliable source records. A same-name profile is not sufficient, and face resemblance is not an identity test. A current title may differ from the title at the time of the quote; label dates/context truthfully.\n4. Check portrait/source association and use rights. A public quote or profile image does not automatically supply every permission needed for the planned use; use the existing documented scope instead of assuming or asking redundantly.\n5. Keep anonymous, initials-only, first-name-only, domain/company-only and otherwise incomplete praise HOLD. A plausible business logo does not identify the person who spoke. Prepare exact missing-field requests for the real owner; no unrequested outreach is part of this check.\n6. Link the accepted source or permitted verified attribution where appropriate. Preserve privacy limits and avoid exposing private correspondence or contact details as a public proof URL. If only private evidence supports the claim, use the approved public presentation or keep publication pending.\n7. Apply authorized exact corrections or remove held public blocks through the supported source. Check the name, portrait, quote and role remain paired at all placements and on desktop/phone.\n8. Save the internal field scorecard and exact publication/repurposing decision for every item. Do not let a photo/name pass override a missing quote source, and do not turn a completed draft review into a claim that the praise was published.\n\n## Definition of done (QA checklist)\n\n- [ ] Each public testimonial has exact words, a verified full name, appropriate context, real portrait, primary evidence and required permission.\n- [ ] Consumer context and dated roles are truthful rather than padded with invented fields.\n- [ ] Incomplete or uncertain praise remains HOLD across publication and repurposing.\n- [ ] Private evidence and personal contact details are not exposed by public source links.\n- [ ] Authorized canonical placements are rechecked with the full attribution intact.\n\n## Example(s)\n\n**Fictional teaching example — no real endorsement was created.** The sample source quote is “The photo checklist helped me show the brake issue.” The invented speaker is Alex Rivera, a consumer customer in a stated sample city, with an approved portrait in this teaching scenario.\n\nThe guide does not add “CEO” or a company merely to fill four boxes. It also does not rewrite the quote as “The system saved me $500.” If the portrait permission or primary quote record were missing in a real run, the item would stay HOLD rather than becoming publishable because the name looks complete.\n\n## Handoff and Content Factory context\n\nThe content owner receives the full scorecard and publication decision. [Review surrounding achievement claims](https://local-service-spotlight.github.io/task-library/?task=verify-achievements-are-evidenced-not-just-claimed#task-verify-achievements-are-evidenced-not-just-claimed) checks any stronger result or relationship language built around the quote.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before each testimonial is published or materially repurposed and when evidence/use scope changes. Record a real new execution separately from mere copy revisions.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify testimonials with full attribution](https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-with-full-attribution#task-verify-testimonials-with-full-attribution)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual primary quote records, appropriate identity/context, portrait rights and canonical publication evidence require the project.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2e9884b6bf79246d7a7b91ac34400b0c8116b35fa2fe243a0a121f29c1376f60",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0870a836342c4b62303064f2215b46a03d8f209d7fe6b523e26f67ecd022b5c4",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-testimonials-with-full-attribution#task-verify-testimonials-with-full-attribution",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2e9884b6bf79246d7a7b91ac34400b0c8116b35fa2fe243a0a121f29c1376f60",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2e9884b6bf79246d7a7b91ac34400b0c8116b35fa2fe243a0a121f29c1376f60"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2e9884b6bf79246d7a7b91ac34400b0c8116b35fa2fe243a0a121f29c1376f60"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 181,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify WordPress author set to site owner name",
     "slug": "verify-wordpress-author-set-to-site-owner-name",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check that each byline names the right author. Keep real guest writers and fix default account names.",
     "content": "---\nname: verify-wordpress-author-set-to-site-owner-name\ndescription: \"Check that each byline names the right author. Keep real guest writers and fix default account names.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify WordPress author set to site owner name\n\nA byline should name the person behind the work. This guide helps you check the names readers see on posts. Start with the real author record, so you do not give someone credit by mistake.\n\n**The path:** Real authorship → Stored author → Visible byline → Verified correction.\n\n**Use this when:** A personal-brand WordPress site needs its author-account assignments and public bylines audited.\n\n## Inputs\n- The complete scoped published-post inventory and actual authorship/voice plan for each post.\n- The approved public author identities, bios and portraits, with supported WordPress/user read access.\n- Authorized scope for byline assignments/profile edits and the current source revision.\n- The live post/author-template behavior, including any legitimate guest or team authors.\n\n## First-run prompt\n\n> Use the supplied post inventory and actual authorship records. Reconcile stored authors with public bylines, fix authorized default or mistaken assignments, and preserve genuine guest/team exceptions and account roles. Verify canonical output and return exact counts and unresolved source decisions.\n\n## Steps\n1. Confirm who the content represents. Owner-authored personal-brand work should normally use the owner’s public identity; real guest posts or a genuine multi-author site retain truthful attribution. The login that uploaded a post is not necessarily its public author.\n2. Build a complete post-to-author map from the supported CMS or paginated API. The posts endpoint defaults to a limited first page; a single response is not a complete inventory. Reconcile the result with the known published count.\n3. Inspect the existing author account and public display name, bio and approved image. Avoid default “admin” or misspellings in the public byline, but do not expose login names or create a privileged account just for display.\n4. Compare stored author IDs with the actual visible bylines and any author archive/bio link. Theme/builder output may not match the field, or may deliberately suppress an archive. Record the actual intended behavior rather than creating thin archives automatically.\n5. Review each mismatch against the authorship record. Do not bulk-assign all posts to the owner solely because the old task name says so. Preserve guest speakers, joint/organizational attribution and accurate published source context.\n6. Apply authorized exact assignments or profile-display corrections through the supported route, checking current revisions before saving. Keep user roles, access, passwords, URLs and other account settings outside an ordinary byline correction.\n7. Reopen the canonical changed posts and intended author pages on desktop/phone. Verify the correct public name, source-supported bio/image and working destinations; saved author IDs alone do not prove the visible output.\n8. Save the count checked, corrected, legitimately excepted and still unresolved with evidence. No authorship or E-E-A-T gain is inferred from changing a display name.\n\n## Definition of done (QA checklist)\n\n- [ ] Each scoped post has source-backed intended authorship, including legitimate exceptions.\n- [ ] Inventory pagination/coverage and stored author IDs are recorded.\n- [ ] Public bylines and intended author links match the actual content owner and source facts.\n- [ ] Authorized corrections preserve access roles, account privacy and stable URLs.\n- [ ] Canonical readback supports the result; no false owner credit or automatic bulk reassignment occurs.\n\n## Example(s)\n\n**Fictional teaching example — no author assignment was changed.** Maple Cycle’s founder wrote two personal guides, and a named mechanic supplied a guest article. The founder guides show “admin” because an editor uploaded them; the guest article already names its actual writer.\n\nThe teaching correction assigns the two owner guides to the approved public author identity and preserves the guest writer. Changing all three to the founder would make the audit less truthful. A first API response with only ten posts would also need pagination before a site-wide claim.\n\n## Handoff and Content Factory context\n\nThe content owner receives the attribution map. [Check intended page voice](https://local-service-spotlight.github.io/task-library/?task=verify-all-pages-written-in-first-person#task-verify-all-pages-written-in-first-person) is related, but a first-person passage does not by itself determine authorship.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun before publication and after relevant imports, author-template or attribution changes. No standing user-account changes or access grants are created by this check.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify WordPress author set to site owner name](https://local-service-spotlight.github.io/task-library/?task=verify-wordpress-author-set-to-site-owner-name#task-verify-wordpress-author-set-to-site-owner-name)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [WordPress post fields and list pagination](https://developer.wordpress.org/rest-api/reference/posts/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real authorship record, existing public profiles and canonical template behavior require the site.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "eace7972830664d1e3212e6183a6bc060012642eee0a54d6a754f8abb264ab25",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a573887d78de38e321328746a81677bdae2c2036083b09999da79ad86e0bd833",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-wordpress-author-set-to-site-owner-name#task-verify-wordpress-author-set-to-site-owner-name",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "eace7972830664d1e3212e6183a6bc060012642eee0a54d6a754f8abb264ab25",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "eace7972830664d1e3212e6183a6bc060012642eee0a54d6a754f8abb264ab25"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "eace7972830664d1e3212e6183a6bc060012642eee0a54d6a754f8abb264ab25"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 63,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Verify XML sitemap exists and in robots.txt",
     "slug": "verify-xml-sitemap-exists-and-in-robotstxt",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-qa-audit",
     "articleKind": "task-recipe",
     "desc": "Check the map that helps search tools find pages. Use the real map address and the right page list.",
     "content": "---\nname: verify-xml-sitemap-exists-and-in-robotstxt\ndescription: \"Check the map that helps search tools find pages. Use the real map address and the right page list.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: /website-qa-audit\nstatus: complete\n---\n\n# Verify XML sitemap exists and in robots.txt\n\nSearch tools need a clear list of the pages you want found. This guide helps you check that list and where it is shared. Start with the site’s real sitemap address, not a file name guessed from another site.\n\n**The path:** Actual sitemap → Intended canonical URLs → Discovery records → Exact gaps.\n\n**Use this when:** A launch, migration or search audit needs sitemap discovery, contents and recorded submission checked.\n\n## Inputs\n- The canonical site, intended public/indexable URL inventory and deliberate exclusions.\n- The actual sitemap provider/configuration, robots.txt and current sitemap/index URLs.\n- Supported source access for repairs, plus Search Console access when its processing/submission evidence is in scope.\n- A report for listed URLs, reachable child maps, duplicates, missing intended pages and excluded variants.\n\n## First-run prompt\n\n> Use the supplied site and intended canonical-page inventory. Find and parse the actual configured sitemap, compare its contents and robots reference, and inspect Search Console only with actual access. Make authorized supported-source fixes and return public versus account evidence separately without promising indexing.\n\n## Steps\n1. Read robots.txt and the site’s supported sitemap settings to find the actual address. It may be an index, a core WordPress sitemap, a custom path or a query URL. A 404 at /sitemap_index.xml does not fail a site with another valid configured sitemap.\n2. Read the real response and parse its contents as the intended sitemap format, not an HTML error behind a 200 status. For an index, follow and check its child sitemaps and count unique page URLs separately from index entries.\n3. Compare listed URLs with intended canonical public search pages, not every CMS row. Drafts, private pages, noindexed variants and intentionally excluded archives need not be added just to match a total. Investigate meaningful missing pages and stale/redirecting entries.\n4. Check representative or fully scoped listed URLs for actual status, canonical destination and visibility intent, recording coverage. A crawler cannot alone find every unlinked CMS page; use the known inventory too.\n5. Verify the robots Sitemap declaration points to the actual accessible map as required by the house checklist. Google also accepts other submission methods, so a missing robots line is a house discovery gap rather than proof the map can never be found.\n6. In the correct Search Console property, inspect the actual submission/processing status and last-read date when access exists. An authorized submission can be made under the existing job, but submitted, processed and indexed URLs are different states. Without access, finish public checks and leave this account result unknown.\n7. Repair the exact supported sitemap/robots source already in scope. Do not cycle an unrelated SEO plugin or replace a valid map path by habit. Preserve private exclusions and intentional verified cross-site configurations.\n8. Recheck the normal sitemap and robots responses after changes and record current Search Console evidence separately. A successful submission is a hint, not a guarantee Google downloads, indexes or ranks every listed page.\n\n## Definition of done (QA checklist)\n\n- [ ] The real configured sitemap and child maps parse and are accessible in the scoped checks.\n- [ ] Contents match intended canonical public pages, with exclusions and coverage explicit.\n- [ ] The house robots declaration uses the actual map, while alternative Google discovery methods remain recognized.\n- [ ] Search Console submission, processing and actual indexing remain separate evidence states.\n- [ ] Authorized source changes are publicly rechecked without inventing path or plugin requirements.\n\n## Example(s)\n\n**Fictional teaching example — no sitemap was requested.** Maple Cycle’s robots file names `https://maplecycle.example/?sitemap=1`. That map contains the intended public pages. The familiar `/sitemap_index.xml` URL returns 404.\n\nThe audit follows the declared valid map, rather than disabling and re-enabling a plugin to force another path. A private staff page is correctly absent. If Search Console access is missing, the public-map result can be recorded while processing status remains unknown.\n\n## Handoff and Content Factory context\n\nThe search/site owner receives exact missing or stale URL findings. [Check index visibility rules](https://local-service-spotlight.github.io/task-library/?task=ensure-robots-meta-not-blocking-indexing--qa-audit#task-ensure-robots-meta-not-blocking-indexing--qa-audit) verifies a separate reason a listed page may still be excluded.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun at launch and after content-visibility, sitemap or migration changes. A new sitemap read/index observation needs the existing configured review or a named manual owner.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `script` — No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-qa-audit\n- Exact task: [Verify XML sitemap exists and in robots.txt](https://local-service-spotlight.github.io/task-library/?task=verify-xml-sitemap-exists-and-in-robotstxt#task-verify-xml-sitemap-exists-and-in-robotstxt)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google sitemap creation and submission](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)\n- [Google robots meta and headers](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual sitemap provider, intended public inventory and Search Console readback require the site.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "script",
     "lane_label": "No model. Shell, REST, yt-dlp, Descript export, WP application-password publish.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "091693c87228ac70ecf43157589b997c62355a25a8d59ed1a5e03e468cd99690",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "fe182d21ddd27a330977383b0287e2d91ed74e0ac4a994314302dd44b6faa598",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-xml-sitemap-exists-and-in-robotstxt#task-verify-xml-sitemap-exists-and-in-robotstxt",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "091693c87228ac70ecf43157589b997c62355a25a8d59ed1a5e03e468cd99690",
      "articleKey": "blitzmetrics.com/website-qa-audit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "091693c87228ac70ecf43157589b997c62355a25a8d59ed1a5e03e468cd99690"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "091693c87228ac70ecf43157589b997c62355a25a8d59ed1a5e03e468cd99690"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-qa-audit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 182,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Audit a local-service website",
     "slug": "audit-local-service-website",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/website-audit-checklist/",
     "articleKind": "task-recipe",
     "desc": "Find what helps or blocks a customer on your site. Leave a clear list of facts, fixes and next owners.",
     "content": "---\nname: audit-local-service-website\ndescription: \"Find what helps or blocks a customer on your site. Leave a clear list of facts, fixes and next owners.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: https://blitzmetrics.com/website-audit-checklist/\nstatus: needs-work\n---\n\n# Audit a local-service website\n\nYour site should help customers reach your business. This guide helps you check the pages, lead path and systems behind that job. Start with the main action you want a customer to take.\n\n**The path:** Business job → Real customer path → Measured systems → Testable fix plan.\n\n**Use this when:** A local-service site needs a functional baseline before repairs, a redesign or an architecture/migration decision.\n\n## Inputs\n- The exact in-scope business/site, current roster/engagement status and primary services, service areas and customer action.\n- The real lead destination and receiving owner, plus authorized test identities, measurement access and submission scope.\n- Current platform, CMS, hosting, dependency/license and supported publishing records, with existing recovery/export evidence.\n- The agreed audit scope, last baseline if any, actual report recipient and authority for repairs or delivery.\n\n## First-run prompt\n\n> Audit the supplied local-service site against its real customer job and approved test scope. Check public pages, lead routing, measurement, search controls, delivery and recovery evidence. Complete authorized repairs/delivery, preserve unknowns, and leave a testable baseline with exact next owners before recommending an architecture change.\n\n## Steps\n1. Confirm the client/site is authorized under the current roster and engagement. Define the business job: call, inquiry, booking or purchase, and what counts as a received/qualified outcome. Do not choose a new host or CMS before understanding that baseline.\n2. Inspect the canonical pages as a visitor on desktop and phone. Check clear services/areas, grade-5 opening context, meaningful first-screen visuals, navigation, real proof, usable controls and relevant media without audible playback. Record page-level evidence and scope.\n3. Trace the primary lead path using [CTA checks](https://local-service-spotlight.github.io/task-library/?task=check-all-cta-buttons-lead-to-correct-destinations#task-check-all-cta-buttons-lead-to-correct-destinations) and, where appropriate, [form-flow checks](https://local-service-spotlight.github.io/task-library/?task=verify-email-opt-in-form-exists-and-works#task-verify-email-opt-in-form-exists-and-works). Perform real calls, sends, bookings or purchases only if already included in the job’s controlled test plan. Confirm receiver/CRM routing separately from a success screen.\n4. Check measurement ownership and the actual event path. Distinguish browser/tag activity from destination receipt and real leads. Use the relevant GA4/GTM/Pixel task only when that architecture is present; record unavailable account evidence rather than installing a default stack.\n5. Review served search controls and identity: useful title/description, canonical URLs, robots rules, sitemap and appropriate business/schema facts. Check important redirects against their actual destinations. Use current per-check criteria, not a combined score from unrelated audit frameworks.\n6. Record actual delivery and recovery: HTTPS, publishing layers, backup/export location, retention and the responsible recovery owner. Inspect existing restore evidence. A provider logo or a backup file is not a tested recovery; do not restore production during a baseline audit.\n7. Map each used plugin, snippet, integration and fee to its business function and owner. Flag unknown, unused or license/access gaps. For a proposed migration, list acceptance tests for all current dynamic behavior and retain the source/rollback path until the separately authorized change passes them.\n8. Produce the baseline with pass/fail/unknown/not-applicable per defined check, exact evidence, severity and next owner. Carry out repairs already authorized and recheck the public result. Deliver only to the verified recipient/channel already in scope, with a real receipt; staged output remains a draft.\n\n## Definition of done (QA checklist)\n\n- [ ] The business job, site scope and actual lead receiver are defined.\n- [ ] Public experience and authorized lead tests have specific evidence, with delivery distinct from visible success.\n- [ ] Measurement/search controls reflect the actual architecture and current criteria.\n- [ ] Dependencies, recovery and migration acceptance needs are explicit; unknown proof is not a guarantee.\n- [ ] The dated baseline, repaired/public states, remaining owners and actual delivery state are recorded.\n\n## Example(s)\n\n**Fictional teaching example — no business site was audited.** Maple Cycle wants repair inquiries. Its phone link is correct, its form shows success, but the sample CRM record is absent. Analytics records a button click, and a backup ZIP exists without a restore receipt.\n\nThe baseline says “phone target checked; live call untested,” “form delivery failed/pending investigation,” “click received, accepted inquiry not proven,” and “backup available, restore untested.” The next fix belongs to the form/CRM owner. Moving hosts would not by itself prove any of those functions now work.\n\n## Handoff and Content Factory context\n\nThe site/business owner receives the baseline and prioritized defects. The exact failed function determines the next task. A proposed migration uses this baseline as acceptance evidence; this local-service guide supports the [Website QA master](https://blitzmetrics.com/website-qa-audit/) and does not become a competing audit trunk.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nRun for an initial baseline or a defined review/change. Repeated site QA needs its actual agreed schedule; this guide does not activate monitoring, migration or new paid services.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/website-audit-checklist/\n- Exact task: [Audit a local-service website](https://local-service-spotlight.github.io/task-library/?task=audit-local-service-website#task-audit-local-service-website)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual client scope, supported systems access, controlled test receipts, dependency ownership and recovery evidence require the site.\n- No independently verified completed execution is added by this authored candidate; the source contributor state remains needs-work.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "a1b7a341c873e3e995ee1075443cd1212466c7ee697948242e699a7da86b8aea",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "31ecd8b879e556b7bb308df6b3209856f419ef757f7b0cb4dc255b12f503b8b0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=audit-local-service-website#task-audit-local-service-website",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a1b7a341c873e3e995ee1075443cd1212466c7ee697948242e699a7da86b8aea",
      "articleKey": "blitzmetrics.com/website-audit-checklist",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a1b7a341c873e3e995ee1075443cd1212466c7ee697948242e699a7da86b8aea"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a1b7a341c873e3e995ee1075443cd1212466c7ee697948242e699a7da86b8aea"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/website-audit-checklist/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 154,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Run weekly client SEO audits",
     "slug": "run-weekly-client-seo-audits",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients/",
     "articleKind": "task-recipe",
     "desc": "Check client sites each week and track what changed. Give the right team clear findings and next steps.",
     "content": "---\nname: run-weekly-client-seo-audits\ndescription: \"Check client sites each week and track what changed. Give the right team clear findings and next steps.\"\ncategory: Website QA Audit\nstage: —\ndefinitive_article: https://blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients/\nstatus: needs-work\n---\n\n# Run weekly client SEO audits\n\nA small site fault can stay live for weeks if no one checks it. This guide helps your team run the same review each week and track the fixes. Start with the clients and pages this job is allowed to cover.\n\n**The path:** Current client scope → Same dated checks → Compare findings → Verified team handoff.\n\n**Use this when:** The agreed weekly audit trigger fires for a verified in-scope client/site list, or the owner authorizes a manual calibration run.\n\n## Inputs\n- Your private client roster, agreed work scope and run list with exact site URLs and existing project thread. For LSS work, authorized agents read `clients/ROSTER.md` in the private `Local-Service-Spotlight/agent-runtime` repository at its current revision through authenticated access. A public page or cached copy does not prove current scope. If the private source is unavailable, stop the dependent work.\n- The agreed checklist version and last audit/evidence for each client, including unresolved issue IDs and owners.\n- Real public read access and any required account access; the existing scope for controlled tests, repairs and project-thread posting.\n- The actual scheduler/trigger, timezone, persisted run state and failure owner if this is a scheduled run; a manual first run can proceed without claiming a schedule exists.\n\n## First-run prompt\n\n> Use the current roster, exact site/thread list, agreed checklist and previous audits. Run fresh scoped checks, compare issue identities and preserve unknowns. Complete already-authorized repairs or thread posts with receipts, then save the real run state and next owner without inventing scheduler operation or client counts.\n\n## Steps\n1. Confirm roster status and engagement before using the run-list row. Active Client work follows its scope; Special Project work needs its explicit scope; Not Active work stops. A spreadsheet row or payment entry is not a replacement for the roster decision.\n2. Resolve each exact client site and existing project thread. Load the previous audit, current checklist and last run state. Check for another active worker or duplicate scheduled delivery before starting this execution.\n3. Define page coverage and gather fresh canonical public evidence: home page, important services/landing pages and the rest of the agreed scope. Reconcile crawls with known published URLs. Screenshots help visual QA; source reads help tags and links. Neither alone proves all behavior.\n4. Apply the current relevant checks for title/description, clear headings, intended robots/indexing, real schema identity, purpose-based image alternatives, sitemap, internal links and content accuracy. Treat 60/160 as house brevity targets, not Google limits; intentional decorative empty alt is valid. Check actual services, hours, staff and location facts against current client records.\n5. Record pass, fail, unknown or justified not applicable with exact page, evidence, time and explanation. Actual indexation needs appropriate evidence; eligible or listed-in-sitemap is not indexed. Keep this weekly checklist distinct from the separate seven-component scored SEO exam.\n6. Compare issue identities with the prior run. Mark resolved only after the new public check passes; keep recurring and newly found faults separate. Escalate repeat unresolved findings under the source’s Priority 1 convention, preserving the team’s agreed urgency/service commitments rather than inventing a deadline or ranking impact.\n7. Draft a concise per-client report: scope, checked date, changed/resolved items, current failures, missing access and named next actions. Post to the exact existing thread when that message is already authorized, using the maintained supported write path. Read back the posted message once and retain the receipt; draft-only work is not delivered.\n8. Store this run’s state and next expected check. A real recurring setup needs the configured time and timezone, execution environment, current access, overlap protection and observed first firing/result. Do not assume the article’s historical Friday 9 AM PST, 29 clients or model/runtime claim describes this deployment.\n\n## First-screen, money-page and relationship enforcement\n\nResolve the canonical fleet registry and Client Roster first; preserve Not Active\nstops and site-specific HOLDs. Work from the existing ownership and execution\nrecord so a second agent or clock does not repeat an active rollout. Inventory\nall public HTML routes from current sitemap/CMS source. Report total discovered,\nmeasured, reviewed, failed, held and not yet checked separately; a homepage sample\ncannot prove every page on a site passes.\n\nRun `ensure-no-text-only-sections-spanning-full-viewport` before scrolling, with\nits shared rendered first-screen checker and actual screenshot/source review.\nReview priority relationships and buying pages weekly; cover the remaining\neligible routes monthly in bounded batches with the next exact due date recorded.\nA relationship refresh needs a newly verified source moment or useful lesson,\nnot stronger friendship/endorsement wording. Include the public Money Tree and\nproof beside material outcome claims. Reconcile the existing relationship,\nMoney Tree and website audit jobs before registering a schedule. A quiet unchanged\nrun should not page Dennis; notify on a meaningful change, failure or required\nhuman-only action under the current communication authority.\n\nEvery defect keeps URL, observed failure, source/CMS/deployment/rollback state,\nowning function, next action, due date and before/after evidence in the existing\nrecord. Apply safe authorized repairs, re-read the ordinary public page, and keep\nunavailable source, private evidence, unknown facts and deployment holds explicit.\nA merged standard or saved prompt is not live enforcement or observed operation.\n\n\n## Definition of done (QA checklist)\n\n- [ ] Audited page openings pass `step-7-write-hook-and-establish-context` for actual reader/situation, reason to care, useful outcome and mechanism; exact revision and quoted review are in the existing page inventory, with unsampled pages UNKNOWN and failures assigned to their existing owner\n\n- [ ] Every processed client has current roster/engagement authority and an exact verified destination.\n- [ ] The same declared checklist is applied to stated fresh page coverage with truthful unknowns.\n- [ ] Prior issues are compared by identity; resolved means newly verified, not merely assigned or saved.\n- [ ] Authorized reports have exact thread readback; drafts and failed posts remain separate.\n- [ ] Recurring status is backed by actual scheduler/first-run evidence, with historical counts and times not presented as current.\n\n## Example(s)\n\n**Fictional teaching example — no client audit or message ran.** A sample weekly list contains Maple Cycle and another account. The private scope check confirms only Maple Cycle is authorized for this run. Skip the other account and keep the private reason out of public writing.\n\nLast week Maple Cycle had a wrong service description and a broken quote link. This week the served description is correct, but the quote link still fails. The report marks one resolved and one recurring Priority 1 item, with the link owner and evidence. Missing Search Console access remains unknown.\n\nA written report is still draft until its authorized project-thread post is confirmed. A calendar entry alone is not proof that next week’s agent will run.\n\n## Handoff and Content Factory context\n\nEach client’s responsible team receives its actual report and prioritized repair list. The next weekly run verifies public fixes. [Write the weekly MAA report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) can use these findings under the client’s agreed cadence; MAA means [Metrics, Analysis, Action](https://blitzmetrics.com/maa/), not automatic separate executions for every report derivative.\n\nThis is a supporting quality check for the [Content Factory](https://localservicespotlight.com/content-factory/). Produce gathers real source material; Process makes useful assets; Post places and checks them; Promote distributes suitable work within its own scope. This check does not automatically execute all four stages. Use the actual next step above; catalog neighbors are not prerequisites.\n\n## When this runs\n\nWeekly at the already-agreed time and timezone. Configure a missing schedule only when that recurring setup is actually authorized, then verify its first firing and delivery. Preserve an agreed local-time schedule through daylight-saving handling; do not silently impose the article’s historical PST wording.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients/\n- Exact task: [Run weekly client SEO audits](https://local-service-spotlight.github.io/task-library/?task=run-weekly-client-seo-audits#task-run-weekly-client-seo-audits)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Website QA Audit](https://blitzmetrics.com/website-qa-audit/)\n- [Google title links](https://developers.google.com/search/docs/appearance/title-link)\n- [Google snippets](https://developers.google.com/search/docs/appearance/snippet)\n- [W3C image text alternatives](https://www.w3.org/WAI/tutorials/images/decision-tree/)\n- [Google robots meta and headers](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- The real client roster/list, previous audits, approved delivery scope, scheduling configuration and first firing require the operating project.\n- The owned article still contains historical-looking client/model/time claims and stale technical clauses; these guide corrections need reconciliation with that article’s owner.\n- No independently verified completed execution or working scheduler is added by this authored needs-work candidate.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "6a0b4e07f3dd534e3d8151fe1d5757dfe1b50d3deebb53f7d3c7824ce2658706",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Read the full revised instruction. Corrected private roster authority and neutral fictional example; public roster pages do not establish access. No new five-check certification, real execution, scheduler or article pass is inferred. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "dce51c39716310660d0ea23ba8b68ffcb51926a6b817a48487edcbb6bee4f640",
       "previousReviewDate": "2026-09-27",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-weekly-client-seo-audits#task-run-weekly-client-seo-audits",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "6a0b4e07f3dd534e3d8151fe1d5757dfe1b50d3deebb53f7d3c7824ce2658706",
      "articleKey": "blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Read the full revised instruction. Corrected private roster authority and neutral fictional example; public roster pages do not establish access. No new five-check certification, real execution, scheduler or article pass is inferred. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "6a0b4e07f3dd534e3d8151fe1d5757dfe1b50d3deebb53f7d3c7824ce2658706"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "6a0b4e07f3dd534e3d8151fe1d5757dfe1b50d3deebb53f7d3c7824ce2658706"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-run-weekly-ai-agent-seo-audits-across-all-your-clients/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 156,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Add homepage blog-card thumbnails",
     "slug": "add-homepage-blog-card-thumbnails",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/blog-card-thumbnails-standard/",
     "articleKind": "task-recipe",
     "desc": "Show a real photo on each home page article card. Keep the words and links easy to use.",
     "content": "---\nname: add-homepage-blog-card-thumbnails\ndescription: \"Show a real photo on each home page article card. Keep the words and links easy to use.\"\ncategory: Website QA Audit\nstage: Post\ndefinitive_article: https://blitzmetrics.com/blog-card-thumbnails-standard/\nstatus: needs-work\n---\n\n# Add homepage blog-card thumbnails\n\nA real photo helps readers choose which post to open. This guide helps you add one to the card and keep its words and link. Start with the source image and the site’s own editor.\n\n**The path:** Real article asset → Correct card layout → Supported save → Public two-width check.\n\n**Use this when:** An existing home-page article card lacks the meaningful real thumbnail required by its personal-brand card standard.\n\n## Inputs\n- The exact canonical home page, affected cards and each card’s existing text/destination.\n- Approved post featured images, legitimate source-video frames or real subject photos, with source/use evidence.\n- The actual card markup/computed layout and supported WordPress/theme/builder save route with edit scope.\n- A prior source/revision snapshot and canonical visitor QA access at desktop/phone widths.\n\n## First-run prompt\n\n> Use the supplied cards, real article assets and supported editor. Prepare source-preserving thumbnail layouts, complete authorized saves/publication and check normal canonical desktop/phone pages. Return exact source/public evidence and pending delivery layers without inventing assets or changing card destinations.\n\n## Steps\n1. Inventory only the affected existing article-card module. If the home page has no such module, record not applicable or the separately requested module-build scope. Do not create a new blog section just to complete a thumbnail check.\n2. Read each linked article and choose its real relevant asset: the actual featured image first, then a permitted source-video frame or real subject photo. Do not assume Rank Math universally generates thumbnails. A card about a real story needs its actual human/work source, not a stock or generated stand-in.\n3. Validate the actual image content, format, dimensions and source. A small/large response body alone cannot prove that a thumbnail is valid rather than a placeholder. If a needed source frame cannot be obtained through the supported authorized media route, request the precise asset; do not move untrusted remote media through model context.\n4. Inspect the card’s real layout. For a clipped card, an edge-aligned image may fit with existing padding. For an open/overflow-visible card, a full-width image above a padded body wrapper can preserve the original text. Choose from measured behavior rather than blindly pasting fixed margins.\n5. Prepare a source-preserving change that keeps each title, date, excerpt, link and useful style. Compare text, destination URLs and relevant markup/style counts before saving. Fragment parsing can move or lose style elements; verify the actual serialized result rather than trusting a parsing method by name.\n6. Save through the site’s currently supported editor/builder pipeline. The source article records an Elementor 3.x case where raw metadata saved but new images did not render; treat that as a reason to verify this site’s real route, not a universal version guarantee. Do not bypass a failed supported save gate.\n7. Read back the saved source, then check normal anonymous canonical desktop and phone pages. Confirm actual image content, readable text, intended crop, no sideways overflow, and working original links. A logged-in preview or cache-busted fetch alone is not the visitor result.\n8. If a known cache/static delivery layer still serves old cards, use only its maintained authorized publishing/recovery procedure and verify parity. Keep saved-but-not-public state explicit. Record the accepted card pattern and affected pages for later builds without claiming a fleet-wide rollout from one repair.\n\n## Definition of done (QA checklist)\n\n- [ ] Every affected card retains its actual article text and canonical destination.\n- [ ] Thumbnails are real relevant source assets, not placeholders or size-heuristic passes.\n- [ ] Layout preserves readable content, useful crop and no overflow on desktop and phone.\n- [ ] The actual supported save route and normal public rendering are both verified.\n- [ ] Pending publishing/cache layers and out-of-scope modules remain explicit.\n\n## Example(s)\n\n**Fictional teaching example — no card was edited.** Maple Cycle’s home page has three text-only article cards. The quote-guide article already has a real workshop frame. Its card uses visible overflow and padding.\n\nThe teaching change puts the image above a body wrapper that keeps the original title, excerpt and link. A save response succeeds, but the public home page still lacks the picture. The result remains “saved; public delivery pending” until the supported builder/cache path and normal visitor view show it.\n\nDownloading a placeholder with a large file size or renaming a stock image would not meet the standard.\n\n## Handoff and Content Factory context\n\nThe site/page owner receives the checked card pattern and source/public receipts. [Review article covers](https://local-service-spotlight.github.io/task-library/?task=verify-featured-images-unique-per-blog-post#task-verify-featured-images-unique-per-blog-post) supplies missing source assets, while the [Website QA master](https://blitzmetrics.com/website-qa-audit/) governs the resulting page check.\n\nThis task’s source placement is **Post** in the [Content Factory](https://localservicespotlight.com/content-factory/). It puts real article assets into an existing public page and checks their delivery. Produce supplies real source media, Process prepares the article/assets, and Promote remains separate. The exact asset and page tasks above define dependencies; catalog order does not.\n\n## When this runs\n\nRun when an existing card lacks its relevant thumbnail or its layout/source changes. Apply the pattern to future builds when those builds are actually assigned; this guide creates no automatic fleet-wide edits.\n\n## First-run setup and continuity\n\nOpen the supplied task file and its linked source. Verify the project’s real inputs, account, access and output folder before work. This Markdown file is a guide; it does not install an app, connect an account, supply a subscription or create a schedule. Carry out work already authorized; do not ask for the same approval again. Keep any unsupplied destination or new action outside that scope clearly pending.\n\nSave source IDs, versions, decisions, checked outputs and next owner in the project tracker. Before a retry, check the saved state and other workers’ changes. A model name does not guarantee memory or a running timer. Repeated work needs an actual configured trigger and durable state; one-off work can be started by the prompt above.\n\nKeep agent media muted with volume zero before playback. If mute cannot be verified, use captions, metadata or still frames. State the limit: silent visual checks do not prove spoken-word accuracy or audio quality. Do not start sound through the user’s speakers unless explicitly asked.\n\n## Write up the real run\n\nFor every actual attempt, [write its meta article](https://blitzmetrics.com/meta-article-prompt/) with this recipe and revision, trigger, steps performed, output evidence, measured result, gaps and next owner. Failed, blocked and partial attempts also get a written record. A draft can satisfy writing; publishing it follows the existing job scope.\n\nKeep one stable execution ID across retries and edits. A separately scoped child task may have its own ID linked to its parent. Writing the parent’s meta record is part of that run, not an endless new chain. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains this distinction. Teaching examples are not real executions and must not enter the run count.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 2, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Canonical article: https://blitzmetrics.com/blog-card-thumbnails-standard/\n- Exact task: [Add homepage blog-card thumbnails](https://local-service-spotlight.github.io/task-library/?task=add-homepage-blog-card-thumbnails#task-add-homepage-blog-card-thumbnails)\n- Writing standard: [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [WordPress post fields and list pagination](https://developer.wordpress.org/rest-api/reference/posts/)\n\n## Review and evidence still needed\n\nThe source contributor status is preserved. It is not certification of this draft or proof of account access, completed work or a live outcome. The worked example teaches the method and is explicitly fictional.\n- Actual source assets, card layout, supported builder route and public delivery evidence require the site.\n- The historical owned article’s version-specific workarounds and thumbnail/cache shortcuts need current owner reconciliation; this candidate does not certify those old commands.\n- No independently verified completed execution is added by this authored needs-work candidate.",
     "importance": 3,
     "freq": 3,
     "revenue": 2,
     "gating": 3,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "5d4c38c6c036b29cd81258e6af44a96a79078a00081fc110e067c43d8da3b9a5",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7fdc77a927296424c4e5a1ddfdf43edfa6985740f4d44020740f02a536bdf472",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-homepage-blog-card-thumbnails#task-add-homepage-blog-card-thumbnails",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5d4c38c6c036b29cd81258e6af44a96a79078a00081fc110e067c43d8da3b9a5",
      "articleKey": "blitzmetrics.com/blog-card-thumbnails-standard",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5d4c38c6c036b29cd81258e6af44a96a79078a00081fc110e067c43d8da3b9a5"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5d4c38c6c036b29cd81258e6af44a96a79078a00081fc110e067c43d8da3b9a5"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/blog-card-thumbnails-standard/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 153,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "seo-content-architecture",
   "name": "SEO & Content Architecture",
   "icon": "🌳",
   "color": "#22c55e",
   "description": "Building the SEO Tree, internal linking, and content hierarchy for organic authority",
   "tasks": [
    {
     "title": "Build external backlinks from authoritative sources",
     "slug": "build-external-backlinks-from-authoritative-sources",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/link-building",
     "articleKind": "reference",
     "desc": "Help the right people find and check your work.",
     "content": "---\nname: build-external-backlinks-from-authoritative-sources\ndescription: \"Help the right people find and check your work.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /link-building\nstatus: needs-work\n---\n\n# Build external backlinks from authoritative sources\n\nHelp the right people find and check your work. Earn useful links by sharing real work with sites that serve the same people. Start with your [SEO Tree, the map that joins each story to its main guide](https://blitzmetrics.com/seo-tree/), so a new link sends readers to the right page.\n\n**The path:** Real proof → Relevant publisher shortlist → Approved contribution → Verified placement\n\n**Start when:** A person or business has verified public proof and an agreed topic for relevant outside coverage.\n\n## Inputs\n\n- The subject’s verified name, site and topic pages, plus source material cleared for public use.\n- Current press, podcast and partner records, existing links, ownership and any paid relationships.\n- [Choose the right entity destination](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) and the specific authority for pitches, submissions, public thanks or paid placements; research alone grants none.\n\n## Steps\n\n1. Inspect the existing link and proof inventory before seeking new placements. Identify the reader, useful claim and strongest actual evidence. Separate independent coverage, paid placements, self-published material and neutral appearances instead of treating every mention as an endorsement.\n2. Build a small target list from relevant publications, podcast hosts, industry groups and real professional relationships. Read their work and contribution rules. Record why their audience would use the source material; a domain score alone does not establish relevance or Google’s trust.\n3. Prepare a useful contribution such as original data, a sourced answer, an interview topic or a real case study. Tie it to the host’s actual audience and existing work. Do not create a testimonial, exchange links as a condition of praise, or promise results for a backlink.\n4. Use [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) to propose the destination. For a person or business in the approved network, use their verified home. For an outside name or method, use the maintained owned guide or leave it plain while recording a useful guide gap. A story may cite a specific primary source that supports its claim; needed sign-in and download links keep their real targets. Verify link scope privately and keep relationship status out of public copy. Give the editor honest descriptive wording without requiring an unnatural keyword phrase.\n5. Send a specific pitch or submission only under existing authority, using the publisher’s supported route. Record sent, accepted, scheduled, published and declined separately. The publisher decides whether to include a link; a booking or friendly reply is not a live placement.\n6. Keep a private link log with one row per proposed placement, its state, next owner and next check date. When a placement is public, read it and follow the actual link. Save source URL, date, supported fact, anchor, target, redirect outcome and any sponsorship label. Paid links require appropriate qualification; paying for advertising is not the same as earning an independent endorsement.\n7. Count only placements actually checked live. Report proposed, sent, booked, published and verified totals separately; agree any target count before work starts. Add relevant verified proof to the owning hub with context and attribution, strongest relevant evidence first. Prepare or send thanks under its separate authority. Pass dated link changes and comparable search or referral measures to [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/) without claiming that one link caused a ranking change.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each proposed placement has genuine topic and audience fit, source proof and an honest target.\n- [ ] Sent requests, booked appearances and verified public links have distinct states.\n- [ ] Accepted proof is attributed and relevant; payment and independence are not concealed.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional roofer has a documented storm-repair case. A trade host accepts an interview topic, but the show is not yet out. The record says “booked,” with no earned-link count. When the episode page later appears, the owner checks its case-study link and records what the episode actually supports before adding it to the site.\n\n## Handoff and Content Factory context\n\n[Classify outside proof](https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation) receives the checked placement; the hub owner receives the exact evidence card. [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the dated change and known access gaps.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/link-building/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=build-external-backlinks-from-authoritative-sources#task-build-external-backlinks-from-authoritative-sources)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s link spam rules](https://developers.google.com/search/docs/essentials/spam-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "ee2ca9aa22b3398d7d37d21e3896aec43cb1358b8d3ce8d4a4f247cde8102a5f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions checked; article certification, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Useful outcome, plain method and explained owned SEO Tree connection.",
         "evidence": "Help the right people find and check your work. Earn useful links by sharing real work with sites that serve the same people."
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, verified inputs, action authority, seven steps, distinct placement states and measured log.",
         "evidence": "Count only placements actually checked live. Report proposed, sent, booked, published and verified totals separately; agree any target count before work starts."
        },
        "links": {
         "state": "pass",
         "reason": "Destination rule matches parent/entity guide; owned explanations and exact proof/action exceptions remain separate.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional example and real run record separated; no invented placement or setup pass.",
         "evidence": "Fictional teaching example. This is not a client result or proof of a completed run."
        },
        "handoff": {
         "state": "pass",
         "reason": "Proof classification, hub owner, MAA receiver and Content Factory relationship identify the next step.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "2a4deb7806fe0a08d67b67bec2d751fcbd9c4b4529ddf7116b2b76dc28ca8152",
       "previousReviewDate": "2026-10-01",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-external-backlinks-from-authoritative-sources#task-build-external-backlinks-from-authoritative-sources",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ee2ca9aa22b3398d7d37d21e3896aec43cb1358b8d3ce8d4a4f247cde8102a5f",
      "articleKey": "blitzmetrics.com/link-building",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions checked; article certification, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ee2ca9aa22b3398d7d37d21e3896aec43cb1358b8d3ce8d4a4f247cde8102a5f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions checked; article certification, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "ee2ca9aa22b3398d7d37d21e3896aec43cb1358b8d3ce8d4a4f247cde8102a5f",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Useful outcome, plain method and explained owned SEO Tree connection.",
           "evidence": "Help the right people find and check your work. Earn useful links by sharing real work with sites that serve the same people."
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, verified inputs, action authority, seven steps, distinct placement states and measured log.",
           "evidence": "Count only placements actually checked live. Report proposed, sent, booked, published and verified totals separately; agree any target count before work starts."
          },
          "links": {
           "state": "pass",
           "reason": "Destination rule matches parent/entity guide; owned explanations and exact proof/action exceptions remain separate.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional example and real run record separated; no invented placement or setup pass.",
           "evidence": "Fictional teaching example. This is not a client result or proof of a completed run."
          },
          "handoff": {
           "state": "pass",
           "reason": "Proof classification, hub owner, MAA receiver and Content Factory relationship identify the next step.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/link-building"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "build-external-backlinks-from-authoritative-sources",
         "canonicalURL": "https://blitzmetrics.com/link-building",
         "sourceSha256": "f99ce0d01b76bfeaf20805df0ea105e9f3f5da0fc2d6addfe7b3e2bb1609a17c",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-01T13:18:20.235921Z",
         "reviewer": "Codex root with separate Codex source reviewer",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Quoted words explain useful links, reader value and the verified SEO Tree connection; body delivers the promise.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Parent linking policy explicitly distinguishes internal, outbound and earned links; embedded child recipe matches the mapped external-placement task.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Mapped hub and author do not establish the full maintained upkeep-owner record.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Inputs, permission boundary, ordered review and placement steps, exact log, separate states and measured next handoff are explicit.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "All article destinations checked; opening, install and next QA destination read for meaning. Exact embedded file matches maintained task.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Primary Google claims checked and fictional example clearly labeled; task-attributed real placement proof remains missing.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Produce/Process/Post/Promote relationship, receiving QA and MAA work, exact output log and unresolved owner actions are explicit.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Public phone/desktop opening, lower context and expanded phone recipe checked; comprehensive whole-page publishing audit is not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Exact source and public browser readback passed with preserved URL/date/media; complete metadata, E-E-A-T and owner checklist remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No independent accepted placement or novice-human setup receipt is established by this repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-building-2026-10-01.md",
            "sha256:c3b47758ca7efb317ce62c08f4db055b35c14cd878c2d2ff5677f5dd78298773"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "build-external-backlinks-from-authoritative-sources",
         "canonicalURL": "https://blitzmetrics.com/link-building",
         "sourceSha256": "f99ce0d01b76bfeaf20805df0ea105e9f3f5da0fc2d6addfe7b3e2bb1609a17c",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-01T13:18:20.819549Z",
         "observer": "Codex independent final source read after review",
         "state": "observed",
         "reason": "Fresh saved source matches final independently reviewed candidate, including exact task and maintained-source links. Earlier full browser comparison retained; final anonymous read recorded separately.",
         "evidenceRefs": [
          "sha256:e8fbbc7e7a6b7e27a5e86af0eedc07cfb5930d6c7bfde6f48695896b21e1e471"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 128,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Enhance existing articles before creating new ones",
     "slug": "enhance-existing-articles-before-creating-new-ones",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Make your best page more useful before you write a rival to it.",
     "content": "---\nname: enhance-existing-articles-before-creating-new-ones\ndescription: \"Make your best page more useful before you write a rival to it.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Enhance existing articles before creating new ones\n\nHelp readers find what they need on a page you already have. Use this guide to choose where a new fact, video or story fits. The [SEO Tree maps your site](https://blitzmetrics.com/seo-tree/): it helps you pick the right page and link to the next step.\n\n**The path:** New proof → Find the right page → Improve or add a story → Check the result → Pass it on\n\n**Start when:** New material or a content request may overlap a topic the site already covers.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) and [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) with current topic owners and source revisions.\n- The actual new recording, facts, proof or reader question, plus use permissions and [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/).\n- Current page owner, maintained source/builder and the authority for any edit, consolidation or publication.\n\n## Steps\n\n1. Search the maintained inventory, site search and relevant query variants before choosing a new URL. Inspect the actual pages that address the reader’s question. Search results can miss pages; combine them with the source inventory and record any scope limits.\n2. Compare the new material with each candidate’s reader, promise, method and proof. Choose the page that owns the same intent, not just the page with a matching keyword. A task recipe, a topic hub, a service offer and a distinct case story can legitimately discuss the same subject.\n3. If an owning page exists, prepare a specific enhancement: a clearer definition, corrected method, new source-backed example, current fact or useful visual. Retain relevant proof, author voice, existing media and stable URL/type. Explain what the reader can do better after the change.\n4. If the material is a distinct execution, event or case, give it its own supporting story when useful and link it to the owning method. Do not paste a second generic explanation into a competing hub. If no page serves a genuinely distinct core topic, propose a new hub or task recipe with the proper role.\n5. When coverage is fragmented, inventory unique value before proposing consolidation. Use [Review duplicate or weak pages](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages) for the exact keep/merge/remove decision and destination checks. Two pages that mention the same topic are not automatically duplicates, and a merge proposal is not permission to delete or redirect.\n6. Apply [Article Guidelines](https://localservicespotlight.com/article-guidelines/) to the proposed page: grade-five opening, clear reader value, useful first-screen visual and evidence-backed claims. Keep relevant named proof and strongest credible sources visible; an attractive rewrite that loses real examples has not improved the page.\n7. Save a short decision record: the source material, pages compared, their different reader needs, the chosen page and the reason to improve it or add a distinct story. Record the recipe version you actually used before changing the page. Keep the before/after source and the reviewer’s decision. Spend more time on useful proven material, while leaving room for a real new need.\n8. Publish within the authority already given, using the page owner’s supported method. Open the public result without signing in. Check the exact changed text, retained proof, images and links on a phone and desktop. Record what passed and what remains open; a save message alone is not a checked result.\n9. Give the checked page, decision record and remaining issues to the named receiving task or worker. Ask for acceptance through an authorized channel, or save the pending request for its existing owner. A sent handoff stays open until the receiver confirms it; do not create a second follow-up clock.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The decision compares actual intent and evidence, with one maintained owner for the same topic.\n- [ ] Distinct task recipes, offers and real supporting stories are not erased just for sharing terms.\n- [ ] The proposed improvement preserves unique facts, media and voice and meets current reading and visual standards.\n- [ ] One decision record names the compared pages, choice and reason; the starting recipe version, before/after source and separate reviewer decision are saved.\n- [ ] When published, the exact changed text, retained proof, images and links pass anonymous phone/desktop checks.\n- [ ] The receiving task or worker has the checked output and open issues; acceptance or its pending owner is recorded honestly.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional plumber has a drain-cleaning guide and a new filmed repair. The film adds a useful diagnostic detail, so the team improves that section. The unusual repair also supports a separate dated case story linked to the guide and the real service page. It does not create a second drain-cleaning guide or invent a sales result.\n\n### Checked delivery example\n\nThe [Bryce Clark story](https://localservicespotlight.com/bryce-clark-digital-marketing-freedom/) kept its existing address and gained a captioned one-minute video and an audit example. The [AI Builder program proof section](https://localservicespotlight.com/ai-builder-program/#bryce-learning-example) links back to the story. This connects a specific experience to a related offer without creating a second biography.\n\nThe [dated review of this enhancement](https://blitzmetrics.com/making-task-guides-easier-to-use/#bryce-proof-followup-20261007) records checked published outputs. The original start time and exact recipe version were not recovered, and the next worker’s acceptance was unconfirmed at that review. This is one historical delivery example; it does not certify this revised recipe, new-user setup or sales results.\n\n## Handoff and Content Factory context\n\n[Create or update the owning recipe](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) receives an accepted recipe change; [Place the accepted links](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement) receives its link plan. The content inventory records the decision and the exact next owner. For a story or offer page, the publishing or distribution worker receives its checked URL, source changes, proof and open issues. Keep that handoff open until acceptance is recorded; the next worker may need to correct a link or return an issue before proceeding.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=enhance-existing-articles-before-creating-new-ones#task-enhance-existing-articles-before-creating-new-ones)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method. The checked historical example demonstrates delivered changes, with its missing recipe and handoff evidence stated above. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1dea5728a23331212ec187d648716dbd20070021a6d4e643f1ff5c15e01e3ce1",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Five written-guide checks only. Scoped SEO Tree corrections and linked historical proof reviewed; full topic hub, actual use of this revision, setup and handoff evidence remain separate. See reviews/article-enhancement-2026-10-08.md. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "The opening states what the guide does, why it helps, and its connection to the maintained SEO Tree in plain language. The approximate FK grade is 3.27. I inspected the normal rendered desktop and phone screenshots: the five-step diagram is fully in the first viewport, its labels fit, and no horizontal overflow or clipping is visible.",
         "evidence": "Quote: ‘Help readers find what they need on a page you already have. Use this guide to choose where a new fact, video or story fits. The SEO Tree maps your site: it helps you pick the right page and link to the next step.’ Readability.json: 44 words, 3 sentences, estimated FK grade 3.27 (approximate vowel-group screen). Preview receipts: desktop 1280 × 800, visual box y=327.6 h=187.2; phone 390 × 844, visual box y=481.8 h=203.4; pathInsideViewport=true and overflow=false in both. I visually inspected preview-guide-desktop.png and preview-guide-phone.png."
        },
        "recipe": {
         "state": "pass",
         "reason": "The trigger, page/source inputs, permissions and owner, search/compare/decision sequence, edit and publication limits, measurable checks, decision record, and accepting handoff are clear enough to repeat. It distinguishes a task recipe from a hub, offer, or distinct case story.",
         "evidence": "Inputs; Steps 1–9; Definition of done. Step 8 requires work within existing authority and an anonymous public check; Step 9 keeps a sent handoff open until acceptance or records its pending owner."
        },
        "links": {
         "state": "pass",
         "reason": "Browser fallback returned 200 for all seven filtered BlitzMetrics destinations; direct scripted requests returned 403 for those same destinations. The new knowledge-system-maintenance link returned 200 and its page teaches the upkeep process named in the meta section. Task Library routes returned the app shell, so I matched each exact slug to its title and mapped article in dashboard/data.json instead of treating the shell as proof of the selected guide.",
         "evidence": "SEO Tree meaning matches the opening’s site-map relationship. Source rows confirm: enhance-existing… → ‘Enhance existing articles before creating new ones’ (/seo-tree); step-1 inventory → internal-linking; map hierarchy → /seo-tree; remove duplicate thin pages → /seo-tree; create/update recipe → definitive-article-guide; step-4 links → internal-linking. Bryce story and program proof-section returned 200; the dated review fragment was found in browser fallback text. maintenance-link.txt returned 200, title ‘How LSS Keeps Its Task Guides Useful’; its opening says to keep guides current, save lessons, and fix the main guide."
        },
        "evidence": {
         "state": "pass",
         "reason": "The fictional plumber case is labeled. The Bryce case is supported by the dated independent record and states that recipe timing/version and receiver acceptance were unknown; it disclaims current recipe certification, setup, and sales results.",
         "evidence": "The example says the existing Bryce story gained a captioned one-minute video and audit example, and that the program proof section links back. The source record supports those scoped outputs. It says the original start time and exact recipe version were not recovered and the next worker’s acceptance was unconfirmed. The source review limits acceptance to the released files/proof section, not the whole current program page or business outcomes."
        },
        "handoff": {
         "state": "pass",
         "reason": "The guide identifies the next recipe task for accepted recipe changes, the link-placement task for a link plan, the story/offer publishing or distribution role, the inventory as the owner record, and the outstanding acceptance state.",
         "evidence": "‘Create or update the owning recipe’ and ‘Place the accepted links’ are linked receiving tasks. Step 9 says to give the checked page, decision record, and open issues to the named receiver and keep the handoff open until acceptance. Content Factory context states that support work can span stages without inventing unrelated assets."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "6de36415ce4c609bf03b06c27f7cd520d94f27ca636d530b41660906510d7cfb",
       "previousReviewDate": "2026-10-08",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=enhance-existing-articles-before-creating-new-ones#task-enhance-existing-articles-before-creating-new-ones",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-b47f6ecca9200b904c006ab7",
        "taskSlugs": [
         "enhance-existing-articles-before-creating-new-ones"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "timestamp",
          "value": "2026-10-06T15:31:30.640704+00:00"
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-07T16:03:04.339039+00:00",
        "outcome": "One existing story was enhanced with source-backed teaching, a captioned one-minute video and a linked program proof section. Independent publication checks accepted the released files. The story, video, poster and program proof section remain exact; the broader program page has since changed. Distribution receiver acceptance is still unconfirmed. This is one historical source job, not a new execution or a verified use of today's recipe.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "One original production job and frozen source commit identify all four release files. The story, proof card and media are outputs of that same job, not separate runs."
         },
         "output": {
          "state": "pass",
          "notes": "Scoped to the enhanced story and supporting proof card/media. Original independent checks passed; fresh story/video/poster hashes and the program proof section match. The rest of the program page changed and is not re-certified."
         },
         "acceptance": {
          "state": "pass",
          "notes": "Scoped independent publication acceptance: frozen files, source preservation, links and silent media checks. This does not establish current-recipe acceptance, reader comprehension, qualified applications or revenue."
         },
         "handoff": {
          "state": "hold",
          "notes": "The internal distribution request and receiving worker are recorded. Fresh original-thread readback has no reply. Receiver acceptance and public distribution remain open with the existing owner and follow-up clock."
         }
        },
        "evidenceUrls": [
         "https://localservicespotlight.com/bryce-clark-digital-marketing-freedom/",
         "https://localservicespotlight.com/ai-builder-program/#bryce-learning-example"
        ],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 1,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 1,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-b47f6ecca9200b904c006ab7"
      ],
      "historicalAcceptedEvidenceIds": [
       "historical-b47f6ecca9200b904c006ab7"
      ]
     },
     "standardVerification": {
      "instructionSourceSha256": "1dea5728a23331212ec187d648716dbd20070021a6d4e643f1ff5c15e01e3ce1",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Five written-guide checks only. Scoped SEO Tree corrections and linked historical proof reviewed; full topic hub, actual use of this revision, setup and handoff evidence remain separate. See reviews/article-enhancement-2026-10-08.md. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1dea5728a23331212ec187d648716dbd20070021a6d4e643f1ff5c15e01e3ce1"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Five written-guide checks only. Scoped SEO Tree corrections and linked historical proof reviewed; full topic hub, actual use of this revision, setup and handoff evidence remain separate. See reviews/article-enhancement-2026-10-08.md. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "1dea5728a23331212ec187d648716dbd20070021a6d4e643f1ff5c15e01e3ce1",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "The opening states what the guide does, why it helps, and its connection to the maintained SEO Tree in plain language. The approximate FK grade is 3.27. I inspected the normal rendered desktop and phone screenshots: the five-step diagram is fully in the first viewport, its labels fit, and no horizontal overflow or clipping is visible.",
           "evidence": "Quote: ‘Help readers find what they need on a page you already have. Use this guide to choose where a new fact, video or story fits. The SEO Tree maps your site: it helps you pick the right page and link to the next step.’ Readability.json: 44 words, 3 sentences, estimated FK grade 3.27 (approximate vowel-group screen). Preview receipts: desktop 1280 × 800, visual box y=327.6 h=187.2; phone 390 × 844, visual box y=481.8 h=203.4; pathInsideViewport=true and overflow=false in both. I visually inspected preview-guide-desktop.png and preview-guide-phone.png."
          },
          "recipe": {
           "state": "pass",
           "reason": "The trigger, page/source inputs, permissions and owner, search/compare/decision sequence, edit and publication limits, measurable checks, decision record, and accepting handoff are clear enough to repeat. It distinguishes a task recipe from a hub, offer, or distinct case story.",
           "evidence": "Inputs; Steps 1–9; Definition of done. Step 8 requires work within existing authority and an anonymous public check; Step 9 keeps a sent handoff open until acceptance or records its pending owner."
          },
          "links": {
           "state": "pass",
           "reason": "Browser fallback returned 200 for all seven filtered BlitzMetrics destinations; direct scripted requests returned 403 for those same destinations. The new knowledge-system-maintenance link returned 200 and its page teaches the upkeep process named in the meta section. Task Library routes returned the app shell, so I matched each exact slug to its title and mapped article in dashboard/data.json instead of treating the shell as proof of the selected guide.",
           "evidence": "SEO Tree meaning matches the opening’s site-map relationship. Source rows confirm: enhance-existing… → ‘Enhance existing articles before creating new ones’ (/seo-tree); step-1 inventory → internal-linking; map hierarchy → /seo-tree; remove duplicate thin pages → /seo-tree; create/update recipe → definitive-article-guide; step-4 links → internal-linking. Bryce story and program proof-section returned 200; the dated review fragment was found in browser fallback text. maintenance-link.txt returned 200, title ‘How LSS Keeps Its Task Guides Useful’; its opening says to keep guides current, save lessons, and fix the main guide."
          },
          "evidence": {
           "state": "pass",
           "reason": "The fictional plumber case is labeled. The Bryce case is supported by the dated independent record and states that recipe timing/version and receiver acceptance were unknown; it disclaims current recipe certification, setup, and sales results.",
           "evidence": "The example says the existing Bryce story gained a captioned one-minute video and audit example, and that the program proof section links back. The source record supports those scoped outputs. It says the original start time and exact recipe version were not recovered and the next worker’s acceptance was unconfirmed. The source review limits acceptance to the released files/proof section, not the whole current program page or business outcomes."
          },
          "handoff": {
           "state": "pass",
           "reason": "The guide identifies the next recipe task for accepted recipe changes, the link-placement task for a link plan, the story/offer publishing or distribution role, the inventory as the owner record, and the outstanding acceptance state.",
           "evidence": "‘Create or update the owning recipe’ and ‘Place the accepted links’ are linked receiving tasks. Step 9 says to give the checked page, decision record, and open issues to the named receiver and keep the handoff open until acceptance. Content Factory context states that support work can span stages without inventing unrelated assets."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 259,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Fit every new piece into the tree structure",
     "slug": "fit-every-new-piece-into-the-tree-structure",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Help each new page lead readers to the next useful step.",
     "content": "---\nname: fit-every-new-piece-into-the-tree-structure\ndescription: \"Help each new page lead readers to the next useful step.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Fit every new piece into the tree structure\n\nHelp each new page lead readers to the next useful step. This guide finds the right home for a new story or method on your site. Start with what the page helps someone do and your current site map.\n\n**The path:** Reader purpose → Existing topic owner → Page role and parent → Checked links\n\n**Start when:** A new or substantially revised piece has real source material and needs a role and link plan before release.\n\n## Inputs\n\n- The actual draft/source material, [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/), proposed title and current publication scope.\n- [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) and the current topic, method and offer URLs; [Improve the existing owning page](https://local-service-spotlight.github.io/task-library/?task=enhance-existing-articles-before-creating-new-ones#task-enhance-existing-articles-before-creating-new-ones) decision when a possible duplicate exists.\n- Current WordPress content type/taxonomy rules or the actual non-WordPress source; relevant proof and media rights.\n\n## Steps\n\n1. State the reader’s task or question and the evidence this piece supplies. Compare that purpose with the current map before choosing a URL. A generic subject label such as “marketing” does not tell you whether the piece is a recipe, a topic explanation or a dated story.\n2. Find the maintained page that owns the same method or topic. If the new draft repeats its job, prepare an enhancement to that page. If it adds a distinct case, execution or event, identify its specific contribution and keep the main method on its existing hub.\n3. Assign the actual page role: entity home, topic or method hub, service offer, task recipe, supporting story or utility page. Choose one primary parent for a supporting piece where appropriate, while retaining useful cross-topic links. Do not declare every branch a task recipe or force legal/contact pages into a content branch.\n4. Write the upward link in a sentence that tells the reader why the parent helps. Where relevant, add the real service destination and the practical how-to route. Apply [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) to named people, companies and concepts so a provider help page does not replace our own explanation without a source or action reason.\n5. Use existing supported categories and tags according to the site’s approved taxonomy. A category may support a branch without being the branch page itself. Preserve current Page/Post/builder ownership; do not force every definitive page into a new post or invent term assignments for unsupported content types.\n6. Prepare the receiving hub’s useful link back to the new evidence, with a short account of what it proves. The new page’s outgoing parent link alone does not make it discoverable from the site. Verify both directions where the relationship genuinely benefits readers.\n7. Check the draft’s plain opening, authentic lead visual, link text and target identity, then save its role and links in the inventory. Pass the exact revision to the authorized publisher. After release, verify the normal URL and update the dated map; a planned branch remains planned until it exists.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The new piece has a clear role, unique purpose and verified parent or an explicit approved gap.\n- [ ] Links use actual maintained destinations; a supporting story has a relevant incoming path.\n- [ ] Existing URL, type, builder and taxonomy rules are preserved; no planned content is drawn as published.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional landscaper records a real patio build. The new case page supports the existing patio service and the installation method, but the site already has a main patio guide. The case links to both useful destinations, and the guide adds a short evidence link back. The map gains a leaf, not a duplicate main guide.\n\n## Handoff and Content Factory context\n\n[Place the accepted links](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement) receives the exact source-to-target rows. [Publish the checked site directory](https://local-service-spotlight.github.io/task-library/?task=publish-seo-tree-site-directory#task-publish-seo-tree-site-directory) receives the checked role and published URL after release; an unresolved owning topic goes to the content owner.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=fit-every-new-piece-into-the-tree-structure#task-fit-every-new-piece-into-the-tree-structure)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "6abd7a5a81c8978166ebb3297760b20719ba741c3734a952838be9f8e18c195a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0b1979cd812510e827fe38990cfa9cd3a08fa3a6aa01c2a773382c6321dbb55b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=fit-every-new-piece-into-the-tree-structure#task-fit-every-new-piece-into-the-tree-structure",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "6abd7a5a81c8978166ebb3297760b20719ba741c3734a952838be9f8e18c195a",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "6abd7a5a81c8978166ebb3297760b20719ba741c3734a952838be9f8e18c195a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "6abd7a5a81c8978166ebb3297760b20719ba741c3734a952838be9f8e18c195a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 260,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Follow entity linking decision tree",
     "slug": "follow-entity-linking-decision-tree",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/entity-linking/",
     "articleKind": "reference",
     "desc": "Help readers reach the right person, business or guide.",
     "content": "---\nname: follow-entity-linking-decision-tree\ndescription: \"Help readers reach the right person, business or guide.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: https://blitzmetrics.com/entity-linking/\nstatus: complete\n---\n\n# Follow entity linking decision tree\n\nHelp readers find the right person, business, or guide. Use these steps to choose links that answer their next question. This builds your [SEO Tree](https://blitzmetrics.com/seo-tree/): a map that joins each story to its main guide and your business.\n\n**The path:** Named subject → Identity and page-role check → Useful destination → In-context review\n\n**Start when:** A draft or existing page needs its first useful named-person, company, tool and concept links checked.\n\n## Inputs\n\n- The exact current draft/source, actual named subjects and supporting evidence.\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) or the maintained guide directory, verified personal/company homes and current relationship scope from the authorized private source. Keep that check private: public examples describe the work, without calling a named client “former,” “inactive,” or “no longer a client.”\n- The [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) method and necessary direct source, sign-in, install or download destinations used by the task.\n\n## Steps\n\n1. Read the actual sentences and list the names and unfamiliar terms they contain. Record whether each item means a person, an organization, a method, a tool or a particular piece of evidence. Resolve ambiguous names before linking; a matching title in search is not identity proof.\n2. For a person or business in the verified network, use their verified personal home or official business site. Send names outside that scope through step 3. Check that the page describes the same entity and current relationship. Do not use a look-alike name, obsolete affiliate destination or unrelated profile merely because it opens.\n3. For an LSS method, choose the maintained owned explanation. For an outside person, business, tool, concept or well-known entity in explanatory copy, use our current guide when one exists. If no relevant owned guide exists, leave the name plain and record the actual knowledge gap instead of linking to a weak substitute. Search for an existing guide first; improve it if it can answer the question. Propose a new guide only for a distinct task or substantial explanation, never just to fill a link slot.\n4. Keep direct primary evidence and required action links when the step needs that destination. Label a research source, account sign-in or download by its real purpose; these are different from the first explanation of the tool. Do not retarget a source citation or login button to our general article.\n5. Explain unfamiliar language on its first useful body mention in plain words, linked to the owned guide. Keep headings short and meaningful; if the term first occurs in a heading, give its explanation in the next suitable prose. Do not expand every repeated mention or repeatedly link the same entity.\n6. Use the actual name or a concise phrase that predicts the destination. Three to six descriptive words is the house preference where natural, not a requirement to pad a two-word person’s name. Read the surrounding sentence after the edit to ensure the meaning and claim remain true.\n7. Open the targets and inspect the final body links, preserving existing media, IDs and source ownership. Record unresolved identity, missing-guide and inaccessible-source cases separately. Record source page, exact mention, purpose, destination, check date, result and open gap. Pass the exact link log and remaining decisions to the page owner; a link is not proof of an endorsement or completed task.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each destination matches the named entity and the sentence’s purpose.\n- [ ] Owned explanations, primary proof and necessary action links retain their distinct jobs.\n- [ ] First-mention explanations are clear and limited; headings, existing claims and actual names remain accurate.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional article explains an app, cites that app’s official format specification and asks the reader to sign in. Its first explanation links to the site’s maintained app guide. The specification stays a clearly labeled primary citation, and the sign-in link stays the actual action destination. None of those three links is substituted for another.\n\n## Handoff and Content Factory context\n\n[Check the placed links](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) receives the checked links and unresolved cases. The content owner receives a specific missing-guide request only where no useful owned explanation exists.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/entity-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s descriptive link guidance](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e0660419e50fa8411f2dd2f20093491b6cd94b7710c39da7ac191891cbdd3d1f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Five written-instruction checks at exact bytes; independent corrections and target meaning reviewed. Real setup, article certification and accepted business execution remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "States outcome, why readers benefit and the linked SEO Tree relationship in plain words.",
         "evidence": "Help readers find the right person, business, or guide. Use these steps to choose links that answer their next question. This builds your SEO Tree: a map that joins each story to its main guide and your business."
        },
        "recipe": {
         "state": "pass",
         "reason": "Actual input draft, verified map and scope, seven steps, distinct destination purposes and measurable link-log output are present.",
         "evidence": "Record source page, exact mention, purpose, destination, check date, result and open gap."
        },
        "links": {
         "state": "pass",
         "reason": "Owned explanations match their roles; required exact proof/action URLs are preserved. Opening target and receiving task were inspected.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Example is clearly fictional; contributor completion does not imply access, execution or accepted results. Real record requirements include source version, checks, failure and owner.",
         "evidence": "Fictional teaching example. This is not a client result or proof of a completed run."
        },
        "handoff": {
         "state": "pass",
         "reason": "Page owner receives checked log and open decisions; named link-review task receives result; Content Factory role and one execution ID are explicit.",
         "evidence": "Check the placed links receives the checked links and unresolved cases."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "8880e6df0dcba159e9c26477a306c1098ffe657d6ccd0983898f8f81a822ca74",
       "previousReviewDate": "2026-09-29",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Exact source and written instructions reviewed after a scoped repair. Full semantic certification remains held: canonical ownership, complete publication checks and accepted execution evidence are not all established. See reviews/entity-linking-2026-09-29.md.",
     "articleStateReviewed": "2026-09-29",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e0660419e50fa8411f2dd2f20093491b6cd94b7710c39da7ac191891cbdd3d1f",
      "articleKey": "blitzmetrics.com/entity-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Five written-instruction checks at exact bytes; independent corrections and target meaning reviewed. Real setup, article certification and accepted business execution remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e0660419e50fa8411f2dd2f20093491b6cd94b7710c39da7ac191891cbdd3d1f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Five written-instruction checks at exact bytes; independent corrections and target meaning reviewed. Real setup, article certification and accepted business execution remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "e0660419e50fa8411f2dd2f20093491b6cd94b7710c39da7ac191891cbdd3d1f",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "States outcome, why readers benefit and the linked SEO Tree relationship in plain words.",
           "evidence": "Help readers find the right person, business, or guide. Use these steps to choose links that answer their next question. This builds your SEO Tree: a map that joins each story to its main guide and your business."
          },
          "recipe": {
           "state": "pass",
           "reason": "Actual input draft, verified map and scope, seven steps, distinct destination purposes and measurable link-log output are present.",
           "evidence": "Record source page, exact mention, purpose, destination, check date, result and open gap."
          },
          "links": {
           "state": "pass",
           "reason": "Owned explanations match their roles; required exact proof/action URLs are preserved. Opening target and receiving task were inspected.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/entity-linking-2026-09-29.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Example is clearly fictional; contributor completion does not imply access, execution or accepted results. Real record requirements include source version, checks, failure and owner.",
           "evidence": "Fictional teaching example. This is not a client result or proof of a completed run."
          },
          "handoff": {
           "state": "pass",
           "reason": "Page owner receives checked log and open decisions; named link-review task receives result; Content Factory role and one execution ID are explicit.",
           "evidence": "Check the placed links receives the checked links and unresolved cases."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/entity-linking/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Exact source and written instructions reviewed after a scoped repair. Full semantic certification remains held: canonical ownership, complete publication checks and accepted execution evidence are not all established. See reviews/entity-linking-2026-09-29.md.",
        "reviewedAt": "2026-09-29"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Exact source and written instructions reviewed after a scoped repair. Full semantic certification remains held: canonical ownership, complete publication checks and accepted execution evidence are not all established. See reviews/entity-linking-2026-09-29.md.",
        "reviewedAt": "2026-09-29"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 7,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Exact source and written instructions reviewed after a scoped repair. Full semantic certification remains held: canonical ownership, complete publication checks and accepted execution evidence are not all established. See reviews/entity-linking-2026-09-29.md."
     }
    },
    {
     "title": "Identify and eliminate orphan/standalone articles",
     "slug": "identify-and-eliminate-orphan-standalone-articles",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Help readers find useful pages that your site has left out.",
     "content": "---\nname: identify-and-eliminate-orphan-standalone-articles\ndescription: \"Help readers find useful pages that your site has left out.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Identify and eliminate orphan/standalone articles\n\nHelp readers find good pages they cannot reach. This guide finds missing links and shows where to add them. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to give each page a home and a clear path to it.\n\n**The path:** All published URLs → Incoming-path check → Keep, connect or review → Fresh crawl\n\n**Start when:** A full published-URL inventory and a bounded internal-link crawl are available for the agreed site.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) with source and crawl coverage, including pages a link-only crawl may miss.\n- [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) with actual page roles, parents, incoming body links and site navigation.\n- Current content sources and valuable facts/media, search data if available, and authority for exact edits or removals.\n\n## Steps\n\n1. Reconcile the published CMS list, sitemap and crawl before flagging orphans. A crawler that follows only existing links can miss the very pages being sought. Record excluded content types, private pages and failed fetches, and keep inaccessible records unknown rather than treating them as zero-link pages.\n2. For each published URL, distinguish incoming internal links, outgoing links and a mapped parent. A page with no detected incoming path is an orphan candidate within the measured scope even if its category or parent is known. Check both body links and usable navigation, recording which definition the count uses.\n3. Read each candidate for reader purpose, unique evidence, business function and current relevance. Choose connect, improve, consolidate-review, remove-review or intentionally unlisted with a reason. Utility or campaign pages may have a valid limited role; absence from the main topic tree alone is not permission to delete them.\n4. For a useful content page, add a natural incoming link from its relevant existing hub or other suitable page, with a short explanation of its value. Add the page’s own parent or service link where useful. An outgoing link from the orphan does not itself create an incoming route.\n5. For overlapping or weak pages, pass unique material and an exact proposed disposition to [Review duplicate or weak pages](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages). Redirect only when the reviewed replacement truly serves the old intent; no equivalent replacement may require a proper not-found response. Do not hide unresolved decisions behind an irrelevant nearest-hub redirect.\n6. Apply only the authorized content and routing changes through their maintained sources, with current-source guards and retained media. Verify the real link in the normal rendered body and the destination’s actual response. A saved row or category reassignment is not evidence that a reader can reach the page.\n7. Re-crawl the agreed scope and compare each original candidate with the new incoming paths. Report connected pages, deliberate exceptions, merges/removals and remaining failures separately. Update the content map and owner list; do not claim “zero orphans” when the inventory or rendered crawl remains incomplete.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The inventory includes unlinked published pages, and the incoming-link definition and coverage are stated.\n- [ ] Each accepted connection is a verified incoming path from a relevant live page.\n- [ ] Exceptions and destructive decisions have explicit reasons and authority; no blanket redirect or false zero-orphan claim is used.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional site has a useful repair story and an unlisted thank-you page. Neither appears in the body-link crawl. The guide adds an incoming story link from the repair hub and checks it live. The thank-you page has an intentional campaign role and stays separately noted. The report shows one repaired content orphan and one justified exception.\n\n## Handoff and Content Factory context\n\n[Place the accepted links](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement) receives approved incoming-link rows; [Review duplicate or weak pages](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages) receives reviewed consolidation candidates. [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the actual released changes and crawl coverage.\n\nThis task supports Process and Post in the [Content Factory](https://localservicespotlight.com/content-factory/). Process checks the page and its proof; Post saves the approved change and checks the live result. The receiving owner and evidence above define the next task. Promotion and traffic measurement use the accepted page under their own scope.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=identify-and-eliminate-orphan-standalone-articles#task-identify-and-eliminate-orphan-standalone-articles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s site-move and removed-content guidance](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes)\n\n## Review and evidence still needed\n\nThe contributor label describes the written guide. It does not prove account access, an actual execution or a client result. Exact-revision written review is recorded separately from actual use.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. The exact written review records the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "dae84e76e5723a75e43c7b598484d674f27a8c7f5d64b0e12f37b67ce2da293b",
      "reviewed_at": "2026-10-15",
      "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
      "scope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
         "evidence": "Help readers find good pages they cannot reach. This guide finds missing links and shows where to add them. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to give each page a home and a clear path to it. Body: Find useful published pages without a measured incoming route, then connect, retain a deliberate exception or route an exact consolidation/removal review. The body delivers this with a CMS/sitemap/crawl reconciliation, distinct incoming/outgoing counts, legitimate functional exceptions, authorized repairs and an honest recrawl."
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger requires inventory and bounded crawl. Source/map/access inputs, incoming-path definition, per-page disposition, current-source guarded edits and recrawl make the result repeatable. Coverage gaps prevent false zero-orphan results; useful navigation and utility/campaign exceptions remain valid. Installation/access/scheduling are separate.",
         "evidence": "Steps1-7; Inputs; Definition of done. “An outgoing link from the orphan does not itself create an incoming route.” “Do not claim ‘zero orphans’ when the inventory or rendered crawl remains incomplete.”"
        },
        "links": {
         "state": "pass",
         "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
         "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
        },
        "evidence": {
         "state": "pass",
         "reason": "The repair-story/thank-you example is explicitly fictional. It distinguishes one connected content page from a justified campaign exception. Required records retain source/coverage/authority and no real-run or ranking proof is invented. A relevant replacement is required for redirects; an appropriate not-found result remains valid when none exists.",
         "evidence": "“Fictional teaching example. This is not a client result or proof of a completed run.” Step3 preserves utility/campaign roles; step5 refuses an irrelevant nearest-hub redirect; Google site-move/removal guidance supports relevant replacement versus404/410."
        },
        "handoff": {
         "state": "pass",
         "reason": "Approved incoming rows go to the named placement function and exact overlap/disposition candidates go to consolidation review. The accepted released change set and crawl coverage go to measurement. Real receiver/evidence defines the handoff; Process analysis and Post release are explicitly explained rather than inferred from a station list.",
         "evidence": "Handoff and Content Factory context: placement receives approved incoming-link rows; consolidation receives reviewed candidates; measurement receives actual released changes and crawl coverage."
        }
       }
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=identify-and-eliminate-orphan-standalone-articles#task-identify-and-eliminate-orphan-standalone-articles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "dae84e76e5723a75e43c7b598484d674f27a8c7f5d64b0e12f37b67ce2da293b",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-15. Review scope and limits: All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "sourceSha256": "dae84e76e5723a75e43c7b598484d674f27a8c7f5d64b0e12f37b67ce2da293b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "reviewScope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "sourceSha256": "dae84e76e5723a75e43c7b598484d674f27a8c7f5d64b0e12f37b67ce2da293b",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
           "evidence": "Help readers find good pages they cannot reach. This guide finds missing links and shows where to add them. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to give each page a home and a clear path to it. Body: Find useful published pages without a measured incoming route, then connect, retain a deliberate exception or route an exact consolidation/removal review. The body delivers this with a CMS/sitemap/crawl reconciliation, distinct incoming/outgoing counts, legitimate functional exceptions, authorized repairs and an honest recrawl."
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger requires inventory and bounded crawl. Source/map/access inputs, incoming-path definition, per-page disposition, current-source guarded edits and recrawl make the result repeatable. Coverage gaps prevent false zero-orphan results; useful navigation and utility/campaign exceptions remain valid. Installation/access/scheduling are separate.",
           "evidence": "Steps1-7; Inputs; Definition of done. “An outgoing link from the orphan does not itself create an incoming route.” “Do not claim ‘zero orphans’ when the inventory or rendered crawl remains incomplete.”"
          },
          "links": {
           "state": "pass",
           "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
           "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
          },
          "evidence": {
           "state": "pass",
           "reason": "The repair-story/thank-you example is explicitly fictional. It distinguishes one connected content page from a justified campaign exception. Required records retain source/coverage/authority and no real-run or ranking proof is invented. A relevant replacement is required for redirects; an appropriate not-found result remains valid when none exists.",
           "evidence": "“Fictional teaching example. This is not a client result or proof of a completed run.” Step3 preserves utility/campaign roles; step5 refuses an irrelevant nearest-hub redirect; Google site-move/removal guidance supports relevant replacement versus404/410."
          },
          "handoff": {
           "state": "pass",
           "reason": "Approved incoming rows go to the named placement function and exact overlap/disposition candidates go to consolidation review. The accepted released change set and crawl coverage go to measurement. Real receiver/evidence defines the handoff; Process analysis and Post release are explicitly explained rather than inferred from a station list.",
           "evidence": "Handoff and Content Factory context: placement receives approved incoming-link rows; consolidation receives reviewed candidates; measurement receives actual released changes and crawl coverage."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 261,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Link leaves to branches, branches to trunk",
     "slug": "link-leaves-to-branches-branches-to-trunk",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Link each story to the guide or service it helps prove.",
     "content": "---\nname: link-leaves-to-branches-branches-to-trunk\ndescription: \"Link each story to the guide or service it helps prove.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Link leaves to branches, branches to trunk\n\nLink each story to the guide or service it helps prove. This task adds useful links between those pages. Start with the site map and the page each story helps prove.\n\n**The path:** Checked parent map → Contextual upward links → Useful evidence links back → Link QA\n\n**Start when:** The current content map names the owning topic and real offer destinations for the selected supporting pages.\n\n## Inputs\n\n- [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) with current entity home, actual topic/offer branches and supporting pages.\n- [Choose the right entity destination](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) and the selected pages’ [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) briefs, source revisions and publication scope.\n- The specific source-to-target link plan, existing useful links and known destination status.\n\n## Steps\n\n1. Read the selected page and its mapped parent before editing. State the connection in the reader’s terms: what the story shows and which method or offer helps next. Reject a mapped relationship that exists only because of a shared keyword; update the map with the actual finding.\n2. Add a contextual link from the supporting story or execution record to the canonical method it uses. Where it genuinely helps, connect relevant proof to the real service or buying page and practical how-to. Keep the story’s unique evidence rather than replacing it with a copy of the whole method.\n3. On the owning method or topic page, make the entity home and relevant offer path understandable. Use the current Directory convention: the home is the trunk and off-site proof supplies roots. Do not invent another homepage/root URL or chain every reader through an unnecessary layer.\n4. Add relevant cross-links where one method actually depends on or explains another. The tree is a useful primary hierarchy, not a ban on lateral paths. Check prerequisites and downstream actions by their actual task contracts; neighboring catalog entries are not automatically real dependencies.\n5. Link the hub back to useful verified examples with a sentence or two explaining what each shows. A case or meta article can both support its hub and be discoverable from it. Prioritize relevant credible evidence; a historical example remains dated proof and does not establish a new counted execution.\n6. Review names and anchor phrases with [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/). Natural descriptive body links are the work here; useful navigation remains valid. A two-word entity name need not be padded to meet a word count, and repeating the same link several times does not add distinct supporting posts.\n7. After authorized release, check the actual normal pages and destinations, then save the link log and map changes. Record any missing parent, broken target or inaccessible source for the right owner. Pass the observed change set to QA and measurement without promising a ranking or conversion lift.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each upward link follows a meaningful relationship and reaches the verified owning destination.\n- [ ] The tree’s labels and useful cross-links are accurate; no duplicate home node or artificial one-way-only rule is imposed.\n- [ ] Evidence links back to supporting pages are useful and specific, with current public readbacks.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional course has a main method guide and a dated student exercise. The exercise links to the guide for the full method; the guide links back with a note about what the exercise demonstrates. A relevant course page remains the buying path. This two-way connection is useful navigation, not a reason to duplicate the guide in the exercise.\n\n## Handoff and Content Factory context\n\n[Check the placed links](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) receives source, target, anchor, context and public readback. [Publish the checked site directory](https://local-service-spotlight.github.io/task-library/?task=publish-seo-tree-site-directory#task-publish-seo-tree-site-directory) receives changes to the actual map, and [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the release dates.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=link-leaves-to-branches-branches-to-trunk#task-link-leaves-to-branches-branches-to-trunk)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "41c4998eee5ae8a103c9634e9c8885f4ecf80f9064d5975ceee7b451c75b7b30",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "319e45d01b359a906f9c6a166de99d8c3f0df5982a3424ccc5a63221e2f1c0c8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=link-leaves-to-branches-branches-to-trunk#task-link-leaves-to-branches-branches-to-trunk",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "41c4998eee5ae8a103c9634e9c8885f4ecf80f9064d5975ceee7b451c75b7b30",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "41c4998eee5ae8a103c9634e9c8885f4ecf80f9064d5975ceee7b451c75b7b30"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "41c4998eee5ae8a103c9634e9c8885f4ecf80f9064d5975ceee7b451c75b7b30"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 263,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Map content hierarchically (root → trunk → branches → leaves)",
     "slug": "map-content-hierarchically-root-trunk-branches-leaves",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Give readers a clear path through the pages you already have.",
     "content": "---\nname: map-content-hierarchically-root-trunk-branches-leaves\ndescription: \"Give readers a clear path through the pages you already have.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Map content hierarchically (root → trunk → branches → leaves)\n\nGive readers a clear path through the pages you already have. This guide maps your main topics, offers and the stories that support them. Start with the full page list and the real home of your business or name.\n\n**The path:** Published inventory → Page roles and actual owners → Linked hierarchy → Gap decisions\n\n**Start when:** A site needs its first content hierarchy or its existing map no longer matches the published pages.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) with published URL/type/title, purpose, body links and current source.\n- The real entity home, navigation, services, topic guides and public off-site identity evidence.\n- The current [SEO Tree, the map that links a site’s proof to its main topics and offers](https://blitzmetrics.com/seo-tree-site-directory/) Directory convention and [Money Tree, a site map whose branch sizes show measured supporting links](https://blitzmetrics.com/money-tree/) count definition if a measured offer view is required.\n\n## Steps\n\n1. Reconcile every published URL in scope before grouping it. Use CMS/source inventory alongside the crawl so unlinked pages are visible. Mark planned, private, redirected, inaccessible and published pages distinctly; a blank in the export must not become an invented node.\n2. Write the legend before drawing. In the current Directory and Money Tree views, the actual entity home/domain is the trunk and off-site identity proof forms roots. The older SEO Tree article also uses “root” for the homepage; label that viewpoint if retained instead of inventing a second homepage or forcing incompatible labels.\n3. Identify existing topic/method hubs and buying/service pages from their real purpose and the site’s navigation. The Money Tree can group branches into actual audience or offer limbs. Do not manufacture an ideal category structure or treat every topic hub as an executable task recipe.\n4. Assign supporting stories, case studies and real execution records to their primary owning method or topic. Keep useful cross-links when a source supports more than one relevant idea. Preserve utility pages in a separate functional group; their valid job need not be a marketing branch.\n5. Compare mapped roles with actual links and content. Flag missing incoming paths, possible duplicate intent, broken targets, unsupported claims and proof gaps as separate findings. Two same-topic URLs need a reader-intent review before consolidation; a sparse branch is a truthful finding, not permission to draw extra leaves.\n6. Build a clickable map and matching linked text outline from that inventory. Name the scope and date; show planned or unresolved nodes separately from live ones. If thickness represents a number, use an explicit measured definition and reproducible data, otherwise use a simple unweighted diagram.\n7. Review the map against the real home, services, menu and selected bodies with the owner. Correct labels and gaps, preserve the source and record next tasks. Pass the checked map to the Directory or Money Tree task; those tasks own their specific publication, measurement and public/private gates.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The legend resolves root/trunk viewpoints without duplicate or invented home nodes.\n- [ ] All in-scope published roles are represented, with real owners and useful cross-links.\n- [ ] A diagram and text outline agree; any density, number or unknown state follows actual source data.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional consultant has a home page, two services, one method guide and six stories. The map uses the home once as trunk, the real pages as branches, and the stories as supporting leaves. A LinkedIn identity page sits among the roots. A planned course is labeled planned, so readers do not mistake it for a live offer.\n\n## Handoff and Content Factory context\n\n[Publish the checked site directory](https://local-service-spotlight.github.io/task-library/?task=publish-seo-tree-site-directory#task-publish-seo-tree-site-directory) receives the checked structure; [Build the measured Money Tree](https://local-service-spotlight.github.io/task-library/?task=build-money-tree-site-diagram#task-build-money-tree-site-diagram) receives real offer branches and the count scope. [Resolve pages with no incoming path](https://local-service-spotlight.github.io/task-library/?task=identify-and-eliminate-orphan-standalone-articles#task-identify-and-eliminate-orphan-standalone-articles) and [Review duplicate or weak pages](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages) receive distinct supported findings.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "75bc9fcc9a7ac46cc1c95a6c49e3fa6c1bc9a064521e5521f614e7b63952f47a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "44b23ec0aa8c852b15e28f972c741a5e1faa5f0624086c8fc8b2a0e59bd3ef3d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "75bc9fcc9a7ac46cc1c95a6c49e3fa6c1bc9a064521e5521f614e7b63952f47a",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "75bc9fcc9a7ac46cc1c95a6c49e3fa6c1bc9a064521e5521f614e7b63952f47a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "75bc9fcc9a7ac46cc1c95a6c49e3fa6c1bc9a064521e5521f614e7b63952f47a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 264,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Remove duplicate thin pages",
     "slug": "remove-duplicate-thin-pages",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Keep your best page and the useful facts it holds.",
     "content": "---\nname: remove-duplicate-thin-pages\ndescription: \"Keep your best page and the useful facts it holds.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Remove duplicate thin pages\n\nHelp readers find one useful answer and keep the facts they need. This guide checks which pages to keep, join or remove. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to choose the page that best serves each need.\n\n**The path:** Suspect URLs → Intent and evidence review → Keep or change proposal → Guarded release checks\n\n**Start when:** The content inventory has identified possible duplicate intent or pages with little useful original value.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) and [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) with current roles, links and possible overlap.\n- Exact current source, media, search/referral data when available, business function and useful facts for every affected URL.\n- The existing source/redirect owner, recovery copy and explicit authority for the exact consolidation, deletion or route change.\n\n## Steps\n\n1. Treat similar titles, low word counts and repeated phrases as review signals, not verdicts. Read each page’s actual promise, audience, method, proof and business function. A short contact page, service page and detailed how-to can all be useful; shared terms do not make them interchangeable.\n2. Identify the owning intent and any genuinely equivalent URLs. List unique facts, examples, links, media, attribution, comments or conversion functions that a change must preserve. Review available search and referral evidence with its period and limits; missing measurement is unknown, not proof that a page has no value.\n3. Choose keep, improve, merge, canonical-review or remove for each exact URL, with a reason and owner. A canonical hint can identify a preferred duplicate representation but does not itself delete content or guarantee the selected search URL. Avoid turning every overlapping story into a competing-hub problem.\n4. For a merge, place the useful unique material into the true equivalent destination and review the new whole page. Preserve source ownership, relevant media and claims; do not copy unsupported assertions merely because they existed in the old draft. Verify that the replacement serves what old visitors expected.\n5. Prepare a precise route map. Use a permanent redirect when content has moved to a relevant replacement; if removed content has no equivalent, an appropriate 404 or 410 may be correct. An unrelated closest-hub redirect can mislead readers and be treated as a soft error. Never create a redirect loop or chain as a shortcut.\n6. Apply authorized source and routing changes in the agreed sequence with current-source guards and recovery evidence. Update controlled internal links to the final relevant targets and verify generated sitemap behavior through the maintained tool. A sitemap refresh or canonical tag does not guarantee Google has reprocessed the change.\n7. Check the normal old and new URLs, actual content/media, statuses, canonical signals and important page functions. Re-crawl affected links and record what changed, what remains pending and the observation date. Pass the accepted change set to measurement; do not claim that consolidation automatically raised rankings.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each disposition follows actual intent, value and source evidence, not a word-count threshold.\n- [ ] Unique useful material, media, attribution and business function are preserved in the approved result.\n- [ ] Every redirect has a relevant replacement, and old/new normal responses and links are checked.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional site has two live pages for the same course and a short contact page. One course page contains a unique teacher interview, so the team preserves it in the main course page before proposing a redirect. The contact page remains because it serves a different need. The report records a reviewed consolidation, not three automatic deletions.\n\n## Handoff and Content Factory context\n\nAn authorized source/route owner receives the exact disposition and recovery plan. [Check the placed links](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) receives live destination checks; [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the accepted release date, affected URLs and known baseline.\n\nThis task supports Process and Post in the [Content Factory](https://localservicespotlight.com/content-factory/). Process checks the page and its proof; Post saves the approved change and checks the live result. The receiving owner and evidence above define the next task. Promotion and traffic measurement use the accepted page under their own scope.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s duplicate URL guidance](https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls)\n- [Google’s site-move and removed-content guidance](https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes)\n\n## Review and evidence still needed\n\nThe contributor label describes the written guide. It does not prove account access, an actual execution or a client result. Exact-revision written review is recorded separately from actual use.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. The exact written review records the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f197ff47b9a565d2e0e3c661dec9dbfa2c3d6e17880c51ee57deecb9c45d9468",
      "reviewed_at": "2026-10-15",
      "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
      "scope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
         "evidence": "Help readers find one useful answer and keep the facts they need. This guide checks which pages to keep, join or remove. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to choose the page that best serves each need. Body: Choose one useful answer where intent really overlaps while retaining facts/media/functions. Seven steps deliver review by intent, unique-material preservation, keep/improve/merge/canonical-review/remove choices, an exact authorized routing plan, recovery evidence and live old/new checks."
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger and inventory/map/source inputs identify suspects without treating word count as a verdict. Exact authorized disposition, source owner/recovery copy, protected unique material, meaningful route map and old/new live-function checks give a repeatable measurable contract. A canonical hint does not delete content or guarantee Google selection.",
         "evidence": "Inputs; Steps1-7; Definition of done. “Missing measurement is unknown, not proof that a page has no value.” “The existing source/redirect owner, recovery copy and explicit authority for the exact consolidation, deletion or route change.”"
        },
        "links": {
         "state": "pass",
         "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
         "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
        },
        "evidence": {
         "state": "pass",
         "reason": "The course/contact example is explicitly fictional and preserves a distinct contact function and unique interview. No real consolidation or ranking result is claimed. Permanent redirects require a relevant replacement; no equivalent may correctly use404/410. Exact source guards, recovery, loop/chain avoidance and old/new checks retain destruction safeguards.",
         "evidence": "Fictional teaching example; Steps2,4-7 preserve media/attribution/functions. Google canonical guidance supports signals rather than guarantees; site-move guidance supports relevant replacements, no irrelevant redirects and404/410 for removed content."
        },
        "handoff": {
         "state": "pass",
         "reason": "The authorized source/route owner receives exact disposition and recovery plan; link QA receives actual live destination checks; measurement receives accepted release date, affected URLs and known baseline. Process evaluates source value; Post saves/checks approved changes. The guide creates no permission, scheduler or compulsory promotion.",
         "evidence": "Handoff and Content Factory context; exact disposition/recovery plan → source/route owner; live destination checks → link QA; accepted date/URLs/baseline → measurement."
        }
       }
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f197ff47b9a565d2e0e3c661dec9dbfa2c3d6e17880c51ee57deecb9c45d9468",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-15. Review scope and limits: All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "sourceSha256": "f197ff47b9a565d2e0e3c661dec9dbfa2c3d6e17880c51ee57deecb9c45d9468"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "reviewScope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "sourceSha256": "f197ff47b9a565d2e0e3c661dec9dbfa2c3d6e17880c51ee57deecb9c45d9468",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
           "evidence": "Help readers find one useful answer and keep the facts they need. This guide checks which pages to keep, join or remove. Use the [SEO Tree map](https://blitzmetrics.com/seo-tree/) to choose the page that best serves each need. Body: Choose one useful answer where intent really overlaps while retaining facts/media/functions. Seven steps deliver review by intent, unique-material preservation, keep/improve/merge/canonical-review/remove choices, an exact authorized routing plan, recovery evidence and live old/new checks."
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger and inventory/map/source inputs identify suspects without treating word count as a verdict. Exact authorized disposition, source owner/recovery copy, protected unique material, meaningful route map and old/new live-function checks give a repeatable measurable contract. A canonical hint does not delete content or guarantee Google selection.",
           "evidence": "Inputs; Steps1-7; Definition of done. “Missing measurement is unknown, not proof that a page has no value.” “The existing source/redirect owner, recovery copy and explicit authority for the exact consolidation, deletion or route change.”"
          },
          "links": {
           "state": "pass",
           "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
           "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
          },
          "evidence": {
           "state": "pass",
           "reason": "The course/contact example is explicitly fictional and preserves a distinct contact function and unique interview. No real consolidation or ranking result is claimed. Permanent redirects require a relevant replacement; no equivalent may correctly use404/410. Exact source guards, recovery, loop/chain avoidance and old/new checks retain destruction safeguards.",
           "evidence": "Fictional teaching example; Steps2,4-7 preserve media/attribution/functions. Google canonical guidance supports signals rather than guarantees; site-move guidance supports relevant replacements, no irrelevant redirects and404/410 for removed content."
          },
          "handoff": {
           "state": "pass",
           "reason": "The authorized source/route owner receives exact disposition and recovery plan; link QA receives actual live destination checks; measurement receives accepted release date, affected URLs and known baseline. Process evaluates source value; Post saves/checks approved changes. The guide creates no permission, scheduler or compulsory promotion.",
           "evidence": "Handoff and Content Factory context; exact disposition/recovery plan → source/route owner; live destination checks → link QA; accepted date/URLs/baseline → measurement."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 269,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Replace AI-looking content with real EEAT",
     "slug": "replace-ai-looking-content-with-real-eeat",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/seo-tree",
     "articleKind": "topic-hub",
     "desc": "Help readers see the real work behind your claims.",
     "content": "---\nname: replace-ai-looking-content-with-real-eeat\ndescription: \"Help readers see the real work behind your claims.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /seo-tree\nstatus: complete\n---\n\n# Replace AI-looking content with real EEAT\n\nHelp readers see the proof behind your claims. This guide turns vague text into facts they can check. Use our [article guide](https://localservicespotlight.com/article-guidelines/) to match each claim with a real source and make the page clear.\n\n**The path:** Page promise → Verified proof file → Focused rewrite → Claim and visual checks\n\n**Start when:** A page has vague claims, weak evidence or poor reader context, regardless of which tool or person drafted it.\n\n## Inputs\n\n- The exact current page/source, named author, intended reader and [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/).\n- Real recordings, project facts, public-safe screenshots, approved photos and attributable independent proof; permissions and dates.\n- Current [Article Guidelines](https://localservicespotlight.com/article-guidelines/), the page’s role and its existing media, links and source/builder constraints.\n\n## Steps\n\n1. Read the actual page and mark unclear promises, unsupported outcomes, generic filler and a text-heavy first screen. Do not claim to detect AI authorship from writing style. The repair target is usefulness and evidence: identify the precise claim or explanation that needs better support.\n2. Build a source file that ties each important claim to an actual record, scope, date and named subject. Separate observed results from estimates, examples and future plans. If the needed proof does not exist, narrow or remove the claim and assign the evidence gap instead of inventing a testimonial or number.\n3. Choose the strongest relevant credible proof and explain what it establishes. E-E-A-T means experience, expertise, authoritativeness and trustworthiness; use the [owned SEO Tree guide](https://blitzmetrics.com/seo-tree/) for the site’s proof approach. A famous but unrelated name does not substitute for evidence of this page’s method.\n4. Rewrite the opening in two or three grade-five sentences about the reader’s situation, useful outcome and how the page helps. Preserve the real author’s voice. Use first person for an authorized account of that person’s own work; attribute others’ words and never invent an “I did this” experience.\n5. Improve the body with specific method, named examples, dates and measured results where actually supported. Retain valuable source material and strongest relevant endorsements with clear attribution, highest credible authority first. A neutral appearance remains an appearance and historic proof retains its date.\n6. Replace generic illustrative filler with a meaningful real photo, source screenshot or evidence-backed diagram where it helps. Put a useful visual in the first screen, preserve rights and descriptive alt text, and keep relevant existing media. Do not manufacture a project scene or treat every useful diagram as a missing photograph.\n7. Check the exact revised claims against their sources, then review the normal desktop/mobile page after authorized release. Save the before/after revision, quoted semantic review and remaining gaps. Pass any actual traffic or inquiry comparison to [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/); a more credible page is not by itself proof of a measured ranking lift.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The page’s key promises are supported, narrowed or removed; no AI-authorship diagnosis or fictional result is asserted.\n- [ ] Real voice, named examples, strongest relevant credibility and attribution remain clear.\n- [ ] The opening and meaningful lead visual help the reader, and actual source and rendered checks are recorded.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional builder’s page says it is “the best” without proof. The source file has a real project photo and a customer’s approved comment about meeting a deadline. The rewrite explains that specific job and links its method. It does not turn one comment into a claim of being the top builder or invent a revenue gain.\n\n## Handoff and Content Factory context\n\n[Improve the existing owning page](https://local-service-spotlight.github.io/task-library/?task=enhance-existing-articles-before-creating-new-ones#task-enhance-existing-articles-before-creating-new-ones) receives related hub improvements; [Review the opening and context](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) receives exact opening text and evidence. The page owner gets the reviewed source and remaining proof gaps; [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives only actual released changes.\n\nThis task supports Process and Post in the [Content Factory](https://localservicespotlight.com/content-factory/). Process checks the page and its proof; Post saves the approved change and checks the live result. The receiving owner and evidence above define the next task. Promotion and traffic measurement use the accepted page under their own scope.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=replace-ai-looking-content-with-real-eeat#task-replace-ai-looking-content-with-real-eeat)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s people-first content guidance](https://developers.google.com/search/docs/fundamentals/creating-helpful-content)\n\n## Review and evidence still needed\n\nThe contributor label describes the written guide. It does not prove account access, an actual execution or a client result. Exact-revision written review is recorded separately from actual use.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. The exact written review records the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3feae344b94e1262d33c5148c9bb3c380cb265c41fa7ef2432ee92ca83226913",
      "reviewed_at": "2026-10-15",
      "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
      "scope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
         "evidence": "Help readers see the proof behind your claims. This guide turns vague text into facts they can check. Use our [article guide](https://localservicespotlight.com/article-guidelines/) to match each claim with a real source and make the page clear. Body: Turn vague claims into inspectable facts, with the reader’s useful context and actual evidence. The body supplies claim-to-source mapping, narrowing/removal when proof is absent, truthful author voice, dated attributed examples, relevant visuals and observed before/after checks."
        },
        "recipe": {
         "state": "pass",
         "reason": "The trigger is vague/unsupported content regardless of authorship tool. Exact source/author/reader/GCT, permissions/dates and builder/media constraints feed seven ordered steps and measurable claim/visual checks. Unsupported proof is removed/narrowed; first person is authorized and sourced. A rewrite itself does not prove ranking lift or create account access/scheduling.",
         "evidence": "Inputs; Steps1-7; Definition of done. “Do not claim to detect AI authorship from writing style.” “Never invent an ‘I did this’ experience.” “A more credible page is not by itself proof of a measured ranking lift.”"
        },
        "links": {
         "state": "pass",
         "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
         "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
        },
        "evidence": {
         "state": "pass",
         "reason": "The builder/project/comment example is explicitly fictional and limits the hypothetical evidence to one job. Real claims require named subject, source, date, rights and precise scope; estimates/future plans stay separate. Author voice/testimonials/results cannot be invented, and unrelated trophy names do not supply evidence.",
         "evidence": "Fictional teaching example; Steps1-6; Google people-first guidance supports experience/expertise/authoritativeness/trustworthiness and accurate authorship. One approved comment cannot prove top-builder status or revenue gains."
        },
        "handoff": {
         "state": "pass",
         "reason": "The existing owning-page function receives related hub improvements; opening/context receives exact text and evidence; the page owner receives reviewed source and remaining proof gaps; measurement receives only actual released changes. Process proof/rewrite and Post source/render checks are explained explicitly, with no unsolicited promotion or schedule.",
         "evidence": "Handoff and Content Factory context: exact opening/evidence → opening review; reviewed source/gaps → page owner; only actual released changes → measurement."
        }
       }
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=replace-ai-looking-content-with-real-eeat#task-replace-ai-looking-content-with-real-eeat",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3feae344b94e1262d33c5148c9bb3c380cb265c41fa7ef2432ee92ca83226913",
      "articleKey": "blitzmetrics.com/seo-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-15. Review scope and limits: All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "sourceSha256": "3feae344b94e1262d33c5148c9bb3c380cb265c41fa7ef2432ee92ca83226913"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent written review, configured gpt-6.1-sol high",
        "reviewScope": "All five written instruction requirements pass for exact candidate bytes. Full method, destructive-change safeguards, actual destination meanings, fictional-example honesty and receiving evidence reviewed. Actual unchanged-layout Chrome candidate preview checked at1280x800/390x844. No source application, public delivery, real client execution, novice use, installation or schedule is inferred. Public exact-revision review: https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/seo-hub-supporting-guides-2026-10-15.md",
        "sourceSha256": "3feae344b94e1262d33c5148c9bb3c380cb265c41fa7ef2432ee92ca83226913",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact three-sentence opening explains the reader outcome, method and useful linked first action; the full method delivers its promise. Reviewed actual Chrome preview at CSS1280x800 and390x844 in unchanged deployed layout: initial purpose and four relevant path cards are readable; actual linked body opening was separately brought into view and matched candidate. No observed horizontal overflow. Preview does not prove public delivery or real use.",
           "evidence": "Help readers see the proof behind your claims. This guide turns vague text into facts they can check. Use our [article guide](https://localservicespotlight.com/article-guidelines/) to match each claim with a real source and make the page clear. Body: Turn vague claims into inspectable facts, with the reader’s useful context and actual evidence. The body supplies claim-to-source mapping, narrowing/removal when proof is absent, truthful author voice, dated attributed examples, relevant visuals and observed before/after checks."
          },
          "recipe": {
           "state": "pass",
           "reason": "The trigger is vague/unsupported content regardless of authorship tool. Exact source/author/reader/GCT, permissions/dates and builder/media constraints feed seven ordered steps and measurable claim/visual checks. Unsupported proof is removed/narrowed; first person is authorized and sourced. A rewrite itself does not prove ranking lift or create account access/scheduling.",
           "evidence": "Inputs; Steps1-7; Definition of done. “Do not claim to detect AI authorship from writing style.” “Never invent an ‘I did this’ experience.” “A more credible page is not by itself proof of a measured ranking lift.”"
          },
          "links": {
           "state": "pass",
           "reason": "Fresh normal-browser-UA captures return200 and their meanings were read. SEO Tree owns topic relationships; Article Guidelines owns claim/visual checks; prerequisite inventory/map and receiving placement/QA/MAA tasks match actual inputs and outputs. Agent/skill/install references separate a recipe from tools, access and a configured job. Google primary guidance supports method limits; exact deployed task routes were checked.",
           "evidence": "https://blitzmetrics.com/seo-tree/; https://localservicespotlight.com/article-guidelines/; https://localservicespotlight.com/content-factory/; https://blitzmetrics.com/build-agents/; https://localservicespotlight.com/plugin/; https://localservicespotlight.com/install/; exact task-route records and captured body meanings; primary method references."
          },
          "evidence": {
           "state": "pass",
           "reason": "The builder/project/comment example is explicitly fictional and limits the hypothetical evidence to one job. Real claims require named subject, source, date, rights and precise scope; estimates/future plans stay separate. Author voice/testimonials/results cannot be invented, and unrelated trophy names do not supply evidence.",
           "evidence": "Fictional teaching example; Steps1-6; Google people-first guidance supports experience/expertise/authoritativeness/trustworthiness and accurate authorship. One approved comment cannot prove top-builder status or revenue gains."
          },
          "handoff": {
           "state": "pass",
           "reason": "The existing owning-page function receives related hub improvements; opening/context receives exact text and evidence; the page owner receives reviewed source and remaining proof gaps; measurement receives only actual released changes. Process proof/rewrite and Post source/render checks are explained explicitly, with no unsolicited promotion or schedule.",
           "evidence": "Handoff and Content Factory context: exact opening/evidence → opening review; reviewed source/gaps → page owner; only actual released changes → measurement."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-10-14"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 270,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Step 1: List pages and their purpose",
     "slug": "step-1-inventory-content-and-establish-gct-per-page",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Know what each page is for before you change its links.",
     "content": "---\nname: step-1-inventory-content-and-establish-gct-per-page\ndescription: \"Know what each page is for before you change its links.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 1: List pages and their purpose\n\nMake one list of your live pages before you change their links. This helps you spot missing pages and see who each page helps. Use this list to start the [internal-linking process](https://blitzmetrics.com/internal-linking/), which connects readers to the right next page.\n\n**The path:** List live pages → Check missing URLs → Note each page’s job → Share checked list\n\n[Goals, Content, Targeting (GCT)](https://blitzmetrics.com/gct-business-strategy/) means the result you want, the source material you have, and the people you want to help. Write those three things for each major page.\n\n**Start when:** The six-step internal-linking process is starting or the maintained content inventory is stale.\n\n## Inputs\n\n- Published URL exports from the actual CMS/source, current sitemap, rendered crawl and their dates.\n- [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) conventions and [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) for the result, actual material and people each page serves.\n- The existing working inventory, access scope, link-count definition and current opening review evidence where available.\n\n## Steps\n\n1. Open the maintained inventory and record its prior date and scope before collecting data. Export all published content types in scope, including Posts and Pages where used, and reconcile them with sitemap and crawl. A crawl alone can miss unlinked URLs. Record separate counts by source and content type. Give every difference a row and a reason: a matched page, an alias or redirect, a confirmed exclusion, an access problem, or an unresolved gap. Save evidence for each reason; do not silently drop a URL to make the totals match.\n2. Keep one row per actual canonical content item with URL, source ID/type, title, publish/modified dates, current source revision, categories/tags where supported and page owner if known. Retain aliases and redirects in separate fields so normalization does not erase a real split or routing issue. Check the actual page, source ID, canonical tag and redirect destination before combining records; a matching URL pattern alone is not proof.\n3. Add incoming and outgoing link counts with their extraction source and date. Distinguish rendered-body links from theme navigation and count unique sources consistently. Record missing data as unknown. A category, mapped parent or outgoing link does not prove that another page links into this one.\n4. Read each major page and write its specific [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/). State the reader’s actual situation and desired action, the real method or proof supplied, and who the page serves. For money pages, use the genuine offer and buying path; for a recipe, identify the task result rather than a generic traffic goal.\n5. Assign the honest content role and map location. Use the current tree legend without inventing a separate homepage/root node. Task recipes, topic hubs, service pages, supporting stories and utility pages have different jobs even if they share keywords; their evidence and readiness states stay distinct.\n6. Retain the exact first two or three sentences and their source revision, then bring forward the [Review the opening and context](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) semantic review. Check grade-five context, why the reader should care, useful outcome and the body’s supporting mechanism. Save quoted reviewer evidence; unchecked pages stay unknown and failures go to the existing owner.\n7. Flag missing purpose, orphan candidates, possible duplicates, weak proof and unresolved roles as separate findings. A missing brief requires investigation, not automatic deletion or consolidation. Save the dated inventory, source exports, crawl date, count reconciliation and evidence links as one handoff package. Keep the prior snapshot. Assign each unresolved gap to an owner or mark the owner unknown. A partial package may support planning, but it is not a completed inventory.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Source, sitemap and crawl counts are recorded by content type. There are zero unexplained differences: each mismatch has a retained row, disposition and evidence.\n- [ ] No unresolved in-scope URL or required field is hidden by an exclusion or a made-up value. Unresolved items keep the result partial and name the next action and owner.\n- [ ] Major pages have specific reader purpose, actual content and targeting; unknowns are not filled with generic promises.\n- [ ] Counts, roles, exact opening revisions and quoted review evidence have clear sources and states.\n- [ ] Existing page rows retain the exact opening/revision and `step-7-write-hook-and-establish-context` review for reader/situation, reason to care, useful outcome and supporting mechanism; unchecked pages stay UNKNOWN, and failures route to the existing owner\n- [ ] Save the exact grade-five opening and quoted semantic review from the linked hook task; a reading score alone does not approve the promise.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA site export lists forty pages, but a crawl finds thirty-eight. Keep both missing URLs in the list. Check whether each is unlinked, blocked, redirected or outside the agreed scope before deciding what to do. This starter table shows how to retain those questions. The example.invalid domain is reserved for examples; do not crawl these fictional addresses.\n\n```csv\nsource_id,url,in_export,in_sitemap,in_crawl,disposition,evidence,next_action,owner\nF001,https://example.invalid/guide-a,yes,yes,yes,match_candidate,not_checked,verify_page_and_source_id,unassigned\nF002,https://example.invalid/guide-b,yes,yes,no,crawl_gap,not_checked,check_access_and_incoming_links,unassigned\nF003,https://example.invalid/old-guide,yes,yes,yes,possible_alias,not_checked,check_redirect_and_target,unassigned\nF004,https://example.invalid/private-form,yes,no,no,scope_question,not_checked,confirm_scope_before_excluding,unassigned\n```\n\nAdd the page purpose, title, dates, source revision, content role, link counts and opening-review fields required above. This is a starter table, not a complete inventory. A missing URL does not prove an orphan page, and none of these sample rows has passed review.\n\n## Handoff and Content Factory context\n\nSend the package with its scope, date, source revisions, count reconciliation, link-count method, exact opening quotes and review states. Include remaining issues, their next actions and owners. [Review the supported taxonomy](https://local-service-spotlight.github.io/task-library/?task=step-2-fix-categories-and-tags-in-wordpress#task-step-2-fix-categories-and-tags-in-wordpress) uses that inventory to check how pages are grouped. [Plan relevant links and orphan repairs](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages) receives genuine offers and incoming-link gaps; unresolved opening checks stay with their named owner.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The list helps plan page work during Process and check links during Post. It uses published pages and their source records; it hands checked page purposes and gaps to taxonomy and link planning. It does not create clips or ads.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c4e5716f22deff21d3430005a3813a3d4d9436747e97aee5f892a8c528e911ee",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact opening quoted: page list, missing-page value and explained owned internal-linking connection; final body supplies the promised method.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, source inputs, count/disposition reconciliation, identity checks, ordered steps and measurable partial/done boundary.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned parent, GCT, Content Factory and installation bodies read; Step2/3 source inputs read and reciprocal links checked;16 destinations200.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Dated source revisions, opening quotes, count method and unknown states retained; fictional CSV is not a real result.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Dated source/reconciliation package, opening reviews and issue owners feed taxonomy and link planning.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "fe4d7dc7a7712e4d85a06a7e990f298030f1df4302809267ea6a778fa060c0d9",
       "previousReviewDate": "2026-10-02",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c4e5716f22deff21d3430005a3813a3d4d9436747e97aee5f892a8c528e911ee",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c4e5716f22deff21d3430005a3813a3d4d9436747e97aee5f892a8c528e911ee"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "c4e5716f22deff21d3430005a3813a3d4d9436747e97aee5f892a8c528e911ee",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact opening quoted: page list, missing-page value and explained owned internal-linking connection; final body supplies the promised method.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, source inputs, count/disposition reconciliation, identity checks, ordered steps and measurable partial/done boundary.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned parent, GCT, Content Factory and installation bodies read; Step2/3 source inputs read and reciprocal links checked;16 destinations200.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Dated source revisions, opening quotes, count method and unknown states retained; fictional CSV is not a real result.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Dated source/reconciliation package, opening reviews and issue owners feed taxonomy and link planning.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-1-inventory-content-and-establish-gct-per-page",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "67fe37a85f18751f56072f54aa311dc31db3d29df2e97ec715b3e964187dc77d",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-02T16:16:28.987335Z",
         "reviewer": "Codex root with separate GPT-6 Luna source review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Exact copied recipe opening quoted and owned parent/GCT bodies read; concrete purpose/value/process relationship.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Inventory is one subtask of the shared internal-linking playbook, not an actual inventory execution.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep-owner evidence not established.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "The selected copied recipe matches maintained source and states inputs, ordered work and a measurable partial/done boundary.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Sixteen current destinations200; key concept and receiving task meaning reviewed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Fictional table teaches structure; real task-attributed result remains missing.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Package feeds Step2 taxonomy and Step3 link planning; Process/Post support is explained.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected guide/modal views are checked separately; complete parent publication audit remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Scoped copy change and metadata preservation do not certify the full parent.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No accepted inventory execution, receiving-owner result or novice setup evidence.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/inventory-guide-2026-10-02.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-1-inventory-content-and-establish-gct-per-page",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "67fe37a85f18751f56072f54aa311dc31db3d29df2e97ec715b3e964187dc77d",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-02T16:16:29.674551Z",
         "observer": "Codex fresh authenticated source read",
         "state": "observed",
         "reason": "Final saved copy matches reviewed candidate.",
         "evidenceRefs": [
          "sha256:99ed898cf67dd9093454a86ee91c09321b870e35eda824a158db511cba457b79"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 271,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Step 2: Fix categories and tags in WordPress",
     "slug": "step-2-fix-categories-and-tags-in-wordpress",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Help readers browse your posts in groups that make sense.",
     "content": "---\nname: step-2-fix-categories-and-tags-in-wordpress\ndescription: \"Help readers browse your posts in groups that make sense.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 2: Fix categories and tags in WordPress\n\nPut your posts in clear groups so readers can find what they need. This guide helps you fix those groups while keeping useful labels and links. Use the checked [page list](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) to decide what belongs together before you plan new links.\n\n**The path:** Read the page list → Plan group changes → Save agreed labels → Check pages and hand off\n\nWordPress calls its grouping systems **taxonomies**. Categories are broad groups; tags are more specific labels. A **term** is one saved category or tag. The [internal-linking guide](https://blitzmetrics.com/internal-linking/) shows how these groups help prepare the later link plan; a group label does not create a link inside a post.\n\n**Start when:** Step 1 is accepted and the WordPress site’s categories or tags need a scoped cleanup.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) with actual post/page types, page roles, current term IDs and source owner.\n- The live WordPress category/tag definitions, archive routes, theme/plugin dependencies and any taxonomy-enabled custom types.\n- The approved term mapping and edit scope, a dated export of affected items and all their current term IDs, current site permalink rules, and a way to restore approved changes if checks fail.\n- Verified editor or API access for the intended site and content type. An API is the app’s way to read or change site data. A read-only account can prepare the plan but cannot complete a write; keep that result partial.\n\n## Steps\n\n1. Read the current terms and supported content types from the actual WordPress source. Record term ID, name, slug, parent, count and archive URL. Include every page of the term listing and note any access gaps; the first API response is not necessarily the full list. Default WordPress Posts support categories and tags; Pages need explicit registered support, so do not assume every page accepts the same fields.\n2. Compare categories with real topic groups and reader navigation. A category can support a branch but is not automatically the canonical hub itself. Preserve valid site-specific roles and distinguish task-definitive pages from topic, comparison and historical content instead of assigning every important page the same label.\n3. Prepare an old-to-new mapping with the exact affected content items. For each row record the source item ID/type, current full category/tag sets, approved additions/removals, intended full final sets, reason, source date/revision and release owner. Reuse stable valid terms and IDs where possible. Use tags for useful cross-cutting attributes such as an actual stage or topic; do not invent a Content Factory stage for support work that spans several stages.\n4. Review empty, one-off and similar terms for purpose and dependencies before proposing removal. Low count alone does not prove a term is useless. Check archive use, menus, inbound links, permalink settings and integrations; do not delete a term or change its slug until its dependencies, intended routing and recovery plan are reviewed and included in the authorized scope. Removing a term from one post is different from deleting the shared term. An unresolved dependency stays held; preserve the existing term and route.\n5. Re-read each affected item immediately before saving. If its term sets or relevant source fields changed since the plan, stop that row and reconcile the new values; do not overwrite another editor’s work. Apply only accepted changes through the supported editor or API. For the standard Posts API, `POST /wp/v2/posts/<id>` accepts complete term-ID arrays in `categories` and `tags`. A supplied array replaces that taxonomy’s current set; it does not just add the listed IDs. Build the final set from the fresh existing IDs plus approved additions minus approved removals. Omit any taxonomy field you are not changing, and never send an empty list unless clearing that set is approved. Keep unrelated content fields out of the update. Save the exact sent values and response. A pre-save read reduces conflicts but is not an atomic lock; readback is still required.\n6. Inspect the affected archive pages and representative content after the change. Check that visible labels, links, pagination and relevant grouping work, that useful hubs still lead correctly, and that unrelated categories or media were not overwritten by a partial update.\n7. Read back every changed item and compare its complete saved term sets with the intended sets, including retained unrelated IDs. Test the actual downstream retrieval request: standard Posts filters use `categories=<term-ID>` or `tags=<term-ID>`, not a guessed category-slug parameter. Record the full pagination and visibility scope when comparing counts; draft or private items may not appear publicly. Check each changed archive route and any approved redirect, plus the declared representative content and pagination checks. A failed save, mismatch or unchecked route keeps that row partial or held. Preserve its evidence and next owner/action; use the reviewed recovery plan only if authorized and after checking for newer edits. Pass accepted rows and clearly separated exceptions to the link planner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The mapping matches real page roles and supported content types while retaining valid term IDs and dependencies.\n- [ ] Every changed item’s complete saved term sets match the intended sets. Unrelated IDs and omitted fields remain intact; each mismatch is a named open item.\n- [ ] Only authorized term/assignment changes are saved. Each changed route and required retrieval query works within the recorded coverage; unchecked cases stay unknown.\n- [ ] The record lists accepted, no-change and unresolved rows separately. No unresolved required check is called complete, and recovery values plus the next owner/action are saved.\n- [ ] Categories are not substituted for hub content or contextual links; unrelated taxonomy is preserved.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional firm has a “Roof Repair” category and a separate roof-repair service page. Keep both: the archive groups stories, while the service page explains an offer. In this made-up example, one Post has categories `[7, 12]` and tags `[5]`. The plan adds category `34`. Its intended categories become `[7, 12, 34]`, and the update omits `tags` so `[5]` stays. Sending only `[34]` would lose categories `7` and `12`. These IDs are fictional; resolve the real site’s IDs before acting.\n\nIf a fresh read shows `[7, 12, 28]`, do not send the older plan. Reconcile the new category first. After a valid save, check the complete returned sets, the archive route and the real category filter. An ordinary Page without registered category support stays unchanged. This example is a reasoning check, not a live API test or accepted site result.\n\n## Handoff and Content Factory context\n\n[Plan relevant links and orphan repairs](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages) receives the dated inventory with actual incoming-path counts, the counted scope and extraction date/method, accepted before/after term-ID mapping, saved-source readbacks, tested archive URLs, retrieval query and coverage. It uses the actual page roles and groups to plan useful links. The site/source owner receives any term-removal or routing dependency that remains outside the approved edit.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The page inventory supplies the inputs. Reviewing the grouping plan supports Process; saving and checking approved assignments supports Post. The checked mapping then goes to link planning. This support task may span stages; it does not create clips or ads.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-2-fix-categories-and-tags-in-wordpress#task-step-2-fix-categories-and-tags-in-wordpress)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [WordPress Posts REST reference](https://developer.wordpress.org/rest-api/reference/posts/)\n- [WordPress Categories REST reference](https://developer.wordpress.org/rest-api/reference/categories/)\n- [WordPress REST term-update implementation](https://developer.wordpress.org/reference/classes/wp_rest_posts_controller/handle_terms/) and [term replacement behavior](https://developer.wordpress.org/reference/functions/wp_set_object_terms/) — primary evidence for preserving the full intended set. Site-specific extensions still need their own check.\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "55fcd6f7700f491e82ef65ba31daaada6f13415eebfc1b49ac83fdf7c800d912",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Quoted action, reader value and explained owned page-inventory connection; body delivers the grouping promise.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Inputs, full-set mapping, fresh-read conflict stop, supported POST arrays, complete readback, route checks and partial/done boundary.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
        },
        "links": {
         "state": "pass",
         "reason": "Seventeen destinations200; owned process/setup meaning and adjacent maintained task inputs checked; primary WordPress implementation supports replacement behavior.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional IDs clearly marked; exact source, actual sent values, readback, coverage and unknowns required without claiming a live result.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Step3 receives inventory incoming-path counts, scope/date/method, accepted mapping, readbacks, routes and retrieval coverage; exceptions retain owner.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "0796d4e6d90a840b8c861d5f36a72e4ed53d4973e8bc3364cbd25689d8513071",
       "previousReviewDate": "2026-10-03",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-2-fix-categories-and-tags-in-wordpress#task-step-2-fix-categories-and-tags-in-wordpress",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "55fcd6f7700f491e82ef65ba31daaada6f13415eebfc1b49ac83fdf7c800d912",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "55fcd6f7700f491e82ef65ba31daaada6f13415eebfc1b49ac83fdf7c800d912"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions only; article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "55fcd6f7700f491e82ef65ba31daaada6f13415eebfc1b49ac83fdf7c800d912",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Quoted action, reader value and explained owned page-inventory connection; body delivers the grouping promise.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Inputs, full-set mapping, fresh-read conflict stop, supported POST arrays, complete readback, route checks and partial/done boundary.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
          },
          "links": {
           "state": "pass",
           "reason": "Seventeen destinations200; owned process/setup meaning and adjacent maintained task inputs checked; primary WordPress implementation supports replacement behavior.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional IDs clearly marked; exact source, actual sent values, readback, coverage and unknowns required without claiming a live result.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Step3 receives inventory incoming-path counts, scope/date/method, accepted mapping, readbacks, routes and retrieval coverage; exceptions retain owner.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-2-fix-categories-and-tags-in-wordpress",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "eb9206eb25624765e91827bd926d8c17541896da3bf1d6ef5c684794d16d9718",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-03T16:13:38.625918Z",
         "reviewer": "Codex root with separate GPT-6 Luna source review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Exact recipe opening quoted; linked inventory meaning and input relationship checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "WordPress grouping is a bounded prerequisite to link planning; this review is not a taxonomy execution.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep-owner evidence remains missing.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Exact copied recipe gives full-set mapping, source checks, scoped save, result comparisons and partial boundary.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Seventeen destinations200; key owned and primary technical destination meaning read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Fictional example is not a real task result.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Actual inventory coverage and accepted taxonomy package feed Step3; Process/Post support explained.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected guide is checked separately; complete parent publication audit remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Scoped copy and preserved metadata do not certify the full parent.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No accepted taxonomy execution, receiving-owner acceptance or novice setup evidence.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/taxonomy-guide-2026-10-03.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-2-fix-categories-and-tags-in-wordpress",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "eb9206eb25624765e91827bd926d8c17541896da3bf1d6ef5c684794d16d9718",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-03T16:13:39.239877Z",
         "observer": "Codex fresh authenticated source read",
         "state": "observed",
         "reason": "Saved copy matches exact reviewed candidate.",
         "evidenceRefs": [
          "sha256:345de06c53864b5635490cc9f8bf51cb1223f72c5cb59ccf907bb80723d95ead"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 228,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Step 3: Identify money pages and orphan pages",
     "slug": "step-3-identify-money-pages-and-orphan-pages",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Find good pages that are hard to reach.",
     "content": "---\nname: step-3-identify-money-pages-and-orphan-pages\ndescription: \"Find good pages that are hard to reach.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 3: Identify money pages and orphan pages\n\nPlan links that help readers find your key pages. This makes useful posts and offers easier to reach. Use the checked [page list](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) to spot gaps before the next task places the links.\n\n**The path:** Check the page list → Read both pages → Plan useful links → Hand off checked rows\n\nA **money page** helps a reader buy, book or ask about a service; the name does not prove sales. The [money pages and blog posts guide](https://blitzmetrics.com/money-pages-vs-blog-posts/) explains their different jobs. An **orphan page** has no incoming internal link. Treat it as a candidate until the checked coverage supports that claim; an incomplete check can miss a real path.\n\n**Start when:** The page inventory and supported taxonomy review are ready for an exact source-to-target link plan.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) and [Review WordPress taxonomy](https://local-service-spotlight.github.io/task-library/?task=step-2-fix-categories-and-tags-in-wordpress#task-step-2-fix-categories-and-tags-in-wordpress) results, including actual incoming-path counts, link types, counted URLs, crawl/extraction method and date, known entry pages, exclusions and unresolved coverage gaps. A crawl follows links to inspect pages; it can miss pages with no path from its starting point.\n- The live offer/service destinations, current business priorities and verified comparable revenue data only if connected.\n- Read access to current source and target pages, dated source revisions and the maintained edit surface or its named owner. This task saves a plan; it does not need publishing access or permission to change a live page. Missing required source access stays a named gap.\n- Reader purpose, body content and existing links for potential sources; the [Money Pages versus Blog Posts method](https://blitzmetrics.com/money-pages-vs-blog-posts/).\n\n## Steps\n\n1. Identify the actual buying, booking, service and lead-capture destinations from the site and business owner. A “money page” is an offer/action role; its name does not prove it currently earns revenue. Keep the live URL, intended action, source owner and any known duplicate or redirect.\n2. Flag pages with no detected incoming internal route within the inventory’s stated scope. Cross-check the crawl against the published-page export so unseen pages are included. Record incoming body links and navigation/archive links separately. Zero body links with a working menu link is a contextual-link gap, not proof of an orphan. An assigned parent, an outgoing link or a sitemap listing alone is not an incoming link from another page. If access, rendering or crawl coverage is incomplete, keep the state “candidate—coverage incomplete” and name the missing check; do not report a site-wide orphan count. Record the actual counted source URLs, not just a tool total.\n3. Prioritize offers with the owner’s current business goals, relevant proof gaps and measured support. Use verified comparable revenue only when available; otherwise label priority as a business decision, not a revenue rank. An expensive offer or a zero-link count alone does not establish financial impact.\n4. For each target, read candidate source pages and their [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/). Select places where a reader would genuinely benefit from the next destination. Record the actual supporting sentence or section; reject keyword-only matches and avoid turning every source page into a link to every service.\n5. For each useful orphan candidate, plan an incoming link from an existing relevant page that readers can reach from a known site entry, such as the home page or a linked topic hub. Check and record that path; links only between otherwise unreachable pages do not connect the group to the rest of the site. Add an outgoing parent link only where it helps readers. Route weak or overlapping content to its separate review task. A proposed incoming link is a plan, not proof of a repaired path; placement and QA must check the released result.\n6. Write one action row per exact source-to-target relationship. Include a row ID, both URLs, checked final destination and date, source revision, exact sentence/section, proposed anchor and change, relevance reason, incoming coverage evidence, intended edit surface or its owner, and placement owner. Keep the proposed action (add, improve-existing, no-change) separate from its review state (proposed, accepted, held). The accepted row records who reviewed it and when. A missing hub, inaccessible source or unresolved offer duplicate stays held with a next owner/action; do not invent an edit location or use a misleading target.\n7. Save the priority-offer list and orphan/exception list with one disposition for every in-scope candidate: accepted link plan, justified no-change, content review or held. Reconcile their counts to the input list so nothing disappears. Review the plan with its responsible owner and pass only accepted rows to placement within the existing authorization. For planned measurement, pass the target URL set, question, metric, time window, data source/access owner and baseline capture request before release; record captured proof or the actual gap. A missing baseline is not zero or invented historical data. Missing required scope or source evidence keeps the planning result partial. No row is called published or repaired by this task.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Money-page roles and business priorities are sourced; unknown revenue is not labeled zero or proven importance.\n- [ ] Orphan candidates retain dated scope and evidence. Missing body links, navigation paths and incomplete coverage are distinct; no unsupported site-wide claim is made.\n- [ ] Every in-scope candidate has a counted disposition. Planned incoming paths start from reachable relevant pages; no proposed change is called a published repair.\n- [ ] Every accepted row has the exact source/target, checked target meaning, proposed context, current base revision, edit surface or owner, reviewer/date and placement owner. Held rows name a next action.\n- [ ] The receiving worker can locate the intended edit and check it against the source revision; planned measurement has a baseline request and captured proof or an explicit gap.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional firm has a roof hub linked from its home page, a roof-repair story, and a roof service page. A body-only crawl finds zero incoming links to the story. A menu check then finds a link, so the record changes to “body-link gap”; it does not call the story an orphan. The planner reads both pages and proposes a useful hub-to-story link. A story-to-service link is a separate row.\n\n- **Row A — proposed add:** Roof hub → repair story. Place “see this roof repair” after the repair-method paragraph. Next, verify the exact URLs, source revision and edit surface, then get the row reviewed.\n- **Row B — held:** Repair story → roof service. Place “roof repair service” after the repair result only once the service owner resolves the two competing offer URLs.\n\nThese are fictional labels, not usable URLs or accepted rows. A real row needs all fields in Step 6. If both candidate source and target sit outside any path from the home page, linking them to each other alone does not solve reachability. The owner may choose roofing as a business priority, but without verified revenue the plan does not call it the highest-earning branch.\n\n## Handoff and Content Factory context\n\n[Place the accepted links](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement) receives the accepted row IDs, source/target URLs, exact sentence and proposed anchor, source revisions, edit-surface ownership, relevance/coverage evidence, reviewer/date and placement owner. It re-reads both pages before editing; a source or target change goes back for reconciliation rather than inheriting the old acceptance. [Review duplicate or weak pages](https://local-service-spotlight.github.io/task-library/?task=remove-duplicate-thin-pages#task-remove-duplicate-thin-pages) receives duplicate-intent cases; [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the target set, question, metric, window, access owner and baseline request before release when measurement is planned. Its outcome analysis begins only after placement and QA provide the actual released log; sending a baseline request is not starting the measurement run.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The checked page list and grouping results are its inputs. Reviewing relevance and preparing the plan support Process. The accepted rows go to placement and QA in Post. A later measurement task checks observed changes; this plan claims no ranking or sales gain.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method reference\n\n- [Google’s crawlable, descriptive internal-link guidance](https://developers.google.com/search/docs/crawling-indexing/links-crawlable) supports useful incoming links and relevant context. A crawl finding alone does not prove indexing or a business result.\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "53fb2aff0cadec1401379d43f128a116c78d5ab480b47e59f3812f8353bdf722",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact plain opening names link plan, reader benefit and explained owned inventory prerequisite; body delivers the promised plan.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Dated scope, source access, candidate disposition counts, reachable sources, exact proposed edit rows and measurable acceptance/partial boundary.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
        },
        "links": {
         "state": "pass",
         "reason": "Nineteen destinations200; relevant owned definitions, setup, input/output contracts and primary Google link guidance read for meaning.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Incomplete coverage remains unknown; fictional rows and proposed plans are not live repairs, revenue, indexing or setup proof.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Accepted row IDs, source/target, sentence, base revision, edit owner, reviewer/date feed placement; baseline request and later released log are distinct.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "dda7662b843806f75df9c704d7a941d1d868661ba82bdcf4a3de140ae46aea37",
       "previousReviewDate": "2026-10-04",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "53fb2aff0cadec1401379d43f128a116c78d5ab480b47e59f3812f8353bdf722",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "53fb2aff0cadec1401379d43f128a116c78d5ab480b47e59f3812f8353bdf722"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "53fb2aff0cadec1401379d43f128a116c78d5ab480b47e59f3812f8353bdf722",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact plain opening names link plan, reader benefit and explained owned inventory prerequisite; body delivers the promised plan.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Dated scope, source access, candidate disposition counts, reachable sources, exact proposed edit rows and measurable acceptance/partial boundary.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
          },
          "links": {
           "state": "pass",
           "reason": "Nineteen destinations200; relevant owned definitions, setup, input/output contracts and primary Google link guidance read for meaning.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Incomplete coverage remains unknown; fictional rows and proposed plans are not live repairs, revenue, indexing or setup proof.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Accepted row IDs, source/target, sentence, base revision, edit owner, reviewer/date feed placement; baseline request and later released log are distinct.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-3-identify-money-pages-and-orphan-pages",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "22127cd9c782a73b806a2b60e649174c93494a968732fd4377e54d562b18da64",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-04T16:08:57.116457Z",
         "reviewer": "Codex root with separate GPT-6 Luna source review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Exact opening quoted; inventory prerequisite meaning and body delivery reviewed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Bounded planning task feeds placement; no published-link execution is inferred.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep owner not established.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Scope, access, candidate classification, exact rows and measurable partial/done rules in the matching copied recipe.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Nineteen destinations loaded; input/output and relevant owned concept meanings read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Fictional rows are not task-attributed actual result proof.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Explicit accepted row package feeds placement; baseline request precedes release and actual measurement follows QA.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected guide views checked separately; complete parent audit remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "One source-copy update with metadata preservation does not certify the full parent.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No real planning output, receiving-owner acceptance or novice setup proof.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/link-plan-guide-2026-10-04.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-3-identify-money-pages-and-orphan-pages",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "22127cd9c782a73b806a2b60e649174c93494a968732fd4377e54d562b18da64",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-04T16:08:57.546023Z",
         "observer": "Codex fresh authenticated source read",
         "state": "observed",
         "reason": "Final saved copied recipe matches reviewed candidate.",
         "evidenceRefs": [
          "sha256:528efe6a6b488d59d3b3c1e34e31490d1ad3de5dc6b1efe84f479445c8bd27ad"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 272,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Step 4: Create links with proper anchor text and placement",
     "slug": "step-4-create-links-with-proper-anchor-text-and-placement",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Put useful next steps where readers need them.",
     "content": "---\nname: step-4-create-links-with-proper-anchor-text-and-placement\ndescription: \"Put useful next steps where readers need them.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 4: Create links with proper anchor text and placement\n\nHelp readers find the next page they need. Use a checked plan to add clear links that save them time. This is the build step in our [internal-linking process, which turns a page list into checked paths through your site](https://blitzmetrics.com/internal-linking/).\n\n**The path:** Accepted link rows → Fresh source check → Contextual edit → Saved and public readback\n\n**Start when:** Step 3 has supplied accepted source-to-target rows and the exact content edits are authorized.\n\n## Inputs\n\n- [Plan relevant links and orphan repairs](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages) with proposed source, target, anchor, context, owner and relevance.\n- Fresh source/body for each page, maintained builder/generator rail, existing media and the expected base revision.\n- [Choose the right entity destination](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) and the baseline request for [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) before release, where measurement is planned.\n\n## Steps\n\n1. Open each plan row and fetch the current maintained source before editing. Compare it with the reviewed base and preserve concurrent work. Identify whether a builder, shortcode, generator or ordinary body owns the text; do not replace serialized layout or generated content with a blind full-body write.\n2. Read both source and target in context and confirm the planned reader benefit still holds. If the target has changed, redirects to a different subject or does not deliver the proposed promise, hold or revise the row with its owner. A once-approved URL is not a permanent relevance guarantee.\n3. Choose concise anchor text that honestly predicts the destination. Prefer three to six descriptive words when natural, or use the actual entity name. Avoid padding, generic “click here,” keyword stuffing and forced phrasing changes that make repeated references less clear.\n4. Place the link in the relevant body sentence with enough context to explain why it helps. Useful existing navigation and footers may remain; this task is not a site-wide ban on those links. Add no hidden links or unrelated collections merely to increase the total.\n5. Apply [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) to explanations while preserving direct primary evidence and actual account/download actions. Connect stories to their owning methods or offers and add useful cross-links as planned. Keep the source’s factual meaning, relevant proof, IDs and media unchanged outside the exact intended edit.\n6. If a suggestion tool proposes additional links, treat them as candidates requiring the same purpose and identity review. Do not accept a batch solely from a keyword score. Log rejected and held rows so the accepted scope does not silently expand during implementation.\n7. Save through the supported authorized rail and read back the exact edited field and ordinary rendered page. Follow the real link and check its final target and surrounding sentence. Record source URL, target, anchor, revision, release time and any cache or access gap for QA; a successful API response is only the save stage.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every placed link comes from an accepted relevant row and preserves the current source, layout and unrelated content.\n- [ ] Anchor meaning, first-mention routing and necessary source/action links remain accurate.\n- [ ] Actual saved and normal public links are checked, with held rows and verification gaps explicit.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional approved row links a repair case to its method guide. The live case now has a new photo and paragraph added by its owner. The editor keeps that work, inserts the link in the planned sentence through the existing builder field, and checks the ordinary URL. The receipt records one link, not a replaced article or a proven ranking gain.\n\n## Handoff and Content Factory context\n\n[Check the placed links](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) receives the exact change log, source revisions and public checks. [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the released target list and dates; concurrent-source conflicts remain with the original owner.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s crawlable and descriptive link guidance](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e535312d2f55ae6bb7dd42db595bf77e2a7b93069ab3b777ded5211dca38b972",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Quoted useful outcome, reader value and explained owned process connection.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Clear trigger, inputs, authorized ordered steps, exact output and QA.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned methods, primary Google sources, correct task handoff and destination rules are explicit.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional example labeled; source/public proof and one execution record required; no invented result.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Placement passes exact change log to QA; QA passes accepted rows to measurement and holds to owner.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "62aa597890ee545455fc3ab325dc0ee2b742f692a276cf18cfeabe0c39df0c27",
       "previousReviewDate": "2026-10-01",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e535312d2f55ae6bb7dd42db595bf77e2a7b93069ab3b777ded5211dca38b972",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e535312d2f55ae6bb7dd42db595bf77e2a7b93069ab3b777ded5211dca38b972"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "e535312d2f55ae6bb7dd42db595bf77e2a7b93069ab3b777ded5211dca38b972",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Quoted useful outcome, reader value and explained owned process connection.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Clear trigger, inputs, authorized ordered steps, exact output and QA.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned methods, primary Google sources, correct task handoff and destination rules are explicit.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional example labeled; source/public proof and one execution record required; no invented result.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Placement passes exact change log to QA; QA passes accepted rows to measurement and holds to owner.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-4-create-links-with-proper-anchor-text-and-placement",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "017cda11a99d24ab8015f2f3e49f3d9b00d828a1735658bbaca979f6dc406568",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-01T14:16:18.175364Z",
         "reviewer": "Codex root with separate Codex source reviewer",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Quoted opening explains purpose, value and checked SEO Tree connection; method delivers the promise.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Parent playbook coordinates separate placement and QA tasks; seven copies do not imply seven certifications.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep-owner record not established.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Inputs, steps, permission boundary, result checks and next receiving task are explicit.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Final43HTMLdestinations return200; opening, setup and exact task connections read for meaning; seven embedded sources match.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Google primary directions checked; historical reports not independent accepted execution proof.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Process/Post relationship and placement-to-QA-to-measurement outputs explicit.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected phone/desktop views checked; full-page publishing audit remains unverified.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Source metadata preserved; full ownership and publication checklist remains open.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No novice installed-skill success or accepted business execution established by this repair.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-4-create-links-with-proper-anchor-text-and-placement",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "017cda11a99d24ab8015f2f3e49f3d9b00d828a1735658bbaca979f6dc406568",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-01T14:16:18.840489Z",
         "observer": "Codex fresh authenticated source read after review",
         "state": "observed",
         "reason": "Final saved source matches exact reviewed candidate; public readback remains separately recorded.",
         "evidenceRefs": [
          "sha256:428c5a8343b29f341ec39a426ec7521fee2af6f2bcbc7fcad51204c22d4253f8"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 273,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Step 5: QA links against Google guidelines",
     "slug": "step-5-qa-links-against-google-guidelines",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Check that each new link helps readers reach the right page.",
     "content": "---\nname: step-5-qa-links-against-google-guidelines\ndescription: \"Check that each new link helps readers reach the right page.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 5: QA links against Google guidelines\n\nCheck that each new link takes readers to the right page. This helps catch wrong words, dead links and confusing next steps. Use this check after the [link-placement task, which adds the approved links and records what changed](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement).\n\n**The path:** Exact changed links → Meaning and destination checks → Repairs or held rows → Accepted log\n\n**Start when:** Step 4 has saved or released a defined set of links and supplied the actual change log.\n\n## Inputs\n\n- [Place the accepted links](https://local-service-spotlight.github.io/task-library/?task=step-4-create-links-with-proper-anchor-text-and-placement#task-step-4-create-links-with-proper-anchor-text-and-placement) log with source/target, anchor, surrounding text, exact revision and save/public state.\n- The accepted [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) and current owning target pages, plus normal public access to the changed source pages.\n- The maintained [internal-linking method](https://blitzmetrics.com/internal-linking/) and current Google primary link guidance.\n\n## Steps\n\n1. Start from the exact changed-link log and read each link in its actual normal page context. Compare it with the saved source, not just a preview or cached screenshot. A stale public copy or inaccessible page is a specific verification gap; do not approve it because the CMS raw text is correct.\n2. Check the anchor’s promise against the destination. It should be concise, descriptive and natural; the house three-to-six-word preference is not a Google word-count rule. A real two-word name can be correct, and repeating an accurate name is not automatically keyword stuffing.\n3. Check that the surrounding sentence gives a useful reason to follow the link and remains factually true. Confirm the named person, company, method or offer matches. Owned explanatory links must not replace a necessary primary citation, sign-in or download destination with a general guide.\n4. Inspect placement and link behavior. Ordinary crawlable links use real anchors with destinations, and readers must be able to see and use them. Contextual body links are this change set’s purpose; useful menu/footer navigation is not inherently manipulative. Hold hidden, misleading or unrelated link schemes.\n5. Review volume by reader usefulness rather than a fixed links-per-word ratio. Remove redundant or forced additions where they add no value. Google states no ideal link count; a page with many relevant sources and a short page with few links need different judgments.\n6. Follow each changed destination and record actual responses and redirect meaning. Correct a stale internal alias when the verified final target serves the same purpose; do not rewrite an intentional external evidence link blindly. Handle removed content with a relevant replacement or the proper reviewed removal behavior, never an arbitrary redirect.\n7. Repair in-scope defects through the same maintained source rail and repeat only the affected checks. Save accepted, failed and held rows with exact evidence and owners, plus any wider issues discovered outside this scope. Pass the verified change set to measurement without declaring full-site compliance from a limited link review.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each accepted changed link has an accurate anchor, useful context, correct identity and actual destination check.\n- [ ] The review distinguishes Google guidance from house preferences and finds no hidden or irrelevant link scheme in the changed set.\n- [ ] Source/public mismatches, failed links and out-of-scope defects retain their real states and owners.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional review checks eight new links. Seven point to the intended pages. The eighth uses a service name but now redirects to a general home page, so it is held until the owner confirms a relevant destination. The report accepts seven and names one blocker; it does not declare the entire site fixed from this small check.\n\n## Handoff and Content Factory context\n\n[Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the accepted URLs, release dates, corrections and limitations. The page owner receives any held destination or source problem before that row is called done.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s current link best practices](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)\n- [Google’s link spam policies](https://developers.google.com/search/docs/essentials/spam-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "ce8dfec113a4ef483c098a4bf0b131229acf04decca65dbc8b847c3b6b44e950",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Quoted useful outcome, reader value and explained owned process connection.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Clear trigger, inputs, authorized ordered steps, exact output and QA.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned methods, primary Google sources, correct task handoff and destination rules are explicit.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional example labeled; source/public proof and one execution record required; no invented result.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Placement passes exact change log to QA; QA passes accepted rows to measurement and holds to owner.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "1bcce8119fd47ee419b2b9fb172e1257a8d06ad06da0a5b075e6d091d86b647f",
       "previousReviewDate": "2026-10-01",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ce8dfec113a4ef483c098a4bf0b131229acf04decca65dbc8b847c3b6b44e950",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ce8dfec113a4ef483c098a4bf0b131229acf04decca65dbc8b847c3b6b44e950"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions checked; article, setup and accepted results are separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "ce8dfec113a4ef483c098a4bf0b131229acf04decca65dbc8b847c3b6b44e950",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Quoted useful outcome, reader value and explained owned process connection.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Clear trigger, inputs, authorized ordered steps, exact output and QA.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned methods, primary Google sources, correct task handoff and destination rules are explicit.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional example labeled; source/public proof and one execution record required; no invented result.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Placement passes exact change log to QA; QA passes accepted rows to measurement and holds to owner.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-5-qa-links-against-google-guidelines",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "017cda11a99d24ab8015f2f3e49f3d9b00d828a1735658bbaca979f6dc406568",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-01T14:16:18.175364Z",
         "reviewer": "Codex root with separate Codex source reviewer",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Quoted opening explains purpose, value and checked SEO Tree connection; method delivers the promise.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Parent playbook coordinates separate placement and QA tasks; seven copies do not imply seven certifications.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep-owner record not established.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Inputs, steps, permission boundary, result checks and next receiving task are explicit.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Final43HTMLdestinations return200; opening, setup and exact task connections read for meaning; seven embedded sources match.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Google primary directions checked; historical reports not independent accepted execution proof.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Process/Post relationship and placement-to-QA-to-measurement outputs explicit.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected phone/desktop views checked; full-page publishing audit remains unverified.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Source metadata preserved; full ownership and publication checklist remains open.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No novice installed-skill success or accepted business execution established by this repair.",
           "evidenceRefs": [
            "sha256:0c4f9ea6b02ca66cbb6ea61a0da51bd113512c704622043acbcfe1cbb34b27e5",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/internal-linking-2026-10-01.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-5-qa-links-against-google-guidelines",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "017cda11a99d24ab8015f2f3e49f3d9b00d828a1735658bbaca979f6dc406568",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-01T14:16:18.840489Z",
         "observer": "Codex fresh authenticated source read after review",
         "state": "observed",
         "reason": "Final saved source matches exact reviewed candidate; public readback remains separately recorded.",
         "evidenceRefs": [
          "sha256:428c5a8343b29f341ec39a426ec7521fee2af6f2bcbc7fcad51204c22d4253f8"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 274,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Step 6: Measure and iterate with MAA",
     "slug": "step-6-measure-and-iterate-with-maa",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "See what changed when your new links went live.",
     "content": "---\nname: step-6-measure-and-iterate-with-maa\ndescription: \"See what changed when your new links went live.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Step 6: Measure and iterate with MAA\n\nSee what changed after your new links went live. This helps you choose which page needs work next. Use the [checked link list](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) to find the right pages and dates before you compare results.\n\n**The path:** Check the changed links → Compare like with like → Explain the limits → Hand off the next action\n\n[MAA means Metrics, Analysis and Action](https://blitzmetrics.com/maa/): what the numbers show, what may explain them, and what to do next. A **baseline** is the saved measure from before the change. A **measurement window** is the set of dates you compare.\n\n**Start when:** A defined set of released links has passed quality assurance (QA), meaning the actual links were checked. The review has a question, time window and responsible owner. A pre-release baseline request can prepare inputs; it is not an outcome review of links that have not gone live.\n\n## Inputs\n\n- The [link QA task](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) accepted log: row IDs, source and target URLs, release dates, exact revisions, corrections and held rows. Only released, accepted rows enter the changed set; held rows keep their owner and reason.\n- The agreed question, success measure and [Goals, Content and Targeting](https://blitzmetrics.com/gct-business-strategy/): the result wanted, material available and people served. Name the actual offer action, such as a recorded booking, without calling traffic revenue.\n- Read access to the intended search or analytics property, or a dated export from its named data owner. A property is the site/account whose data you are measuring. Record its identifier, metric definitions, URL set, filters, time zone, dates and export time. No new permissions or live edits are required by this reporting task.\n- Available pre-change data, the agreed review window and known concurrent content, ad, tracking or site changes. Missing access, source definitions or baseline proof remain named gaps, not zeros.\n\n## Steps\n\n1. **Fix the scope before reading the result.** Save a review ID, accepted change-row IDs, URLs, actual release dates, question, metric and agreed success rule. Request the baseline before placement where possible. If missed, use only retrievable historical evidence and label the gap. Do not choose a favorable date range after seeing the numbers.\n2. **Check whether the data can answer the question.** Confirm the property and page/query filters with the data owner. Use equal-length periods with the same weekday mix where practical, and state the exact inclusive dates and source time zone. Exclude the rollout interval or explain mixed exposure; if links went live on different days, split the groups or disclose the difference. Check how recent data are marked and avoid treating an incomplete latest day as a full day. Seasonality and other changes can still make matching dates an imperfect comparison.\n3. **Save the original evidence.** Keep the dated report/export, query or filter settings, definitions and collection time in the approved location. Record whether each needed value is observed, unavailable, preliminary or not comparable. Check unavailable marks in the original report before trusting export zeros. Keep search clicks, impressions, site sessions, link clicks, bookings and revenue separate. Search clicks count visits from search results; they do not count clicks on your new internal links. Read the [Search Console definitions](https://support.google.com/webmasters/answer/7576553?hl=en) when using that source.\n4. **Compare only like measures.** For each URL or defined URL group, record both periods, values, units and source link. Show the absolute change (after minus before); show percent change only with a nonzero comparable baseline, and label a zero baseline as undefined for that calculation. Do not mix a property total with selected page rows, or add query rows and assume they equal a complete total. For rates, retain their counts and denominators; average position is its own source-defined measure, not a sales score. Mark small samples and changing definitions so a reader can judge the limits.\n5. **Recheck the useful paths.** Open the normal source and destination pages from the accepted log and save the check date and result. A crawl can check incoming links within its stated coverage; it does not prove search indexing or a sale. A broken path goes back to the [link QA task](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) with the exact failed row and evidence. This report does not authorize a live repair.\n6. **Write what the evidence supports.** State the observed change, plausible explanations and limits. A rise after edits is not proof that an anchor caused it. List competing changes such as a new post, campaign, tracking fix or seasonal demand. Do not name the individual link that “did the work” from a page-level traffic total. If the source cannot answer the question, say that; do not replace missing business results with traffic.\n7. **Choose and hand off one bounded next action per finding.** Save the finding, action, recipient, due date or observable trigger, and the check that will show it is done. Options include a documented repair request, more source evidence, keeping a useful link, or a later comparable review. Do not remove helpful links merely because a short window shows no gain. Save the package below, have its reviewer check it, and record the receiving owner's acceptance or the exact pending dependency. A standing program uses its existing cadence; this guide creates no new schedule or endless execution.\n\n## Definition of done (QA checklist)\n\nThe output is a saved MAA report with its evidence and next-action list. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for reader-facing versions and keep private account data in its approved location.\n\n- [ ] The report identifies its question, accepted row IDs, URL scope, release dates, source revisions and planned success rule. Every in-scope row is included or has a stated exclusion.\n- [ ] Each comparison retains both periods, property, filters, time zone, definitions, units and source/export reference. The reviewer can reproduce the displayed change; any unavailable or noncomparable value stays labeled.\n- [ ] Actual values, calculations and observations are separate from interpretations. No traffic number is relabeled a booking, revenue or proof that links caused growth.\n- [ ] Current path checks and known concurrent changes are attached. A failed link retains its row, evidence and repair owner.\n- [ ] Each finding has a next action, recipient, due point and acceptance check. The saved report revision, reviewer/date and receiving-owner acceptance or pending response are recorded.\n- [ ] The opening explains what the reader can do, why it helps, and its linked input or next task. The body delivers that promise, with a useful visible visual; the review quotes the actual words.\n\nA report can pass even when traffic fell or the supported next action is to wait. Missing required evidence or unaccepted handoff keeps the result partial or blocked on a named dependency. A finished report is not proof of a business gain, and an ongoing program is not one forever-running task.\n\n## Example(s)\n\n**Fictional teaching example. These numbers are not a client result or a completed run.**\n\nSix accepted links went live on June 15. The analyst compares June 1–14 with June 16–29: two equal 14-day windows, with the rollout day left out and the same property, page set, filters and source time zone. The source contains complete data for both periods.\n\n- **Metrics:** Search clicks rose from 80 to 100: 20 more clicks, or 25% above the baseline. Inquiries are not connected, so the report says “unknown,” not zero.\n- **Analysis:** A new article and a campaign also launched. The change does not show how many people clicked the internal links or prove they caused more sales.\n- **Action:** Keep the useful paths. Ask the data owner for the agreed inquiry measure before the next review; the receiving analyst checks matching dates and definitions before accepting it. A separate offer page rose from zero to three clicks, so its percent increase is undefined, not 300%.\n\n## Handoff and Content Factory context\n\nThe [weekly MAA reporting task](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the report ID/revision, question, accepted change log, source/export references, comparison settings and values, calculations, path checks, limits and action list. Confirm that the receiver can open the approved evidence; a link to an inaccessible file is not a completed handoff. Record their acceptance or the missing response without sending outside existing communication authority.\n\nThe [link-planning task](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages) receives supported new link proposals. Broken released rows go to QA; missing data go to its actual owner. Each receives only the relevant finding and evidence, with a due point and done check.\n\nIn the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/), placement and QA in Post supply the checked release. This review measures what happened afterward and feeds the next Process or Post repair, or a separately authorized Promote decision. It does not start ads or change live pages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://blitzmetrics.com/task-library-dashboard/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Search Console performance report definitions](https://support.google.com/webmasters/answer/7576553?hl=en)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "b834eb6a1f283b0c59a01af010d0e4101abfb78b175b202caaa0bb9f46bd343e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact opening states job, practical benefit and explained linked QA prerequisite; body delivers the comparison promise.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Defined released scope, question, comparable source settings, dated evidence, calculations, output and partial/done conditions.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "Seventeen destinations200; maintained prerequisite/receiver bodies and relevant owned concept meanings read, with primary Google reference retained.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Unknown, preliminary and noncomparable data stay separate; fictional calculations are correct and no causal, sales or setup proof is inferred.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Saved comparison package, accessible evidence, recipients, due points, acceptance checks and actual receiving-owner acceptance or dependency.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "b3f48be68cafa5706a4099ea0e33a8f8848ed7e14cc8cc4b9367268bd569dfea",
       "previousReviewDate": "2026-10-05",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b834eb6a1f283b0c59a01af010d0e4101abfb78b175b202caaa0bb9f46bd343e",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b834eb6a1f283b0c59a01af010d0e4101abfb78b175b202caaa0bb9f46bd343e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact written instructions only; full article, setup and accepted results remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "b834eb6a1f283b0c59a01af010d0e4101abfb78b175b202caaa0bb9f46bd343e",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact opening states job, practical benefit and explained linked QA prerequisite; body delivers the comparison promise.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Defined released scope, question, comparable source settings, dated evidence, calculations, output and partial/done conditions.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "Seventeen destinations200; maintained prerequisite/receiver bodies and relevant owned concept meanings read, with primary Google reference retained.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Unknown, preliminary and noncomparable data stay separate; fictional calculations are correct and no causal, sales or setup proof is inferred.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Saved comparison package, accessible evidence, recipients, due points, acceptance checks and actual receiving-owner acceptance or dependency.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "step-6-measure-and-iterate-with-maa",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "15c4aa944ab04eea5993fa7878b485784d879687f87145d7df38f95da4e39745",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T16:08:41.228913Z",
         "reviewer": "Codex root with separate GPT-6 Luna source review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Exact opening quoted; linked QA input and body delivery reviewed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Bounded measurement recipe consumes released accepted changes; publishing repair is not a measurement job.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Full canonical upkeep ownership not established.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Scope, access, comparable data, original evidence, calculations and objective report checks in matching source copy.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Seventeen destinations loaded; owned definitions, actual input/output bodies and provider method read.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "Fictional rows do not establish task-attributed actual results.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Exact report package, accessible evidence, recipient, due point and acceptance check; missing responses remain pending.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Selected guide views checked separately; complete parent audit remains open.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "One copy update does not certify full parent publication standards.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No real measurement output, receiving-owner acceptance or novice setup proof.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/measurement-guide-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "step-6-measure-and-iterate-with-maa",
         "canonicalURL": "https://blitzmetrics.com/internal-linking",
         "sourceSha256": "15c4aa944ab04eea5993fa7878b485784d879687f87145d7df38f95da4e39745",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T16:08:41.772447Z",
         "observer": "Codex fresh authenticated source read",
         "state": "observed",
         "reason": "Final saved copied recipe matches reviewed candidate.",
         "evidenceRefs": [
          "sha256:2853af988c621034f91628193699b52eb5f8ff5b6ca3a7be54ba91d99bf4d47b"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 245,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Use proper anchor text (3–6 words, descriptive)",
     "slug": "use-proper-anchor-text-3-6-words-descriptive",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/internal-linking",
     "articleKind": "task-recipe",
     "desc": "Help readers know where a link will take them.",
     "content": "---\nname: use-proper-anchor-text-3-6-words-descriptive\ndescription: \"Help readers know where a link will take them.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: /internal-linking\nstatus: complete\n---\n\n# Use proper anchor text (3–6 words, descriptive)\n\nHelp readers know where a link will take them. This guide replaces vague link words with clear names and useful phrases. Start with the links you plan to change and read each page they open.\n\n**The path:** Anchor and context list → Destination promise check → Natural wording → Rendered link review\n\n**Start when:** A draft or bounded existing-page audit contains vague, misleading or needlessly padded link text.\n\n## Inputs\n\n- The current source pages and a bounded anchor report, with exact href, surrounding sentence and source revision.\n- The real destination content and [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/), plus [Choose the right entity destination](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) for identity and owned-explanation routes.\n- The supported content source/builder, edit authority and relevant existing media/IDs to preserve.\n\n## Steps\n\n1. List the actual links in scope and read their surrounding copy. Flag vague words such as “click here,” a bare URL in ordinary explanatory prose, misleading names or excessive keyword repetition. Keep functional citations, legal identifiers and platform controls in their proper context instead of blindly replacing every URL string.\n2. Read each destination and state what the reader gets there. Check that its person, company, topic or action matches the link’s promise. A link that opens a different page needs a destination decision before better wording can make it useful.\n3. Write a concise descriptive phrase, usually three to six words when natural. Use the actual entity name where it is clearer, even if shorter. This is a house writing preference, not a Google minimum or maximum, and padding “Dennis Yu” into a longer phrase can make the reference less accurate.\n4. Place the wording in a sentence that explains why the next page helps. Keep it natural for the author and reader. Reuse a correct name consistently where appropriate; do not force synonyms merely to make anchors look varied, and do not overload a phrase with search terms.\n5. Preserve the difference between an owned explanation, a primary evidence citation and a necessary account or download action. Label the exact purpose and use its appropriate destination. A general method link cannot fulfill a button’s promise to open the real sign-in page.\n6. Apply the narrow wording edit through the maintained source and inspect the result. Ensure that the clickable span includes the intended words, punctuation remains correct, and surrounding text, media and identifiers are unchanged. Check keyboard use and responsive layout for any affected link or button.\n7. After authorized release, open the normal page and follow the edited link. Save the exact before/after anchor, href, revision and public evidence. Report resolved, held and intentionally retained cases within the stated scope; do not claim a whole-site cleanup from a sample or a failed fetch.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each revised phrase predicts the actual destination and fits the surrounding sentence.\n- [ ] House word-count preferences do not distort real names, necessary actions or useful citations.\n- [ ] Exact source and public anchor checks are saved, and scope limits and exceptions are explicit.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional repair guide says “click here” before a link to its leak test method. The editor changes it to “check a roof leak” and reads the target to confirm the promise. A nearby link named for a two-word person remains that person’s actual name. Both are clear, even though only one uses the usual three-to-six-word phrase.\n\n## Handoff and Content Factory context\n\n[Check the placed links](https://local-service-spotlight.github.io/task-library/?task=step-5-qa-links-against-google-guidelines#task-step-5-qa-links-against-google-guidelines) receives the exact anchor changes and known exceptions. [Measure the accepted change set](https://local-service-spotlight.github.io/task-library/?task=step-6-measure-and-iterate-with-maa#task-step-6-measure-and-iterate-with-maa) receives the release log only where an actual measurement question exists.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/internal-linking/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=use-proper-anchor-text-3-6-words-descriptive#task-use-proper-anchor-text-3-6-words-descriptive)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s descriptive anchor guidance](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "07c0e85241786ceac6c6d73de8f0e65f6a20caf46dee21bb29796ab62648fe79",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "70eae162ba9d42242f7047ac02a5a712c5d40e4ecbb06d45e1c0561915830148",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=use-proper-anchor-text-3-6-words-descriptive#task-use-proper-anchor-text-3-6-words-descriptive",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "07c0e85241786ceac6c6d73de8f0e65f6a20caf46dee21bb29796ab62648fe79",
      "articleKey": "blitzmetrics.com/internal-linking",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "07c0e85241786ceac6c6d73de8f0e65f6a20caf46dee21bb29796ab62648fe79"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "07c0e85241786ceac6c6d73de8f0e65f6a20caf46dee21bb29796ab62648fe79"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/internal-linking"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 276,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Publish an SEO Tree site directory",
     "slug": "publish-seo-tree-site-directory",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/seo-tree-site-directory/",
     "articleKind": "task-recipe",
     "desc": "Help readers see what your site covers and where to go next.",
     "content": "---\nname: publish-seo-tree-site-directory\ndescription: \"Help readers see what your site covers and where to go next.\"\ncategory: SEO & Content Architecture\nstage: Post\ndefinitive_article: https://blitzmetrics.com/seo-tree-site-directory/\nstatus: needs-work\n---\n\n# Publish an SEO Tree site directory\n\nHelp readers see what your site covers and where to go next. This guide builds a linked map of your real pages and proof. Start with your checked page list and the home page that names the person or business.\n\n**The path:** Checked hierarchy → Clickable map + text list → Source and visual checks → Public directory\n\n**Start when:** The site’s checked hierarchy is ready for a public directory on its own domain.\n\n## Inputs\n\n- [Map actual content roles](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves) with actual URL roles, entity home, topic/offer branches and supporting pages.\n- Current source/builder, any existing directory URL, approved publishing scope and public-safe identity evidence.\n- The [SEO Tree, the map that links a site’s proof to its main topics and offers](https://blitzmetrics.com/seo-tree-site-directory/) method, current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and real node/label data rather than decorative example leaves.\n\n## Steps\n\n1. Inspect the existing site directory and the source that owns it. Improve the current canonical route where it already serves this job. Choose a new directory path only when needed and agreed; do not rename a live method article or change the site’s routing just to force a preferred slug.\n2. Use the verified entity home as trunk, actual major topics and offers as branches, and relevant existing content as leaves. Identify off-site roots from genuine identity or proof sources. An appearance, a profile and praise are distinct evidence types; the map must not imply endorsements that those sources do not contain.\n3. Check each selected branch against the current site’s own navigation and content. Link its actual owning URL and describe what a visitor can learn or do there. Keep task recipes separate from topic hubs and historical stories. Missing or duplicate owners become explicit repair items before they are presented as resolved.\n4. Build a useful clickable visual and matching visible text outline from the same data. Use clear groups, labels and real anchors that work with a keyboard. Show the actual scoped breadth; if the lead view is simplified, label its coverage and give a direct path to the complete directory.\n5. Write a short grade-five opening that explains why this specific map helps the reader and how to use it. Put meaningful map content in the first desktop and mobile screen, followed by concise role explanations and real links. Preserve authentic relevant media and avoid a full-screen decorative title card.\n6. Check every node’s destination, the text/visual agreement, public-safe source facts and the rendered page. Unknown destinations stay held or clearly labeled. Search-friendly markup can clarify visible facts but does not guarantee indexing, rankings or a search feature. Keep client metrics and private evidence out of public hidden data as well as visible copy.\n7. Publish through the existing authorized source rail and verify the ordinary anonymous URL at the current required sizes. Save the source revision, date, checked links and remaining gaps. Use the directory for future page-placement decisions and send measured offer-link questions to the Money Tree task.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The directory preserves its real source and route and represents the scoped published structure honestly.\n- [ ] Clickable visual, text outline and actual destinations match, with meaningful first-screen content.\n- [ ] Proof types and public/private boundaries remain truthful; normal public readback is recorded.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional firm has three actual topic guides and ten case stories. The opening map shows all three topics and points to the full linked outline below. A social profile is labeled as identity proof, not a testimonial. One missing story URL is held for repair instead of drawn as a working leaf, and the publisher checks both mobile and desktop.\n\n## Handoff and Content Factory context\n\n[Place future content in the tree](https://local-service-spotlight.github.io/task-library/?task=fit-every-new-piece-into-the-tree-structure#task-fit-every-new-piece-into-the-tree-structure) uses the accepted directory. [Build the measured Money Tree](https://local-service-spotlight.github.io/task-library/?task=build-money-tree-site-diagram#task-build-money-tree-site-diagram) receives the actual offer branches when measured supporting counts are required; the site owner receives the dated release receipt.\n\nThe source places this task in Post within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/seo-tree-site-directory/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=publish-seo-tree-site-directory#task-publish-seo-tree-site-directory)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s structured data introduction](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "68e26a43dc6b4549ddbdc2e83b8292edff8221bd771689fcc7b3eaf20a86d1e3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "96f2fef804356e1ce58645ddd61b8d25f0bd79206bc4bd53009c5491d7ea2faf",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=publish-seo-tree-site-directory#task-publish-seo-tree-site-directory",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "68e26a43dc6b4549ddbdc2e83b8292edff8221bd771689fcc7b3eaf20a86d1e3",
      "articleKey": "blitzmetrics.com/seo-tree-site-directory",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "68e26a43dc6b4549ddbdc2e83b8292edff8221bd771689fcc7b3eaf20a86d1e3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "68e26a43dc6b4549ddbdc2e83b8292edff8221bd771689fcc7b3eaf20a86d1e3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/seo-tree-site-directory/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 143,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build a Money Tree site diagram",
     "slug": "build-money-tree-site-diagram",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/money-tree/",
     "articleKind": "task-recipe",
     "desc": "See which parts of your site help people find what you sell.",
     "content": "---\nname: build-money-tree-site-diagram\ndescription: \"See which parts of your site help people find what you sell.\"\ncategory: SEO & Content Architecture\nstage: Post\ndefinitive_article: https://blitzmetrics.com/money-tree/\nstatus: needs-work\n---\n\n# Build a Money Tree site diagram\n\nSee which parts of your site help people find what you sell. This guide draws a tree from the links your pages really have. Start with your full page list and the offers people can buy.\n\n**The path:** Published URLs + offer list → Measured body links → Tree and text view → Owned fixes\n\n**Start when:** An eligible managed site needs its existing monthly tree rebuild or a specifically authorized structure audit.\n\n## Inputs\n\n- [Inventory pages and their purpose](https://local-service-spotlight.github.io/task-library/?task=step-1-inventory-content-and-establish-gct-per-page#task-step-1-inventory-content-and-establish-gct-per-page) with published posts, pages, content types, current body output, date and crawl coverage.\n- The actual home, navigation, services and method pages; canonical targets, previous tree and its count definition.\n- The maintained Money Tree renderer/source contract and authorized site scope; private measurements only from connected, verified sources.\n\n## Steps\n\n1. Read the current [Money Tree, a site map whose branch sizes show measured supporting links](https://blitzmetrics.com/money-tree/) procedure and existing renderer contract. Confirm the site is eligible and its owner, publication rail, previous run and scope. Use the real home/domain as trunk, existing audience or offer groups as limbs, real method or buying pages as branches, and off-site identity proof as roots.\n2. Fetch all published URLs from the supported source and reconcile with the crawl. Include both WordPress Posts and Pages where present. Use rendered article bodies to expand builder or shortcode links, while retaining the source revision and extraction boundaries; list unreadable or missing pages explicitly.\n3. Extract actual internal body links and build an inbound index. Count each published post once per branch even if it links there several times. Keep page-to-page links separate and exclude theme navigation from this leaf count. Normalize only documented equivalent URL forms; do not erase meaningful query parameters blindly.\n4. Identify the branches from the site’s current navigation, services and topic owners. Follow and record redirects. Group confirmed aliases with a union of distinct source posts, naming the old paths and duplicates as findings. Similar titles alone do not prove two live offers are the same branch.\n5. Generate the dated clickable diagram, matching linked text outline and truthful structured metadata from that same checked data. Branch weight follows the source-defined count; bare branches remain bare. Label a simplified opening view and link directly to the full tree so no omitted branch disappears from the review.\n6. Check all in-scope offers are represented, nodes resolve or are clearly held, and the three representations agree. Reproduce counts from the saved snapshot rather than expecting a changing live site to freeze. Review useful labels and coverage at desktop and mobile sizes; decoration must not invent supporting leaves.\n7. Prepare the public structural view and authenticated private measurement view separately. Keep client leads, revenue and priorities out of public HTML, hidden data, metadata and alt text. When release is authorized, verify the normal URL against the exact saved source and retain rollback evidence.\n8. Record bare branches, split destinations, redirects, broken targets and relevant proof gaps with exact URLs, counts and owners. Use verified comparable revenue only for a revenue ranking; disconnected data remains unknown. Hand the accepted tree and deltas to the existing review owner without creating another schedule.\n\n## Fleet rollout and money-page proof\n\nKeep one current public-safe Money Tree per eligible managed site, using the\nexisting agent-runtime `money-tree/` renderer, source contracts and accepted\nrun identity. The actual home/domain is the trunk, buying/service destinations\nare branches, and relevant published supporting articles/videos are leaves.\nLink real nodes to their canonical destinations and retain unknown branches.\nThe tree is evidence of site structure; it must never imply unmeasured results.\n\nEach buying page has meaningful relevant proof above the fold, evidence beside\nmaterial outcome claims, and relevant proof near its primary buying action.\nUse the full tree or its useful branch where it explains the offer, alongside\nreal project scenes, attributable results and source videos. Give supporting\nleaves a relevant buying destination and a practical how-to link when useful.\nKeep public wording confident and specific: state the sourced moment once;\nremove repeated caveats, internal review scores and unsupported claims.\n\nPublic trees contain public structure and content counts only. Private sessions,\nleads, bookings, conversion rates, revenue, finances and priorities stay behind\nauthenticated client access, including alt text, metadata, hidden DOM and JSON-LD.\nNOT_CONNECTED is not zero. Preserve the existing roster, site authorization,\nCMS/deployment/rollback and public/private gates; a schedule or current recipe\nis not a release receipt. Reconcile `monthly-client-money-tree-maa` before adding\nany clock. Check priority buying pages and named relationships weekly; rebuild\nother eligible site trees monthly through their existing owning function.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every scoped offer and topic branch comes from the site, with no invented nodes or missing bare branches.\n- [ ] Distinct source-post counts, alias handling, crawl date and extraction boundaries can be reproduced.\n- [ ] Public diagram, text and metadata agree; private values are absent from every public representation.\n- [ ] Each priority finding has a specific next task and owner; structural counts are not claimed as measured sales.\n- [ ] Every branch in the service/navigation scope is represented\n- [ ] Counts are reproducible and links resolve or are flagged\n- [ ] Diagram, outline and schema agree\n- [ ] A simplified opening map states its selection and coverage and leads directly to the complete tree; meaningful groups preserve the scoped tree's actual breadth without invented nodes or decorative leaves\n- [ ] Each count states its source-defined measure and date; \"published posts linking to this offer\" is not presented as all relevant proof, all customers or all published content\n- [ ] The first 2–3 sentences explain the reader's situation, why the tree matters and how connecting relevant proof to real offers helps the reader choose a next step; no unmeasured conversion or revenue promise\n- [ ] Private metrics never enter public markup\n- [ ] Each defect has a destination and next action\n- [ ] Record the exact source revision, actual result and evidence; retain failure, partial, blocked and unknown states.\n- [ ] Write the execution's meta article and link the canonical task. Publication is a separate action under the current authority.\n- [ ] Keep this parent job's internal retries, checks and agent contributions on the same execution ID; derivatives and revisions add no runs. A separately scoped and documented child execution may have its own ID with parentExecutionId, without adding a second completion to this parent recipe.\n- [ ] Verify permissions for publishing, sending, spending, scheduling or changing access before that action. A task record does not grant them.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional service site has two offers and five posts. Three distinct posts link to the first offer; none link to the second. One post repeats its link three times, so it still counts once. The tree shows counts of three and zero. Without connected lead data, the team can plan relevant proof links but cannot name either offer the top seller.\n\n## Handoff and Content Factory context\n\n[Prepare the Friday MAA report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the accepted public tree, private evidence when authorized, branch deltas and owned actions. [Plan relevant links and orphan repairs](https://local-service-spotlight.github.io/task-library/?task=step-3-identify-money-pages-and-orphan-pages#task-step-3-identify-money-pages-and-orphan-pages) receives exact structural defects; [Collect verified measurements](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements) owns missing source connections.\n\nThe source places this task in Post within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/money-tree/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=build-money-tree-site-diagram#task-build-money-tree-site-diagram)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google’s crawlable link requirements](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4f7a7c01935c12bbbad202fa88ae129c8092209ff97d2aae6671b48d6f318292",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4cfed83686a231d4875382645b58c77846a8f16be3e7526d91132f8a7fc5d156",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-money-tree-site-diagram#task-build-money-tree-site-diagram",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4f7a7c01935c12bbbad202fa88ae129c8092209ff97d2aae6671b48d6f318292",
      "articleKey": "blitzmetrics.com/money-tree",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4f7a7c01935c12bbbad202fa88ae129c8092209ff97d2aae6671b48d6f318292"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4f7a7c01935c12bbbad202fa88ae129c8092209ff97d2aae6671b48d6f318292"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/money-tree/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 129,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Close endorsement links for an ended relationship",
     "slug": "close-ended-relationship-endorsement-links",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/when-trust-ends-the-link-ends/",
     "articleKind": "task-recipe",
     "desc": "Keep your site clear about who you work with now.",
     "content": "---\nname: close-ended-relationship-endorsement-links\ndescription: \"Keep your site clear about who you work with now.\"\ncategory: SEO & Content Architecture\nstage: —\ndefinitive_article: https://blitzmetrics.com/when-trust-ends-the-link-ends/\nstatus: needs-work\n---\n\n# Close endorsement links for an ended relationship\n\nKeep your site clear about who you work with now. This guide checks old links when a work relationship ends, while keeping true history. Start with the agreed change and the pages your team can edit.\n\n**The path:** Confirmed relationship change → Controlled-link inventory → Narrow edits → Public closeout check\n\n**Start when:** The relationship owner has confirmed a specific ended relationship and the public association that must change.\n\n## Inputs\n\n- A dated source confirming the relationship’s end, the exact entities involved, affected roles and decision owner.\n- The relevant controlled sites, public profiles and draft records, with current edit rights and release authority.\n- Existing account/access ownership, historical facts to preserve and the [relationship closeout method](https://blitzmetrics.com/when-trust-ends-the-link-ends/).\n\n## Steps\n\n1. Confirm the actual event and scope with the owning record. Distinguish an ended agency relationship from a former employee role, an expired offer or an unsupported allegation. If the owner’s decision is missing, stage the inventory and leave the public change pending.\n2. Inventory affected links and association claims only on surfaces the team controls. Save the exact URL, surrounding sentence, destination, role and current source. Use explicit searches and known site maps; an incomplete search is a bounded inventory, not proof that all web references were found.\n3. Classify each item as current endorsement, active role, factual historical record, primary evidence or unrelated identity reference. The closeout removes misleading current association while retaining true history. An old event appearance or dated quote does not become false simply because the working relationship ended.\n4. Prepare the smallest appropriate edit for each confirmed current endorsement. Remove a hyperlink, qualify the former role or revise its surrounding sentence as warranted. Never retarget the other party’s name to your own site and leave a misleading anchor; a new destination requires a truthful label and relevant purpose.\n5. Keep account and infrastructure ownership separate. Remove only an explicitly authorized obsolete role or access grant after checking the correct account and recovery dependency. Do not delete the other party’s site, transfer their domain, lock them out or change unrelated administrators as a side effect.\n6. Use the supported content rail for authorized edits, preserving current source, media and unrelated fields. Check the normal anonymous page and link behavior after save. Public caches or inaccessible profiles remain specific verification gaps; a successful save response alone does not prove the public association changed.\n7. Save before/after evidence, unchanged history, inaccessible surfaces and each remaining owner. Any notice to the other party needs its own send authority. Complete the scoped closeout when its actual checks pass, without claiming control over copies or accounts outside the agreed boundary.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The ended relationship and exact change are supported by the owner’s current record.\n- [ ] True history and third-party ownership remain intact; changed anchor text predicts its destination.\n- [ ] Every controlled changed surface has a public readback, or an explicit unresolved verification dependency.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional agency stops managing a contractor’s marketing. Its team page still says the contractor is a current partner, while an old case study accurately names a 2024 project. The team removes the current-partner badge and clarifies its link. It retains the dated project story and records an external directory correction as pending, not completed.\n\n## Handoff and Content Factory context\n\nThe relationship owner receives the checked closeout and residual gaps. [Choose the right entity destination](https://local-service-spotlight.github.io/task-library/?task=follow-entity-linking-decision-tree#task-follow-entity-linking-decision-tree) receives any revised public identity rules; a separate authorized access owner handles remaining account roles.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/when-trust-ends-the-link-ends/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=close-ended-relationship-endorsement-links#task-close-ended-relationship-endorsement-links)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c718aba231d69b4144ae47df572647fd10d661cd8cdc1070e3dee36ac827a479",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9150aa1918999be7343fcd365b8afe83c7aa314febc8b6df027f90e776c2bf70",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=close-ended-relationship-endorsement-links#task-close-ended-relationship-endorsement-links",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c718aba231d69b4144ae47df572647fd10d661cd8cdc1070e3dee36ac827a479",
      "articleKey": "blitzmetrics.com/when-trust-ends-the-link-ends",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c718aba231d69b4144ae47df572647fd10d661cd8cdc1070e3dee36ac827a479"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c718aba231d69b4144ae47df572647fd10d661cd8cdc1070e3dee36ac827a479"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/when-trust-ends-the-link-ends/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 132,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "personal-branding",
   "name": "Personal Branding",
   "icon": "👤",
   "color": "#ec4899",
   "description": "Making expertise findable, reputation defensible, referrals scalable",
   "tasks": [
    {
     "title": "Add consistent headshots and bios across profiles",
     "slug": "add-consistent-headshots-and-bios-across-profiles",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help people know they have found the right you.",
     "content": "---\nname: add-consistent-headshots-and-bios-across-profiles\ndescription: \"Help people know they have found the right you.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Add consistent headshots and bios across profiles\n\nHelp people know they have found the right you. This guide brings your photos and key facts into line across your work profiles. Start with your best current photo and the facts on your own site.\n\n**The path:** Approved photo + facts → Platform drafts → Checked profiles → Identity map\n\n**Start when:** The agreed public profiles exist, but their photos or bio facts differ.\n\n## Inputs\n\n- [Set up the agreed public profiles](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-social-profiles#task-set-up-professional-social-profiles) with exact URLs and actual edit rights.\n- An approved real headshot, crop files and permission for each use; the person’s accepted public name and verified current bio facts.\n- The current site About page, allowed public contact details and a list of platforms in this pass.\n\n## Steps\n\n1. Compare the profiles with the site before editing. List wrong-person matches, outdated roles, old photos, broken links and missing access. Distinguish a genuine fact conflict from a platform’s length limit or a valid historic credit.\n2. Choose a current real headshot that is clear at avatar size. Make the required crops from that photo and retain the original. Preview each crop so the face is recognizable; do not alter the person’s identity or create a fake event photo.\n3. Write one-line, short and longer bios from the same verified facts. State the person’s work, the people served and relevant proof. Keep approved professional name and role consistent; a legal-name variant in an old record is evidence to reconcile, not erase.\n4. Prepare the fields for each agreed profile. Use first person on the person’s site and the platform’s appropriate voice elsewhere. Follow [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for reader value, real proof and natural voice; do not copy an unsupported credential into every bio.\n5. Apply the approved edits through each platform’s supported control when authorized. Keep before values for recovery. External publisher profiles receive a specific correction request under the existing send authority; record any pending owner action instead of claiming it fixed.\n6. Open the saved public profiles and compare name, photo, role and website link with the approved set. A blocked automated fetch requires a supported visible check or an unknown result, not automatic proof that the profile is correct.\n7. Save the final URL list, checked facts, crop references and remaining gaps in the existing identity record. Recheck when roles or photos change; a quarterly review is a proposed cadence until the actual owner and schedule are recorded.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every in-scope editable profile matches the approved current facts, or has a specific unresolved owner action.\n- [ ] Published photo crops and links have been checked; historic variants and inaccessible sources stay identified.\n- [ ] The next owner receives the same bio set and checked profile list.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional consultant changes her job title. Her website and two social profiles can be edited, but an event bio belongs to the host. The team updates the three owned pages and prepares a precise request for the event page. The record shows three verified changes and one pending request, not a fully fixed web.\n\n## Handoff and Content Factory context\n\n[Add verified Person markup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) receives the checked identity facts and profile URLs; the podcast and speaker tasks reuse the approved bio set.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "b04e43466cb34580a1509e695ae5a2bc4d3020f6bb52d329f9c7f885f588a239",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4181b88256b87e01e63686fa528046f1c62af8cf0e5f220ffa79e8ce3cf14d2f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b04e43466cb34580a1509e695ae5a2bc4d3020f6bb52d329f9c7f885f588a239",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b04e43466cb34580a1509e695ae5a2bc4d3020f6bb52d329f9c7f885f588a239"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b04e43466cb34580a1509e695ae5a2bc4d3020f6bb52d329f9c7f885f588a239"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 127,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build personal brand website",
     "slug": "build-personal-brand-website",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Give people one place to check who you are and what you do.",
     "content": "---\nname: build-personal-brand-website\ndescription: \"Give people one place to check who you are and what you do.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Build personal brand website\n\nBuild one clear site so people can see who you are, what you do and how to reach you. Use your real work and checked facts to earn trust. Use the [site delivery guide](https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request) to check the preview with its owner before it goes live.\n\n**The path:** Facts + real proof → Site preview → Content and function checks → Approved launch\n\n**Start when:** The person controls the chosen domain and needs a new or improved public home for their work.\n\n## Inputs\n\n- [Register or verify the name domain](https://local-service-spotlight.github.io/task-library/?task=register-personal-name-domain#task-register-personal-name-domain) with its actual owner and hosting plan.\n- Approved bio, real headshots, work stories, permission for named proof, current social URLs and public contact path.\n- [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) brief, accepted build/deployment scope, current source or builder, and measurement requirements.\n\n## Steps\n\n1. Inspect any existing site, source owner, pages, mail setup and current links before planning changes. Improve the maintained site in place when possible. Separate the content build from domain registration, DNS changes, hosting charges and public launch authority.\n2. Build the first screen around who the person is, what they do and useful proof for the intended reader. Use two or three plain sentences at grade five or below, a real photo or evidence-backed diagram, and one clear next step. Preserve the person’s authentic voice.\n3. Build About, work/method, evidence and contact sections from verified source material. Explain each named result with its scope and source. Keep first person for the person’s own account, attributed quotes for others, and remove empty promises rather than inventing testimonials.\n4. Use real photos and relevant usable video when available, with captions and context. Keep a missing video as an asset gap. Check embeds silently, muted at zero volume; a working embed is not proof that an unheard audio track is intelligible.\n5. Add useful routes to the person’s verified profiles and related work. Apply [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) and the [SEO Tree, the map from proof pages to main topics and offers](https://blitzmetrics.com/seo-tree/). Prepare the structured identity markup through its dedicated task so a theme, plugin and custom block do not create competing Person identities.\n6. Check a preview at desktop, laptop and mobile widths: readable first screen, useful visual, unclipped face and buttons, valid links, clear contact path and no horizontal overflow. Check HTTPS, indexing controls and the actual measurement plan before launch; a performance score is a measurement, not a universal three-second guarantee.\n7. When launch is authorized, use the supported source/deployment rail and verify the normal public URL, saved content, media and contact behavior. Retain the exact revision and any failed gate. A preview remains a preview until the live domain passes.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The first screen gives the intended reader useful facts, proof and a next step with a meaningful visual.\n- [ ] Claims, media rights, author voice and entity links match evidence; the actual source is retained.\n- [ ] Preview and live states, domain dependencies and function checks are recorded separately.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional builder has a name domain, three project photos and two approved customer quotes. The site preview shows those projects and a contact button. The old domain still hosts email, so the preview can pass design review while the web team prepares a separate domain change. Nobody calls the site live from the preview alone.\n\n## Handoff and Content Factory context\n\n[Add verified Person markup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) receives the approved identity graph; [Set up the agreed public profiles](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-social-profiles#task-set-up-professional-social-profiles) receives the site URL. The named launch owner receives the checked preview, the acceptance record below and each open issue. The [site delivery guide](https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request) uses that record for domain planning, launch and live checks.\n\n## Save the checks and owner's decision\n\nKeep one delivery record in the original request. Include:\n\n| Record | What to save |\n|---|---|\n| Source | Request ID, recipe revision, fact and media sources, exact preview URL and source revision. |\n| Page checks | Each tested URL and response code; HTTPS result; actual desktop and phone sizes; screenshot and visible result for each size. Count the checked URLs against the URLs in scope. |\n| Contact path | The action tested and its observed destination. If a form test is authorized, retain the delivered test receipt. A button opening or a success message alone does not prove delivery. Otherwise mark delivery UNKNOWN and name the next owner. |\n| Domain and mail | Link the domain plan and any scoped mail check. Keep untested mail continuity UNKNOWN. This build recipe does not grant DNS, mailbox or access-change authority. |\n| Decision | Name the authorized person who accepts the preview. Save their accept, reject or change request against the exact preview URL and revision, with its date and source. A sent link alone is not acceptance. |\n| Receiving handoff | Name the launch owner and receiving task. Record acknowledgment of the exact preview revision and unresolved issues. Without acknowledgment, keep the handoff pending; do not call the site launched. |\n\nA receipt for an older site can support what it actually records. If the original recipe version, timing or measured checks are missing, keep those fields UNKNOWN. Do not turn that receipt into proof that today's recipe passed.\n\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "75465adfd9df2ae3a748101a87ffb71385374fb61196d4463f370f77b767c870",
      "reviewed_at": "2026-10-14",
      "reviewer": "Codex root with independent GPT-6.1 Sol high-effort source review",
      "scope": "Five written criteria only; no article, client execution or novice setup certification. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Quoted first3sentences explain a clear site, trust through real facts, and the linked delivery task. Heuristic grade4.16; actual phone/desktop visual inspected.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, inputs, seven steps and measured record table make preview, launch and checked live state distinct. No access or schedule is created.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
        },
        "links": {
         "state": "pass",
         "reason": "All task identities checked; receiving source read. Thirteen teaching destinations read by HTTP/browser. Narrow conceptual relationships supported; complete destination certification separate.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fictional example stays labeled; no real run or saving invented. Older receipts keep unknown recipe, timing and checks.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Exact preview revision, owner decision, named receiver, open issues and acknowledgment required. Pending handoff remains pending.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
        }
       }
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "75465adfd9df2ae3a748101a87ffb71385374fb61196d4463f370f77b767c870",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-14. Review scope and limits: Five written criteria only; no article, client execution or novice setup certification. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md",
        "reviewedAt": "2026-10-14",
        "reviewer": "Codex root with independent GPT-6.1 Sol high-effort source review",
        "sourceSha256": "75465adfd9df2ae3a748101a87ffb71385374fb61196d4463f370f77b767c870"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-14",
        "reviewer": "Codex root with independent GPT-6.1 Sol high-effort source review",
        "reviewScope": "Five written criteria only; no article, client execution or novice setup certification. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md",
        "sourceSha256": "75465adfd9df2ae3a748101a87ffb71385374fb61196d4463f370f77b767c870",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Quoted first3sentences explain a clear site, trust through real facts, and the linked delivery task. Heuristic grade4.16; actual phone/desktop visual inspected.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, inputs, seven steps and measured record table make preview, launch and checked live state distinct. No access or schedule is created.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
          },
          "links": {
           "state": "pass",
           "reason": "All task identities checked; receiving source read. Thirteen teaching destinations read by HTTP/browser. Narrow conceptual relationships supported; complete destination certification separate.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fictional example stays labeled; no real run or saving invented. Older receipts keep unknown recipe, timing and checks.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Exact preview revision, owner decision, named receiver, open issues and acknowledgment required. Pending handoff remains pending.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-build-proof-2026-10-14.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 130,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build third-party validation",
     "slug": "build-third-party-validation",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "Help people check your work with proof from other sources.",
     "content": "---\nname: build-third-party-validation\ndescription: \"Help people check your work with proof from other sources.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Build third-party validation\n\nHelp people check your work with proof from other sources. This guide sorts press, talks and interviews into a clear record. Start with the real links you already have, then find what each one shows.\n\n**The path:** Existing coverage → Identity and source checks → Proof inventory → Public use proposal\n\n**Start when:** Identity facts are established and the team needs a checked inventory of outside evidence and gaps.\n\n## Inputs\n\n- [Check the person’s identity](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity) with the accepted name, role, home site and known collisions.\n- Existing press, podcast, talk, book and directory records, plus their source URLs, dates and use permissions.\n- The actual claim to support and approved research scope; [Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) classification rules.\n\n## Steps\n\n1. Read the current proof inventory and append there. Record the source title, URL, date, author, named subject, exact supported fact and whether the material is independent, self-published, paid or a simple appearance. Avoid counting syndicated copies as independent coverage.\n2. Search the accepted names, useful variants and the languages in which the person has lived and worked. Inspect the primary page or supplied source, not just a search summary. Record sources or languages that remain inaccessible so a thin search is not labeled a thin career.\n3. Resolve same-name people with role, organization, location and the source’s actual context. Keep the narrowest true claim: a speaker listing proves a scheduled role; a recorded delivered talk proves participation; praise requires actual attributable positive language.\n4. Build the gap list around the reader’s needed proof. Use the podcast, speaking and press tasks to propose suitable opportunities. A missing type of proof is not permission to purchase a placement or manufacture a book credit.\n5. Consider Wikidata only after checking its current notability rules, existing items, reliable references and identity fit. Wikipedia has separate notability and conflict-of-interest rules. Document the route and disclose relevant interests; neither platform is a compulsory branding checkbox or a guaranteed Google panel source.\n6. Select the strongest relevant public-safe proof for the site with a short account of what it establishes. Keep permissions and private locators in the governed record. Pass only true identity pages to the schema task; an ordinary press story is a citation, not automatically a sameAs identity.\n7. Save the covered scope, accepted and held records, changed facts and next owner. A bounded inventory pass can finish with honest gaps; new placements, a growing quarterly count or a Knowledge Panel are separate outcomes.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every accepted item identifies the right subject and the exact fact its source supports.\n- [ ] Independent coverage, appearances, praise and duplicates are classified separately.\n- [ ] The source-backed inventory and gap plan are saved; no new public placement or panel is invented.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional trainer has two interviews and a shared event photo. One interview contains a named client’s praise; the other is a neutral Q&A. The photo shows attendance only. The inventory keeps those three meanings separate and proposes a topic-specific speaking pitch, without presenting all three items as endorsements.\n\n## Handoff and Content Factory context\n\n[Review identity markup](https://local-service-spotlight.github.io/task-library/?task=implement-technical-schema-markup#task-implement-technical-schema-markup) receives verified identity pages. The site owner receives approved proof cards; press and podcast tasks receive scoped gaps.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Wikidata notability](https://www.wikidata.org/wiki/Wikidata:Notability)\n- [Wikipedia conflict of interest](https://en.wikipedia.org/wiki/Wikipedia:Conflict_of_interest)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2b455e7059d0a5d6535f81e6065e9d356d0c8e2665b2085849ad3c3359c4f8e5",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0585aef39f73399956655c387c0e480adda2c46796ae4b2ab19650d9b0aff04d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2b455e7059d0a5d6535f81e6065e9d356d0c8e2665b2085849ad3c3359c4f8e5",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2b455e7059d0a5d6535f81e6065e9d356d0c8e2665b2085849ad3c3359c4f8e5"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2b455e7059d0a5d6535f81e6065e9d356d0c8e2665b2085849ad3c3359c4f8e5"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 131,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Claim and verify Knowledge Panel when it appears",
     "slug": "claim-and-verify-knowledge-panel-when-it-appears",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "Check the facts people see about you on Google.",
     "content": "---\nname: claim-and-verify-knowledge-panel-when-it-appears\ndescription: \"Check the facts people see about you on Google.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Claim and verify Knowledge Panel when it appears\n\nCheck the facts people see about you on Google. This guide helps you claim a panel when Google offers that option. Start with the live panel for the right person and the account that person controls.\n\n**The path:** Correct panel → Offered claim flow → Owner verification → Checked claim and edits\n\n**Start when:** Google displays the correct person’s panel and offers a claim flow, or an existing claim needs correction.\n\n## Inputs\n\n- [Classify the current panel state](https://local-service-spotlight.github.io/task-library/?task=classify-and-offer-knowledge-panel#task-classify-and-offer-knowledge-panel) with dated search evidence.\n- The person’s authorized Google account and access to the official sites/profiles Google offers for verification.\n- Accurate identity facts and evidence for requested corrections; [Google’s panel claim instructions](https://support.google.com/knowledgepanel/answer/7534902?hl=en).\n\n## Steps\n\n1. Find the correct panel in a current search and record the query, date, device and observed identity. An entity ID, sometimes called a KGMID, or a thin card does not by itself prove a claim flow exists. Keep not claimable as the current state.\n2. Confirm the account and representative authority before taking the claim action. Use the person’s owner-controlled account and the verified public profiles requested by the offered flow. Helpers need their actual permitted role; the recipe does not grant account access.\n3. Open the displayed claim control and follow [Google’s panel claim instructions](https://support.google.com/knowledgepanel/answer/7534902?hl=en). Google may request a connected official profile or more evidence. Let the account owner complete identity or recovery steps that require them, and keep sensitive verification material out of public run notes.\n4. Read the result after submission. Submitted, pending, verified and already managed are distinct states. If the panel belongs to a different person or the account is already managed, use the documented support path rather than creating another identity or repeating blind submissions.\n5. After verification, compare visible panel facts with current reliable sources. Correct owned source errors first, then suggest only supported panel changes through the offered control. A suggested edit is not an accepted edit; save each result separately.\n6. Save the claim evidence, date, current facts, unresolved edits and next check owner. Use the existing review cadence only if it is actually assigned. A payment milestone is governed by the accepted engagement terms, not inferred from a search card or this checklist.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The correct person’s claim state has direct current evidence; pending is not called verified.\n- [ ] Requested and accepted fact changes are separate, supported and checked.\n- [ ] Ownership, remaining human action and the next review are recorded without private verification data.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional founder’s information card shows her name but no claim button. The team records that card and its date, then continues the identity work. A later search offers claiming, so the owner completes the offered check. Until Google confirms that result, the record says pending rather than claimed.\n\n## Handoff and Content Factory context\n\n[Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) receives the observed panel state. [Check identity facts](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity) receives source corrections; the owner retains any pending verification step.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=claim-and-verify-knowledge-panel-when-it-appears#task-claim-and-verify-knowledge-panel-when-it-appears)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google panel claim](https://support.google.com/knowledgepanel/answer/7534902?hl=en)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "850fd5da41ed00793e70462e1b9d036aeb24cf9abac580e601e275756b6bc53d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e6abfa58c76ef5746d80f0cf76a2b3b05acdd20ca552b9391a499f106fa85c1b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=claim-and-verify-knowledge-panel-when-it-appears#task-claim-and-verify-knowledge-panel-when-it-appears",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "850fd5da41ed00793e70462e1b9d036aeb24cf9abac580e601e275756b6bc53d",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "850fd5da41ed00793e70462e1b9d036aeb24cf9abac580e601e275756b6bc53d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "850fd5da41ed00793e70462e1b9d036aeb24cf9abac580e601e275756b6bc53d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 101,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Classify and offer Knowledge Panel",
     "slug": "classify-and-offer-knowledge-panel",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "Choose the right next step for your name on Google.",
     "content": "---\nname: classify-and-offer-knowledge-panel\ndescription: \"Choose the right next step for your name on Google.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Classify and offer Knowledge Panel\n\nChoose the right work to help people find you on Google. This keeps your team from selling work you do not need. First, [check who each profile belongs to](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity); that proof helps you tell your results from someone else’s.\n\n**The path:** Live search + proof → Claim / Build / Contested → Current terms → Offer draft\n\n**Start when:** An accepted prospective engagement needs an evidence-based panel-work recommendation and a matching draft offer.\n\n## Inputs\n\n- The person’s accepted public name, role, home site and existing identity evidence.\n- Current search access, the approved service terms and qualification rules, and the actual commercial decision owner.\n- [Current owned package page](https://localservicespotlight.com/knowledge-panel-package/) and [Google’s account of how panels work](https://support.google.com/knowledgepanel/answer/9163198?hl=en); reconcile any conflict with the accepted engagement before quoting.\n\n## Steps\n\n1. Run a fresh name search and record query, location or locale where known, device, date and screenshots. Inspect the result’s identity, not merely the displayed name. A signed-out search reduces some personalization but does not remove all contextual variation.\n2. Classify Claim/correct only when the right panel offers the needed claim or edit route. An entity ID is a code for a named person or thing in Google’s data. It does not prove the right panel offers a claim or edit route. Classify Build as supported identity/proof work still needed; use contested review for ambiguity or a crowded name.\n3. Check the person’s existing public home, verified profiles and independent evidence. State the actual gaps and the services within scope. Do not promise that a checklist, payment, name domain or schema will force Google to display a panel.\n4. Read the current approved price, deposit, milestone and refund terms from their maintained source. If the public offer page omits a term, get the approved engagement or terms owner’s record; do not invent it or treat silence as a refund policy. The older skill’s dollar bands and duration ranges are historical source copy; this recipe does not set a new price or repeat them as current without that check.\n5. Draft the matching recommendation with the evidence, exact deliverables, owner-controlled verification account, dependencies and accepted commercial terms. Tie each milestone to its actual contract definition. Keep proposed service work distinct from Google’s decision and from a completed claim.\n6. Route ambiguous scope, conflicting terms and contested identities to the responsible commercial or entity-review function with the finished evidence packet. A named colleague’s availability is not a reason to pause safe research, nor authority to send an unapproved offer.\n7. Save the decision and draft. Send only under existing authorization and record the exact sent version when it happens. The classification task is checked when its evidence and matching proposal are reviewable; a sale or a panel is a later outcome.\n\n## Output record and acceptance\n\nFor each accepted request, save the request ID and revision; search name, date, locale and result evidence; identity match; route (`claim/correct`, `build` or `contested`); evidence gaps; approved-terms source and revision; offer-draft link and state; and next function and owner. Count the in-scope names searched and classified, and drafts backed by current terms. The check passes when every recommendation can be traced to saved evidence and each quoted term matches its approved source. The person responsible for commercial terms records accept or return against the exact draft revision, with reviewer and date; contested identity goes to the identity reviewer. Keep these records in the approved private project space.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The recommendation distinguishes identity evidence from an actual claim/edit route.\n- [ ] All quoted commercial terms match the current approved source; unsupported timing promises are absent.\n- [ ] The evidence-backed offer remains accurately labeled draft or sent, with the next owner named.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional accountant has a name shared by a musician. The visible card belongs to the musician. The team prepares a contested-identity review with the accountant’s true work and site. It does not sell a ready-to-claim service or borrow an old price; the current offer owner must supply the actual terms.\n\n## Handoff and Content Factory context\n\nThe person responsible for commercial terms receives the exact proposal for acceptance. The identity reviewer receives a contested case before an offer is sent. After scope approval, [resolve identity facts](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity) or [claim an available panel](https://local-service-spotlight.github.io/task-library/?task=claim-and-verify-knowledge-panel-when-it-appears#task-claim-and-verify-knowledge-panel-when-it-appears) receives the supported route.\n\nThis is a qualification gate before the [Content Factory](https://localservicespotlight.com/content-factory/) starts. Once work is accepted, [Establish entity identity](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity) supplies checked facts for later site or schema work. This task produces a sourced route and offer draft; it does not make a content asset.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=classify-and-offer-knowledge-panel#task-classify-and-offer-knowledge-panel)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google panel explanation](https://support.google.com/knowledgepanel/answer/9163198?hl=en)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e9a676f246d0272c184399d64927deb2e177c1407d7c16be572fafb28238ef61",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "e52ab95088bca316403cce18fbf1b7810cf871886e4c3775fba9ed88926dfab4",
       "previousReviewDate": "2026-10-05",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=classify-and-offer-knowledge-panel#task-classify-and-offer-knowledge-panel",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e9a676f246d0272c184399d64927deb2e177c1407d7c16be572fafb28238ef61",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e9a676f246d0272c184399d64927deb2e177c1407d7c16be572fafb28238ef61"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "e9a676f246d0272c184399d64927deb2e177c1407d7c16be572fafb28238ef61",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "classify-and-offer-knowledge-panel",
         "canonicalURL": "https://blitzmetrics.com/knowledge-panel",
         "sourceSha256": "8ffaedfbfedaa6aa9a5073ae30abfac53e6b3b9b316cf2614b9d2b2e6fe751bd",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T21:21:36.783111Z",
         "reviewer": "Codex root; separate GPT-6 Luna written review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Actual first paragraph quoted below; plain useful work, reason and owned personal-brand prerequisite, with source meaning checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Single site-delivery recipe or six-task Knowledge Panel topic hub; registry and public copy agree.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Canonical ongoing upkeep owner not established by this scoped release.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Reviewed body now agrees with the current source recipe; old Google and DNS contradictions removed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Owned conceptual and prerequisite meanings checked; current source copies and primary-provider references checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "No new independently accepted offer, identity audit or site launch is supplied by documentation work.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Named required reviewer or publisher, exact artifact and accepting record, plus specific Content Factory relationship.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Previews passed; final anonymous source and full public rendered checks tracked separately before any certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Stable route and basic metadata preserved or improved; complete taxonomy, SEO metadata and author evidence not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No accepted real task execution or novice setup trial; article publication is not their substitute.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "classify-and-offer-knowledge-panel",
         "canonicalURL": "https://blitzmetrics.com/knowledge-panel",
         "sourceSha256": "8ffaedfbfedaa6aa9a5073ae30abfac53e6b3b9b316cf2614b9d2b2e6fe751bd",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T21:21:37.547232Z",
         "observer": "Codex separate authenticated source read",
         "state": "observed",
         "reason": "Exact reviewed source independently read after the review. Public parity remains separate.",
         "evidenceRefs": [
          "sha256:37ddfe4c66f4e20c4824e23c164e66f5bd2ad204cc10731c329c94c6a39599db"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 102,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create collaborative content with industry peers",
     "slug": "create-collaborative-content-with-industry-peers",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Make one useful piece with someone whose work fits yours.",
     "content": "---\nname: create-collaborative-content-with-industry-peers\ndescription: \"Make one useful piece with someone whose work fits yours.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Create collaborative content with industry peers\n\nMake one useful piece with someone whose work fits yours. This guide helps you plan a shared talk or article that serves both groups of readers. Start with a real topic you can teach together.\n\n**The path:** Real topic + peer → Agreed brief → Shared source → Checked releases\n\n**Start when:** Two relevant peers may want to make a useful joint source or article.\n\n## Inputs\n\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) and a verified peer/audience shortlist.\n- The proposed format, useful reader outcome, real proof and a small clear ask.\n- Recording or writing access, participant consent, edit/reuse rights and the actual release owners.\n\n## Steps\n\n1. Choose a peer for topic and audience fit. Inspect real work that shows why the person can contribute. Proximity to a recognizable name does not establish an endorsement or guarantee transferred trust; name the useful lesson the shared work will teach.\n2. Draft a concrete proposal: topic, audience, format, time needed and intended use of the output. Reference the peer’s actual work. Keep outreach as a draft until sending is authorized; track the real reply rather than inventing agreement from a warm relationship.\n3. Agree the source format and rights before recording or co-writing. Specify who speaks or writes, who checks facts, who owns the files, which excerpts may be reused and which channels each person actually intends to use. Shared participation does not imply unlimited rights.\n4. Capture the conversation or draft with one clear topic and genuine contributions. Save the original files, date, participants and source notes. An AI worker can prepare prompts and process supported sources; it cannot substitute for the people’s own experience.\n5. Prepare the agreed outputs through [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Keep each person’s meaning, verify names and facts, and review the short opening and meaningful visual under [Article Guidelines](https://localservicespotlight.com/article-guidelines/). Do not require both parties to publish every derivative if that was never agreed.\n6. Use [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) for truthful citations to each person’s verified home and relevant work. Check actual links after authorized release. A useful editorial cross-reference is different from exchanging links chiefly to manipulate ranking.\n7. Give the peer a specific thank-you under the agreed privacy and send rules. Record participation, published outputs and any actual praise separately in the proof inventory, with the exact permitted reuse and remaining handoff.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The shared source and each output follow the agreed topic, participants and rights.\n- [ ] Every claimed release, credit and link is observed; pending peer work stays pending.\n- [ ] The proof record describes the actual collaboration without invented endorsement or guaranteed reach.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional plumber and electrician record a joint home safety Q&A. They agree that each may use two checked excerpts. The plumber posts one, while the electrician is still reviewing the draft. The record shows one live excerpt and one pending review, with both people credited for the real discussion.\n\n## Handoff and Content Factory context\n\n[Turn the source into an article](https://local-service-spotlight.github.io/task-library/?task=repurpose-videos-into-blog-posts-via-content-factory#task-repurpose-videos-into-blog-posts-via-content-factory) or [Prepare social clips](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips) receives the agreed sources; [Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) receives only evidence-backed collaboration or praise records.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-collaborative-content-with-industry-peers#task-create-collaborative-content-with-industry-peers)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google link spam policy](https://developers.google.com/search/docs/essentials/spam-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "9231a75801e7320e0b716180697618ad6ef19c89b9b242bf9b8928b3b7f556b4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3d8d48803b447b69327c234eae66d557fc155288d7168a4ccdfe90e7928c3047",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-collaborative-content-with-industry-peers#task-create-collaborative-content-with-industry-peers",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9231a75801e7320e0b716180697618ad6ef19c89b9b242bf9b8928b3b7f556b4",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9231a75801e7320e0b716180697618ad6ef19c89b9b242bf9b8928b3b7f556b4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9231a75801e7320e0b716180697618ad6ef19c89b9b242bf9b8928b3b7f556b4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 134,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create Dollar a Day ad creatives from best content",
     "slug": "create-dollar-a-day-ad-creatives-from-best-content",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Use your best past content to plan the next small ad test.",
     "content": "---\nname: create-dollar-a-day-ad-creatives-from-best-content\ndescription: \"Use your best past content to plan the next small ad test.\"\ncategory: Personal Branding\nstage: Process\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Create Dollar a Day ad creatives from best content\n\nUse your best past content to plan the next small ad test. This guide turns a proven post into a clear draft for the right people. Start with the post, its results and the source file.\n\n**The path:** Post + real results → Chosen source → Placement drafts → Ads owner\n\n**Start when:** Published content has relevant organic evidence and the promotion owner needs tested-source creative drafts.\n\n## Inputs\n\n- [Prepare social clips](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips) or another published asset with source files, use rights and measured results.\n- The intended goal, audience, destination and current promotion brief.\n- Actual placement requirements, editing tools and any separately approved test budget; [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/).\n\n## Steps\n\n1. Compare the content against the goal it served. Retain date, audience, reach and relevant watch, engagement or lead signals. Choose useful evidence-backed pieces; an old top ranking or a large raw like count alone does not establish a current winner.\n2. Check that the source claim, person’s permission, offer and destination are still accurate. Prefer proven useful work under the house greatest-hits method, while keeping any separately approved new experiment clearly labeled as unproven.\n3. Write [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) for each selected creative. Name the precise result, source-backed message and intended audience. Keep a path to the relevant proof or offer; a generic personal-brand message with no useful next step is not an adequate brief.\n4. Adapt the actual source to the agreed placements. Check current aspect ratio, duration, file and caption requirements in the selected platform before exporting. Keep the hook and subject visible, preserve meaning and crop safely; do not assume one vertical file fits every placement.\n5. Prepare the ad text, media, destination, source ID and test proposal as one review packet. Use the house small-test method only within the promotion owner’s actual budget and setup. This creative-preparation task does not create ad sets, spend money or call a nominal daily budget risk-free.\n6. Preview the complete creative on the intended device sizes, checking captions, safe areas and working destination. Keep media muted at zero volume. Record rejected variants and missing source evidence instead of certifying an unseen placement.\n7. Hand off accepted files and the proposed measurement window to the ads owner. Paid launch and later pause/scale decisions use their own authority, actual tracking and current campaign evidence; no universal two-times increase or automatic kill rule is imposed here.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each draft traces to a usable source with goal-relevant evidence and current rights.\n- [ ] The intended placement, text, captions and destination have a checked preview.\n- [ ] The packet separates creative readiness, approved budget and actual ad launch.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional repair shop has a useful roof-leak clip with strong watch time. Its old offer has expired. The editor keeps the proven explanation, removes the expired claim and drafts a new next step for review. The file is ready for the ads owner, but no paid test has started and no lead result is promised.\n\n## Handoff and Content Factory context\n\n[Prepare the accepted amplification test](https://local-service-spotlight.github.io/task-library/?task=stage-5-amplification-boost-posts-remarketing-ads#task-stage-5-amplification-boost-posts-remarketing-ads) receives the reviewed creative packet; [Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) receives actual results later.\n\nThe source places this task in Process within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-dollar-a-day-ad-creatives-from-best-content#task-create-dollar-a-day-ad-creatives-from-best-content)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "ead3c02577237c42e97d725bc1efdf6a21d18ee6b3dbab4a0853147bed24d5fe",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "50ba6bfb4f7456324e07284d13483631f362bc6a6cc8940136a302c88e776ca5",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-dollar-a-day-ad-creatives-from-best-content#task-create-dollar-a-day-ad-creatives-from-best-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ead3c02577237c42e97d725bc1efdf6a21d18ee6b3dbab4a0853147bed24d5fe",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ead3c02577237c42e97d725bc1efdf6a21d18ee6b3dbab4a0853147bed24d5fe"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ead3c02577237c42e97d725bc1efdf6a21d18ee6b3dbab4a0853147bed24d5fe"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 47,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Create social content from video clips",
     "slug": "create-social-content-from-video-clips",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Make short clips from your real videos.",
     "content": "---\nname: create-social-content-from-video-clips\ndescription: \"Make short clips from your real videos.\"\ncategory: Personal Branding\nstage: Process\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Create social content from video clips\n\nMake short clips from your real videos. This guide turns a real source into short clips and clear post drafts. Start with the best complete answer and the people it should help.\n\n**The path:** Checked source → Complete short clip → Platform post draft → Release and results\n\n**Start when:** A usable video source needs short social versions for selected channels.\n\n## Inputs\n\n- [Record real customer answers](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos-answering-customer-questions#task-record-one-minute-videos-answering-customer-questions) or another permitted source with speaker, date, transcript and exact file.\n- The agreed channels, audience, main point, destination and source rights.\n- Actual editing tool, caption process, current platform limits and release owner.\n\n## Steps\n\n1. Read the source and pick a complete idea that works without misleading cuts. Use the source’s roughly 15–60 second range as an editing target when it suits the story and placement. Preserve necessary context; split or lengthen a point that cannot be honestly shortened.\n2. Cut from the real file and keep speaker, facts and sequence accurate. Do not manufacture a quote from unrelated fragments. Retain the source timestamp range and transcript so another reviewer can compare the clip with the original.\n3. Add accurate captions, checking names and numbers manually against the source. Preview the face, key action, text and caption safe areas at the intended size. Review media silently with mute and volume zero; use transcript or measurements for audio checks if listening is not authorized.\n4. Write each post for its actual audience and channel. Lead with the useful point, use a truthful hook and explain unfamiliar terms. A channel may need a different length or title, but do not rewrite merely to force different wording where the same message fits.\n5. Choose the relevant owned destination using [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/). Use a clickable post link where supported or the correct profile route where it is not. Credit or tag verified participants only when relevant and consistent with the release scope.\n6. Prepare the complete media, copy and destination for review. Publish only on the channels authorized, using their supported controls. Open each actual public post after release and check the source, captions, crop and route; record unavailable or pending surfaces honestly.\n7. Save the exact asset/post IDs and later date-bounded metrics in the existing content record. Keep planned, exported, posted and measured states separate. Pass comparable results to the creative-selection task rather than assuming a posted clip is a winner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every clip carries a complete source-backed point and an exact source range.\n- [ ] The actual platform preview, captions, credits and useful next route are checked.\n- [ ] Only observed posts are labeled live and their later metrics retain source and period.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional baker explains why a loaf cracks. A 35-second section contains the full answer, so the editor captions it and drafts two posts. One platform does not allow the intended clickable caption link, so the draft uses the correct profile route. The post record does not claim a link that viewers cannot click.\n\n## Handoff and Content Factory context\n\n[Prepare paid creative from proven content](https://local-service-spotlight.github.io/task-library/?task=create-dollar-a-day-ad-creatives-from-best-content#task-create-dollar-a-day-ad-creatives-from-best-content) receives later comparable results; [Check paths to the person’s site](https://local-service-spotlight.github.io/task-library/?task=link-all-content-back-to-personal-brand-site#task-link-all-content-back-to-personal-brand-site) receives the actual post routes.\n\nThe source places this task in Process within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2b1ccf2deb96fe3949fb12d7c8ac7c35e6ae0ffc3f3ed1a12b07d579c412e8cf",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "45cf81d04f084b6017998ceaad59377f7153b46f8565d88f56e04abd8436f6f4",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2b1ccf2deb96fe3949fb12d7c8ac7c35e6ae0ffc3f3ed1a12b07d579c412e8cf",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2b1ccf2deb96fe3949fb12d7c8ac7c35e6ae0ffc3f3ed1a12b07d579c412e8cf"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2b1ccf2deb96fe3949fb12d7c8ac7c35e6ae0ffc3f3ed1a12b07d579c412e8cf"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 135,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Establish entity identity",
     "slug": "establish-entity-identity",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "Make it clear which person a page is about.",
     "content": "---\nname: establish-entity-identity\ndescription: \"Make it clear which person a page is about.\"\ncategory: Personal Branding\nstage: Process\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Establish entity identity\n\nCheck which web pages are about you. This helps your team keep your facts apart from those of someone with the same name. Pass the checked facts to [the site code setup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) so search tools can read the same facts as your readers.\n\n**The path:** Known person → Profile inventory → Fact and identity checks → Corrected source map\n\n**Start when:** An identity audit or panel project needs one verified record of the person and known naming conflicts.\n\n## Inputs\n\n- [Align photos and bio facts](https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles) with the approved name, real photo and current role facts.\n- The person’s home site, known profiles, outside sources and current structured markup.\n- Actual edit rights and a defined research scope; prior collisions and rejected identity matches.\n\n## Steps\n\n1. Create or update the existing identity record. Include the accepted professional name, valid alternate names, home URL, role and organization with source evidence. A person may have legitimate historic names and photos; consistency means resolving facts, not deleting their history.\n2. Inventory the in-scope owned and outside pages. Record URL, source type, name used, current role, image, website target and evidence date. Search known variants and useful languages; record coverage limits rather than claiming to find every page on the web.\n3. Resolve each page to this person using its actual role, organization, context and sources. A matching name, a search snippet or a photo with another person is insufficient. Keep wrong-person and uncertain matches excluded from accepted identity links.\n4. Compare current owned fields with the approved record. Prepare corrections for factual drift and broken links. Preserve valid older credits with their dates. Retiring profiles, redirecting URLs or changing another publisher’s page requires its actual owner and existing authority.\n5. Inspect the live website’s Person markup, meaning structured facts identifying the person. Reuse one stable identity ID for that person across relevant blocks. Person and business remain separate entities; do not merge the person with a company profile simply because they own it.\n6. After authorized corrections, reopen affected pages and check saved facts and destinations. Pass verified identity pages to [Add verified Person markup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links). An inaccessible source stays unresolved until a supported inspection proves its identity; a response code alone is insufficient.\n7. Save accepted aliases, rejected matches, checked sources and next actions. Review when a role, domain or profile changes. Any quarterly schedule needs its real owner and observed configuration; clean identity evidence does not guarantee a [Knowledge Panel, Google’s information box for an entity](https://blitzmetrics.com/knowledge-panel/).\n\n## Output record and acceptance\n\nSave one versioned identity map with a row for each in-scope source: URL, source type and check date; displayed name and role; match state (`accepted`, `rejected` or `unknown`); evidence links; conflict; proposed correction and owner. Report the number of rows checked in each state. The map passes when every accepted row has supporting evidence and names the person separately from any company; unresolved sources stay `unknown` and out of accepted links. The person responsible for checking identity evidence records accept or return against the exact map revision, reviewer and date. Only accepted URLs and facts go to the Person schema task.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Accepted pages unambiguously describe the intended person; aliases and collisions remain documented.\n- [ ] Corrected owned facts are read back and outside corrections have their actual state.\n- [ ] The identity map distinguishes Person and company and supplies verified sources to schema work.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional designer shares her name with an actor. A podcast page names her design firm, while a film page belongs to the actor. The team accepts the podcast profile and excludes the film page. An old employer bio stays as dated career history, with only its broken current-site link proposed for repair.\n\n## Handoff and Content Factory context\n\nThe person responsible for checking identity evidence accepts or returns the exact map revision. After acceptance, [Person schema setup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) receives only accepted URLs and facts. [Check outside proof](https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation) receives unresolved source questions when independent proof is still needed.\n\n**Content Factory stage: Process.** This task turns supplied profile and site evidence into a checked identity map for later page and schema work. The [Content Factory](https://localservicespotlight.com/content-factory/) uses this checked record before Post. This recipe may correct owned fields within existing authority; outside corrections remain with their owner.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google: how panels work and who can suggest edits](https://support.google.com/knowledgepanel/answer/9163198?hl=en)\n- [Google: accurate, visible structured data](https://developers.google.com/search/docs/appearance/structured-data/sd-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "26e309dd88c38a0571034f72549756e1350d3688c4b8f32c018151bf5237e0f4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "c6a880dda0fda613688c60ef64061226ff0ec2a11cee9e05655c7063fd06fec3",
       "previousReviewDate": "2026-10-05",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "26e309dd88c38a0571034f72549756e1350d3688c4b8f32c018151bf5237e0f4",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "26e309dd88c38a0571034f72549756e1350d3688c4b8f32c018151bf5237e0f4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Five written checks only. Article certification, accepted execution and novice setup remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "26e309dd88c38a0571034f72549756e1350d3688c4b8f32c018151bf5237e0f4",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "establish-entity-identity",
         "canonicalURL": "https://blitzmetrics.com/knowledge-panel",
         "sourceSha256": "8ffaedfbfedaa6aa9a5073ae30abfac53e6b3b9b316cf2614b9d2b2e6fe751bd",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-05T21:21:36.785532Z",
         "reviewer": "Codex root; separate GPT-6 Luna written review",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Actual first paragraph quoted below; plain useful work, reason and owned personal-brand prerequisite, with source meaning checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Single site-delivery recipe or six-task Knowledge Panel topic hub; registry and public copy agree.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Canonical ongoing upkeep owner not established by this scoped release.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Reviewed body now agrees with the current source recipe; old Google and DNS contradictions removed.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Owned conceptual and prerequisite meanings checked; current source copies and primary-provider references checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "sourceEvidence": {
           "state": "unknown",
           "reason": "No new independently accepted offer, identity audit or site launch is supplied by documentation work.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Named required reviewer or publisher, exact artifact and accepting record, plus specific Content Factory relationship.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "visualAndLayout": {
           "state": "unknown",
           "reason": "Previews passed; final anonymous source and full public rendered checks tracked separately before any certification.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Stable route and basic metadata preserved or improved; complete taxonomy, SEO metadata and author evidence not certified.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "No accepted real task execution or novice setup trial; article publication is not their substitute.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "establish-entity-identity",
         "canonicalURL": "https://blitzmetrics.com/knowledge-panel",
         "sourceSha256": "8ffaedfbfedaa6aa9a5073ae30abfac53e6b3b9b316cf2614b9d2b2e6fe751bd",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-05T21:21:37.548161Z",
         "observer": "Codex separate authenticated source read",
         "state": "observed",
         "reason": "Exact reviewed source independently read after the review. Public parity remains separate.",
         "evidenceRefs": [
          "sha256:37ddfe4c66f4e20c4824e23c164e66f5bd2ad204cc10731c329c94c6a39599db"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 136,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Generate backlinks and entity mentions",
     "slug": "generate-backlinks-and-entity-mentions",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help readers find your work from places they already use.",
     "content": "---\nname: generate-backlinks-and-entity-mentions\ndescription: \"Help readers find your work from places they already use.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Generate backlinks and entity mentions\n\nHelp readers find your work from places they already use. This guide helps you earn links by doing useful work. Start with the links you have and the ones your readers need.\n\n**The path:** Existing mentions → Useful target list → Real contribution → Checked credit\n\n**Start when:** The site has useful proof and the team needs a bounded plan to earn or recover relevant editorial credits.\n\n## Inputs\n\n- The current backlink and mention inventory, home URL and approved identity facts.\n- Actual audience needs, relevant work to cite and a list of suitable publications, shows, events or associations.\n- Outreach owner and scope, source/reuse rights, and the existing proof record.\n\n## Steps\n\n1. Record the current baseline and its coverage: known source URLs, referring domains, mention text, date and destination. A tool export may be incomplete; unavailable or unindexed sources are not automatically absent from the web.\n2. Prioritize destinations by audience fit, editorial relevance and actual relationships. Prefer a missing credit for real work, a useful expert contribution or a relevant member listing over a generic domain-authority target. Do not claim to know which source Google trusts most.\n3. Use the relevant podcast, speaking, press or collaboration recipe to prepare a specific contribution. Supply facts, original experience and source proof. An exchange intended chiefly to manipulate rankings is not the editorial relationship this task teaches.\n4. Prepare a concise credit or correction request to the actual source owner when it would help the reader. Link the accepted name to the verified home where editorially suitable. Requesting a link does not guarantee the host will add it, and no send is implied without authority.\n5. Keep paid placements, sponsorships and advertising separate from independent editorial coverage. Follow [Google’s link spam rules](https://developers.google.com/search/docs/essentials/spam-policies) for paid or exchanged links. Any paid distribution plan belongs to its own authorized promotion task, not an automatic journalist-targeting step.\n6. After a placement is claimed, open the actual source and verify the intended person, text and working destination. Record a mention with no link as that, and a sponsored item as sponsored. Keep a dated screenshot or reference sufficient to review the observation.\n7. Update the existing proof inventory and baseline, including requests that remain pending or were declined. Report changes and limits through [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/). A completed research pass is not the same as newly earned coverage; preserve the actual outcome.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Targets and contributions are relevant and source-backed; paid and editorial items remain distinct.\n- [ ] Every claimed new credit or link is observed on the actual source.\n- [ ] The updated inventory and pending actions are saved without guaranteed placement or ranking claims.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional engineer finds an event page that credits her talk but omits her website. She prepares a short correction request with the right URL. The host keeps the credit but declines the link. The inventory still records a real speaking mention; it does not mark a new backlink or treat the host’s answer as a failed identity.\n\n## Handoff and Content Factory context\n\n[Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) receives the observed source records; [Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) receives the bounded baseline and actual new references.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=generate-backlinks-and-entity-mentions#task-generate-backlinks-and-entity-mentions)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Google link spam policy](https://developers.google.com/search/docs/essentials/spam-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3add0f7a062e55e366912ba428f47d9a1b1ac4db8191d9240bf873f8844d2023",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "050e3d7e8850aa9356d42265f69409fedf2c05052cd7579311db6962c79a9a06",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=generate-backlinks-and-entity-mentions#task-generate-backlinks-and-entity-mentions",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3add0f7a062e55e366912ba428f47d9a1b1ac4db8191d9240bf873f8844d2023",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3add0f7a062e55e366912ba428f47d9a1b1ac4db8191d9240bf873f8844d2023"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3add0f7a062e55e366912ba428f47d9a1b1ac4db8191d9240bf873f8844d2023"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 137,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Get featured on podcasts",
     "slug": "get-featured-on-podcasts",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Share your useful work with people who listen to the right shows.",
     "content": "---\nname: get-featured-on-podcasts\ndescription: \"Share your useful work with people who listen to the right shows.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Get featured on podcasts\n\nShare your useful work with people who listen to the right shows. This guide helps you plan a guest pitch and follow the episode through release. Start with one show and a topic its listeners need.\n\n**The path:** Audience fit → Specific pitch → Agreed recording → Released episode and reuse\n\n**Start when:** The person has real expertise and a suitable show may benefit from a guest conversation.\n\n## Inputs\n\n- A verified show list, actual recent episodes and audience fit.\n- Approved bio, real headshot, home site, topics from [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) and proof the person can discuss them.\n- Outreach authority, guest availability, recording/use consent and the show’s actual submission route.\n\n## Steps\n\n1. Read or inspect a real recent episode and the show’s guest process. Prioritize audience fit and useful subject matter, not just a promise of backlinks. Record the host, source, topic opportunity and any published submission requirements.\n2. Prepare a compact pitch kit with current bio, photo, a few relevant talk ideas and verified source links. Explain what listeners will learn. Avoid unsupported performance numbers, borrowed credentials or an assumption that a famous previous guest endorses the new one.\n3. Draft a personal pitch tied to the actual show and one clear topic. Send only with the existing authority and retain the exact thread. Track drafted, sent, replied, accepted and booked states separately; no-reply remains no-reply.\n4. Once accepted, agree time, format, useful talking points and recording/reuse rights. Confirm which host controls the recording and release. Prepare the person to answer directly with true examples, and give the host the correct name and home URL.\n5. Record the actual appearance under consent. Save the date, participants and available source file. An appointment is not a recorded episode, and the guest’s file is not proof the host has published. Keep private or embargoed material out of the public queue.\n6. When the episode airs, verify the normal episode URL, identity, title and any show-note credit. Request a factual correction through the actual host if necessary; an editorial decision not to link the site stays recorded rather than overwritten as a completed link.\n7. Prepare permitted clips, a site proof entry and a specific thank-you using their respective tasks. A neutral interview proves participation; only actual praise becomes a positive mention. Retain pending host release and downstream reuse as distinct handoffs.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The pitch and guest topic fit a verified show and use real evidence.\n- [ ] Booking, recording, publication and reuse have their own actual receipts.\n- [ ] The final inventory accurately records participation, link status, rights and next actions.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional caterer pitches a local show on planning food for outdoor events. The host accepts and records the talk, but release is set for next month. The team saves the approved bio and recorded-session evidence. It prepares clip ideas while keeping the episode and clips unpublished until the agreed release and rights allow them.\n\n## Handoff and Content Factory context\n\n[Prepare social clips](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips) receives permitted source files; [Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) receives the verified episode record; the existing relationship owner retains host follow-through.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=get-featured-on-podcasts#task-get-featured-on-podcasts)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "09d20ae7a685651fba54b89b2d91b41204fde4ca574ac0edc51cc71d11f66879",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "1d5515c2dbc1d07b2f21a5e8d23b9f9a8f76e328f87cfad785e4202567d9c4ed",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=get-featured-on-podcasts#task-get-featured-on-podcasts",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "09d20ae7a685651fba54b89b2d91b41204fde4ca574ac0edc51cc71d11f66879",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "09d20ae7a685651fba54b89b2d91b41204fde4ca574ac0edc51cc71d11f66879"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "09d20ae7a685651fba54b89b2d91b41204fde4ca574ac0edc51cc71d11f66879"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 138,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Get mentioned in publications",
     "slug": "get-mentioned-in-publications",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Help the right readers learn from your real work.",
     "content": "---\nname: get-mentioned-in-publications\ndescription: \"Help the right readers learn from your real work.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Get mentioned in publications\n\nHelp the right readers learn from your real work. This guide turns a useful fact or story into a clear press pitch. Start with a source you can prove and a writer who covers that topic.\n\n**The path:** Real story + proof → Relevant writer → Specific pitch → Checked coverage\n\n**Start when:** The person has a verifiable story or expert contribution suitable for a publication.\n\n## Inputs\n\n- A source-backed story, useful data or expert response, with permission to share the material.\n- A current press kit, accepted name and home site, and a verified publication/writer list.\n- Submission rules, deadline and outreach owner; this task’s dedicated canonical article remains unmapped.\n\n## Steps\n\n1. Choose outlets and writers whose actual recent work covers the topic. Read the editorial focus and submission rules. A prestigious name alone does not make the story relevant, and a purchased placement is not independent earned coverage.\n2. Build the pitch around a true new fact, useful lesson or timely perspective. Verify numbers, dates, qualifications and client permission. State what the source proves and what remains uncertain; do not create news by inventing a milestone.\n3. Prepare a concise response or pitch with the reader value, specific angle, supporting sources and a relevant bio. Keep quotes attributable and in the person’s voice. Use [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for plain context and proof, without turning the message into a company sales page.\n4. Send through the writer’s real accepted channel only under existing authority. Track the exact message, recipient, deadline and reply. If a journalist asks a follow-up, verify the new facts before preparing an answer; speed does not substitute for accuracy.\n5. Coordinate any interview or source material with the actual editorial terms, attribution and use rights. Paid promotion is a separate optional task; do not assume an ad can or should target an individual journalist before a pitch.\n6. When coverage is reported, inspect the published source for the correct identity, exact quoted meaning, disclosure and link. Prepare a factual correction if needed and keep requested versus accepted changes distinct. A pitch or interview does not establish publication.\n7. Add the verified source to the proof inventory with date, independence, permission and exact supported claim. Keep the missing canonical task article as a visible mapping gap; use the current personal-brand method hub for context without calling it this task’s finished recipe.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The story and pitch are useful, supported and addressed to a relevant actual outlet.\n- [ ] Every claimed published item is checked; pending or declined pitches remain honest.\n- [ ] Proof, permission and attribution are recorded, and the dedicated article gap remains visible.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop owner has measured a seasonal rise in one repair type. The team checks the date range and sample, then drafts a local trade story. The editor requests an interview but has not committed to publish. The record shows a real response and a pending interview, not a press mention or a new endorsement.\n\n## Handoff and Content Factory context\n\n[Check outside proof](https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation) receives only actual coverage. The task-library owner receives the existing unmapped article gap; the outreach owner retains the exact thread.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- This task’s dedicated canonical article is not mapped. The [personal brand, the public record of your work](https://blitzmetrics.com/personal-brand/) supplies method context; resolve the missing recipe with its owner without creating a competing hub.\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=get-mentioned-in-publications#task-get-mentioned-in-publications)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c455e101b1eb337707ef80d1ac8f0a81efff7898dea3687ba2ab34e024013848",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "713216b666fa12db04276cb09c9d81fccabb9bbc4c39ecca5935290f39c610f0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c455e101b1eb337707ef80d1ac8f0a81efff7898dea3687ba2ab34e024013848",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c455e101b1eb337707ef80d1ac8f0a81efff7898dea3687ba2ab34e024013848"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c455e101b1eb337707ef80d1ac8f0a81efff7898dea3687ba2ab34e024013848"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 121,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Implement Person schema with sameAs links",
     "slug": "implement-person-schema-with-sameas-links",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help search tools tell which profiles belong to you.",
     "content": "---\nname: implement-person-schema-with-sameas-links\ndescription: \"Help search tools tell which profiles belong to you.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Implement Person schema with sameAs links\n\nHelp search tools tell which profiles belong to you. This guide adds a clear set of facts to your site and checks each profile link. Start with your true name, your site and the profiles you have verified.\n\n**The path:** Visible facts + verified profiles → One Person ID → Valid markup → Live identity check\n\n**Start when:** The site and accepted profiles are ready for structured Person identity markup.\n\n## Inputs\n\n- [Build the personal brand site](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website) and [Align photos and bio facts](https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles) with accepted facts and actual live profile URLs.\n- The current site source, theme/plugin markup owners and authorized edit rail.\n- Approved public name, image URL, role, site URL and identity evidence; [Schema.org’s sameAs definition](https://schema.org/sameAs).\n\n## Steps\n\n1. Inspect all structured data already emitted on the relevant page. Find the existing Person ID, theme/plugin owner and graph relationships. Reuse or reconcile the maintained identity instead of pasting a second conflicting block just because its syntax is valid.\n2. List only facts visible on the site or supported by current public evidence: name, site URL, real image and role where known. Person describes the human; a separate business profile describes the business. Do not use the business’s identity URL as the person’s sameAs by default.\n3. Build the sameAs list from pages that unambiguously identify the same person, following [Schema.org’s sameAs definition](https://schema.org/sameAs). Inspect each target’s identity and current accessibility. A news story mentioning the person is normally a citation; a wrong-person URL or uncertain profile remains excluded.\n4. Prepare JSON-LD, the structured-data format, with @context, Person type and one stable @id for the person. Include the verified fields and accepted URLs. Preserve existing WebSite, WebPage, Organization and other valid graph nodes and their distinct IDs.\n5. Validate JSON syntax and Schema.org vocabulary with an appropriate schema validator. Google’s Rich Results Test covers its supported search features; a bare Person can be valid without a detected rich-result type. Use ProfilePage only where the actual page meets [Google’s ProfilePage requirements](https://developers.google.com/search/docs/appearance/structured-data/profile-page).\n6. Apply the reviewed change through the supported source owner when authorized. Read back the actual public markup, count unique Person IDs for this person and verify visible facts and links. A reciprocal profile link is useful when supported, not a requirement imposed by sameAs itself.\n7. Save the exact before/after revision, validator outputs, accepted identity URLs and remaining gaps. Use [Google’s structured data rules](https://developers.google.com/search/docs/appearance/structured-data/sd-policies) for search requirements. Valid markup is a checked description, not a promise of indexing, rich results or a Knowledge Panel.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The intended person has one stable identity ID and no competing or wrong-person claims.\n- [ ] Markup is syntactically valid and its fields and sameAs identities are verified against visible evidence.\n- [ ] Saved and public markup match; feature eligibility and actual search appearance remain separate.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional architect’s theme already creates a Person node. A proposed custom block would create another ID, so the developer updates the existing node instead. Her own profile is accepted as sameAs; an article about her firm stays a normal citation. A valid schema result is saved without claiming that Google displayed a panel.\n\n## Handoff and Content Factory context\n\n[Maintain the fuller identity graph](https://local-service-spotlight.github.io/task-library/?task=implement-technical-schema-markup#task-implement-technical-schema-markup) receives the source owner, stable ID and accepted URLs; [Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) records any later search observations.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Schema.org sameAs](https://schema.org/sameAs)\n- [Google ProfilePage](https://developers.google.com/search/docs/appearance/structured-data/profile-page)\n- [Google structured data policies](https://developers.google.com/search/docs/appearance/structured-data/sd-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1840f0a41e34fc0d4881d15898d672e270205d885d6a4b2d6ddc72f515c43fd1",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "43cbb55a68147e297c32ab502c1a20c8ef5075b1993fa4612a58a3e0d63fde30",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1840f0a41e34fc0d4881d15898d672e270205d885d6a4b2d6ddc72f515c43fd1",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1840f0a41e34fc0d4881d15898d672e270205d885d6a4b2d6ddc72f515c43fd1"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1840f0a41e34fc0d4881d15898d672e270205d885d6a4b2d6ddc72f515c43fd1"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 105,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Implement technical schema markup",
     "slug": "implement-technical-schema-markup",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "Keep the facts on your site clear as your work changes.",
     "content": "---\nname: implement-technical-schema-markup\ndescription: \"Keep the facts on your site clear as your work changes.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Implement technical schema markup\n\nKeep the facts on your site clear as your work changes. This guide checks your existing identity data and adds only what the sources support. Start with the live page and the last checked version of its facts.\n\n**The path:** Existing graph + new proof → Verified fact changes → Source patch → Live graph check\n\n**Start when:** A verified role, profile or source change requires maintenance of the existing identity graph.\n\n## Inputs\n\n- [Add verified Person markup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) with the stable Person ID, source owner and prior validation receipt.\n- The current identity/proof inventory and evidence for changed roles or new identity pages.\n- Actual site source access, visible page copy and the supported markup editor.\n\n## Steps\n\n1. Read the complete current graph from the live page and its maintained source. Identify which component emits each node. Record existing Person, Organization, WebPage and other IDs before editing so one task cannot silently overwrite unrelated structured content.\n2. Compare the new facts with current visible copy and source evidence. Confirm a role change is current, not an old biography, and distinguish the person’s identity from an employer or business. Use separate nodes and a supported relationship such as worksFor only when it is true.\n3. Assess each proposed identity link under [Schema.org’s sameAs definition](https://schema.org/sameAs). A durable speaker profile may qualify when it clearly identifies the same person; a press article or an organization’s GBP is not automatically that person’s identity. Exclude missing, wrong-person or unresolved targets and retain the review reason.\n4. Add only supported fields such as current jobTitle, worksFor, alumniOf or knowsAbout. An expertise claim needs real visible evidence; an unearned title in machine-readable form is still a false claim. Update the visible page when an authorized fact correction requires it.\n5. Prepare a focused source change that preserves the stable Person ID and other valid nodes. Check JSON syntax, Schema.org properties and any actually applicable Google feature requirements. “Knowledge Panel grade” is not a validator outcome or a published Google certification.\n6. After authorized save, inspect the normal public page and its rendered markup. Verify the changed fields, one identity for the person, retained graph nodes and accepted profile links. Save exact source revision and validation results; a stale cached body is not a fresh readback.\n7. Record a Google entity ID only when independently observed for the correct person. Panel appearance, claim state and commercial milestones stay in their own records. Set a named review trigger for future fact changes; do not claim that a skill file automatically maintains the graph.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The focused graph change preserves the existing source owner, stable person identity and unrelated nodes.\n- [ ] Every added field or identity link is current and evidence-backed.\n- [ ] Live readback and validation are retained; panel and payment states are not inferred.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional analyst joins a new firm. The current site names the new firm but markup still names the old one. The developer changes the supported employer link under the existing Person ID and checks the public graph. A recent news story is added as visible proof, not as a second person identity or guaranteed panel trigger.\n\n## Handoff and Content Factory context\n\n[Check the actual claim opportunity](https://local-service-spotlight.github.io/task-library/?task=claim-and-verify-knowledge-panel-when-it-appears#task-claim-and-verify-knowledge-panel-when-it-appears) receives verified identity evidence when applicable; [Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) receives the observed search state.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=implement-technical-schema-markup#task-implement-technical-schema-markup)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Schema.org sameAs](https://schema.org/sameAs)\n- [Google structured data policies](https://developers.google.com/search/docs/appearance/structured-data/sd-policies)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "672bae68bbe4dcb41041791d80fd7a9a20d813bd2c5f5b7616bfdf05b05794f3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4ef5decd8e958a308cc07611a85dab189e56539cbfc9b675e923107e0ef6fe3e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=implement-technical-schema-markup#task-implement-technical-schema-markup",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "672bae68bbe4dcb41041791d80fd7a9a20d813bd2c5f5b7616bfdf05b05794f3",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "672bae68bbe4dcb41041791d80fd7a9a20d813bd2c5f5b7616bfdf05b05794f3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "672bae68bbe4dcb41041791d80fd7a9a20d813bd2c5f5b7616bfdf05b05794f3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 106,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Link all content back to personal brand site",
     "slug": "link-all-content-back-to-personal-brand-site",
     "status": "needs-work",
     "stage": "Post",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help readers reach the right next page from your work.",
     "content": "---\nname: link-all-content-back-to-personal-brand-site\ndescription: \"Help readers reach the right next page from your work.\"\ncategory: Personal Branding\nstage: Post\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Link all content back to personal brand site\n\nHelp readers reach the right next page from your work. This guide checks links in posts, profiles and guest features. Start with your live content list and the site that should be your public home.\n\n**The path:** Asset list → Right destination → Owned edits or host request → Checked path\n\n**Start when:** A bounded set of published assets needs its identity and topic links checked.\n\n## Inputs\n\n- The current content inventory with exact URLs, platform and edit owner.\n- Verified person/company sites and relevant topic/offer pages; [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) and the [SEO Tree, the map from proof pages to main topics and offers](https://blitzmetrics.com/seo-tree/).\n- Actual edit/send authority and the previous link audit, if one exists.\n\n## Steps\n\n1. Set the scope from the existing inventory and add newly discovered assets there. Record URL, publisher, article purpose, current destination and edit owner. A known list is a bounded audit scope, not proof that every asset on the web has been found.\n2. Choose the useful destination for each first mention. The person’s name points to their verified home, a company to its own site, and a method to its maintained guide. A source citation or required tool action keeps its direct source rather than being replaced with an irrelevant internal page.\n3. Use meaningful anchor text that identifies the person or destination naturally. The house three-to-six-word preference is a guide, not permission to pad a two-word person’s name or change the sentence’s meaning. Do not repeatedly link the same entity in one piece.\n4. On the owned site, check a real path from each supporting page to its topic and relevant offer under the SEO Tree. Add a useful parent link and related proof where appropriate. Avoid forcing every article directly to the homepage when a more specific branch serves the reader.\n5. On social pages, use the supported website field or relevant post link. If a channel makes links non-clickable, record the actual profile or other supported path and test it. Do not claim every post contains a clickable link when the platform does not provide one.\n6. For a third-party feature, prepare a specific factual credit/link request to its actual editor under send authority. Keep pending, declined and accepted outcomes separate. The host controls its editorial links; a refused link does not erase a real mention.\n7. After authorized changes, follow each repaired path from the normal public asset to the intended page. Save exact URLs, source revision, results and remaining owner actions. Review newly released or changed content through this same bounded method; recurring timing needs an actual owner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each in-scope asset has a checked useful path or a specific supported limitation and next owner.\n- [ ] Identity links, topic hierarchy and primary citations retain their correct purposes.\n- [ ] Repaired links are publicly read back; outside requests are not counted as accepted edits.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional coach’s interview links to an old home page. Her own recap can be changed, so it receives the correct topic link and her current home. The host’s show notes need an editor request. The report shows the repaired owned path and the pending host action, rather than claiming all links are fixed.\n\n## Handoff and Content Factory context\n\n[Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) receives verified outside references; the site/content owner receives unresolved link repairs and the updated [SEO Tree, the map from proof pages to main topics and offers](https://blitzmetrics.com/seo-tree/) map.\n\nThe source places this task in Post within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=link-all-content-back-to-personal-brand-site#task-link-all-content-back-to-personal-brand-site)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "31e48f2be1109b730e81cb65c5ba8c14328a93b00c43ff6ca9535df71b4baf75",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d7d0952a7662a5c15fb7f2122231847100e9ed5ded56573691667be392f94e41",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=link-all-content-back-to-personal-brand-site#task-link-all-content-back-to-personal-brand-site",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "31e48f2be1109b730e81cb65c5ba8c14328a93b00c43ff6ca9535df71b4baf75",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "31e48f2be1109b730e81cb65c5ba8c14328a93b00c43ff6ca9535df71b4baf75"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "31e48f2be1109b730e81cb65c5ba8c14328a93b00c43ff6ca9535df71b4baf75"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 139,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Measure: search impressions, traffic, inbound opportunities",
     "slug": "measure-search-impressions-traffic-inbound-opportunities",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-panel",
     "articleKind": "topic-hub",
     "desc": "See whether people find your work and get in touch.",
     "content": "---\nname: measure-search-impressions-traffic-inbound-opportunities\ndescription: \"See whether people find your work and get in touch.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /knowledge-panel\nstatus: needs-work\n---\n\n# Measure: search impressions, traffic, inbound opportunities\n\nSee whether people find your work and get in touch. This guide checks search, site visits and real inquiries in one report. Start with the same date range and a clear meaning for each number.\n\n**The path:** Same date range → Checked sources → Supported meaning → Owned next step\n\n**Start when:** The agreed reporting window has closed and the brand owner needs an evidence-based performance review.\n\n## Inputs\n\n- Actual read access or named exports from Search Console, site analytics and the inquiry record.\n- Accepted metric definitions, timezones, current and comparison periods, relevant targets and earlier reports.\n- The content/appearance timeline, actual panel observations and [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/).\n\n## Steps\n\n1. Define name-search impressions and clicks, organic site traffic and inbound opportunities separately. Record source, account/property, filter, timezone and comparison window. Search Console counts and analytics sessions measure different things and need not match one for one.\n2. Pull the accepted current and comparable prior windows. For name searches use verified name variants and record the exact query filters. [Search Console’s performance guide](https://support.google.com/webmasters/answer/7576553?hl=en) explains available report controls; omitted query rows or unavailable access do not establish zero demand.\n3. Reconcile the inquiry log by distinct real contacts or opportunities under the agreed definition. Separate speaking asks, partnership discussions and qualified sales leads. Retain date, source evidence and stage; a reported source such as “heard your interview” is an attribution statement with limits.\n4. Compare results with the baseline and target, noting sample size, time lag and tracking changes. Mark unconnected sources unknown. A rise after a podcast or a new panel is correlation unless additional evidence supports the claimed contribution.\n5. Explain the strongest supported finding before recommending action. Write two or three grade-five sentences that name the decision and why it matters, paired with a useful chart or evidence diagram. Save the exact opening and quoted reviewer evidence under [Review the report’s reader value](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context).\n6. Propose a small set of next actions tied to that evidence, with owner and review date. Keep insufficient-data items unresolved; do not automatically kill every activity without a measured inquiry. Reconcile the previous report’s actions as proposed, accepted, in progress or actually completed.\n7. Save the report with source links and checked calculations, including any observed panel state and new proof. Deliver only under the existing authority and retain the actual receipt. A monthly cadence is followed only when agreed; it is not created by this guide.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each metric has a source, definition, period and honest missing-data state.\n- [ ] The report’s conclusions respect attribution and sample limits and lead to an owned next step.\n- [ ] Draft, delivered and acted-on states are recorded separately, with exact reader-value review.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional consultant has 400 name-search impressions and three qualified inquiries this month. One person says they heard a podcast; the other two sources are unknown. The report records those facts and proposes checking the contact form. It does not credit all three inquiries to the podcast or call search impressions revenue.\n\n## Handoff and Content Factory context\n\n[Record real customer answers](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos-answering-customer-questions#task-record-one-minute-videos-answering-customer-questions) receives supported content needs; the relevant web or relationship function receives the next action. Later results return to the existing [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/) record.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-panel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Search Console performance report](https://support.google.com/webmasters/answer/7576553?hl=en)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "161d4f7296d3327a51e73057d7e870a7ed6c6e18f2ead158d47934fda1d019af",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "44edc040a6c9337af7f665698fd331b4763764fbd201a6e8e432ea5c6f1200ff",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "161d4f7296d3327a51e73057d7e870a7ed6c6e18f2ead158d47934fda1d019af",
      "articleKey": "blitzmetrics.com/knowledge-panel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "161d4f7296d3327a51e73057d7e870a7ed6c6e18f2ead158d47934fda1d019af"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "161d4f7296d3327a51e73057d7e870a7ed6c6e18f2ead158d47934fda1d019af"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-panel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 142,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Record one-minute videos answering customer questions",
     "slug": "record-one-minute-videos-answering-customer-questions",
     "status": "needs-work",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Film one short clip to help your clients.",
     "content": "---\nname: record-one-minute-videos-answering-customer-questions\ndescription: \"Film one short clip to help your clients.\"\ncategory: Personal Branding\nstage: Produce\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Record one-minute videos answering customer questions\n\nFilm one short clip to help your clients. This guide helps you give clear answers in your own words. Start with a real question and a true story that helps explain your point.\n\n**The path:** Real question → Clear answer → Saved take → Checked source handoff\n\n**Start when:** The person has real knowledge to share and the content plan needs new source recordings.\n\n## Inputs\n\n- Actual customer questions from permitted calls, notes or messages, with private details removed.\n- The person’s relevant experience, source facts, phone or camera and consent for the recording.\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) coverage plan and an accessible content-library destination with a receiving editor.\n\n## Steps\n\n1. Collect real questions and record their context without exposing private messages or client data. Choose the question because it serves an actual customer need. A proposed AI topic is a suggestion, not evidence that customers asked it.\n2. Use the Topic Wheel correctly: WHAT offer at the center, HOW teaching topics in the middle and WHY people/stories outside. Map the selected question to its useful topic; not every short recording has to cover all three parts of the wheel.\n3. Prepare a brief prompt and source reminders instead of a fabricated first-person script. Follow the [one-minute video method](https://blitzmetrics.com/one-minute-video-guide/): lead with the point, give a useful answer or true example, and end with an appropriate next step. About a minute is the target, not a reason to cut away needed meaning.\n4. Check light, stable framing and the intended microphone before the session. The person records their own answer. During agent QA, keep any playback muted at zero volume; use waveform, captions, transcript or a separate authorized human listening check for sound quality.\n5. Record one complete idea per take. Redo a factual mistake or unusable take rather than patching together a misleading quote. A batch can be useful, but its size comes from the real questions and available time, not a forced count of videos.\n6. Name and save each real file with question, speaker, date and take identifier in the accepted library. Record rights, source facts, rough transcript and selected/rejected state. Verify that the editor can read the actual file; a pasted inaccessible link is an incomplete handoff.\n7. Pass selected takes with exact timestamps and any remaining sound or fact checks to the editor. Keep planned, recorded, usable and published states distinct. The recording itself does not prove later captions, posts or business results.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each selected take answers a real scoped question with the speaker’s own supported knowledge.\n- [ ] Files, rights, identities and actual usability checks are saved in the accepted library.\n- [ ] The editor can access the selected source and sees any still-unverified audio or factual issue.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional electrician records an answer about a tripping breaker. The first take omits an important safety limit, so she records a clearer second take. The library keeps both files but marks only the second selected. The editor receives the actual answer and its context, with any unheard audio check still assigned.\n\n## Handoff and Content Factory context\n\n[Turn the source into an article](https://local-service-spotlight.github.io/task-library/?task=repurpose-videos-into-blog-posts-via-content-factory#task-repurpose-videos-into-blog-posts-via-content-factory) and [Prepare social clips](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips) receive the selected source files and their actual acceptance checks.\n\nThe source places this task in Produce within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos-answering-customer-questions#task-record-one-minute-videos-answering-customer-questions)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "98c44f4a6c202d26c40583dfbe37874e85bb5a355da7c6d8081ff91e812a4724",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "60157faad88c8ace2e2602b03b0d9972f663d66242bac2938882bcb3263941dc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos-answering-customer-questions#task-record-one-minute-videos-answering-customer-questions",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "98c44f4a6c202d26c40583dfbe37874e85bb5a355da7c6d8081ff91e812a4724",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "98c44f4a6c202d26c40583dfbe37874e85bb5a355da7c6d8081ff91e812a4724"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "98c44f4a6c202d26c40583dfbe37874e85bb5a355da7c6d8081ff91e812a4724"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 144,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Register personal name domain",
     "slug": "register-personal-name-domain",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Give your work a web address you control.",
     "content": "---\nname: register-personal-name-domain\ndescription: \"Give your work a web address you control.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Register personal name domain\n\nGive your work a web address you control. This guide helps you choose and register a name people can connect to you. Start with the name you use for work and the account that will own the domain.\n\n**The path:** Approved name → Available choice → Owner-approved purchase → Domain receipt\n\n**Start when:** The person needs a name domain or verification of an already-owned domain before a site build.\n\n## Inputs\n\n- The accepted professional name, legitimate variants and the person’s preferred existing domain if any.\n- An owner-controlled registrar account, purchase/renewal authority and budget.\n- Any existing site, mail or DNS dependencies; the actual host plan and secure access-record location.\n\n## Steps\n\n1. Confirm the name and reader-facing identity before searching domains. Inspect any existing owned domain and links first; a site may already have a suitable stable home. Do not move an established site merely to match a spelling preference without a reviewed migration reason.\n2. Check the preferred name domain through the actual registrar and record availability and quoted purchase/renewal prices. The house preference is a memorable personal-name .com; it is not a guarantee of higher ranking or a reason to pay an unapproved premium.\n3. If needed, propose legitimate name variants such as a middle initial or full middle name. Check for confusion with a different person or brand and show the exact spelling. The owner chooses the actual domain; the recipe does not invent identity facts to fit availability.\n4. With purchase authority, register in the person’s controlled account and verify the exact domain, term, receipt and owner access. Helpers use supported delegated access. Keep credentials and payment details in the approved vault, not a public task record.\n5. Confirm renewal settings, current expiry date, contact verification and privacy options actually offered for that domain. Use the owner’s approved renewal policy; do not purchase extra years or claim privacy is available in every case merely to satisfy a checklist.\n6. Prepare the next hosting and DNS handoff from actual provider instructions. Registration is separate from web routing, email setup and a live website. Preserve existing records and require the relevant change authority before pointing the domain or altering nameservers.\n7. Save the selected spelling, registrar and DNS-provider roles, owner-access proof, expiry/renewal state and exact next action. A successful purchase is complete domain registration; resolving to the final site is a later deployment check.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The exact chosen domain is registered or existing ownership verified in the correct owner account.\n- [ ] Price/term authority, renewal state and secure access references are recorded without secrets.\n- [ ] The site builder receives the real domain and dependencies; website launch is not inferred.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional advisor finds that her exact name domain is taken. She chooses a real middle-initial variant within her approved budget. The purchase receipt and renewal date are saved, but DNS is still on the registrar’s default page. The handoff accurately says registered and ready for site setup, not live personal website.\n\n## Handoff and Content Factory context\n\n[Build the personal brand site](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website) receives the verified domain and owner-controlled access; the deployment owner receives actual web/mail dependencies.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 2, revenue 3, gating 5 (unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=register-personal-name-domain#task-register-personal-name-domain)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 5,
     "freq": 2,
     "revenue": 3,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "e368fc903dc69adea7b809d3960f86527bdeb5f259666561ad2c90b864cc3408",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "031a4741a06e7d5a7ec07c3446c5fc715ff7e61e7bb45c5fb34c26513d6de3ac",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=register-personal-name-domain#task-register-personal-name-domain",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e368fc903dc69adea7b809d3960f86527bdeb5f259666561ad2c90b864cc3408",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e368fc903dc69adea7b809d3960f86527bdeb5f259666561ad2c90b864cc3408"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e368fc903dc69adea7b809d3960f86527bdeb5f259666561ad2c90b864cc3408"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 90,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Repurpose videos into blog posts via Content Factory",
     "slug": "repurpose-videos-into-blog-posts-via-content-factory",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Make a clear page from a real video.",
     "content": "---\nname: repurpose-videos-into-blog-posts-via-content-factory\ndescription: \"Make a clear page from a real video.\"\ncategory: Personal Branding\nstage: Process\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Repurpose videos into blog posts via Content Factory\n\nMake a clear page from a real video. This guide keeps your real voice and proof while making the lesson clear. Start with one checked recording and the reader it should help.\n\n**The path:** Real recording → Checked transcript → Useful article → Reviewed release\n\n**Start when:** A permitted usable recording needs a source-backed article on the person’s maintained site.\n\n## Inputs\n\n- [Record real customer answers](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos-answering-customer-questions#task-record-one-minute-videos-answering-customer-questions) or another accepted video with speaker, date, rights and source file.\n- The intended reader, useful result, existing relevant pages and source proof.\n- Actual transcription/editor access, maintained publishing source and release owner; [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n## Steps\n\n1. Check the original file, permission, speaker and intended use. Read any existing article on the topic before drafting; improve the maintained owner or create the appropriate supporting page under the [SEO Tree, the map from proof pages to main topics and offers](https://blitzmetrics.com/seo-tree/) rather than duplicate a competing topic hub.\n2. Transcribe with the tool actually available, then compare names, numbers and load-bearing statements with the source. Keep exact timestamps for useful quotes and corrections. A transcript is evidence to check, not permission to invent a more impressive story.\n3. Define [Goals, Content, Targeting: the result, source material and people served](https://blitzmetrics.com/gct-business-strategy/) from the actual material and assignment. Draft the short opening at grade five or below, explaining the reader’s situation, useful outcome and supporting method. Use [Review the hook and context](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and retain quoted reviewer evidence.\n4. Write a clear article with title under 60 characters, concise meta description under 160, useful headings and short active paragraphs. Preserve the person’s authentic first-person account and named credited quotes. Include relevant credibility proof; do not rewrite a lived example into generic advice or a claim the speaker never made.\n5. Place meaningful real media or a source-backed diagram with the short opening and embed the source video where permitted and useful. Check captions, source identity and responsive layout silently with volume zero. Do not substitute an empty featured-image box for actual first-screen evidence.\n6. Use [entity linking, choosing the right home for a named person or topic](https://blitzmetrics.com/entity-linking/) for correct person, company and method destinations; retain primary proof links where they support a claim. Link the article to its real topic and relevant offer. Set author attribution to the actual author or approved source-derived author, not an arbitrary admin or invented speaker credit.\n7. Review the source, meaning, media, links, spelling and actual desktop/mobile presentation. Preserve the existing page type, builder and durable source. Save as draft or publish through the authorized rail, then check the normal public page only if release occurred.\n8. Save transcript/source links, exact draft or public revision, review results and remaining actions in the existing content record. Hand real sources and accepted excerpts to the clip task; writing an article does not mean its social derivatives or promotion have run.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The article preserves the source’s facts, voice, credited proof and useful lesson.\n- [ ] The exact opening and full body pass meaning review; first-screen media and links are checked at required sizes.\n- [ ] Saved/released states, true author and durable source are recorded accurately.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional repair expert records a clear answer about a common leak. The transcript mishears a product name, so the editor checks and corrects it. The draft keeps the expert’s real example, adds a source photo and links to the relevant service guide. It remains a draft until the publishing owner releases and checks it.\n\n## Handoff and Content Factory context\n\n[Prepare social clips](https://local-service-spotlight.github.io/task-library/?task=create-social-content-from-video-clips#task-create-social-content-from-video-clips) receives accepted source segments and the actual article URL when live; [Check paths to the person’s site](https://local-service-spotlight.github.io/task-library/?task=link-all-content-back-to-personal-brand-site#task-link-all-content-back-to-personal-brand-site) checks the new page’s owned paths.\n\nThe source places this task in Process within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=repurpose-videos-into-blog-posts-via-content-factory#task-repurpose-videos-into-blog-posts-via-content-factory)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "ba818a05556fff28cc08a41a5835ed6c9aae5131e4b15587ed1c1988eee47b0c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "377e95adfad0a0acc23f667749d403a0711c062983d523420b89c0e97e7e6293",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=repurpose-videos-into-blog-posts-via-content-factory#task-repurpose-videos-into-blog-posts-via-content-factory",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ba818a05556fff28cc08a41a5835ed6c9aae5131e4b15587ed1c1988eee47b0c",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ba818a05556fff28cc08a41a5835ed6c9aae5131e4b15587ed1c1988eee47b0c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ba818a05556fff28cc08a41a5835ed6c9aae5131e4b15587ed1c1988eee47b0c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 145,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Run Thank You Machine for every interaction",
     "slug": "run-thank-you-machine-for-every-interaction",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Let people know how their help mattered.",
     "content": "---\nname: run-thank-you-machine-for-every-interaction\ndescription: \"Let people know how their help mattered.\"\ncategory: Personal Branding\nstage: Promote\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Run Thank You Machine for every interaction\n\nLet people know how their help mattered. This guide turns a real act of help into a specific thank-you in the right place. Start with what the person did and whether the story is safe to share.\n\n**The path:** Real helpful act → Specific thanks → Right private/public route → Checked follow-through\n\n**Start when:** A genuine referral, review, introduction, advice or useful act deserves acknowledgment.\n\n## Inputs\n\n- The actual event or interaction, identity and source facts, without unnecessary private details.\n- The relationship context, public-use permission and preferred acknowledgment route.\n- Recording or writing tools and actual send, release or spend authority where relevant.\n\n## Steps\n\n1. Read the real interaction and name what deserves thanks. Record the person, act and why it mattered. A routine automated event or inferred relationship is not a reason to fabricate gratitude; make the acknowledgment specific enough to be true.\n2. Choose the appropriate route for the person and situation. Some thanks belong in a private note; others may become public content with the right permission. An interaction does not automatically consent to a public story, tag, testimonial or ad.\n3. Prepare a short unscripted video or a clear note naming the person, what they did and its real effect. Preserve the speaker’s voice and an authentic human detail. Do not inflate a favor into an endorsement, measured result or durable partnership.\n4. If content reuse fits the agreed scope, use [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) to make only the useful approved outputs. Keep the core story and proof intact. A video does not require a blog, testimonial, email and ad in every case, especially when the source is private.\n5. Publish or send through the existing authority and correct destination. Verify any social tag identifies the right person and record the actual delivered/live state. A tag does not guarantee that they see or share the post.\n6. Consider [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/) only for an appropriate public asset with useful organic evidence, use rights, tracking and a separately approved test budget. Gratitude does not require paid amplification, and a nominal daily budget is not a guarantee of outcome or zero risk.\n7. Add an appropriate thank-you check to the existing post-project process and retain the event, draft, release and response. A weekly review may be useful when assigned; an installed skill does not create a schedule. Learn from actual responses without measuring success by forced public posts.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The acknowledgment names a real person, helpful act and supported reason it mattered.\n- [ ] Private/public use, tags, sends and any paid distribution follow the actual agreed scope.\n- [ ] The record distinguishes draft, released, seen and responded states; no reaction is invented.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional owner receives a private referral from a client. The client prefers to stay unnamed, so the owner prepares a specific private thank-you. No public clip, tag or ad is made. The task still has a useful result: the right person receives genuine thanks through the permitted route, with the actual send recorded.\n\n## Handoff and Content Factory context\n\nThe existing relationship owner retains follow-through. [Collect and classify positive mentions](https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester) receives only separately supported public praise; Process or Promote receives optional reuse with its actual rights and authority.\n\nThe source places this task in Promote within the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Produce captures real sources, Process makes the selected useful assets, Post releases approved work, and Promote distributes proven work. The actual handoff above determines what this task must supply.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Current mismatched route: opens Face Socks; generic method source pending reconciliation](https://blitzmetrics.com/thank-you-machine/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=run-thank-you-machine-for-every-interaction#task-run-thank-you-machine-for-every-interaction)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Current mismatched Thank You Machine route: opens Face Socks; pending source reconciliation](https://blitzmetrics.com/thank-you-machine/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "355587629120cdce3400133ba75fdce3e60707a42dff461db8b0bc83c6b8a38e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a8c0806d03e26013074cb7b7ca606b112b2b32b034cec57dc12a52c4d417e4f7",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-thank-you-machine-for-every-interaction#task-run-thank-you-machine-for-every-interaction",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "355587629120cdce3400133ba75fdce3e60707a42dff461db8b0bc83c6b8a38e",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "355587629120cdce3400133ba75fdce3e60707a42dff461db8b0bc83c6b8a38e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "355587629120cdce3400133ba75fdce3e60707a42dff461db8b0bc83c6b8a38e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 16,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Keep speaker bureau profile bookable",
     "slug": "keep-speaker-bureau-profile-bookable",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/speaker-kit",
     "articleKind": "task-recipe",
     "desc": "Give event hosts the facts they need to book your talk.",
     "content": "---\nname: keep-speaker-bureau-profile-bookable\ndescription: \"Give event hosts the facts they need to book your talk.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /speaker-kit\nstatus: complete\n---\n\n# Keep speaker bureau profile bookable\n\nGive event hosts the facts they need to book your talk. This guide keeps your speaker page and booking profile in line with one approved kit. Start with your current talks, fees and real proof.\n\n**The path:** Approved kit → Exact profile fields → Real proof → Checked booking path\n\n**Start when:** The speaker’s public booking surfaces are missing facts or differ from the current approved speaker kit.\n\n## Inputs\n\n- The speaker’s current approved kit with source revision, bio, talks, public fees, permissions and contact route.\n- Actual bureau/profile access and the personal-site speaking page, plus their release owners.\n- Real headshot, stage photos, talk video, attributed testimonials and confirmed public event dates.\n\n## Steps\n\n1. Read the kit and current public pages before touching fields. Compare dated source revisions and flag conflicting current facts to the kit owner. The maintained approved kit governs this pass; do not replace a newer authorized change with an older source merely because it is in git.\n2. Confirm the person’s current positioning, operating company and approved public contact details. Preserve former companies as accurate history where relevant. Never publish a private street address, personal phone or unpublished fee just to fill a directory field.\n3. Use exactly the fee policy the speaker has approved for public use. Enter actual U.S., international, virtual and travel terms where applicable; if fees are not approved for publication, keep the decision with the owner. Do not claim a universal bureau ranking penalty for an inquiry-only price.\n4. Load each approved talk with its title, format, intended audience and useful takeaways. Write clear grade-five context explaining the audience’s benefit, backed by the real program. Use first person on the personal site and the bureau’s required voice in its profile.\n5. Add real relevant proof: a headshot, stage image or talk video and attributed testimonials with supported event context. Check media and rights silently. Link the actual speaking page and its inquiry path, not a homepage that hides the booking details.\n6. Enter only confirmed, permitted public calendar events. Private holds and tentative invitations remain internal or explicitly tentative where appropriate. The source’s earlier three-date target never permits invented future appearances or a claim that an empty calendar means inactivity.\n7. After authorized updates, compare the public bureau URL and speaking page with the approved kit. Check the first-screen value, program, proof, fees policy and contact destination. A form submission test may send a message, so use the existing test authority and verify its destination.\n8. Save the changed fields, exact public URLs, kit revision and pending owner actions. Review when programs, fees or events change. Future speaking footage goes to the content owner after the event actually occurs.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Both public surfaces match the current approved kit on identity, programs, public fee policy and contact route.\n- [ ] All proof and event claims are real, permissioned and correctly scoped.\n- [ ] The normal public pages and booking path are checked, with pending or untested steps explicit.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional speaker has two approved talks and one confirmed public event. The bureau offers room for three dates, but the team enters only the real event. A private hold remains in the kit. The public page now shows clear audience takeaways and the working booking route without inventing a fuller calendar.\n\n### Dated source evidence\n\nThe maintained speaker-kit article links its documentation meta article and Dennis Yu’s kit as dated method evidence. They are not a new booking or independently counted execution by this guide author.\n\n## Handoff and Content Factory context\n\n[Prepare relevant speaking pitches](https://local-service-spotlight.github.io/task-library/?task=secure-guest-appearances-and-speaking-engagements#task-secure-guest-appearances-and-speaking-engagements) receives the checked kit; [Capture the delivered talk](https://local-service-spotlight.github.io/task-library/?task=film-conference-presentations#task-film-conference-presentations) receives only actual booked-event needs.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/speaker-kit/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=keep-speaker-bureau-profile-bookable#task-keep-speaker-bureau-profile-bookable)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4601e822bd8c037de1bda6dd6d43090d089356a435efd4d283b1891921365bf9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6aa1daa0889b78371a14c429c5215e207d05dfce332c623424d7fc6d7831b4b3",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=keep-speaker-bureau-profile-bookable#task-keep-speaker-bureau-profile-bookable",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4601e822bd8c037de1bda6dd6d43090d089356a435efd4d283b1891921365bf9",
      "articleKey": "blitzmetrics.com/speaker-kit",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4601e822bd8c037de1bda6dd6d43090d089356a435efd4d283b1891921365bf9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4601e822bd8c037de1bda6dd6d43090d089356a435efd4d283b1891921365bf9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/speaker-kit"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-documented-the-speaker-kit-task/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 262,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Secure guest appearances and speaking engagements",
     "slug": "secure-guest-appearances-and-speaking-engagements",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Find a stage where your work can help the room.",
     "content": "---\nname: secure-guest-appearances-and-speaking-engagements\ndescription: \"Find a stage where your work can help the room.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Secure guest appearances and speaking engagements\n\nFind a stage where your work can help the room. This guide prepares a clear talk pitch and tracks what happens next. Start with the right event and a real lesson its guests can use.\n\n**The path:** Audience fit → Specific talk pitch → Confirmed event → Delivered talk and proof\n\n**Start when:** The speaker has a checked kit and a suitable event may benefit from a proposed talk or guest session.\n\n## Inputs\n\n- [Keep the speaker kit ready](https://local-service-spotlight.github.io/task-library/?task=keep-speaker-bureau-profile-bookable#task-keep-speaker-bureau-profile-bookable) with approved bio, talks, public fee terms and relevant real footage.\n- Verified event list, audience needs, submission process and actual organizer route.\n- Speaker availability, outreach authority, commercial decision owner and recording/use permissions.\n\n## Steps\n\n1. Inspect the event’s current audience, program and speaker-submission rules. Rank opportunities by the lesson the speaker can contribute and the people it serves. An event with a speaker page is useful evidence, but a listing or warm introduction does not guarantee a booking.\n2. Adapt one real approved talk to that audience using the kit. State the problem, practical takeaways, format and relevant source proof. Do not invent a new credential, imply a prior event booked this talk without evidence or use generic fame as its only value.\n3. Draft the precise organizer proposal and send only under existing authority. Track the original thread and real response. If fees, travel, rights or scope differ from the kit, prepare the exact terms for the authorized decision owner rather than accepting them implicitly.\n4. After acceptance, confirm date, timezone, location or virtual platform, format, audience, fee terms and required assets. Save the actual confirmation. A tentative hold is not a public announced appearance or a delivered talk.\n5. Check any permitted speaker page for correct identity, title, photo and useful home/booking link. Arrange real recording and photography rights with the organizer. A promise of footage is a dependency until the file is delivered and readable.\n6. After the session, record what actually occurred and acquire the permitted source files. Hand off recording, photos, date, event context and use rights to the content team. Preserve a cancellation, missing footage or changed program honestly.\n7. Prepare a useful recap, selected clips and specific acknowledgment through their own authorized release steps. Add the real appearance to the evidence record; a delivered talk is not automatically praise or proof of a wider partnership.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The talk proposal fits the verified audience and approved expertise/terms.\n- [ ] Pitched, booked, delivered and published states have actual evidence.\n- [ ] Real footage, rights, credits and next ownership are recorded without guaranteed media or booking claims.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional safety trainer is accepted for a 20-minute trade event talk. The organizer approves a public speaker listing but declines recording. The trainer delivers the talk and obtains a permitted stage photo. The inventory records the actual talk and photo, while the recap avoids claiming a video that was never made.\n\n## Handoff and Content Factory context\n\n[Capture and hand off permitted event footage](https://local-service-spotlight.github.io/task-library/?task=film-conference-presentations#task-film-conference-presentations) receives actual recording needs; [Turn the source into an article](https://local-service-spotlight.github.io/task-library/?task=repurpose-videos-into-blog-posts-via-content-factory#task-repurpose-videos-into-blog-posts-via-content-factory) receives the available source, and [Check outside proof](https://local-service-spotlight.github.io/task-library/?task=build-third-party-validation#task-build-third-party-validation) receives the checked appearance.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=secure-guest-appearances-and-speaking-engagements#task-secure-guest-appearances-and-speaking-engagements)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "571c89f166eb7c8b50fcc1604b8c888de29aa7604093ae0059eb65fe83c233cb",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ac46d1576605b4284aa9a4775be123b88ee02d9f6a8426822c93e96ed13ce16a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=secure-guest-appearances-and-speaking-engagements#task-secure-guest-appearances-and-speaking-engagements",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "571c89f166eb7c8b50fcc1604b8c888de29aa7604093ae0059eb65fe83c233cb",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "571c89f166eb7c8b50fcc1604b8c888de29aa7604093ae0059eb65fe83c233cb"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "571c89f166eb7c8b50fcc1604b8c888de29aa7604093ae0059eb65fe83c233cb"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 146,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set up professional social profiles",
     "slug": "set-up-professional-social-profiles",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help people find the real you on the sites they use.",
     "content": "---\nname: set-up-professional-social-profiles\ndescription: \"Help people find the real you on the sites they use.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Set up professional social profiles\n\nHelp people find the real you on the sites they use. This guide checks your work profiles and connects them to your own site. Start with the accounts you already control before you make new ones.\n\n**The path:** Existing accounts → Right identity and ownership → Approved profile setup → Verified URL list\n\n**Start when:** The person needs a checked set of agreed public profiles or corrections to existing ones.\n\n## Inputs\n\n- [Build the personal brand site](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website) with the accepted home URL, public name and real identity facts.\n- The agreed platform list based on actual audience needs and the person’s existing accounts.\n- Actual account owner, supported delegated roles, setup authority and secure recovery/access record.\n\n## Steps\n\n1. Inventory current profiles, handles and account owners before creating anything. Separate wrong-person matches, abandoned accounts and potential duplicates. A duplicate-looking result needs an ownership check; it is not permission to delete an account or assume a claim right.\n2. Choose the platforms relevant to the person’s work. The source’s LinkedIn, Facebook, Instagram, YouTube and X list is a planning starting point, not a universal requirement to open all five. Record the agreed scope and why a platform is excluded or pending.\n3. Use a clear handle and the accepted professional name within each platform’s actual rules. Preserve a legitimate existing handle when change would break useful links without a reviewed reason. Do not imply that matching every handle guarantees one search identity.\n4. Use the actual supported account/profile type for the intended person or business. Check current platform setup documentation and the live controls before creating, converting or connecting accounts. A personal profile and a company page serve different entities and should not be silently merged.\n5. Keep ownership and recovery with the person or the appropriate business owner, and use supported delegated roles for helpers. Complete verification with the account owner where required; a skill or connected browser does not confer new account-creation, transfer or publication authority.\n6. Add the verified home URL where the platform permits and prepare the approved bio/photo fields. Use [Align photos and bio facts](https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles) for consistent current facts. Do not leave misleading blank or placeholder profiles public solely to finish a count.\n7. After authorized setup, open the actual public profiles, check identity and destination and save their exact URLs. Keep blocked access, pending verification and unavailable link fields explicit. Only the accepted same-person profile list passes to schema work.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each agreed platform has a verified correct profile or a precise remaining account-owner dependency.\n- [ ] Ownership and permitted roles are checked; new accounts or destructive cleanup are not assumed.\n- [ ] Public identity, allowed site links and exact URLs are read back before handoff.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional consultant already uses LinkedIn and YouTube, while an old X handle belongs to another person. Her current plan needs only the first two. The team updates those owned profiles, leaves the unrelated handle alone and passes two checked URLs to schema work, rather than creating accounts to meet a five-profile quota.\n\n## Handoff and Content Factory context\n\n[Align photos and bio facts](https://local-service-spotlight.github.io/task-library/?task=add-consistent-headshots-and-bios-across-profiles#task-add-consistent-headshots-and-bios-across-profiles) receives the actual editable profiles; [Add verified Person markup](https://local-service-spotlight.github.io/task-library/?task=implement-person-schema-with-sameas-links#task-implement-person-schema-with-sameas-links) receives only the final verified identity URLs.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-social-profiles#task-set-up-professional-social-profiles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "8dc0f96d6f3ed63030fe3b3a163b3dcf4f4d7c4949a55207f5c6c39254cd33dd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8067c1fc31bcf0be97e3780d0dc472d2c2fb22ad9cb2c28cdec9d9da3b24a779",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-professional-social-profiles#task-set-up-professional-social-profiles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "8dc0f96d6f3ed63030fe3b3a163b3dcf4f4d7c4949a55207f5c6c39254cd33dd",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "8dc0f96d6f3ed63030fe3b3a163b3dcf4f4d7c4949a55207f5c6c39254cd33dd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "8dc0f96d6f3ed63030fe3b3a163b3dcf4f4d7c4949a55207f5c6c39254cd33dd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 147,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Verify Google Business Profile",
     "slug": "verify-google-business-profile--personal-brand",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/personal-brand",
     "articleKind": "topic-hub",
     "desc": "Help people find your local firm.",
     "content": "---\nname: verify-google-business-profile--personal-brand\ndescription: \"Help people find your local firm.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: /personal-brand\nstatus: needs-work\n---\n\n# Verify Google Business Profile\n\nHelp people find your local firm. Use this guide to check if your firm can have a profile on Google. Start with the way you serve your clients.\n\n**The path:** Eligibility → Existing listing → Owner verification → Accurate public business facts\n\n**Start when:** A qualifying business or eligible individual practitioner needs its Google Business Profile checked or verified.\n\n## Inputs\n\n- The actual business/practitioner, customer-contact model, location/service area and current business website.\n- Business-owner authorization and Google account access, existing listing if any, and supporting business evidence.\n- Current [Google’s business eligibility rules](https://support.google.com/business/answer/13763036?hl=en) and [representation rules](https://support.google.com/business/answer/3038177?hl=en).\n\n## Steps\n\n1. Check eligibility before opening a listing. Google generally requires in-person customer contact during stated hours; online-only personal brands do not qualify simply by having a website. Assess any practitioner under the actual public-facing and contact rules, not just the owner’s title.\n2. Search for the existing business and distinguish it from the person’s Knowledge Panel. Confirm the right location, business and current ownership. Use the supported ownership-request path if another account manages it; do not create a duplicate to bypass the actual owner.\n3. Use the real-world business name and accurate customer-facing contact details. Point the listing to the authoritative website for that business, not automatically the owner’s personal home. Apply the current address/service-area rules and hide a non-customer-facing address when required.\n4. Follow the verification method Google actually offers in [its business verification flow](https://support.google.com/business/answer/7107242?hl=en). The business owner supplies required evidence or completes human identity steps. A postcard, phone, email or video option is not guaranteed for every account.\n5. Keep owner control with the real business owner and use the minimum permitted helper role. Record account role and verification state privately. Do not use a public-looking badge or a helper’s recollection as proof of completed verification; inspect the actual managed profile state.\n6. Prepare accurate categories, hours, description, service information and real photos under the listing’s actual rules. Do not add keywords to the business name, fake locations or unverifiable claims to make the listing look complete.\n7. After authorized save, verify both the managed verification state and the normal public listing’s identity and facts. Pending verification stays pending. A correctly reasoned not-applicable result is a legitimate output; it is not a failed personal-brand project or permission to create another kind of profile.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Eligibility is supported, or a documented not-applicable decision names the reason.\n- [ ] The profile represents the correct business/practitioner and uses its authoritative contact/site details.\n- [ ] Actual owner role, verification state and checked public facts are retained separately.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional online-only coach has a personal website but never meets clients in person. The eligibility check records that this business does not qualify for a Business Profile. Her website and true social profiles can still be improved through their own tasks. The team does not invent a storefront or use her home address to force verification.\n\n## Handoff and Content Factory context\n\n[Set up the agreed public profiles](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-social-profiles#task-set-up-professional-social-profiles) receives the person’s actual profile needs; [Check the person’s identity](https://local-service-spotlight.github.io/task-library/?task=establish-entity-identity#task-establish-entity-identity) receives the business/person distinction and verified business facts.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/personal-brand/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile--personal-brand#task-verify-google-business-profile--personal-brand)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n### Primary method references\n\n- [Business eligibility](https://support.google.com/business/answer/13763036?hl=en)\n- [Represent your business](https://support.google.com/business/answer/3038177?hl=en)\n- [Business verification](https://support.google.com/business/answer/7107242?hl=en)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e89fe4d55288c655738d14a39f0f02e67b9a537afc0ff735f52d38194ddbe709",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5c7efeeb6b4dd73c3b81c2b1bd9c04c63fff56b1d74ccbde5afa4022bdda28bc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "possible-duplicate: review for merge with ensure-robots-meta-not-blocking-indexing",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-google-business-profile--personal-brand#task-verify-google-business-profile--personal-brand",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e89fe4d55288c655738d14a39f0f02e67b9a537afc0ff735f52d38194ddbe709",
      "articleKey": "blitzmetrics.com/personal-brand",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e89fe4d55288c655738d14a39f0f02e67b9a537afc0ff735f52d38194ddbe709"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e89fe4d55288c655738d14a39f0f02e67b9a537afc0ff735f52d38194ddbe709"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/personal-brand"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 149,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Positive Mentions Harvester",
     "slug": "positive-mentions-harvester",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority/",
     "articleKind": "task-recipe",
     "desc": "Find and check praise for a person or firm.",
     "content": "---\nname: positive-mentions-harvester\ndescription: Find and check praise for a person or firm. Use when reviews, press, talks or kind words are spread across sources. Keep one proof list and choose what is safe to share.\nrule-scopes: published-html, design-review\n---\n\n# Positive Mentions Harvester\n\nShow people the real proof behind your good name. This guide puts praise and mentions in one checked list, so you can choose what to share. Start with the source links and any proof list you already use.\n\n**The path:** Source proof → Correct person → Clear class and score → Safe reuse queue.\n\nUse the [owned positive-mentions guide](https://blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority/) for the full method. A mention records what a named source says; appearing on a show does not by itself establish praise.\n\n**Use this when** a person or company has scattered testimonials, third-party praise,\npress, reviews, speaking clips, or social shoutouts and needs one evidence-backed system\nof record. This skill collects and processes existing proof; it does not invent praise,\ntreat every appearance as an endorsement, or publish private evidence.\n\n## Inputs\n- Positioning brief from `business-brand-strategist`, including the intended customers (the buy box) and the\n  claims the proof must support. Use the [positioning task](https://local-service-spotlight.github.io/task-library/?task=business-brand-strategist#task-business-brand-strategist) to supply that checked brief.\n- The existing canonical mentions inventory. If one exists, update it in place; do not\n  start a second tracker.\n- Verified entity names, aliases, languages, profile links, clients, podcasts, events,\n  topics, and date ranges to search.\n- Source material already held: exact quotes, reviews, transcripts, screenshots, video\n  timestamps, emails, and permission receipts.\n- The public entity home and other approved serving pages that consume the inventory.\n\n## Canonical roles and boundaries\n\nKeep one row-level operational source of truth. A public page is a selected display of\nthat inventory, not a second ledger.\n\n| Role | What it owns | What it must not become |\n|---|---|---|\n| Canonical inventory | Every candidate and accepted record, evidence URL, score, permission state, dedupe key, lifecycle state, and reuse destinations | A public dump of private URLs or a collection split across personal side sheets |\n| Entity-home mentions wall | The best verified proof, told through useful moments rather than a status leaderboard | The place where unverified candidates are adjudicated or recognizable names are used as trophies |\n| Public serving / worked-example page | A transparent, filterable view that demonstrates the method and preserves classification | A claim that every podcast or event appearance is an endorsement |\n| Reviews page | First-party and third-party reviews with source attribution | A substitute for third-party mentions or press evidence |\n| Appearance inventory | Verified participation in podcasts, events, interviews, or media | Positive sentiment unless the source contains an actual positive statement |\n| Coordination thread | Ownership, due dates, and exceptions | The row-level list or an alternate system of record |\n\nUse these classes consistently:\n\n- **Mention:** a named source makes a positive, attributable statement or concrete claim\n  about the subject, backed by a reviewable source.\n- **Mention candidate:** a potentially positive item still missing exact language,\n  primary evidence, permission, identity resolution, scoring, or deduplication.\n- **Appearance candidate:** evidence that the subject appeared somewhere. Promote it to\n  a mention only when the source actually says something positive about the subject.\n- **Duplicate / rejected:** a repeated, mismatched, inaccessible, contradicted, or\n  otherwise unusable record retained for audit history rather than silently deleted.\n\n`HOLD` is the public-serving gate, not a replacement lifecycle class. Keep the record as\na mention candidate or appearance candidate, preserve the reason it is held, and recheck\nit when the missing identity, evidence, or permission arrives.\n\n## Steps\n1. **Open the canonical inventory first.** Confirm its owner, columns, current schema,\n   last reviewed date, and accepted vocabulary. Append there. If no inventory exists,\n   create one governed table before harvesting; never create per-source or per-agent\n   competing trackers.\n2. **Sweep every source and language.** Search the verified name and aliases against\n   clients, events, topics, podcasts, publications, review platforms, social networks,\n   owned archives, and supplied private material. Record exactly which sources,\n   languages, and date ranges were searched.\n3. **Capture the primary evidence.** Store the exact quote or concrete claim, speaker,\n   speaker role and organization, source title, platform, normalized evidence URL,\n   publication date, capture date, format, timestamp when applicable, and a concise note\n   explaining what the source proves. For relationship and appearance records, also\n   preserve the scene, why it mattered, any source-backed human beat, the narrowest\n   supported relationship verb, and a compact public receipt. Search snippets and AI\n   summaries are discovery aids, not primary evidence.\n4. **Resolve identity and deduplicate.** Confirm the source and subject are the intended\n   people. Use the stable dedupe key `source platform + normalized evidence URL +\n   speaker + date + quote hash`; merge variants into one record while retaining aliases\n   and audit notes.\n5. **Classify the record.** Mark it as mention, mention candidate, appearance candidate,\n   duplicate, or rejected. An episode credit, event listing, or photograph proves an\n   appearance, not praise.\n6. **Record evidence and permission state.** Use only these permission values:\n   `GRANTED_PUBLIC_RECEIPT`, `GRANTED_ATTESTED_NO_DIRECT_RECEIPT`,\n   `USER_REPORTED_UNVERIFIED`, `PUBLIC_SOURCE`, or `UNKNOWN`. Keep the exact permission\n   receipt or attestation locator private. Never publish Gmail, Zoom, Basecamp, private\n   Drive, private Docs, or other access-controlled URLs.\n7. **Score Who / Where / What.** Give each dimension 0–10 using the canonical\n   inventory's current notes, record the three component scores, and calculate the total.\n   Do not substitute buy-box relevance for a dimension; use relevance as a routing note\n   or tie-breaker after the authority score.\n8. **Apply the promotion gate.** A mention may move from candidate to reusable praise only\n   when it has a named source, exact positive language or concrete claim, live primary\n   evidence, resolved identity, semantic deduplication, Who / Where / What score,\n   permission state, and approved reuse destinations. An appearance may be reused only as\n   an appearance when primary media proves the exact moment, identity and permission are\n   resolved, and the relationship term stays within that evidence. Anonymous, initials-\n   only, domain-only, unknown-permission, or private-source claims stay `HOLD` and out of\n   public surfaces.\n9. **Rank and route.** Sort qualified records by Who / Where / What, then send approved\n   records to the entity home, topic pages, schema-supported proof, sales assets, or\n   Dollar-a-Day testing. The score decides selection and order, not public tone: a high\n   Who score cannot rescue weak What, and a recognizable face does not transfer authority\n   by proximity. Record every reuse destination in the canonical row so public displays\n   remain derived views, not independent lists.\n10. **Log gaps and leave a receipt.** Route unsupported buy-box claims to\n    `reputation-gap-analyzer`; record search coverage, additions, merges, rejections,\n    unresolved blockers, and the next review date. A weekly or monthly job is only\n    Activated or Observed when a real scheduler and timestamped run receipt prove it.\n\n## The Who / Where / What 30-point scale\n\n| Dimension | Points | Question the score answers |\n|---|---:|---|\n| **Who** | 0–10 | How authoritative and relevant is the named person or organization making the statement? |\n| **Where** | 0–10 | How authoritative, independent, durable, and reviewable is the property where it appears? |\n| **What** | 0–10 | How strong, specific, attributable, and useful is what was actually said? |\n\nKeep the component scores visible. A total with no Who / Where / What breakdown is not\nauditable.\n\n- **24–30:** lead with it — homepage, pinned posts, first boosts.\n- **15–23:** supporting proof — topic pages, follow-up sequences.\n- **Under 15:** retain in the archive or candidate pool; do not let weak proof dilute\n  the strongest proof.\n\n## Public serving format\n\nShow the moment, not the resume. A proof card or short section should carry:\n\n1. the real scene;\n2. why the moment matters to the reader;\n3. the named person and only the role relevant to that scene;\n4. one true human beat from the source; and\n5. a compact receipt with source, date, format, and link.\n\nUse one short page-level key to distinguish appearance, collaboration, and attributable\npraise. Do not repeat a legal-sounding disclaimer under every item. Run two editorial\nchecks: remove the famous name and confirm a useful story remains (the trophy-name test),\nthen read the full page and confirm it states supported facts instead of repeatedly\narguing what they do not prove (the courtroom test). Keep a local qualifier only when its\nabsence would materially mislead.\n\n## Output\n- One deduplicated canonical table with row-level provenance, lifecycle state, permission\n  state, Who / Where / What components, total score, and reuse destinations.\n- A ranked lighthouse shortlist and an approved public-serving queue.\n- Story-ready serving fields for every public record: scene, meaning, relevant role,\n  source-backed human beat, evidence-bounded relationship term, and compact receipt.\n- A candidate / blocker queue that preserves appearances, unknown permissions, weak\n  evidence, and identity collisions without overstating them.\n- A reputation gap list and a timestamped run receipt.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual output against the source and agreed requirements; use the [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for any public-facing proof page.\n\n- [ ] The existing canonical inventory was updated in place, or one governed inventory\n      was created; no competing row-level list remains.\n- [ ] Every promoted mention names the correct source and subject and includes the exact\n      positive statement or concrete claim.\n- [ ] Anonymous, initials-only, and domain-only praise remains `HOLD`; no appearance is\n      relabeled as praise or a durable relationship.\n- [ ] Every promoted mention has live primary evidence, a normalized URL, date, format,\n      and timestamp when applicable.\n- [ ] Every record has a lifecycle class, permission state, dedupe key, Who / Where /\n      What components, total score, and reuse destinations.\n- [ ] Appearance-only records remain appearances or candidates, not endorsements.\n- [ ] Private evidence locators and permission receipts remain private; public pages use\n      only public-safe sources.\n- [ ] Public views are derived from the canonical inventory and ordered strongest first.\n- [ ] Public proof passes the trophy-name and courtroom tests and uses one page-level key\n      instead of repeated defensive disclaimers.\n- [ ] Search coverage, unresolved gaps, next review date, and run receipt are recorded.\n- [ ] The result links back to the definitive article and the stable Task Library entry.\n\n## Example(s)\n\nThese are the source owner’s dated examples and serving destinations. Preserve their reported scope; this source update does not independently recertify their current contents, count a new run or promote the inherited Task Library contributor status.\n\n- **Dennis Yu is the worked example.** The private team workbook named *Dennis Yu\n  Positive Mentions — Canonical Inventory* is the single row-level operational ledger;\n  its access-controlled locator is deliberately not published in this skill.\n- [Dennis Yu's public serving inventory](https://blitzmetrics.com/high-powered-positive-mentions/)\n  demonstrates the classification boundary. In the 2026-08-23 audit it exposed 217\n  public records: 41 curated mentions, 32 mention candidates, and 144 appearance\n  candidates. Those classes must not be collapsed into “217 endorsements.”\n- [Dennis Yu's entity-home mentions wall](https://dennisyu.com/mentions/) is the selected\n  buyer-facing proof display, while [his reviews](https://dennisyu.com/reviews/) remain a\n  distinct review surface.\n- [Dennis Yu's appearance inventory](https://dennisyu.com/podcast-appearances/) records\n  podcast participation. An appearance becomes a positive mention only when the source\n  contains attributable positive language.\n\n## Run with an agent\n- **Loop to coverage:** keep sweeping until the defined names, languages, sources, and\n  date ranges are exhausted. Never claim “complete” when a known source is inaccessible.\n- **Self-verify:** no record enters the serving queue without passing the promotion gate;\n  keep candidate and rejected records visible in the ledger.\n- **Compound from the ledger:** read the positioning brief and canonical inventory first,\n  then append and re-score deltas instead of rebuilding from memory.\n- **Log every run:** preserve search coverage, changes, misses, and errors so the next run\n  can improve the method.\n- **Current automation boundary:** a recurring positive-mentions harvest is Available as\n  a documented job design, not Activated or Observed until a scheduler definition and a\n  successful timestamped run receipt exist.\n\nA [skill is a written recipe](https://localservicespotlight.com/plugin/); an [agent is the AI worker](https://blitzmetrics.com/build-agents/) using it with actual tools and access. Give the worker this file, the existing inventory, the source scope and the allowed actions. Ask for the checked rows, evidence, holds and next owner. The [installation guide](https://localservicespotlight.com/install/) covers reusable setup. A ZIP or plugin does not grant source access or activate a schedule.\n\nSee `boil-the-ocean.md` for the full operating principles.\n\n## Handoff and Content Factory context\n\nPass the canonical row changes, search coverage and unresolved evidence to the actual inventory owner. The [reputation gap task](https://local-service-spotlight.github.io/task-library/?task=reputation-gap-analyzer#task-reputation-gap-analyzer) receives the unmet proof needs. The public-page or promotion owner receives only the approved source-backed reuse queue with its rights and destinations; routing a record is not publishing or spending.\n\nThis supports the [Content Factory: Produce, Process, Post and Promote](https://blitzmetrics.com/content-factory/). Real sources are gathered in Produce, checked and shaped in Process, released only with authority in Post, and selected proven work may enter Promote. This harvest supplies checked proof; it does not claim that every row became a public page or ad.\n\n## Record the real execution\n\nOpen one execution ID when work begins, with the exact starting recipe revision and actual search scope. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with the sources inspected, rows changed, checks, failures and next owner. Writing is required; public release follows existing authority. Link this recipe and its Task Library record.\n\nKeep internal research passes, QA, retries, revisions and meta writing on that same ID. A blocked run stays open with the missing source or permission and its owner, without an invented finish time. The dated public example counts below remain historical volume, not a new execution or an ID-deduplicated run count. Use the evidence to propose the smallest supported recipe improvement.\n\n### Fictional teaching example\n\nThis example illustrates the method and is not a real client result. A workshop photo shows a founder on stage, while an interview includes a host's exact praise of her work. The first row remains an appearance; the second can become a mention only after its identity, evidence, permission, dedupe and score gates pass. An inaccessible private note stays on HOLD. The public queue contains only the checked permitted records.\n\n## Notes — Dennis's method\n- The more material you paste in, the better this gets. Boil the ocean: every podcast, every event, every thank-you email.\n- Who / Where / What decides proof strength. The buy box decides where strong proof is\n  useful; do not merge those two judgments into one opaque score.\n- Lighthouse moments are the priority output: after the evidence gate and Who / Where /\n  What ranking, the strongest useful stories become the pieces you test first with\n  Dollar-a-Day.\n- Re-score when sources, URLs, permissions, or the positioning brief change. A recurring\n  cadence is a commitment only after it has an owner, scheduler, and observed receipt.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** `business-brand-strategist`\n- **Browse later task:** `reputation-gap-analyzer`\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Update the canonical mentions inventory in place, then leave the ranked public-serving queue, candidate/blocker queue, reputation-gap list, and timestamped run receipt. The next skill reads those records, not this chat.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use your current AI app after checking the required tools and access. Write every candidate and adjudication back to the canonical mentions inventory before handing off to the next skill.\n- **Optional multi-engine:** A lower-cost agent may sweep and normalize candidates; a judgment model resolves identity, evidence, permission, and Who / Where / What. Both write to the same canonical mentions inventory.\n- **State bridge:** The canonical mentions inventory is the bridge across models and runs. Do not create a parallel Content Library ledger or pass state through vendor memory.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Hub: https://blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority/\n- Short alias: https://blitzmetrics.com/positive-mentions/\n- Stable Task Library entry: https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester\n- Run order: `business-brand-strategist` → **this skill** →\n  `reputation-gap-analyzer` → `knowledge-panel-entity-seo` →\n  `dollar-a-day-strategist`\n- Evidence QA: `evidence-verification`\n\n## Learned in the field\n\n*Appended automatically by the self-improvement loop (Skill-Learnings/): dated lessons from real runs. Newest at the bottom.*\n\n<!-- learning:2026-07-29-audit-the-name-in-every-language-they-live-in -->\n**July 29, 2026** (from: jagodapasko.com second pass, July 29, 2026)\n\nOn **July 29, 2026** a client's audit from six weeks earlier recorded **2 proof items, 24\nauthority points, 0 power proof**, and described her third-party footprint as very thin. A\nsingle afternoon of searching found national television coverage on two networks, a\nbroadcast documentary segment, three long-form interviews on three independent channels,\nand a verified fundraiser documenting 210+ evacuations. None of it was hidden. All of it\nwas in **Polish**, and most of it lived on other people's channels rather than her own.\n\n**A proof library built from English-language search of a non-English person is a\nmeasurement artefact, not a finding.** So before scoring anyone's authority:\n\n1. Search the name in **every language the person has lived and worked in**, including with\n   and without diacritics, and search their brand or company name separately.\n2. Search for the *events* as well as the person — the coverage may name the work rather\n   than the individual, and their own outbound links (a fundraiser page, a media page, a\n   LinkedIn post) often point straight at press that no name-search returns.\n3. Treat \"third-party footprint is thin\" as a **hypothesis that must survive a\n   native-language search**, never as a conclusion from an English result set. Say which\n   languages were searched, so the next run can see the gap instead of inheriting it.\n4. Verify every video with oEmbed before publishing it — it returns the exact title, the\n   real channel, and whether the thing is still public. Titles get paraphrased from memory\n   otherwise, and paraphrasing someone else's video title onto a client's press page is how\n   a credibility asset turns into an error.\n\n**Reject search summaries that conflict with primary sources.** One auto-generated summary\nin this run asserted the client had been \"a TV director turned brain-injury recovery\nmentor.\" It was a different person with a similar name, and it contradicted a verified\ntwenty-year finance career. A name collision inside a research tool will happily produce\nfluent, specific, false biography — check every claim against a source that names the\nperson unambiguously before it reaches a published page.\n\n<!-- shared-rule:silent-media-playback:start -->\n## Silent media playback\n\n- Never let audio from browser, video, audio, presentation, or application testing play through the user's speakers unless the user explicitly asks to hear it.\n- Before starting any media playback, mute the player and set its volume to zero. Keep it muted for the full test, including replays, reloads, new tabs, and alternate players.\n- Apply this rule to the primary agent and every delegated agent. Include the mute requirement whenever work that may involve media playback is delegated.\n- If the mute state cannot be controlled and verified before playback, do not start playback. Use metadata, captions, transcripts, frames, screenshots, network state, or player state instead.\n- Only unmute when the user explicitly requests audible playback in the current task.\n<!-- shared-rule:silent-media-playback:end -->\n\n<!-- shared-rule:agents-draft-humans-send:start -->\n## Agents draft; a human sends and publishes\n\n- **An agent may write anything and send nothing.** Email, DMs, social posts, client\n  messages, public pages — staged and ready, never dispatched.\n- **Stage it so approving is one click**, not one more round of work: the full text, the\n  recipient, the subject, and where it will appear.\n- This is a security control, not a confidence rating. It holds even when the draft is\n  obviously correct, because the failure it prevents is the one nobody predicted.\n- It is the boundary on `be-proactive-see-it-through`: act freely on reversible work,\n  stop at anything that reaches another person or the public.\n<!-- shared-rule:agents-draft-humans-send:end -->\n\n<!-- shared-rule:analytics-on-every-page:start -->\n## Analytics goes on before anything gets optimised\n\n- **Measurement is the first build step, not the last.** A page with no analytics cannot\n  be improved, only redecorated, and every argument about it becomes a matter of taste.\n- **The invisible plumbing outranks the visual design** — tracking, CRM connection,\n  conversion events, schema and page structure come before fonts and colours.\n- **Confirm the tag actually fires on the live page**, not that it exists in a settings\n  screen. See `verify-by-opening-the-live-artifact`.\n- Instrument the business outcome, not the vanity metric: calls, booked jobs and revenue,\n  not impressions.\n<!-- shared-rule:analytics-on-every-page:end -->\n\n<!-- shared-rule:ask-blocking-questions-up-front:start -->\n## Ask every blocking question up front\n\n- **Front-load every question and every missing access into the planning step**, before\n  the long work starts. The person who briefed you intends to walk away; a question\n  raised at minute ninety costs them the whole ninety minutes.\n- **Do not guess to avoid asking.** A guess that turns out wrong is discovered at the end,\n  when it is most expensive to undo.\n- After the short plain-language context, put an explicit **open questions and\n  missing access** block near the start of every plan. If the list is empty, say\n  so — that is information too.\n- Once the questions are answered, work continuously to the end rather than stopping to\n  check in on things you could have decided.\n<!-- shared-rule:ask-blocking-questions-up-front:end -->\n\n<!-- shared-rule:assign-work-to-a-function:start -->\n## Assign work to a function, not a person\n\n- **Every task is owned by a function** — web, content, analytics, client success — and\n  people sit inside functions. People join, leave and go on holiday; the function does not.\n- **Escalate to a function too.** \"I told Muzamil\" is not an escalation if Muzamil is\n  away; \"escalated to the web function\" is.\n- A function with exactly one person in it is still a function. Name it that way, so the\n  second person changes nothing.\n- Work assigned to a named individual and nowhere else is work that silently stops when\n  that individual does.\n<!-- shared-rule:assign-work-to-a-function:end -->\n\n<!-- shared-rule:be-proactive-see-it-through:start -->\n## Be proactive and see it through\n\n- **When you find something broken, fix it.** Do not file it, mention it in passing, or\n  wait to be asked. If it is outside what you can fix, escalate it to the function that\n  owns it, by name, with what you found.\n- **You do not need permission for reversible work.** Do it, then report exactly what you\n  did so it can be adjusted. Asking first for everything makes an agent slower than doing\n  the work by hand.\n- **Reversible is the line, not confidence.** Sending a message, publishing to the public,\n  spending money, and deleting data stay behind an explicit approval — see\n  `agents-draft-humans-send`. Everything short of that, act.\n- Report what you changed in enough detail that undoing it is a one-line instruction.\n<!-- shared-rule:be-proactive-see-it-through:end -->\n\n<!-- shared-rule:buttons-must-contrast-with-their-background:start -->\n## A button must contrast with what it sits on\n\n- **A call to action must be visibly separate from the section behind it** at rest, not\n  only on hover. A visitor on a phone never hovers, and a button that only appears on\n  hover does not exist.\n- **Check the button against every background it appears on.** The same component sits on\n  white, on the hero image and on the dark footer; one of those is usually where it\n  disappears.\n- Text on the button needs at least **4.5:1** against the button fill, and the fill itself\n  needs to be clearly distinct from the section fill.\n- This is the general case of `no-black-buttons`. Black is the most common way to break it;\n  it is not the only way.\n<!-- shared-rule:buttons-must-contrast-with-their-background:end -->\n\n<!-- shared-rule:capture-what-you-learn:start -->\n## Capture what you learn as a standard, in the same session\n\n- **A rule that lives only in an article, a chat message, a call recording, or your\n  context window is a rule the next agent will break.** That is not a prediction. The\n  black-button rule was published, illustrated, and given an enforcement plugin on\n  17 May 2026, and on 15 August 2026 an agent holding the entire skill pack in context\n  shipped a black button. The rule was never in `standards/`, so it never reached the\n  skills, so it was not there to be read.\n- When anyone — the client, the account owner, an audit, or your own failure — states a\n  rule that should hold next time, **your job is not to remember it. It is to write\n  `standards/<slug>.md` before the session ends.** Memory does not survive a session\n  boundary. A file does.\n- Scaffold it in one command, which forces every field including where the rule came\n  from:\n\n  ```bash\n  python3 scripts/new_standard.py \"no autoplay with sound\" \\\n    --from \"Dennis Yu, Cowork session, 2026-08-16\" --applies-to published-html\n  ```\n\n- Then write the rule, run `python3 scripts/sync_shared_rules.py`, and open the pull\n  request. The sync copies the rule into `AGENTS.md` and every distributed `SKILL.md`,\n  so it reaches every agent and every member who installed the pack. Nobody has to be\n  told about it.\n- **Give the rule a machine check whenever one is honest.** A `checks` block in the\n  header compiles straight into the live fleet sweep, so a violation on a published page\n  is caught by a schedule instead of by a person noticing. Every check must carry\n  passing and failing examples — a pattern that matches nothing reports a clean site\n  forever, which is worse than no check at all.\n- **Where a machine check would be dishonest, say so and leave `checks` out.** Judgement\n  rules are still rules; they are enforced by being read pre-flight, and pretending a\n  regex covers them hides the fact that nothing does.\n- **Provenance is required, not decoration.** `captured_from` is how the team sees which\n  channels leak. If dozens of recorded calls have produced no standards, those calls are\n  not being captured, and that is visible at a glance instead of being a suspicion.\n- **When a new rule contradicts an existing one, resolve it in the file and say so\n  out loud.** Two standards that disagree are worse than one that is wrong, because\n  every agent that reads both will pick whichever it happened to see last. Write the\n  reconciliation into the newer rule and flag it to the account owner for confirmation.\n- The order is Checklist → Content → Software. Write the checkable rule first, publish\n  the article that teaches it second, and let the sweep be generated from the rule\n  rather than hand-written beside it. Writing the article first is how rules get lost:\n  the article is the artifact everyone can see, so it feels finished, and the\n  enforceable form never gets written.\n<!-- shared-rule:capture-what-you-learn:end -->\n\n<!-- shared-rule:every-article-has-pictures:start -->\n## Every article has pictures\n\n- **No article ships as a wall of text.** Every published piece carries images — real\n  photographs, screenshots, or diagrams that carry meaning, not decorative stock.\n- **A diagram beats a paragraph** wherever the point is a structure, a sequence or a\n  comparison.\n- Caption them. An uncaptioned image is decoration; a captioned one is evidence.\n- Images also carry the provenance required by `process-real-content-never-generate` —\n  a photograph of the work actually done proves more than any sentence about it.\n<!-- shared-rule:every-article-has-pictures:end -->\n\n<!-- shared-rule:immersive-hero-standard:start -->\n## Personal-brand heroes are immersive, not boxed\n\nA public figure's hero is the whole first screen, not a card with a headshot in it. The\nstandard, fleet-wide:\n\n- **Full bleed and viewport height.** The hero occupies the first screen: `height:94svh`\n  with `min-height:600px` and `max-height:1000px`. Use `svh`, not `vh` — mobile browser\n  chrome makes `vh` overshoot and push the call to action below the fold.\n- **The subject is the background, not a thumbnail.** No small boxed portrait, no framed\n  inset, no stock-photo collage. The photograph is edge-to-edge and the type sits on it.\n- **Join the image to the type with a mask, not a hard edge.** A horizontal\n  `mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 16%, #000 42%)`\n  dissolves the photo into the text column so the two read as one composition.\n  **Override it to a vertical mask on mobile** — a horizontal mask on a narrow screen\n  fades the subject's face.\n- **Control the crop with a focal variable**, e.g. `--focal: 56% 4%`, so the frame can be\n  nudged per person without rewriting the block. Check the top of the head is not clipped.\n- **Reset `box-sizing` on your own block.** These themes scope `border-box` to a theme\n  wrapper, not `*`. A new hero inherits `content-box`, so `height:100%` plus padding\n  overflows an `overflow:hidden` section and silently clips the calls to action out of\n  frame — the page looks fine and the buttons are simply gone.\n- **One primary call to action, in the brand colour, above the fold on a 1366×768\n  laptop.** Verify at desktop, laptop and mobile widths before calling it done.\n- **A proof rail under the fold, not claims inside the hero** — credentials, logos, or\n  named results on a solid brand-colour band.\n- **Motion is optional and must be silent.** A background video is permitted only when it\n  is `muted`, `playsinline` and `loop`, with a poster image; see `nothing-plays-uninvited`.\n- **The photograph has to earn full bleed.** Composed portraits and documentary\n  photography can carry a hero; selfies cannot, at any resolution. When the only assets\n  are selfies, use the typographic hero — it never looks cheap. See\n  `photo-earns-full-bleed`.\n\n\nThe typographic fallback still follows `visuals-above-the-fold`: pair the type\nwith the authentic small-format photograph or a useful topic-specific diagram\nin the first screen. A text-only first screen is no longer an allowed fallback.\n<!-- shared-rule:immersive-hero-standard:end -->\n\n<!-- shared-rule:keep-the-system-of-record-outside-the-model:start -->\n## Keep the system of record outside any one model\n\n- **Standards, SOPs, metadata and completed work live in files and repositories we own**,\n  not inside one vendor's memory, project or chat history.\n- **The test:** if the model changed tomorrow, could a new one pick up every piece of work\n  in progress from the artifacts alone? If not, something important is stored in the wrong\n  place.\n- **Write it down where it can be read by anything.** Plain markdown, plain JSON, in a\n  repository — not a proprietary format tied to one product.\n- This is also why rules are copied into distributed skills rather than linked: the copy\n  survives being separated from the system that made it.\n<!-- shared-rule:keep-the-system-of-record-outside-the-model:end -->\n\n<!-- shared-rule:lead-with-a-visual-executive-summary:start -->\n## Every deliverable leads with a visual executive summary\n\n- **Page one answers the question**, for someone who will read only page one. The most\n  important and least obvious findings, up front.\n- **Open with the reader's decision and the value of this deliverable.** In the\n  first two or three sentences, connect the strongest supported finding to the\n  reader's situation and the action it enables. Follow\n  `every-article-and-project-starts-with-specific-gct`; a title, biography,\n  table of contents or methodology paragraph alone does not orient the reader.\n  On a multi-page document or deck, each later page or section also leads with\n  its useful takeaway, without repeating the whole introductory pitch.\n- **Interesting and non-obvious, not a restatement.** A summary that repeats what the\n  reader already assumed has told them nothing; lead with what would change their mind.\n- **Use colour, diagrams and tables to carry the point.** A wall of text on page one is a\n  failure of the deliverable, not a style preference.\n- Depth still matters behind it — a substantial analysis runs long. The summary earns the\n  reader's attention for the rest; it does not replace it.\n<!-- shared-rule:lead-with-a-visual-executive-summary:end -->\n\n<!-- shared-rule:learn-do-teach:start -->\n## Learn it, do it, then teach it\n\n- **Read the standard before you touch the work.** Skipping to doing produces output that\n  looks right and is wrong in ways the person reviewing it has to find for you.\n- **Then do it,** all the way to a verified artifact.\n- **Then teach it** — write the run up so the next agent inherits what you learned. That\n  write-up is what turns one person's lesson into everyone's default, and it is the whole\n  reason `standards/` exists.\n- The order is not a preference. A rule taught before it is understood is repeated\n  without judgement; a rule learned and then taught survives contact with a case it did\n  not anticipate.\n<!-- shared-rule:learn-do-teach:end -->\n\n<!-- shared-rule:links-must-resolve:start -->\n## Every link and every entity claim resolves\n\n- **A broken entity claim is worse than no claim.** `sameAs` is how a site tells Google,\n  Bing and every AI answer engine \"this person is that entity\". Pointed at a deleted or\n  wrong target, it does not merely fail — it actively teaches the wrong association.\n- **Verify every `sameAs` target returns 200 before publishing schema, and re-verify\n  quarterly.** Entities get deleted. A Wikidata item asserted on a client site was\n  deleted on 7 July 2026 and the claim stood until an audit found it five weeks later.\n- **Only anchors count.** `preconnect`, `dns-prefetch`, `canonical` and `alternate`\n  hints are not links a visitor can follow, and treating them as links reports\n  `googletagmanager.com` as a dead link on every site that loads analytics — noise that\n  teaches people to ignore the sweep.\n- **Request every outbound link before publishing.** A dead social link in a footer\n  appears on every page of the site, which makes one careless paste a site-wide defect.\n- Treat `401`, `403`, `405` and `429` from Instagram, Facebook, X and LinkedIn as *pass*.\n  Those platforms block automated requests by policy; that is not a broken link, and\n  reporting it as one trains people to ignore the sweep. `404`, `410`, `5xx`, DNS\n  failure and connection timeout are real.\n- When a target is genuinely gone, remove the claim rather than leaving it. An honest\n  smaller `sameAs` set outperforms a larger one containing a lie.\n<!-- shared-rule:links-must-resolve:end -->\n\n<!-- shared-rule:no-black-buttons:start -->\n## Never ship a black button\n\n- A call-to-action button must use the site's brand colour, never black. Black buttons\n  camouflage against dark heroes, navigation and footers, carry no brand signal, and\n  measurably lose conversions. This is the single most repeated finding across hundreds\n  of Local Service Spotlight website audits.\n- Nobody ships a black button on purpose. It is the default in every builder —\n  Gutenberg's `has-black-background-color` preset, Elementor's dark fill, Astra starter\n  themes, any Bootstrap-derived `btn-dark`. It looks correct on the white editor canvas\n  and disappears on the dark section it ships into. Assume the default is wrong and\n  override it deliberately.\n- Determine the brand colour, do not guess it: fetch the live pages, count hex values,\n  and take the most-used non-neutral. Where a site has two strong non-neutrals, the\n  darker is usually navigation and the brighter is the CTA — as gold `#f5a623` is to\n  teal `#22698a` on Local Service Spotlight.\n- Verify contrast before publishing. Text on a CTA needs at least 4.5:1. A gold or\n  yellow button needs dark text, not white.\n- Before reporting any site work as done, confirm the published HTML contains none of:\n  `background:#000`, `background-color:#000`, `btn-dark`, `btn-black`, `button-black`,\n  `bg-black`, or an applied `has-black-background-color` class.\n- An element may keep a black fill only with a documented exemption class where black\n  genuinely belongs — a logo lockup, an icon button on a dark rail. Mark it with the\n  fleet's existing exemption class, `bm-keep-black` or `lss-keep-black`,\n  so the sweep can see the exemption was\n  deliberate. Exempt one element, never a default.\n- Full reasoning and the enforcement-plugin pattern:\n  https://blitzmetrics.com/why-we-dont-use-black-buttons/\n<!-- shared-rule:no-black-buttons:end -->\n\n<!-- shared-rule:no-flattery-tell-it-straight:start -->\n## No flattery — tell it straight\n\n- **Do not open with praise, and do not pad findings with reassurance.** The value of a\n  report is the part that is uncomfortable; softening it destroys the only reason to read\n  it.\n- **Every claim is proof-driven** — name the URL, the number, the date, the source. \"This\n  looks great\" is not a finding; \"the sameAs target returns 404\" is.\n- **Say what is broken before what is working**, and be specific about how bad it is.\n- Being wrong is recoverable. Being agreeable and wrong is not, because nobody checks\n  the agreeable answer.\n<!-- shared-rule:no-flattery-tell-it-straight:end -->\n\n<!-- shared-rule:no-placeholder-copy:start -->\n## Placeholder copy never reaches production\n\n- **A number on a page is a claim.** Every stat needs a definition, a date, and someone\n  who can say where it came from. If the same figure appears twice on a site it has to be\n  the same figure.\n- **Builder placeholder text is a defect, not a cosmetic issue.** \"Lorem ipsum\", \"Your\n  photo here\", `xxx-xxx-xxxx`, `example@example.com` — each one tells a visitor the page\n  was never finished, on the page where you are asking them to trust you.\n- **A testimonial needs a real, nameable person.** No initials-only quotes, no\n  \"a client in Minneapolis\".\n- **The sweep only catches the obvious half, and you need to know which half.** A\n  placeholder that looks like a real number — a hero stat reading \"$34K Monthly MRR\" that\n  nobody can source — is indistinguishable from a true one to any regex. That exact\n  string sat live on a paying client's site. The only defence is that whoever publishes a\n  number can name its source before it goes up.\n<!-- shared-rule:no-placeholder-copy:end -->\n\n<!-- shared-rule:no-popup-on-load:start -->\n## No popup on page load\n\n- **Nothing covers the page before the visitor has read anything.** A modal that opens on\n  load, on a timer, or on scroll-depth before the first section is finished interrupts\n  the only moment you had their full attention, and it is the single most common reason a\n  first-time visitor closes the tab.\n- The permitted triggers are **click** and **exit intent on desktop**. A newsletter offer\n  earns its place in the page, after the proof, as a section — not as an ambush.\n- This applies to cookie and consent banners too: they may be present, but they must not\n  block the content or be dismissable only by accepting.\n- **Coverage is partial and you should know it.** These checks catch the three signatures\n  that cover most of the fleet — Elementor's `page_load` trigger, the `auto_open` popup\n  type, and load triggers declared in markup. A popup wired up in custom JavaScript will\n  pass the sweep. When you touch a site, look at it once with a fresh session and no\n  cookies; that is the only reliable test.\n<!-- shared-rule:no-popup-on-load:end -->\n\n<!-- shared-rule:no-unnamed-link-text:start -->\n## No unnamed link text\n\n- **Link text must name its destination when read on its own.** Screen readers and search\n  engines both pull links out of context; \"read more\" out of context is nothing. Write\n  \"Read George's story\", not \"Read more\".\n- The banned set in practice: *click here, read more, learn more, continue reading,\n  download, more, here, this, link.* If the anchor text is one of those words and nothing\n  else, rewrite it.\n- **An image-only link still needs a name.** A logo or social icon wrapped in an anchor\n  needs meaningful `alt` text on the image or an `aria-label` on the link. `alt=\"\"` is\n  correct for decoration and wrong for a link — a link with no name is a link nobody can\n  follow by voice or by ear.\n- **An anchor points at the thing it names.** If the text says a company, the link goes to\n  that company; if it says \"LinkedIn\", it goes to linkedin.com. Two links with identical\n  anchor text going to different destinations on the same page is always a defect — one of\n  them is lying.\n- Expect the first sweep of an existing WordPress site to report this on archive and\n  blog templates, where \"Read more\" is the theme default. That is one template edit, not\n  a per-post fix, and it is why this rule reports rather than blocks.\n<!-- shared-rule:no-unnamed-link-text:end -->\n\n<!-- shared-rule:nothing-plays-uninvited:start -->\n## Nothing plays at the visitor uninvited\n\nThe test is not \"is there a video.\" The test is **would this irritate someone who\njust arrived.** Motion the visitor chose to look at is atmosphere; sound and\nmotion that grab at them are an ambush, and the first thing they learn about you\nis that your site did that.\n\n- **Background video in a hero is encouraged.** It is how the immersive standard\n  gets met. Ship it with all four of `muted`, `playsinline`, `loop` and a `poster`\n  image. `playsinline` is not optional — without it, iOS yanks the video full\n  screen the moment it starts, which is the loudest version of the thing this rule\n  exists to prevent.\n- **Sound never starts on its own.** A hero film may absolutely have an audio\n  track. It loads muted with a visible, labelled unmute control, and the visitor\n  decides. That satisfies both halves: the video is there, the ambush is not.\n- **`<audio>` never autoplays**, muted or not. There is no case for it.\n- **Embedded players count.** `?autoplay=1` on a YouTube or Vimeo iframe must be\n  paired with `mute=1`, or dropped.\n- **Anything that cannot meet the muted conditions ships without `autoplay`**,\n  behind a poster frame and a play control.\n- Judge the rest by the same intent, even where no regex covers it: a video that\n  covers the content, one that cannot be paused, one that restarts on every scroll,\n  or one that pushes the call to action off the screen is irritating whether or not\n  it makes a sound.\n- This is the published-page half of `silent-media-playback`. That rule stops an\n  agent putting sound through *your* speakers while it tests; this one stops a site\n  putting sound through a *visitor's* speakers.\n<!-- shared-rule:nothing-plays-uninvited:end -->\n\n<!-- shared-rule:order-proof-by-authority:start -->\n## Order proof by authority, strongest first\n\n- **Qualified testimonials, logos and mentions are never in random order.** After each\n  record passes its truth, identity, permission, and relevance gates, score it on the\n  30-point scale — 10 for who said it, 10 for where it was said, and 10 for what they\n  actually said. Lead with the strongest useful proof for this reader.\n- **A visitor reads the first two and leaves.** Whatever is in position one is, in\n  practice, your entire proof section.\n- **Who does not substitute for What.** A recognizable person's silent appearance can\n  still be weak proof, and their name does not transfer status by proximity. The score\n  controls selection and order; `show-the-moment-not-the-resume` controls the public\n  telling. Start with what happened and why it matters, not the person's fame.\n- **Video beats text when it preserves the meaningful moment.** The same attributable\n  praise or useful exchange on camera is more persuasive and harder to fake than a pull\n  quote. A contextless clip or photograph remains appearance evidence, not endorsement.\n- Cut the bottom of the list rather than padding it. A short list of strong proof\n  outperforms a long list containing weak proof.\n<!-- shared-rule:order-proof-by-authority:end -->\n\n<!-- shared-rule:photo-earns-full-bleed:start -->\n## A photograph has to earn full bleed\n\n- **Judge the genre before the pixels.** Composed portraits, stage photography and\n  third-party documentary shots can carry a full-bleed hero. Phone selfies, webcam grabs,\n  cropped group photos and screenshots cannot — at any resolution, under any treatment.\n  Resolution and file size say nothing about whether an image can be six feet wide behind\n  a headline.\n- **Open every candidate before you rank it.** Selecting by filename, dimensions or\n  weight is how a selfie ends up presented as a hero option. If you have not looked at\n  the image, you have not evaluated it.\n- **When the only assets are selfies, use the typographic hero.** A confident type\n  composition on a brand-colour field never looks cheap; an enlarged selfie always does.\n  Say plainly that better photography is the unblock, and what to shoot.\n- **Full bleed magnifies everything.** Soft focus, a cluttered background, a bad crop and\n  mixed colour temperature are all invisible in a thumbnail and unmissable at full width.\n- Related: `immersive-hero-standard` for the construction; this rule is only about\n  whether a given photograph is allowed to be the hero at all.\n\n\nThe typographic fallback still follows `visuals-above-the-fold`: pair the type\nwith the authentic small-format photograph or a useful topic-specific diagram\nin the first screen. A text-only first screen is no longer an allowed fallback.\n<!-- shared-rule:photo-earns-full-bleed:end -->\n\n<!-- shared-rule:pre-audit-before-the-client-does:start -->\n## Audit our own work before anyone else can\n\n- **Assume an outside expert will audit everything you ship**, and build so that audit\n  comes back clean. That assumption is what makes the work honest rather than merely\n  presentable.\n- **Run the adversarial pass yourself, before delivery.** Find the broken thing while it\n  is still cheap and while finding it is a credit rather than a defence.\n- **Give the client the same auditing tools you use.** Work that only survives because\n  nobody looked closely is not work worth selling.\n- Ship the audit result alongside the deliverable, including what it found.\n<!-- shared-rule:pre-audit-before-the-client-does:end -->\n\n<!-- shared-rule:process-real-content-never-generate:start -->\n## Process real content; never generate it\n\n- **Every published piece starts from something real** — a recording, a call, a job\n  actually done, a person actually speaking. AI processes that raw material; it does not\n  invent the material.\n- **The provenance must survive to the page.** Link the video, embed the clip, name the\n  person, cite the date. A reader — and a language model reading on their behalf — should\n  be able to trace the claim back to the moment it was said.\n- **Repurpose one source across every surface** rather than generating a fresh piece per\n  channel. The article, the short, the profile post and the email come from the same\n  recording.\n- An article with no traceable source is indistinguishable from an invented one, and will\n  eventually be treated as invented.\n- The sweep looks for a source artifact — an embed, a captioned figure, or an attributed\n  quote — and reports rather than blocks, because a well-sourced piece can still fail the\n  proxy. Treat a hit as \"check where this came from\", not as proof it was generated.\n<!-- shared-rule:process-real-content-never-generate:end -->\n\n<!-- shared-rule:qa-from-a-different-context-window:start -->\n## QA comes from a different context window\n\n- **Self-QA is necessary and never sufficient.** The agent that made a mistake is the\n  agent least able to see it, because the reasoning that produced the mistake is still\n  in its context.\n- **Audit work with a second agent started fresh**, given the artifact and the standard\n  but not the first agent's reasoning. Delegate it explicitly rather than re-reading your\n  own output.\n- The auditor's job is to **refute**, not to confirm. Brief it that way.\n- This applies to your own work most of all. If you cannot spawn an auditor, say the work\n  is unaudited rather than implying it was checked.\n<!-- shared-rule:qa-from-a-different-context-window:end -->\n\n<!-- shared-rule:report-business-impact-not-volume:start -->\n## Report business impact, never volume\n\n- **Count outcomes, not output.** Posts published, words written and tasks closed are\n  activity. Calls, booked jobs, leads and revenue are results.\n- **Trace the chain and show it**: published thing → ranking or traffic → call or lead →\n  booked job → revenue. Where the chain breaks, say where it breaks rather than reporting\n  the last link that looked good.\n- **Impressions and clicks are context, not the headline.** Never lead with them.\n- If the business impact cannot be measured yet, say that plainly and fix the measurement\n  first — see `analytics-on-every-page`.\n<!-- shared-rule:report-business-impact-not-volume:end -->\n\n<!-- shared-rule:verify-by-opening-the-live-artifact:start -->\n## Verify by opening the live artifact\n\n- **\"I did it\" is not evidence. The artifact is.** Before reporting any work complete,\n  fetch the live URL, open the file, or query the API and confirm the change is actually\n  there. An agent that has been caught reporting published articles onto a site with no\n  articles has burned more trust than the task was worth.\n- **Check the thing a user would see, not the thing you wrote.** A database row is not a\n  published page — caches, builders and permissions all sit in between. Fetch the public\n  URL as an anonymous visitor.\n- **A page that could not be fetched has not been verified.** Report it as unverified,\n  never as done.\n- Quote the evidence in the report: the URL, the status code, and the string you found.\n<!-- shared-rule:verify-by-opening-the-live-artifact:end -->\n\n<!-- shared-rule:spoken-urls-must-resolve:start -->\n## Every URL we say out loud resolves\n\n- **A URL spoken from a stage, printed on a QR code, or read into a podcast has no\n  inbound link.** No crawler finds it, no internal link audit sees it, and no analytics\n  records it until a human types it and fails. It is the one class of URL that dies\n  completely silently, and the people who hit the 404 are the warmest audience we ever\n  get.\n- **Every hub domain answers the same short paths.** `/install/`, `/skills/` and\n  `/activate/` resolve on every site we tell an audience to visit — 200, or a 301 to the\n  page that actually serves that intent. Never a 404.\n- **Say it once, spell it the same way everywhere.** If the talk says \"slash install\",\n  every hub answers `/install/`. Do not rely on one domain having a page while another\n  has a redirect and a third has nothing.\n- **A short path is a promise, so keep it even after the page moves.** When the\n  destination is renamed, repoint the redirect in the same change. The short path\n  outlives every page it has ever pointed at.\n- **Redirect within the domain the audience was told to visit** where a suitable page\n  exists. A cross-domain hop from a QR code loses the brand impression at the exact\n  moment it was earned.\n- **Check it from outside, logged out.** An editor screen saying \"saved\" is not a\n  resolving URL, and a page cache can serve a stale 404 long after the rule exists.\n  See `verify-by-opening-the-live-artifact`.\n- Adding a spoken path to a talk, a slide or a business card means adding it to this\n  rule's `paths` list in the same week. That is the whole maintenance cost, and it is\n  what stops this being rediscovered every few months.\n<!-- shared-rule:spoken-urls-must-resolve:end -->\n\n<!-- shared-rule:every-public-page-has-real-imagery:start -->\n## Every public page shows real people or real work\n\n- **Every visitor-facing content page must contain at least one meaningful visual\n  of the actual business: its people, its work, its customers with permission,\n  its product, its place, or an accurate diagram of its actual process.** This includes conversion and utility pages such as\n  Contact, Estimate, Pricing, Financing, Warranty, Privacy, and Thank You. Do not\n  ship a wall of text.\n- A logo, icon, tracking pixel, abstract decoration, AI-generated image, or stock\n  photograph does not satisfy the rule. Neither does an unrelated real photo\n  added merely to pass a count. The image must help a visitor understand or trust\n  the page.\n- Use the business's approved source library. Give the image honest alt text and,\n  when useful, a caption that explains what it proves. Describe only what the\n  source establishes: never relabel one project photo as work completed in every\n  city, and never infer a person, location, service, or result from a filename.\n- If no suitable approved photograph exists, use a useful evidence-backed\n  diagram or verified source-video poster under `visuals-above-the-fold`. Do not\n  manufacture evidence with image generation or stock. If none is available,\n  hold publication and record the specific source gap and next action.\n- Build QA must inventory every rendered content route and fail when any route\n  lacks source-verified meaningful visual proof. Keep a provenance allowlist or equivalent asset\n  record so logos and decorative images cannot make the check pass. Mark at least\n  one qualifying `<img>` per page with `data-lss-real-image=\"verified\"` only\n  after that provenance check. For a diagram, video or photographic background,\n  use `data-lss-visual-proof=\"verified\"` with an honest aria-label/title after\n  source review. This alternate marker never makes an empty shell or unrelated\n  image pass. Also inspect the rendered desktop and mobile page;\n  a hidden, broken, or contextless image does not count.\n- Machine-only documents and routes that never render as visitor content—such as\n  `robots.txt`, XML sitemaps, feeds, and true HTTP redirects—are exempt. A\n  browser-rendered redirect placeholder is not exempt; replace it with a real\n  redirect or make the page comply.\n\nThe fleet check proves only that a page declares the verified marker and supplies\nthe required description (plus a non-data source and alt for img). It cannot prove that the\nsource loads, is visible, is meaningfully sized, or is truthful. Enforce those\nclaims with each site's provenance-aware build validator plus a human visual\nreview. Never add the marker merely to make the sweep pass.\n\nDennis's 2026-09-05 instruction explicitly accepts diagrams, pictures or embedded\nvideo above the fold. That supersedes the earlier photo-only fallback without\nweakening authenticity: an accurate process diagram is useful proof, and a\nvideo poster must belong to the verified source. Do not add an unrelated photo\nmerely to satisfy the older marker check.\n<!-- shared-rule:every-public-page-has-real-imagery:end -->\n\n<!-- shared-rule:basecamp-updates-stay-in-basecamp:start -->\n## Basecamp updates stay in Basecamp\n\n- Never use Gmail Reply, Reply All, Forward, Send, or Draft to\n  `notifications@app.basecamp.com` or `notifications@3.basecamp.com`. Those\n  visible From addresses are notification infrastructure, not destinations.\n- Post the update in the exact existing Basecamp thread through an authorized\n  Basecamp connector, API, or the Basecamp UI. The company delivery rail is\n  Basecamp itself, so do not substitute a per-message\n  `*@replies.app.basecamp.com` email token even when one is present.\n- Before any Gmail mutation, inspect the resolved To and Cc fields. If either\n  contains a generic Basecamp notifications address, stop without creating or\n  sending the message.\n- Changing the Gmail From identity does not repair this failure. In the\n  incident that produced this rule, the connector resolved the visible From\n  address as the recipient and discarded Basecamp's unique Reply-To route; the\n  result was an `Email Received in Error` bounce and no Basecamp comment.\n- A Basecamp update is complete only after readback proves the live thread URL\n  or recording ID, the expected author, and a unique phrase from the comment.\n  A Gmail SENT item is not proof. If no Basecamp write path exists, report the\n  blocker and put the intended update in the run result; do not fall back to\n  email.\n- Embed this rail directly in every scheduled or cloud task that may touch\n  Basecamp. Such runs may not load repository instructions before using an\n  already-authorized Gmail tool.\n- This rule controls the delivery path; it does not grant permission to post or\n  weaken any existing human approval requirement.\n<!-- shared-rule:basecamp-updates-stay-in-basecamp:end -->\n\n<!-- shared-rule:screen-gct-before-amplification:start -->\n## Screen GCT before amplification\n\n- **Qualification is an evidence gate, not an execution grant.** A passing business-fit\n  screen still needs independent review, an accepted scope/agreement receipt, and the\n  authoritative Ops roster decision before onboarding or recurring work.\n- **Gate outcome and evidence quality are separate.** Every GCT gate records outcome\n  `UNKNOWN | MET | NOT_MET` and evidence state\n  `UNKNOWN | OBSERVED | VERIFIED | CONTRADICTED | EXPIRED`. Unknown is never zero or\n  failure; preserve the exact question, owner, due date, and blocked action.\n- **Verdicts are deterministic, not scored.** Evaluator disagreement, an `UNKNOWN`\n  outcome, or any evidence state other than `VERIFIED` routes to\n  `DISCOVERY_REQUIRED`. With no discovery condition, verified `NOT_MET` routes to\n  `DEVELOP`. Only eight verified `MET` pairs can be `QUALIFIED_PENDING_REVIEW`.\n- **Amplify what is already working.** Verified new-idea, no-proof, undifferentiated,\n  overbroad-ICP, unfocused-offer, or capacity conditions route to one development action\n  and re-screening. They do not earn plumbing, publishing, or ad spend as a consolation.\n- **Fail closed on authority.** Prospect screening is public-read-only. Publishing,\n  messaging, permissions, Basecamp delivery, and spend require exact scoped approval;\n  `Not Active`, `HOLD`, missing roster evidence, or blocked plumbing stops execution.\n- The public guide is https://blitzmetrics.com/social-amplification/. The operational\n  control plane is the roster-driven Money Tree; derived output folders are not state.\n<!-- shared-rule:screen-gct-before-amplification:end -->\n\n<!-- shared-rule:content-factory-four-stages:start -->\n## Content Factory four stages\n\n- The Content Factory line is locked: **Produce → Process → Post → Promote**.\n  Do not rename, reorder, or merge these four.\n- **Plumbing** is onboarding / access / tracking **before** the factory\n  (`client-access-checklist`). It is not a factory stage.\n- **Perform** is MAA (Metrics → Analysis → Action) **after** the factory /\n  promotion loop (`weekly-brand-maa`). It is not a factory stage.\n- If copy still lists Plumbing / Publish / Promote / Perform as the factory's\n  4 P's, or uses Publish instead of Post inside that line, rewrite to the locked\n  names. Upstream skill: `skills/content-factory/SKILL.md`. Canon pages:\n  https://blitzmetrics.com/content-factory/ and\n  https://blitzmetrics.com/the-4-stages-of-the-content-factory/.\n- SAE course map (Plumbing → Goals → Content → Targeting → Amplification →\n  Optimization) is separate; the Content Factory block inside it is still only\n  Produce → Process → Post → Promote.\n<!-- shared-rule:content-factory-four-stages:end -->\n\n<!-- shared-rule:explain-with-linked-examples:start -->\n## Explain with linked examples\n\n- When explaining a concept (GCT, Content Factory, Dollar-a-Day, MAA, SAE, Nine\n  Triangles, or similar), always **show and link** at least one concrete example.\n  A definition alone is incomplete.\n- Prefer live canonical URLs: Task Library, Local Service Spotlight, blitzmetrics.com\n  SEO leaves, dennisyu.com. Never invent example URLs.\n- Pattern: one sentence what it is, one sentence why it matters, then the linked\n  example(s).\n- Starters: GCT → Task Library GCT task + theninetriangles.com; Content Factory →\n  https://blitzmetrics.com/content-factory/ and name Produce → Process → Post →\n  Promote; MAA → weekly-brand-maa / a client-safe Friday MAA; Dollar-a-Day → method\n  page + one public-safe winner when available.\n<!-- shared-rule:explain-with-linked-examples:end -->\n\n<!-- shared-rule:lss-is-the-public-company:start -->\n## Local Service Spotlight is the public company\n\n- **Dennis's current company in new public copy is Local Service Spotlight**, plus the\n  vertical spotlight sites (law firm, pest control, dunker, and the rest). Be specific\n  to that vertical. Do not present a sunset brand as the current company.\n- **Do not name the sunset brand (BlitzMetrics) in new public pages, client-facing\n  emails, social posts, or new product copy.** Historical URLs and git history may\n  still contain it. Do not add more.\n- **The existing canon/audit domain remains a publish host** for definitive articles\n  and audits. Linking that URL is fine. Calling it the current company is not.\n- Prefer `@localservicespotlight.com` addresses in new mail. Legacy aliases may still\n  deliver; they are not a reason to put the sunset name in the body.\n- This does not rewrite old articles or legal entity paperwork. It is a public-facing\n  naming rule for new work.\n<!-- shared-rule:lss-is-the-public-company:end -->\n\n<!-- shared-rule:outbound-email-names-the-agent:start -->\n## Every outbound agent action names the agent\n\n- **When agent-authored content reaches another person, name the agent in the\n  message itself.** This covers sent email, Basecamp comments and messages,\n  DMs, support replies, scheduled reports, and the human-visible receipt for a\n  publish or system change. A GitHub commit or private log is supporting\n  evidence, not a substitute for visible attribution.\n- End with one compact line:\n\n  `Agent receipt: <agent> [<model if known>] · action: <drafted|sent|posted|published|changed> · human review: <reviewed by Dennis|authorized, not separately reviewed|no human review recorded>`\n\n- Put the name a human recognizes first: `Claude`, `Codex`, `Grok`, `Cursor`,\n  or the actual agent name. A persona alone is ambiguous; write `Grok — Meter\n  Maid`, not only `Meter Maid`. Include the exact model only when the runtime\n  exposes it. Otherwise omit it or say `model UNKNOWN`; never infer it from the\n  writing style, OAuth client, or vendor name.\n- State review truthfully. `Reviewed by Dennis` requires evidence that Dennis\n  reviewed that exact message or action. Permission to act is not review, so\n  use `authorized, not separately reviewed` when that is what happened. If the\n  record is missing, use `no human review recorded`.\n- Resolve the exact destination, audience, thread or record before acting. If\n  routing or authority is unclear, fail closed instead of sending to Dennis or\n  asking him to relay the work.\n- An outbound action is complete only after source-system read-back verifies\n  the destination/audience, thread or record, intended content/result, and\n  agent receipt. A toast, sent item, commit, or private note alone is not proof.\n- Leave the next action with its real owner. For completed Gmail work, archive\n  the exact thread after verified action and restore it after seven days only\n  when no human reply arrived; automation and system notices are not human\n  replies.\n- Name the agent even when `From:` or the source-system creator is Dennis. That\n  identity is the delivery account; the receipt is authorship and action\n  transparency. Place the receipt after the body and before any automatic legal\n  footer.\n- If an agent only prepared material and a human sent the final version, use\n  `Prepared with <agent>; sent by <human>` when attribution is appropriate. Do\n  not label a purely human-authored message as agent-authored, and never invent\n  a fake human assistant signature to hide agent authorship.\n- For a public page or code change, put the line in the delivery receipt or\n  source-system update; do not add operational metadata to visitor-facing copy\n  unless the publishing brief asks for it.\n- This rule grants no authority to send, post, publish, spend, merge, or change\n  access. Apply the existing approval and destination rules first. Once an\n  outbound action is separately authorized, attribution is mandatory. When only\n  drafting, include the agent name in the draft so it survives handoff.\n- Scheduled prompts that may act externally must explicitly use the\n  `outbound-action-closeout` skill and embed its routing, receipt, read-back,\n  ownership, and fail-closed rails because an unattended session may not load\n  repository rules or prior conversation.\n<!-- shared-rule:outbound-email-names-the-agent:end -->\n\n<!-- shared-rule:definitive-articles-show-what-they-are-and-where-they-fit:start -->\n## Definitive articles show what they are, their evidence strength, and where they fit\n\n- **Name the kind of canonical page before judging it.** A task-definitive article\n  is the maintained recipe for one repeatable task. A topic, entity or framework hub\n  explains its subject and links to the task recipes it owns; it need not pretend to\n  execute one task. Supporting stories, opinion pieces, tool comparisons, references,\n  historical posts and meta-articles remain distinct. A repaired opening, lead visual,\n  incoming link or prior fleet-audit label does not promote any of them to a task SOP.\n- **A task recipe must let another worker repeat and check the work.** Require all of:\n  the trigger and starting state; required inputs and access; linked prerequisite tasks\n  and their expected outputs; ordered steps with decision points; the measurable output\n  and observable pass/fail criteria; and the downstream task, receiving owner/function\n  and handoff artifact. Link the canonical task in the\n  [Task Library](https://local-service-spotlight.github.io/task-library/) and its parent in the\n  [Content Factory](https://blitzmetrics.com/content-factory/). Do not invent a task,\n  prerequisite, threshold or relationship to fill a box. Mark a missing required field\n  as a gap and hold task-definitive certification until the source supports it.\n- **Keep the recipe separate from each execution record.** Every task execution writes\n  a [meta article recording the run](https://localservicespotlight.com/meta-articles/)\n  using the [meta-article guidelines](https://blitzmetrics.com/meta-article-prompt/).\n  It links to the exact canonical task, the recipe revision used and the run evidence.\n  Writing is required; publishing the meta article and changing the canonical recipe\n  follow the existing authorization for those actions. The run record feeds reviewed\n  improvements back into the recipe and skill; it never becomes a second recipe.\n- **The marker is a reviewed semantic claim, not a workflow status.** Mark a page as a\n  Definitive Article, Definitive SOP or Definitive Framework only after a reviewer has\n  confirmed that its labels, steps, links, evidence and canonical ownership agree with\n  the accepted source of truth. A complete Task Library task, an all-tasks-complete hub,\n  a taxonomy term or a `READY` state is useful workflow evidence, but none is sufficient\n  by itself. An archive, alias, WIP page or semantically conflicted page gets no marker.\n- **Mark the reviewed canonical hub visibly.** Put the appropriate marker above the\n  opening summary so a reader can distinguish the maintained source of truth from a\n  supporting post before scrolling. Supporting stories, updates and meta-articles point\n  to the hub; they do not wear the marker themselves.\n- **Keep certification, task priority and evidence volume separate.** Definitive status\n  says the page is the reviewed canonical owner. Task importance decides which gap to\n  work first. Meta-orbit strength measures only the number of verified completed-run\n  meta-articles behind the hub. None of the three may be used as a proxy for another.\n- **Derive each named metric from evidence; never type it into two sources.** One\n  generated manifest owns the exact hub URL, mapped Task Library tasks, counted and held\n  evidence records, known execution IDs or explicit missing-ID states, audit time,\n  metric names, counts and strength bands. The article and Task Library render from\n  that manifest. Keep historical public-example volume separate from verified task\n  execution frequency. If a metric cannot be checked, report `unknown`; if only a lower\n  bound is proved, report `partial`. Never turn either into zero.\n- **Preserve dated public-example counts as article volume.** An earlier review may\n  establish that a hub had a stated number of qualifying public meta articles on its\n  audit date without establishing execution IDs. Keep that dated evidence and its\n  inspectable sources. It remains historical public-example volume; it is not a claim\n  of that many distinct task runs. Missing IDs do not erase verified article evidence.\n- **Count task execution frequency separately.** Deduplicate each canonical task's\n  executions by ID and state the reporting period and result statuses. Revisions,\n  retries within one run, translations, clips and syndicated copies do not create\n  executions. A separately scoped rerun has its own ID and evidence. Keep failed/partial\n  and unpublished runs in internal history with their statuses. Older articles without\n  a reliable run identity cannot establish execution frequency; that metric remains\n  UNKNOWN or PARTIAL even when their dated article-volume count is valid.\n- **Count a primary worked example, not a generic cross-link.** A counted meta-article\n  must be published, explicitly classified as a meta-article, document a completed run,\n  materially execute the hub's task, and link to the exact canonical hub in its\n  task-specific narrative or receipt. A shared framework map, compliance table,\n  related-reading list, template, index, instructional page, archive, self-link or\n  incidental concept mention does not make the post part of that hub's orbit. Preserve\n  the reason for every excluded or held candidate.\n- **Use fixed, transparent evidence bands.** Show the exact count next to the definitive\n  pill and label 0 as `No verified examples`, 1–2 as `Emerging`, 3–5 as `Supported`,\n  6–10 as `Strong`, and 11+ as `Deep`. This label measures documented-run volume only,\n  not accuracy, freshness, traffic, quality or certification. Do not emit rating or\n  review schema from it.\n- **Make the graph work in both directions.** The Task Library task links to the final\n  canonical article. The article's generated, collapsed evidence footer links to the\n  exact filtered Task Library route and back to every counted meta-article. A stable\n  `?task=` route opens one task and a stable `?article=` route opens the complete hub.\n  A count without its inspectable source URLs is decoration, not evidence.\n- **Lead with the specific GCT and the article's own evidence.** In 2–3 sentences\n  at fifth-grade reading level or below, name who this is for, what it does, why\n  it matters and the useful outcome. Use the reader's actual situation and the\n  mechanism or evidence that makes the outcome useful; follow\n  `every-article-and-project-starts-with-specific-gct`. A generic benefit claim\n  or an acronym definition is not a passing opening. Keep the topic-specific visual beside that\n  short opening in the first screen; it may lead. A checklist is secondary and\n  must not push it below the fold. Keep the most\n  specific primary visual or proof for that article above the fold: the actual framework\n  diagram on a framework hub, the task-specific screenshot or flow on a software SOP,\n  or the real photograph, artifact or result that proves the work. A generic system map\n  must never displace that evidence or push it below the fold. Keep the audience in\n  the opening; move extended background, history and secondary evidence below it.\n- **Show where a task fits after its first-screen orientation.** A Content Factory task\n  needs a responsive context diagram lower in the article: Produce → Process → Post →\n  Promote in the maintained order, only the work this task performs highlighted, and\n  linked prerequisites → this task → the next task. Show the meta-record feedback into\n  the canonical recipe. This context map is additional to the topic-specific lead\n  visual. Keep access/tracking before the factory and measurement after it when those\n  boundaries apply. An unverified placement stays a stated gap; it is not permission\n  to invent a station or certify a task with an unknown handoff.\n- **Use the larger system map as truthful context.** When an established framework has\n  an exact relationship to the article, place its maintained detailed map after the\n  article-specific primary visual and highlight only the subcomponents the article\n  actually performs. Keep surrounding components visible but muted and caption what the\n  highlight and handoff mean. On a framework hub, the canonical framework diagram is\n  itself the primary visual and may serve both purposes.\n- **A stage-only highlight or no map is valid.** If the task belongs to a stage but no\n  named child station truthfully represents it, highlight only the stage and, where\n  useful, its verified boundary or handoff. If no honest placement exists, omit the map\n  and explain the cross-system relationship in text. Never activate a nearby box merely\n  to make the diagram look complete.\n- **Do not redraw a framework from memory.** Reuse the maintained labels, order, palette\n  and relationships. A task-specific flow may accompany the system-placement view, but\n  neither visual may make a relationship the accepted source does not support.\n\nNo fleet regex can enforce this honestly: a crawler cannot infer canonical ownership,\nprimary-parent evidence, truthful framework placement or whether a generic link documents\na completed run. Enforce it in the semantic preflight, source-backed orbit manifest,\nbidirectional-link verifier and rendered desktop/mobile review.\n<!-- shared-rule:definitive-articles-show-what-they-are-and-where-they-fit:end -->\n\n<!-- shared-rule:named-entities-link-to-the-most-helpful-canonical-destination:start -->\n## Named entities link to the most helpful canonical destination\n\n- **Route the first meaningful mention of a named entity to the page that best helps\n  the reader understand or act on it.** Link once; do not turn every repeated name\n  into a link. Use the entity's natural name for a person or company, and use 3–6\n  descriptive words for a training or concept link.\n- **People point to their verified personal-brand home.** Prefer the person's owned\n  website over an author archive, search result or social profile. If no owned site can\n  be verified, use the relevant first-party company page or a canonical article that\n  establishes who the person is; otherwise leave the name plain.\n- **Companies point to their owned company site.** Correct the entity name before\n  linking it. A plausible domain for the wrong spelling teaches the wrong association.\n- **Tools and concepts point to our canonical training when it exists.** In explanatory\n  copy, use a destination-naming phrase such as \"our Listen Notes inventory guide\" for\n  the definitive how-to page; do not point the bare product name at our domain. Put the\n  product's natural name and official website on the execution step where the reader\n  actually opens it. This preserves both education and a direct path to action without\n  making the anchor lie about where it goes.\n- **Search our article inventory before choosing a provider help page.** Look up\n  the object in the Canonical Directory, Task Library and site search, then read\n  the candidate to verify that it answers this reader's question. For Obsidian,\n  use “our Obsidian setup guide” when that guide is the relevant lesson. Record\n  the entity, chosen URL and reason in the link audit. If no suitable owned\n  guide exists, keep a conceptual mention plain or cite the precise primary\n  source needed for the claim; record the content gap instead of inventing a URL.\n- **Give the page a place in the SEO Tree.** Name the canonical parent topic,\n  link supporting articles up to it, connect the hub to useful supporting proof,\n  and link across only to related guides that help the next task. Verify those\n  links in the article body; a catalog listing or sitewide footer is insufficient.\n  One topic keeps one owner across our sites. Do not mass-add unrelated links or\n  use a quota to turn every provider citation into an internal link.\n- **Keep primary citations and execution links when they do a different job.**\n  A provider's API reference can substantiate a technical claim; its download or\n  sign-in page can be the required action. Label those links by their purpose\n  and retain them alongside our training when useful. A provider citation does\n  not replace the internal explanation of how we use the tool.\n- **Verify every destination before publishing.** The name, page title and live content\n  must identify the intended entity. SEO value is a by-product of a truthful,\n  reader-helpful relationship; it is never a reason to guess a domain.\n\nThis extends `no-unnamed-link-text`: that rule makes the anchor truthful; this rule makes\nthe destination useful. When a bare entity name and a training page would conflict, the\ndestination-naming anchor above is the reconciliation. No generic fleet regex can identify\npeople, ownership or the right internal training page, so enforce this through the\nentity-linking preflight and a live link audit.\n<!-- shared-rule:named-entities-link-to-the-most-helpful-canonical-destination:end -->\n\n<!-- shared-rule:visuals-above-the-fold:start -->\n## Visual and interactive content sits above the fold\n\n- **The visual is the hook, not the reward.** A chart, diagram, photograph,\n  calculator or interactive tool must be substantially visible in the first\n  screen alongside the page title. This applies to every fleet page, including\n  home, money, relationship, article, archive, resource and policy pages. Two or three sentences of\n  lead-in above it is the maximum.\n- **A blank or hidden block is a failed visual.** A colored shell, empty SVG,\n  broken image, loading placeholder, clipped labels or content visible only after\n  scrolling does not pass. The first screen must show a meaningful part of the\n  picture or diagram with readable labels, not just its border or a thin strip.\n  Give the figure an honest caption or accessible description of what it teaches.\n- **If the page has an interactive tool, the tool leads.** The prose becomes the\n  explanation of it, not the preamble to it. Reword any copy that points \"below\"\n  into a back-reference to the tool at the top.\n- **No prose run longer than about two screens** without a figure, pull quote,\n  callout or list breaking it.\n- **Why:** `every-article-has-pictures` only asks whether an image exists. A page\n  can satisfy it and still bury the picture four screens down, where nobody\n  scrolls. That is the exact failure this rule closes, and it shipped on\n  dennisyu.com before anyone noticed.\n- **Server-render the initial state of any interactive block.** WP Rocket and\n  similar optimisers delay inline JavaScript until the visitor's first\n  interaction, so a block that builds its own DOM paints as an empty shell —\n  worst of all when it is now the first thing on the page. Bake the default state\n  into the markup and make the script idempotent (`el.innerHTML = ''` before it\n  populates) so it replaces that markup instead of appending a second copy.\n- **Verify by measuring on the live URL, not the local render.** Site chrome is\n  routinely 300–400px, so a layout that clears the fold locally can fail once\n  published. Check at 1280x800 and 390x844 as an anonymous first visit, before\n  any click, scroll or other interaction. Capture the viewport and record the\n  visible content and its position, working media/labels, and overflow. Also\n  confirm the initial figure survives delayed or unavailable JavaScript.\n  Verify the saved source separately from the served page: source equality,\n  HTTP 200 and an image tag alone do not prove a working above-fold visual.\n- **Check what WordPress serves, including the CSS.** Paragraph formatting can\n  insert markup into an unprotected inline style block and discard its first\n  rule. Use a valid Custom HTML block (`wp:html`) and avoid blank lines inside\n  inline CSS. Compare the served markup and applied browser styles after the\n  save; a correct editor source does not prove the browser received valid CSS.\n- **Minimum visible proof:** on both required viewports, the loaded visual must\n  expose at least 220px of width and 160px of height, at least 40% of its own area,\n  and 8% of the viewport area. At least 90% of sampled visible points must be\n  unobscured by navigation, sticky bars or overlays. These are minimum acceptance\n  limits, not a design target. Show the face, action or diagram's useful labels;\n  geometric success cannot approve an irrelevant crop.\n- **Measure painted content, not letterboxing.** For contain/scale-down/none\n  images, use intrinsic aspect ratio, content-box dimensions and object-position\n  to measure the photo pixels that are actually displayed. Empty padding and\n  letterboxing cannot meet the visible-area or minimum-width requirement.\n  CSS backgrounds currently require background-size:cover for an automated\n  geometry pass. Contain, auto and explicit sizes stay unmeasured and fail that\n  gate until their painted bounds receive a dedicated measurement/review.\n- **Keep the title readable in that same first screen.** At least one natural\n  H1 (or level-one accessible heading) text line must be visible at 18px or\n  larger, with at least 90% of its text-line area visible and unobscured. A long\n  title may wrap; the visual may sit beside, above or below it. Do not fill the\n  viewport with a photo that hides the entire page title.\n- **A background must actually show through.** Loading the photo URL is not\n  enough. Opaque descendant panels and before/after overlays count as covers,\n  including pointer-events:none. Transparent text or a light tint can coexist\n  with the photo, but the useful visible crop still needs screenshot review.\n- **The content earns the space.** A logo, social icon, navigation, cookie banner,\n  decorative gradient, generic stock photo or unrelated portrait does not count.\n  Use an authentic relevant moment, playable captioned source video with a loaded\n  poster, or a specific diagram that teaches the page's point. Open the source\n  and the rendered screenshot. A coappearance alone never proves endorsement.\n- **Every page means every page.** The former prose/policy exemption is removed\n  by Dennis's 2026-09-05 instruction. A short policy can use a concise diagram\n  explaining its actual process. Do not invent a person or pad a page with stock.\n- **Keep media invited and silent during QA.** First paint must not autoplay.\n  YouTube uses youtube-nocookie.com, rel=0, cc_load_policy=1 and a page-language\n  cc_lang_pref. A click-to-play poster counts only when the real relevant image\n  loads and its destination/player is verified. An iframe rectangle, thumbnail\n  URL or screenshot of a broken player is not playable video proof. Follow\n  youtube-captions-on-by-default; never invent missing caption tracks. During\n  testing mute and set volume zero before any playback; use silent metadata and\n  posters if playback cannot be safely controlled.\n- **Use the browser gate in every builder and publisher.** After generating the\n  actual source, run scripts/rendered_visual_check.mjs on its preview and again\n  on the ordinary anonymous live URL after publication, with fresh screenshot\n  receipts for both viewports and JavaScript-disabled first paint. No selector,\n  geometry failure, missing image or measurement error is a pass. The checker\n  reads the numeric limits from this standard's rendered_gate header. Store the\n  selected visual, source/permission receipt, relevant lesson, crop/label review,\n  URL, timestamp and screenshot hashes in the existing proof inventory. Review\n  those actual screenshots before marking a page compliant; the script reports\n  geometry only and never invents a semantic or playback verdict.\n- **Reconcile hero style with this rule.** A composed full-bleed hero is welcome\n  where it works. If the usable evidence is a selfie or small authentic moment,\n  pair a restrained type layout with that image at an honest size above the fold,\n  or use a useful diagram. The older typographic-only fallback does not authorize\n  a first screen without a meaningful visual.\n\nThe HTML sweep remains an early source-order warning; it cannot measure the\nfold. The rendered browser gate plus source-backed editorial review is the\npublication acceptance gate. A merged standard, a regenerated skill, an installed\npack and a live-page pass are separate receipts. No whole-fleet success claim is\nvalid while unsampled URLs, Not Active stops or per-site holds are omitted.\n<!-- shared-rule:visuals-above-the-fold:end -->\n\n<!-- shared-rule:an-unanswered-ask-never-stops-the-work:start -->\n## An unanswered ask never stops the work\n\n- **Silence is not a blocker, it is a trigger.** When someone does not reply, the work\n  continues on the rescue path you chose before you sent the ask. \"Waiting on them\" is\n  never a status an agent reports twice.\n- **Try to need them less before you try to reach them harder.** In order: do it yourself;\n  route around; engineer the dependency so it cannot block again; only then ask. Most asks\n  disappear at step one once you actually test them, because \"I need this from them\" is\n  usually \"I would prefer this from them.\"\n- **Only three things justify asking a human at all** — binding authority, credentials or\n  physical access nobody else holds, and a fact that exists only in their head. Preference,\n  convenience, and \"they would probably want to weigh in\" are not gates.\n- **Every ask ships with its rescue, decided before sending**: a deadline, a named fallback\n  action, and you as the owner of that fallback. Put it in the message. \"If I do not hear\n  back by Friday I will assume X and proceed\" turns silence into a decision, and usually\n  produces the reply anyway.\n- **Shrink the ask until it can be answered in ten seconds.** One question, one message, a\n  yes or no where possible, plus what you already tried. A question that makes someone\n  reconstruct context is a question that does not get answered.\n- **When the deadline passes, execute the rescue quietly.** Do not re-send the same ask.\n  Do not hand the chase to whoever is busiest. Log the miss for the periodic reliability\n  record and move on: a pattern is a management conversation, held later with evidence in\n  hand, not an interruption now.\n- **The second time the same dependency blocks, stop treating it as a people problem.**\n  Build the thing that makes their non-response harmless — a watchdog, a fallback route, a\n  second credential, a cached copy. Building it once costs less than chasing it forever.\n- This does not loosen `agents-draft-humans-send`. Rescue means doing the *work* yourself,\n  never dispatching messages, publishing, spending or deleting on someone's behalf because\n  they went quiet. Where the rescue would cross that line, stage it and say so.\n- Rescue toward the function, not the person — see `assign-work-to-a-function`. A rescue\n  aimed at an individual who is away is not a rescue.\n- **A parked ask carries a date or it is not parked, it is dropped.** Any status row that\n  says \"waiting on\", \"blocked on\" or \"pending <person>\" must also say when someone\n  comes back to it. In the agent runtime this is failure mode `F10 Silence as a status`\n  and `tools/lint_unanswered_ask.py` fails the build on a row without a date. The first\n  run of that linter found two real ones: one five days old, one thirteen days old and\n  not actually blocked on anybody.\n- Canonical public statement, indexable and pulled at runtime by every scheduled agent:\n  https://dennisyu.com/unanswered-ask/ — linked from https://dennisyu.com/agent-disclosure/\n  and from the new-agent bootstrap box. Marker `UNANSWERED-ASK-RESCUE-2026-09-04`.\n<!-- shared-rule:an-unanswered-ask-never-stops-the-work:end -->\n\n<!-- shared-rule:every-article-and-project-starts-with-specific-gct:start -->\n## Every opening makes its reader, value and purpose clear\n\n- **Write the specific Goals, Content, Targeting before work begins.** Goals name\n  the change the reader or project needs; Content names the source-backed lesson,\n  proof or deliverable that will produce that change; Targeting names the people\n  and situation it serves. “Publish an article” or “use AI” is an activity, not\n  the desired outcome. Use the same brief for the article and the project behind it.\n- **Apply the same opening standard to every format.** Documents, reports, PDFs,\n  presentations, articles, homepages, landing pages, service pages, relationship\n  pages and task guides must earn attention at the beginning. Improve their\n  maintained owner in place. A report leads with the decision its evidence\n  enables; a guide leads with the task the reader can accomplish; a buying page\n  leads with the relevant customer need and the offer's supported value. Do not\n  paste a sales pitch or \"for entrepreneurs\" onto a page whose reader needs\n  something else.\n- **Put the reader's situation, why it matters and the useful outcome in the\n  first 2–3 sentences.** The first line offers a specific reason to continue:\n  a recognizable problem, a consequential finding or a true moment with a clear\n  lesson. Explain what this page or document helps the reader do and how the\n  offered method, evidence or tool helps. The reader may be named directly or\n  made unmistakable through their situation. They should not have to scroll\n  through history, credentials, an abstract definition or a system description\n  to find the point. Write the opening at US fifth-grade reading level or below.\n  Use familiar words and short sentences; explain unavoidable terms on first use.\n  Put commands, architecture details and specialist terms after this orientation.\n  Readers should not have to know the acronym GCT to understand the page.\n- **Make the value concrete without inflating the promise.** On an entrepreneur's\n  Money Tree page, explain how existing customer stories, interviews and useful\n  articles connect to what customers can buy. That gives a prospect relevant\n  proof and a clear next step. On another page, name that reader's actual useful\n  outcome: choose a service, check a result, prepare for a workshop or complete\n  a task. \"Build authority,\" \"unlock potential\" and \"follow the stories\" alone\n  do not explain the benefit. Do not claim increased conversions, revenue,\n  speed or certainty unless the evidence supports that exact claim.\n- **Use confident, source-backed language.** State the supported value directly.\n  Keep authentic moments and compact receipts; do not add doubt, reassurance,\n  hype, false urgency, invented statistics or status borrowing. A necessary\n  disclosure stays next to its claim. A true story may lead, but its relevance\n  and takeaway must become clear in that same short opening.\n- **Explain jargon on its first meaningful mention and link the owned explainer.**\n  Give the familiar phrase before the specialist label: “the result we want, the\n  material we will use, and who it serves — our\n  [Goals, Content, Targeting (GCT) brief](https://blitzmetrics.com/gct-business-strategy/).”\n  Apply this to other frameworks, acronyms and unfamiliar task terms. Verify the owned\n  destination teaches the term; use honest descriptive anchors. If no suitable owned\n  explanation exists, define the term in place and record the gap instead of inventing\n  a link. Keep this explanation short so it does not bury the lead visual.\n- **Make the opening specific enough to judge.** For a shared-memory guide:\n  “Use this guide if you work with more than one AI assistant and keep repeating\n  the same facts. It shows how to give them one set of notes, so each assistant\n  can pick up where the last one stopped.” The project brief also names the\n  source files, checks and expected handoff; never invent facts to fill the brief.\n- **Review meaning before accepting a score.** Save the exact opening and its\n  artifact revision in the existing editorial or proof inventory. Have a\n  reviewer identify the reader/situation, the reason to care, the useful outcome\n  and the mechanism or evidence supporting it, quoting the actual words. Then\n  check that the promised outcome is delivered by the body and next step.\n  Record PASS, FAIL or UNKNOWN with a concrete reason and the readability\n  diagnostic. A short paragraph, keyword, grade score, audience label or\n  conversion word alone never passes this gate. If the opening could be moved\n  unchanged to an unrelated subject, rewrite it. Unchecked meaning or readability\n  stays UNKNOWN; the check belongs in the internal receipt, not public copy.\n- **Keep the useful visual with the short opening.** Follow\n  `visuals-above-the-fold`: the topic-specific picture or diagram may come first,\n  or immediately after the short opening, whichever makes the first screen\n  useful. A long GCT card, checklist, changelog or navigation block must not bury\n  that visual.\n\n### Money Tree opening example\n\nBefore: \"A useful conversation becomes a story. The story points to something\nyou can learn, build or do with us. Here is how those connections look on my site.\"\n\nAfter: \"Your best customer stories should help your next customer decide to buy.\nA Money Tree connects those stories, interviews and useful articles to the\nservices you sell, so people can see your work and take the next step. Explore\nmine to see how the same approach can work on your site.\"\n\nThis is a writing example, not a measured conversion claim. Adapt it to the real\nreader, proof and contents of the artifact; do not duplicate it across the fleet.\n\nThe maintained public writing standard is\nhttps://localservicespotlight.com/article-guidelines/; the definitive-hub method\nis https://blitzmetrics.com/definitive-article-guide/. The older\n`/blog-posting-guidelines/` page is an archive and SEO leaf. Improve these owners\nin place rather than publishing a competing guideline. No regex can honestly\ncertify a specific GCT or human comprehension; enforce this in editorial review.\n<!-- shared-rule:every-article-and-project-starts-with-specific-gct:end -->\n\n<!-- shared-rule:every-task-execution-writes-a-meta-article:start -->\n## Every task execution writes a meta article\n\n- **Write the run record every time the task is executed.** Follow the\n  [meta-article guidelines](https://blitzmetrics.com/meta-article-prompt/) and the\n  [recipe and run-record relationship](https://localservicespotlight.com/meta-articles/).\n  A task's definitive article is the reusable recipe. Its meta article records one\n  actual execution. Writing the meta article is required even when publication is\n  pending or the run ends failed, partial or blocked after work began. A plan that\n  never executes is a plan, not an execution example.\n- **Make the record checkable.** Include a stable execution ID; canonical task URL and\n  recipe/skill revision; trigger and starting state; date and operator; inputs and\n  prerequisite outputs; steps taken and deviations; output and pass/fail results;\n  evidence links; lessons; and the next action, artifact and receiving function. Record\n  steps, time, token use and cost when measured; preserve UNKNOWN when unavailable.\n  Protect credentials and private data, and retain the full record in an authorized\n  location when a public-safe version cannot include them.\n- **Writing and publishing are different states.** Write and save the meta draft under\n  the task's existing authority. Publish or send it only through the applicable\n  authorized rail. Preserve draft, reviewed, published and verified states accurately.\n  An internal agent note, task comment or publication receipt is useful evidence but\n  does not replace the structured meta article. Required writing grants no new send,\n  publish, merge, spend or access authority.\n- **Close the learning loop with evidence.** Compare this run and prior meta articles\n  with the canonical recipe. Propose the smallest supported correction for a missing\n  input, ambiguous step, failed check or handoff. Record the decision and version any\n  accepted recipe/skill change, using the existing review and publishing authority.\n  Link the change back to the run evidence. No improvement is needed when the evidence\n  reveals no defect; do not rewrite a working recipe just to show activity.\n- **Count distinct executions once per canonical task.** Use the execution ID to\n  deduplicate drafts, edits, derivatives and retries within a run. A separately scoped\n  rerun has a new ID and its own evidence. Keep failed/partial and unpublished records\n  in internal history with their status. Verified execution frequency and dated public\n  example volume are separate metrics. Existing reviewed public-article counts remain\n  valid as historical article volume even when those articles lack execution IDs; they\n  do not establish task frequency. Preserve the evidence and audit date. Execution\n  uncertainty remains UNKNOWN or PARTIAL; do not infer a run from a mere link.\n- **Do not create a documentation loop with no end.** Writing and revising the meta\n  article is part of the original execution. It does not recursively require another\n  meta article unless a separate documentation task is explicitly scoped and executed.\n\nNo text pattern can prove that a task ran, an artifact passed, or two pages describe\nseparate executions. Enforce this through the run record, evidence manifest and review.\n<!-- shared-rule:every-task-execution-writes-a-meta-article:end -->\n\n<!-- shared-rule:show-the-moment-not-the-resume:start -->\n## Show the moment, not the resume\n\n- **Public proof should let the reader witness a true moment, not watch the subject\n  recite a resume.** Build each proof story from five parts: the scene, why it mattered,\n  the person and their relevant role, one true human beat, and a compact receipt. The\n  human beat may be funny, awkward, generous, surprising, or humble, but it must come\n  from the source. Never manufacture personality or imitate another storyteller.\n- **Use the narrowest relationship word the evidence supports.** `Interviewed`, `hosted`,\n  `shared a meal`, `spoke at the same event`, and `worked on X` describe observable\n  moments. Reserve `friend`, `partner`, `client`, `mentor`, and similar durable terms for\n  a source or owner attestation that supports them. A verified photograph proves that\n  people were together for that moment; it does not by itself prove praise, friendship,\n  or endorsement.\n- **Praise must be exact and named.** A testimonial or endorsement needs attributable\n  positive language from an identified person or organization and a reviewable source.\n  Anonymous praise, initials-only praise, and domain-only claims stay `HOLD`; do not\n  turn missing identity into warmer copy.\n- **Keep the receipt compact.** A caption or source line can name the artifact, date,\n  format, and link. Explain evidence categories once in a short page-level key instead\n  of attaching a disclaimer to every photograph and sentence. Keep a local qualifier\n  only when omitting it would materially mislead. The full classification, permission,\n  and audit trail belong in the canonical inventory, not in the reader's path.\n- **Run the trophy-name test.** Remove the recognizable name from the paragraph. If no\n  useful scene, lesson, decision, or outcome remains, the name is functioning as a trophy.\n  Reframe around what happened and what the reader can take from it, or cut the item.\n- **Run the courtroom test.** If the page repeatedly argues what each item does *not*\n  prove, it sounds as though the author doubts the evidence. Keep the underlying gate\n  strict, then state the supported fact once in ordinary language. Confidence comes from\n  precise evidence, not from louder claims or repeated self-defense.\n- **Reconciliation with `order-proof-by-authority`:** Who / Where / What scores rank\n  evidence that already passed its truth and permission gates; they do not license status\n  borrowing. Lead with the strongest *useful* moment for this reader. A high Who score\n  cannot rescue a weak What score, and video outranks text because it preserves more of a\n  meaningful moment, not because a famous face transfers authority by proximity.\n\nNo honest fleet regex can determine whether a paragraph contains a lived scene, whether\nthe humor is true, whether a relationship word outruns its evidence, or whether a name is\ndoing all the persuasive work. Phrase bans would also flag quotations, legal disclosures,\nand accurate criticism. Enforce this standard through the source-backed editorial\npreflight, the canonical proof inventory, and a rendered-page review using the two tests\nabove.\n\n\n### Money pages and the site's Money Tree\n\n- Each eligible site keeps a current public-safe Money Tree: the site's actual\n  home/domain is the trunk, its buying/service destinations are branches, and\n  relevant published stories, videos and other supporting pages are leaves.\n  Link each real node to its canonical page. Do not manufacture branch traffic,\n  customers or results. Use the existing agent-runtime money-tree renderer,\n  source truth tables and cadence; do not create a competing client roster or clock.\n- A small opening diagram is a navigation overview, not the whole inventory.\n  Show the real breadth of the scoped tree through meaningful groups, readable\n  branches and inspectable leaves. State the selection and coverage beside an\n  overview, with a clear route to the complete map and text outline. Do not\n  flatten a large tree into a handful of cards that imply those are all its\n  offers, topics or proof. Do not add decorative leaves or fictitious nodes to\n  make it look abundant. The full map and useful initial state remain available\n  without interaction or JavaScript.\n- Name exactly what each count measures and date it. \"Published posts linking\n  to this offer\" is different from total relevant stories, customers, examples\n  or all pages on the site. Deduplicate body links under the existing method;\n  show a narrow count as a narrow count. Never disguise sparse link coverage by\n  relabeling it as total proof, or expand the count without source evidence.\n- Put that diagram where a visitor can find it, and use its relevant branch or\n  useful full tree on the money page when it explains the offer. Every money\n  page still has meaningful above-fold proof; the full tree need not replace a\n  better authentic opening moment. Link the supporting leaf to the relevant\n  buying branch and to the practical how-to where it helps the reader.\n- Spread useful proof through the decision: one relevant visual at the opening,\n  attributable example or demonstration beside each material outcome claim, and\n  another relevant proof moment near the primary buying action. A purchase page\n  cannot pass with one generic testimonial block at the bottom. If the evidence\n  does not support a claim, narrow or remove the claim; never invent a result or\n  count duplicated cards as additional proof.\n- Public trees show only public structure and content evidence. Sessions, leads,\n  booked jobs, conversion rates, revenue, client finances and private priorities\n  stay in the authenticated client version, including in alt text, hidden HTML,\n  JSON-LD, images and metadata. NOT_CONNECTED is not zero. Follow the existing\n  agent-runtime money-tree public/private boundary and canonical Money Tree\n  method at https://blitzmetrics.com/money-tree/.\n- A relationship refresh adds a newly verified moment, useful lesson or relevant\n  next step. It does not simply rotate names or strengthen the relationship word.\n  Review priority connections and money pages weekly and all other eligible\n  sites/pages monthly through existing owners and reconciled schedules. Record\n  the actual next due date; unknown ownership or publication rails remain HOLD.\n  Keep audit categories and review notes internal, with one compact public source\n  line when useful. Never make the reader defend the author's legitimacy.\n<!-- shared-rule:show-the-moment-not-the-resume:end -->\n\n<!-- shared-rule:icon-only-social-controls-stay-tappable:start -->\n## Icon-only social controls stay tappable and separate\n\n- **Make every icon-only social link a real control, not a glyph-sized target.** Its\n  computed hit area is at least 44 by 44 CSS pixels, and adjacent hit areas have a\n  deliberate gap of at least 8 CSS pixels. The visible icon may be smaller inside that\n  area. Do not use transparent overlap or negative margins to simulate spacing.\n- **Give every control an accessible name.** Prefer a concise name on the link such as\n  `aria-label=\"LinkedIn\"`; visible or visually hidden text and a valid\n  `aria-labelledby` relationship also work. Inspect the accessibility tree and confirm\n  the computed name. A platform-shaped glyph, tooltip on hover, URL, or empty label does\n  not name the control.\n- **Fix the owning template first.** Trace the rendered control to the root header,\n  footer, reusable block, or component and correct it there. Find and verify every\n  responsive copy; builders often keep separate desktop, tablet, and mobile widgets,\n  and a page-level override can leave another copy broken. Rebuild generated CSS and\n  refresh static or caching layers through their supported path, then compare stored\n  source with what an anonymous visitor receives.\n- **Measure the rendered page at 390px wide and at desktop width.** Record each control's\n  computed width, height, accessible name, and gap to its neighbour. Confirm controls do\n  not overlap or clip and `document.documentElement.scrollWidth` is no greater than the\n  viewport width. Check keyboard focus on desktop and touch layout on mobile. A source\n  value, editor preview, or successful save is not rendered QA.\n- **Do not copy a selector or patch blindly across sites.** Before a fleet change, match\n  the exact site status and publishing authority, CMS/theme, builder or header renderer,\n  owning template/component identifier, and the defective rendered signature. Back up\n  each target, record before/after hashes and a rollback action, publish through that\n  site's supported rail, and read it back. A mismatched fingerprint, unknown status,\n  explicit hold, abnormal document, or missing rollback stays `HOLD`; it is not evidence\n  that the rest of the fleet is fixed.\n\nThe fleet check deliberately catches only the unambiguous empty-`<i>` form of an unnamed\nicon link. Static HTML cannot honestly prove computed hit-area size, separation,\nresponsive visibility, overflow, or every valid accessible-name relationship. Those\nremain browser measurements on the rendered page; broad class-name or inline-style\nregexes would create fragile false positives across different themes and builders.\n<!-- shared-rule:icon-only-social-controls-stay-tappable:end -->\n\n<!-- shared-rule:skills-packs-plugins-and-jobs-have-distinct-states:start -->\n## Skills, packs, plugins, workers and jobs have distinct states\n\nUse these terms to choose the setup your business needs. Start with one guide and one job. Check the result before you add more tools.\n\n- A **skill** is a written recipe for a kind of task. A **skill pack** is a selected group of skills. A **plugin** is a package for a particular app; it may contain skills, tool connections or other components. Name only what the reviewed package contains. Use the [owned explainer](https://localservicespotlight.com/plugin/) and [pack library](https://localservicespotlight.com/skill-packs/).\n- An **agent** is the AI worker doing an assigned task with approved tools and access. A **job** is an assigned run with inputs, checks and a result. A **scheduled job** adds a saved time or supported event; installing instructions does not create a worker or schedule. Link the [agent guide](https://blitzmetrics.com/build-agents/) and [job guide](https://blitzmetrics.com/persistent-agents/).\n- **Access** is permission to reach a source or tool in the named account and environment. Record required access, granted scope, observed connection and remaining human action separately. A downloaded ZIP, installed plugin or ready document proves none of them. Never infer approval from a package, task status or connected account.\n- **Document-ready** means the recipe has its required content and review. Task Library `complete` is a contributor-supplied document-status claim. It does not by itself prove that the guide meets the required content and review standard, or that a client task ran. Record independent document review, installed-skill activation, source access, scheduled firing, business success and semantic certification separately. Record actual executions separately with their IDs, outputs and checks.\n- Make the ZIP a useful first start: include a short start file, a one-task draft prompt, a manifest and dated source information. Say whether it is a guide archive or a platform-installable package. A downloaded snapshot does not update itself. Do not tell readers to delete old copies without considering their rollback and active-job dependencies.\n- Use the current maintained marketplace URL and exact package name. Derive any counts from its manifest, with a revision/date; do not equate the broad Task Library with the smaller curated marketplace. Mark older names and installation receipts as historical, and verify actual installed copies before claiming parity.\n- Check external platform claims against current official docs for that product, surface, plan and environment. Keep package format, installation, activation, connectors, local-file access and scheduling separate. No blanket promise that every job works on a free plan, on a phone, or while the laptop sleeps. Confirm the actual first run, output and failure handling before calling a schedule observed.\n<!-- shared-rule:skills-packs-plugins-and-jobs-have-distinct-states:end -->",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "0440e9e34a48150b10ebe4857cae550849a5813de5be06a8e969de9dc4479737",
      "reviewed_at": "2026-09-06",
      "reviewer": "Codex editorial review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed at the pinned upstream source. Actual run and article certification remain separate."
     },
     "download": "https://github.com/dennisyu/local-service-spotlight-skills/archive/86e7acdd22325566203e213b8c0c86e8583576e9.zip",
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=positive-mentions-harvester#task-positive-mentions-harvester",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0440e9e34a48150b10ebe4857cae550849a5813de5be06a8e969de9dc4479737",
      "articleKey": "blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-09-06. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed at the pinned upstream source. Actual run and article certification remain separate.",
        "reviewedAt": "2026-09-06",
        "reviewer": "Codex editorial review",
        "sourceSha256": "0440e9e34a48150b10ebe4857cae550849a5813de5be06a8e969de9dc4479737"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0440e9e34a48150b10ebe4857cae550849a5813de5be06a8e969de9dc4479737"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-collect-organize-positive-mentions-to-build-authority/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "4 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/how-we-built-jonathan-mast-positive-mentions-tracker/",
         "https://blitzmetrics.com/how-we-built-justin-sonnenreich-positive-mentions-tracker/",
         "https://blitzmetrics.com/how-we-taught-magic-berry-by-example/",
         "https://blitzmetrics.com/how-we-turned-30-mentions-into-a-factory/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 268,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Deliver a personal-brand site from a request",
     "slug": "deliver-personal-brand-site-from-request",
     "status": "complete",
     "stage": "Post",
     "article": "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
     "articleKind": "task-recipe",
     "desc": "Build a site from the owner’s real request.",
     "content": "---\nname: deliver-personal-brand-site-from-request\ndescription: \"Build a site from the owner’s real request.\"\ncategory: Personal Branding\nstage: Post\ndefinitive_article: https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/\nstatus: complete\n---\n\n# Deliver a personal-brand site from a request\n\nTurn a site request into a page that shows your work and helps people reach you. Use [the site build guide](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website) to shape the page from your real photos and proof. Then use the checks here to get it live and test the email services a site change could affect.\n\n**The path:** Full request → Checked preview → Exact domain plan → Verified live site\n\n**Start when:** A person requests a site and identifies the domain they actually control.\n\n## Inputs\n\n- The full original request, accepted business scope, intended reader and goal.\n- The domain owner, existing site/source, hosting plan, mail records and [Domain Name System (DNS) settings](https://local-service-spotlight.github.io/task-library/?task=ensure-proper-dns-records#task-ensure-proper-dns-records)—the records that direct a web address to its host.\n- Verified bio, photos, proof, source rights, supported build tools and deployment/send authority.\n\n## Steps\n\n1. Read the entire original conversation. Resolve the correct person, actual domain and current request, including changes of mind. Record what the site should help its reader do before collecting more material; do not choose a domain from an old email alone.\n2. Collect the existing approved bio, photos, interviews and proof. Verify load-bearing facts against their sources and keep private material private. Complete safe preparation before requesting genuinely missing assets, with the missing item tied to a specific blocked section.\n3. Use [Build the personal brand site](https://local-service-spotlight.github.io/task-library/?task=build-personal-brand-website#task-build-personal-brand-website) for the content build. Produce a concrete preview with real media, the person’s own voice, source-backed proof and clear contact path. Use the current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) opening and visual requirements; retain layout and builder data on an existing site.\n4. Use [the domain ownership check](https://local-service-spotlight.github.io/task-library/?task=verify-domain-ownership-and-registrar-access#task-verify-domain-ownership-and-registrar-access) to identify the registrar (the company where the domain is registered) and authoritative DNS provider (the service that holds its live settings) from actual records and the authorized account. Nameservers show where DNS is served, which may differ from the registrar. Read the existing web, mail and verification records before preparing a change.\n5. Prepare only the exact web records required by the selected host, with current before-values and recovery steps. An A record points a web name to a server; changing it can affect other services, including mail. Use [the domain email guide](https://local-service-spotlight.github.io/task-library/?task=set-up-professional-email-on-domain#task-set-up-professional-email-on-domain) to check mail routes and authentication. Inspect affected MX records (mail routes), their target hosts and A/AAAA records (internet addresses) too, and prepare a full zone plan before changing nameservers.\n6. Link instructions for the actual provider and the observed controls. If a maintained guide is missing, link the provider’s current official documentation and record the exact control needed. Give the documentation owner a bounded guide request; create and publish that guide only within existing documentation authority. This does not make the site request authority for unrelated work. Do not copy a fleet IP, nameserver set or automatic certificate promise from another site.\n7. Prepare the reply with the checked preview and one concrete owner action. Keep it a draft unless sending is authorized. Provision, map the domain and publish only through the accepted deployment rail; keep DNS pending, built and live as separate states.\n8. After launch, check the normal public URL, [HTTPS and mixed content](https://local-service-spotlight.github.io/task-library/?task=configure-https-with-no-mixed-content#task-configure-https-with-no-mixed-content), intended content, media, contact path and relevant retained mail configuration. Save a scoped mail check or mark mail continuity unverified; unchanged records alone do not prove mail delivery. Save the exact source and evidence, then return the verified result to the original conversation under its send authority.\n\n## Output record and acceptance\n\nSave a site-delivery record with the request ID and revision; controlled domain and owner evidence; approved fact/media sources; preview URL and revision; owner decision; current host and DNS/mail record snapshot; exact proposed change and rollback; deployment state; checked URL count and each URL’s response code, secure HTTPS result and desktop/mobile result; contact-path result; open issue and next owner. Count approved facts with source links against total facts proposed. Report each site state separately (`draft`, `preview`, `approved`, `configured`, `live`). The site owner accepts the exact preview and domain plan. Name the authorized publishing owner in the record; deployment stays pending until assigned. That owner acts only after recorded authorization; mark the site `live` only after the normal public URL returns the expected page over HTTPS and the contact path and required desktop/mobile checks pass. An absent approval, inaccessible account or unchecked URL remains pending.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The preview’s facts, voice, media and first-screen value are reviewed against sources.\n- [ ] The domain plan is exact to the current host and preserves recorded dependent services.\n- [ ] Only the checked public domain is called live; draft replies and owner dependencies remain explicit.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional owner first mentions an old domain, then confirms a different domain she controls. The team builds a preview from her real photos and checks the active mail records at the current DNS host. It drafts one exact web-record action. The job remains blocked on that owner action until the final public site is verified.\n\n## Handoff and Content Factory context\n\nThe site owner accepts the preview and exact domain plan. The authorized publishing function receives the recorded approval and rollback plan. After public checks pass, [Review search and real inquiries](https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities) receives the verified URL and actual source connections. The original request remains the parent record.\n\n**[Content Factory](https://localservicespotlight.com/content-factory/) stage: Post.** This task places approved identity content on the owner’s site and checks the served pages and contact path. It does not include paid promotion.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThese instructions passed a written review. Use the Task Library to see the separate article, execution and setup evidence. A written review does not prove account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "66415ee2457f5f27eca9ce7e1520d4256b5036d5f94e7bae249078d6c423dd08",
      "reviewed_at": "2026-10-15",
      "reviewer": "Codex independent review, configured gpt-6.1-sol high",
      "scope": "Five written instruction checks only. Inspected exact two-line status/review-copy diff; existing opening, method, sources, examples and handoff are unchanged. Previous five semantic instruction verdicts retained with explicit incremental review. Article certification, actual current-recipe execution, installation, scheduling and novice-human setup remain separate.",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "links": {
         "state": "pass",
         "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "705a14ae2d6b495c569641f4099bf85b5a451385ef403cf015b12b009ccbcf26",
       "previousReviewDate": "2026-10-13",
       "change": "Only contributor status needs-work to complete and written-review wording changed. The recipe, examples, opening, links and handoff remain byte-for-byte unchanged."
      }
     },
     "flag": "Written instructions reviewed; article, accepted execution and new-user setup evidence remain separately checked.",
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-277118d625a087d83d91240c",
        "taskSlugs": [
         "deliver-personal-brand-site-from-request"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "date",
          "value": "2026-08-22"
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-14T16:13:04.878652+00:00",
        "outcome": "One personal-brand website delivery is supported by its original delivery conversation, a current live output check and the recipient confirming access and taking over further refinement. The current page is a later version; original build timing and recipe use remain unknown.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "One original delivery conversation and one site; the follow-up acknowledgment belongs to the same job. Checked against existing ledger identities; no duplicate source job."
         },
         "output": {
          "state": "pass",
          "notes": "Original delivery names the live personal-brand site. Current normal public page returns200 with six navigation destinations. This proves a surviving site, not exact original page bytes."
         },
         "acceptance": {
          "state": "pass",
          "notes": "Recipient accepted site and companion-page setup, confirmed existing editing access, and took responsibility for continued building/refinement. This covers setup/access/transfer only, not all page/design criteria, original source-byte parity, current-recipe acceptance or novice setup."
         },
         "handoff": {
          "state": "pass",
          "notes": "The recipient explicitly confirms access and takes responsibility for further building and refinement; private exact response retained."
         }
        },
        "evidenceUrls": [
         "https://leithuwaydah.com/"
        ],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 1,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 1,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-277118d625a087d83d91240c"
      ],
      "historicalAcceptedEvidenceIds": [
       "historical-277118d625a087d83d91240c"
      ]
     },
     "standardVerification": {
      "instructionSourceSha256": "66415ee2457f5f27eca9ce7e1520d4256b5036d5f94e7bae249078d6c423dd08",
      "articleKey": "blitzmetrics.com/from-one-email-to-a-live-personal-brand-site",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-15. Review scope and limits: Five written instruction checks only. Inspected exact two-line status/review-copy diff; existing opening, method, sources, examples and handoff are unchanged. Previous five semantic instruction verdicts retained with explicit incremental review. Article certification, actual current-recipe execution, installation, scheduling and novice-human setup remain separate.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent review, configured gpt-6.1-sol high",
        "sourceSha256": "66415ee2457f5f27eca9ce7e1520d4256b5036d5f94e7bae249078d6c423dd08"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-15",
        "reviewer": "Codex independent review, configured gpt-6.1-sol high",
        "reviewScope": "Five written instruction checks only. Inspected exact two-line status/review-copy diff; existing opening, method, sources, examples and handoff are unchanged. Previous five semantic instruction verdicts retained with explicit incremental review. Article certification, actual current-recipe execution, installation, scheduling and novice-human setup remain separate.",
        "sourceSha256": "66415ee2457f5f27eca9ce7e1520d4256b5036d5f94e7bae249078d6c423dd08",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact opening quoted in review: task, practical reason and explained owned connection. First-screen diagram and opening checked in phone and desktop article previews. Readability diagnostic saved; actual meaning judged separately.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Trigger, source/access inputs, ordered steps, countable result record, acceptance and real scope are explicit. Setup, access, one task and optional schedule stay separate.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "links": {
           "state": "pass",
           "reason": "Owned prerequisite and receiving-task bodies read; normal destination checks succeeded. Empty GBP course replaced with the relevant maintained task; primary Google and DNS sources support provider claims.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Unsupported Google guarantees and site-launch assumptions removed. False identity matches excluded; examples fictional; actual approved terms, domain configuration, output checks and receiver evidence required.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Exact proposal, identity map or site record goes to a required reviewer/owner. Assignment is a prerequisite, not a claim of staffed roles. Qualification precedes delivery; Process identity feeds Post site work.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "deliver-personal-brand-site-from-request",
         "canonicalURL": "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
         "sourceSha256": "2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-10-23T05:55:39.276063Z",
         "reviewer": "Codex scoped publication follow-up; prior independent source review retained",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "The three plain sentences name the task and value, then link a useful source connection: “Start with the personal brand guide to choose the facts and photos for the page.” Its maintained guide teaches identity, site, real work and outside proof. Approximate opening diagnostic 3.46; body supplies site and launch checks.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://blitzmetrics.com/personal-brand/"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "“Site delivery guide · Personal Branding” declares a recipe: full request, checked preview, exact domain plan, authorized launch and verified handoff. Group intake is conditional; the build task supplies content. Preview, configured and live states remain distinct.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ]
          },
          "owner": {
           "state": "pass",
           "reason": "“Local Service Spotlight maintains this site-delivery recipe.” “Guide author Dennis Yu” links his verified personal home. This supports maintainer and author identity without treating the uploading account as authorship proof.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://dennisyu.com/"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "“The eight steps” provide trigger, sourced facts/media, usable domain/DNS access, checked preview, exact before/after/rollback, owner decision, scoped deployment and normal public tests. “For each checked public URL, record the response code, HTTPS result, phone and desktop result, and contact-path result.” Preview is interim.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Current public task data and actual renderer select the named exact task rows/fragments; maintained destination bodies teach the stated roles. Personal-brand owns identity/proof/site planning; group intake stays conditional; QA is before launch or major change. The public parent/child placement now supplies relevant body links, with its execution acceptance recorded separately.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "sha256:418d98f30396270042e68bf2d5ac59aa41b4d129c83e651163950570929ec0df",
            "sha256:dd8325396f960faf053df105b298b4dff987990add588182f2a4fe132f0ec073",
            "https://blitzmetrics.com/personal-brand/",
            "https://localservicespotlight.com/article-guidelines/"
           ]
          },
          "sourceEvidence": {
           "state": "pass",
           "reason": "“Leith Uwaydah’s personal brand site is a surviving output from an August 2026 site-delivery job.” The linked real output and privately retained original source support historical setup/transfer only. The article preserves later-page revisions and explicitly keeps original recipe use/full launch checks unverified. It claims no current-recipe run or novice success.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://leithuwaydah.com/"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "“This recipe serves Post in the Content Factory.” The lower map highlights Post; source facts/photos and preview feed launch. “The publishing owner receives the approved launch plan.” After public checks the measurement task receives the verified URL and actual connected sources; open issues and one parent run ID remain visible.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "https://localservicespotlight.com/content-factory/",
            "https://local-service-spotlight.github.io/task-library/?task=measure-search-impressions-traffic-inbound-opportunities#task-measure-search-impressions-traffic-inbound-opportunities"
           ]
          },
          "visualAndLayout": {
           "state": "pass",
           "reason": "Reviewed the dated live-browser QA record: root inspected actual anonymous CSS1280x800 and390x844 screenshots, a readable four-step lead diagram and plain opening, plus lower Content Factory map with Post highlighted and launch/measurement handoff. No horizontal overflow; no media played. This verdict relies on that observed visual receipt, not SVG existence or a claimed novice test.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "sha256:1302ecb94d1349da011505ab433ea71ad058e2ce32699a041c920dedbc362737",
            "sha256:b542b02f5c07ceb0dae8f20bf65aeec51d80b3b8f4db889b7c7ad39df9471df7",
            "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/"
           ]
          },
          "publicationStandards": {
           "state": "pass",
           "reason": "The normal public title is 47 characters and the 136-character description and canonical tag remain correct. Both /site-delivery slash variants return exact301 to the canonical guide, which returns200 directly. Native body and metadata are unchanged. This closes only the prior title-readback/short-route hold; unchanged criteria retain their cited prior review. No client execution or novice proof is inferred.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-short-route-2026-10-23.md",
            "https://blitzmetrics.com/site-delivery/",
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e"
           ]
          },
          "acceptanceResults": {
           "state": "pass",
           "reason": "Prior scoped independent acceptance of the unchanged published guide remains valid: stored bytes, anonymous parity, observed phone/desktop visuals and historical-output limits. The later short-route/title follow-up closes only publication issues. This accepts the guide, not a client site launch, current-recipe site execution or unassisted novice-human result.",
           "evidenceRefs": [
            "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
            "sha256:b542b02f5c07ceb0dae8f20bf65aeec51d80b3b8f4db889b7c7ad39df9471df7",
            "sha256:1302ecb94d1349da011505ab433ea71ad058e2ce32699a041c920dedbc362737",
            "https://leithuwaydah.com/"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "deliver-personal-brand-site-from-request",
         "canonicalURL": "https://blitzmetrics.com/from-one-email-to-a-live-personal-brand-site/",
         "sourceSha256": "2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-23T05:57:20.828695Z",
         "observer": "codex-root-scoped-post-route-source-readback",
         "state": "observed",
         "reason": "Separate post-review native GET matches the reviewed body. Ordinary canonical public body also matches saved rendering under documented transforms; exact metadata/alias checks remain separate. No execution or novice inference.",
         "evidenceRefs": [
          "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/site-short-route-2026-10-23.md",
          "https://blitzmetrics.com/site-delivery/",
          "sha256:2065bc25288a74e8a431918caa77912e1e160852d831e1c92e52fca06168db7e",
          "sha256:00be28ba297dc07b732d2b7cdde74031e8986af0fb1644290654fc7e60c3f365"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "1 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://local-service-spotlight.github.io/task-library/maintenance/historical-site-handoff-2026-10-19.html"
        ],
        "auditedAt": "2026-10-19"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 258,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "The article revision observation is outside the 24-hour freshness window."
     }
    },
    {
     "title": "Manage a group member website request",
     "slug": "manage-group-member-website-request",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/group-website-request-intake/",
     "articleKind": "task-recipe",
     "desc": "Keep each member’s site request from getting lost.",
     "content": "---\nname: manage-group-member-website-request\ndescription: \"Keep each member’s site request from getting lost.\"\ncategory: Personal Branding\nstage: —\ndefinitive_article: https://blitzmetrics.com/group-website-request-intake/\nstatus: needs-work\n---\n\n# Manage a group member website request\n\nKeep each member’s site request from getting lost. This guide tracks the facts, the build and the next person’s action in one record. Start with the real request and the group’s shared intake list.\n\n**The path:** One request → Validated facts → Site playbook → Owner action → Verified result\n\n**Start when:** A verified group member submits a website request into the group’s accepted intake process.\n\n## Inputs\n\n- The original intake entry, group/member identity and accepted eligibility rules.\n- Current domain, site goal, language, bio, real photos, permissioned proof and public contact preferences.\n- The existing shared request record, original conversation, build owner and actual access to those sources.\n\n## Steps\n\n1. Find or create the single request row in the accepted shared intake. Match the member using the agreed identifier and keep staff tests distinct. Do not build a competing tracker or expose a private form response in a public status page.\n2. Validate the intended person, actual controlled domain, current site and goal. Check the source folder can really be read and list missing assets precisely. A submitted form or a paid membership does not prove domain control, deployment access or consent to publish every field.\n3. Inspect the domain’s current web and mail dependencies before preparing setup instructions. Record the actual authoritative DNS host separately from the registrar. Preserve mail and verification records; no-email on the form is not by itself permission to change nameservers.\n4. Hand the checked packet to [Deliver the requested personal site](https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request). Retain parent ownership of request status and dependencies. The build task prepares the source-backed preview and exact host-specific action instead of asking the member to guess technical settings.\n5. Advance only the stage that evidence supports. The existing pipeline includes received, validated, site provisioned, instructions sent, DNS pointed, propagating, live, credentials issued and content loaded. Keep a preview, provisioning receipt, send receipt and final public check distinct; labels alone do not create these events.\n6. Keep status in the group’s existing authorized conversation. Prepare external messages as drafts unless sending is already authorized. Put the next action with the actual member, web function or access owner, and retain failures instead of silently skipping to live.\n7. Before calling a member’s site complete, verify the real public domain, HTTPS, intended content and retained dependencies. Provisioning or propagation delay alone does not prove success. Issue any permitted access through the secure existing rail, never in a public report.\n8. For a new group setup, use a clearly marked authorized test request through the whole path before announcing readiness. A daily scan needs a real configured job, owner, timezone and observed run; this recipe does not activate one or assume the historical 4 a.m. job still exists.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the actual result against its agreed requirements. Follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] One accepted record tracks the right member, domain, assets and exact next owner.\n- [ ] Every advanced state has its own evidence; unresolved access and domain dependencies remain open.\n- [ ] Only the verified public result is called live or delivered, and public reports reveal no private intake/access details.\n- [ ] The exact output, source revision, reviewer evidence and remaining owner action are saved.\n- [ ] For any reader-facing output, the short grade-five opening states the reader’s useful outcome and supporting method or proof. The body delivers that promise; a useful authentic visual appears in the first screen. Retain exact text and quoted reviewer evidence.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional group member supplies a photo folder that the web team cannot open. Her domain also handles email. The request stays validated with two explicit dependencies: readable photos and a reviewed domain plan. The coordinator can see who owns each action without a new tracker or an unsupported promise that the site is live.\n\n### Dated source evidence\n\nThe source article’s July 16–17, 2026 Jagoda Pasko test describes discovery of an email/DNS risk. It is retained as a dated source account, not proof of current scheduler operation or a new completed member build.\n\n## Handoff and Content Factory context\n\n[Run the site delivery playbook](https://local-service-spotlight.github.io/task-library/?task=deliver-personal-brand-site-from-request#task-deliver-personal-brand-site-from-request) receives the validated packet. The group’s coordinator and web owner retain the shared status and final acceptance.\n\nThis task supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Identity, proof, access or coordination can support several stages. Use the real inputs and receiving owner above; this task does not create unrelated transcripts, clips or ads merely because the diagram has four stages.\n\n## Start with an agent\n\nGive the [AI worker](https://blitzmetrics.com/build-agents/) this recipe, the real inputs, desired result and actions already authorized. Ask for the saved output, sources, checks and next owner. A [skill is a written recipe](https://localservicespotlight.com/plugin/); loading one does not prove account access or perform the task. Use the [installation guide](https://localservicespotlight.com/install/) if reusable setup is needed. A ZIP is a source snapshot, not an access grant or automatic update.\n\nUse the app’s actual supported tools and verified file/account access. Keep a missing human verification step with its real owner. Recurring work needs its own configured job, trigger, timezone and observed result; this guide creates no schedule. Before any media playback, mute the player and set its volume to zero. If silence cannot be verified first, use captions, frames, metadata or another silent check.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, starting recipe revision, real inputs and current state. Write the [meta article, the record of this execution](https://blitzmetrics.com/meta-article-prompt/) with actual steps, results, checks, failures and next owner. Writing is required; public release follows existing authority. Link it to this recipe and the [Task Library](https://local-service-spotlight.github.io/task-library/).\n\nReuse the same execution ID for internal checks, revisions, retries and meta writing. A blocked run stays open with its dependency and owner, without an invented finish time. Dated public examples and distinct verified execution counts remain separate. Propose the smallest source-backed recipe improvement when the actual evidence reveals a defect.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/group-website-request-intake/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=manage-group-member-website-request#task-manage-group-member-website-request)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records fit together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not prove document readiness, account access, an actual execution or a client result.\n\nThe fictional example teaches the method and does not fill a real-run evidence gap. A named semantic reviewer must check the actual opening, full method, sources and handoff. Check the useful opening visual in the normal rendered guide at the current required desktop and mobile sizes, including 1280 × 800 and 390 × 844. Source readability checks do not prove public presentation or task execution.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "5b82b81dbe906b2608723dbed04d825ce8224ea14d35eff649849a16acb8501c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "fbf99a3ba0ae653c052e8b540e1ae59d4037d19e7668082456213758af0f1e7d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=manage-group-member-website-request#task-manage-group-member-website-request",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5b82b81dbe906b2608723dbed04d825ce8224ea14d35eff649849a16acb8501c",
      "articleKey": "blitzmetrics.com/group-website-request-intake",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5b82b81dbe906b2608723dbed04d825ce8224ea14d35eff649849a16acb8501c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5b82b81dbe906b2608723dbed04d825ce8224ea14d35eff649849a16acb8501c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/group-website-request-intake/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 140,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "strategy-measurement",
   "name": "Strategy & Measurement",
   "icon": "📐",
   "color": "#6366f1",
   "description": "Nine Triangles Framework, MAA loop, Topic Wheel, Social Amplification Engine",
   "tasks": [
    {
     "title": "Analyze why underperformers fail",
     "slug": "analyze-why-underperformers-fail",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Find out why an ad or page is not doing its job before you change it.",
     "content": "---\nname: analyze-why-underperformers-fail\ndescription: \"Find out why an ad or page is not doing its job before you change it.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Analyze why underperformers fail\n\nFind out why an ad or page is not doing its job before you change it. This guide helps your team choose one fix that the facts support. Start with the weak results and the goal set before the test.\n\n**The path:** Goal + data → Find the weak step → Test the cause → Fix proposal\n\n**Start when:** A measured item missed its agreed target and needs a diagnosis before a change is proposed.\n\n## Inputs\n\n- [Show what works and what needs review](https://local-service-spotlight.github.io/task-library/?task=show-whats-working-and-what-isnt#task-show-whats-working-and-what-isnt) with item IDs, periods, targets and sample limits.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) brief from launch, actual content, audience settings and landing path.\n- Funnel data and source records for delivery, clicks, visits, qualified leads and sales; previous changes and conversion delays.\n\n## Steps\n\n1. Check tracking and the evaluation window first. Missing tags, an unread source, a changed definition or unfinished conversion delay can explain a weak number. Keep the case unresolved until those checks permit a verdict.\n2. Locate the weak step: were the intended people reached, did they engage or visit, and did visits become the agreed result? Compare like campaigns and periods; one ratio does not establish a cause.\n3. Inspect creative, meaning the message, image or video. A weak hook or low watch time is a hypothesis. Compare its content and delivery with a relevant stronger item before blaming the message.\n4. Inspect targeting: read actual geography and audience settings, the queries or comments, and eligible customer characteristics. An ad name alone does not prove who saw it.\n5. Inspect the offer and follow-up path. Check message match, load/form function, price and proof, then lead handling. Strong clicks with few bookings can reflect tracking, an unclear offer or missed calls; separate those possibilities.\n6. Name one best-supported primary constraint when evidence supports it, with source links and alternatives ruled out. Otherwise state unknown cause and the next discriminating check. Do not force every item into a proven creative, targeting or offer bucket.\n7. Recommend one bounded fix, its expected signal, owner, test window and limit. Read previous attempts before recommending another retry or a pause; elapsed cycles alone do not justify a kill. Pass the diagnosis to the decision owner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each case has a supported diagnosis or an explicit unresolved question and next check.\n- [ ] The evidence names the failure point without treating correlation as proof.\n- [ ] The proposed test has an owner, bounded scope and acceptance rule; no ad changes are implied.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA made-up repair shop gets 100 paid visits and no recorded forms. A test submission fails on a phone. The first fix is the form, with a successful test and later lead count as checks. The data does not yet prove that the audience or price is wrong. The ad stays under its existing owner’s spend rules.\n\n## Handoff and Content Factory context\n\n[Pause weak tests and scale proven winners](https://local-service-spotlight.github.io/task-library/?task=kill-underperformers-scale-winners#task-kill-underperformers-scale-winners) receives the proposed action after review; [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the evidence and unresolved cases.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- A dedicated canonical article is not mapped in this task’s source. Use the linked method references above and resolve the correct existing owner before creating another page.\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "98b24d56085adedc51232c539aac38b98fa3bb107de2998a2d5b684e5f9f2a74",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7d4618a49eafef387d5e1c3ecf99b3434f01fc4a0f354b596840808d4af90ece",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "98b24d56085adedc51232c539aac38b98fa3bb107de2998a2d5b684e5f9f2a74",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "98b24d56085adedc51232c539aac38b98fa3bb107de2998a2d5b684e5f9f2a74"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "98b24d56085adedc51232c539aac38b98fa3bb107de2998a2d5b684e5f9f2a74"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 119,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Content Strategy (90% Greatest Hits, 10% New)",
     "slug": "content-strategy-90-greatest-hits-10-new",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Get more from content that has worked well.",
     "content": "---\nname: content-strategy-90-greatest-hits-10-new\ndescription: \"Get more from content that has worked well.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Content Strategy (90% Greatest Hits, 10% New)\n\nGet more from content that has worked well. This guide helps your team plan mostly proven content, with some room for new tests. Start with a list of past work and its results.\n\n**The path:** Content + results → Greatest hits → 90/10 plan → Review\n\n**Start when:** A content or promotion plan needs a split between proven work and new experiments.\n\n## Inputs\n\n- The content inventory with current rights, URLs, dates and evidence for its results.\n- The planned period, effort capacity, approved budget and business goals.\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) and the previous plan or review.\n\n## Steps\n\n1. Use the source’s 90/10 principle as a planning target for effort: about 90% on proven greatest hits and 10% on new tests. Name the unit being allocated, such as hours, assets or approved spend; do not blend these into one misleading percentage.\n2. Group comparable assets by their job and judge them against that job. Reach or watch time may support an awareness asset; qualified leads support a lead goal. Mark old or missing evidence for recheck.\n3. Build the greatest-hits pool with each item’s proof and current fit. Confirm its claim, offer, rights and destination are still usable; past success does not guarantee future success.\n4. Allocate reuse actions: refresh the existing canonical page, recut a clip, or prepare paid distribution under [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/). Connect reused assets to their parent on the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/) rather than creating competing thin pages.\n5. Choose a small experiment list from real questions and gaps. For each test name the hypothesis, variable, limit, review window and success rule before results arrive. Publication and spend stay within their separate authority.\n6. Prepare the calendar with owner, source, output and review date for each item. Compare planned effort and any authorized spend to the intended split; record a justified exception rather than fabricating a 90/10 match.\n7. At review, compare actual allocation and results. Promote a new item into the greatest-hits pool only when its relevant evidence meets the agreed test; a generic median from unlike assets is not a valid gate.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The hit pool has current supporting evidence and usable source assets.\n- [ ] The plan states its allocation unit and shows the intended split or a clear exception.\n- [ ] Every experiment and reuse action has a scope, owner and review rule.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop has ten content hours this week. It plans nine hours to update and recut two proven service stories, and one hour for a new customer question. Paid spend has no new approval, so the plan contains no live boosts. At review, hours and results are recorded separately.\n\n## Handoff and Content Factory context\n\n[Plan the next recording session](https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics) receives the recording needs; Process or Post receives exact reuse briefs. [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the later allocation and performance review.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=content-strategy-90-greatest-hits-10-new#task-content-strategy-90-greatest-hits-10-new)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "e564214f48ce397bec512290b0dee39aa75617f78582ac4ff124a61e15b996c7",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "86e9e9d8256024d95b1c7db7c791abddd99eb751ca4bccea9cd217d8a4b5de6e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=content-strategy-90-greatest-hits-10-new#task-content-strategy-90-greatest-hits-10-new",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e564214f48ce397bec512290b0dee39aa75617f78582ac4ff124a61e15b996c7",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e564214f48ce397bec512290b0dee39aa75617f78582ac4ff124a61e15b996c7"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e564214f48ce397bec512290b0dee39aa75617f78582ac4ff124a61e15b996c7"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 6,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Funnel levels (Audience, Engagement, Conversion)",
     "slug": "funnel-levels-audience-engagement-conversion",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Judge each piece of marketing by the job it should do.",
     "content": "---\nname: funnel-levels-audience-engagement-conversion\ndescription: \"Judge each piece of marketing by the job it should do.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Funnel levels (Audience, Engagement, Conversion)\n\nJudge each piece of marketing by the job it should do. This guide helps your team see where people move from first notice to a sale. Start with your live pages and ads, then name the main job of each.\n\n**The path:** Active work → Main job → Right metric → Next step\n\n**Start when:** The team needs to map marketing activity and metrics to the customer’s stage.\n\n## Inputs\n\n- Current assets and campaigns, their goals, audiences and destinations.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) brief and source-backed metrics for the same period.\n- The current customer path, including how inquiries are handled.\n\n## Steps\n\n1. Use three practical levels: audience/awareness means reaching relevant people; engagement/consideration means they watch, read or interact; conversion means the agreed action such as a qualified inquiry, booking or sale. The [funnel discussion](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/) uses these equivalent teaching labels.\n2. Inventory each in-scope active item and assign its primary job from its purpose and destination. Record a secondary role where real; do not pretend every asset or person has only one role.\n3. Choose a primary metric and balancing metric for each job. Examples are relevant reach with cost per thousand impressions; useful views with watch time; or qualified leads with cost per lead. Define the denominator and source.\n4. Map the next action a person can actually take. Check a working destination or follow-up, not just a drawn arrow. People can enter at different stages; the diagram is a planning aid, not proof of a fixed individual journey.\n5. Compare performance within the same stage and period. Flag missing evidence and weak handoffs. An empty stage is a question about the strategy, not automatic proof that the business is broken.\n6. Save the map, baseline and gaps. Propose the most useful next content or handoff fix with owner and review date, and carry stage results into the weekly report.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every in-scope asset has a supported primary job and relevant metric.\n- [ ] The map shows real destinations or explicit gaps; audience-level assumptions are not individual tracking claims.\n- [ ] Stage baselines and proposed repairs have sources and owners.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional roofer has a short safety video, a repair guide and a booking page. The video is judged on useful reach and watch time; the guide on visits and its next-step clicks; the booking page on valid inquiries. No one claims the same person followed all three without matching evidence.\n\n## Handoff and Content Factory context\n\n[Show what works and what needs review](https://local-service-spotlight.github.io/task-library/?task=show-whats-working-and-what-isnt#task-show-whats-working-and-what-isnt) uses the stage-specific goals; [Plan the next recording session](https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics) receives content gaps and [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the results.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=funnel-levels-audience-engagement-conversion#task-funnel-levels-audience-engagement-conversion)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "21b7642fd5e63caba0c3e36e8170665f611758e3c130c3ea2167a5e7c0576a68",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "91ae9a3f31ce7496bd26787e178ae92255b54ff0ff4430d6770bf303e166a13b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=funnel-levels-audience-engagement-conversion#task-funnel-levels-audience-engagement-conversion",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "21b7642fd5e63caba0c3e36e8170665f611758e3c130c3ea2167a5e7c0576a68",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "21b7642fd5e63caba0c3e36e8170665f611758e3c130c3ea2167a5e7c0576a68"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "21b7642fd5e63caba0c3e36e8170665f611758e3c130c3ea2167a5e7c0576a68"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 1,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "GCT (Goals, Content, Targeting)",
     "slug": "gct-goals-content-targeting",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Make sure your team knows what its work should achieve and who it should help.",
     "content": "---\nname: gct-goals-content-targeting\ndescription: \"Make sure your team knows what its work should achieve and who it should help.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# GCT (Goals, Content, Targeting)\n\nMake sure your team knows what its work should achieve and who it should help. This guide puts the goal, proof and people on one page. Start with one clear result you want, then choose the content and its audience.\n\n**The path:** Goal → Content that supports it → People to reach → Checked brief\n\n**Start when:** A page, project or campaign needs a clear brief before production or launch.\n\n## Inputs\n\n- The business or reader need, scope and desired result.\n- Real source material: customer questions, records, photos, videos and proof.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) source guide, current audience knowledge and delivery constraints.\n\n## Steps\n\n1. Write Goals first: the intended change, who benefits and the time or completion condition. For an ad, name a relevant numeric target and period. For a task guide, name an observable reader result; do not invent a revenue target for every page.\n2. Write Content next: exactly which sources and messages support that result. Prefer relevant proven work; verify claims, dates, attribution and use rights. A promise with no proof becomes a source gap.\n3. Write Targeting last: identify the people, problem, geography and exclusions that matter. A paid audience is one implementation; an article can target a reader need and search intent without an ad audience.\n4. Read the three parts together: achieve this result by showing this content to these people. Check whether the message and proof serve those people and whether the proposed next action can produce the desired result.\n5. For the opening of any document, explain who it helps, why it matters and what to do first in two or three sentences at grade five or below. Define jargon on first use and use an owned explainer link; follow the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n6. Save the agreed brief with date, source links, owner and the current recipe/page. Resolve material unknowns before dependent work. Keep its original target so later [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/) compares results to the real starting intent.\n7. Hand the brief to the relevant production or campaign task. If the goal changes, record who changed it and why; do not rewrite history to make a missed result appear successful.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Goal, Content and Targeting are specific, supported and in that order.\n- [ ] The result has a measurable or observable pass rule appropriate to the work.\n- [ ] The brief and grade-five context are saved with the actual next task and owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional repair shop wants readers to know when to stop using a leaking heater and call for help. Its content uses the technician’s checked steps and real photos. The audience is local homeowners with that problem. The guide passes when a reviewer can follow the safety and booking steps; no sales figure is invented.\n\n## Handoff and Content Factory context\n\n[Plan the next recording session](https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics) or the assigned article/campaign task receives the brief. [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) later checks the result against it.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=gct-goals-content-targeting#task-gct-goals-content-targeting)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f7f8bf780069e10fa60045e800b116400d2b6510795725add3c9aa1350bb7ee0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c160bf0861d2408d6cf9a64cd1f6777cd6129578551d96c3adec734418c3c5cd",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=gct-goals-content-targeting#task-gct-goals-content-targeting",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f7f8bf780069e10fa60045e800b116400d2b6510795725add3c9aa1350bb7ee0",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f7f8bf780069e10fa60045e800b116400d2b6510795725add3c9aa1350bb7ee0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f7f8bf780069e10fa60045e800b116400d2b6510795725add3c9aa1350bb7ee0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 8,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Kill underperformers, scale winners",
     "slug": "kill-underperformers-scale-winners",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Put ad funds behind results you can prove.",
     "content": "---\nname: kill-underperformers-scale-winners\ndescription: \"Put ad funds behind results you can prove.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Kill underperformers, scale winners\n\nPut ad funds behind results you can prove. This guide helps your team stop weak tests and make small changes to strong ones. Start with the checked facts, test limits and actions you are allowed to take.\n\n**The path:** Checked diagnosis → Exact change plan → Authorized action → Readback\n\n**Start when:** A test’s agreed review window has closed and an evidence-backed pause or scale decision is due.\n\n## Inputs\n\n- [Diagnose weak results](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail) and the winners list with source metrics and sufficient evaluation windows.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) targets, existing spend authority and the account’s applicable campaign rules.\n- Current ad IDs, budgets, audience settings and prior changes; a supported account editor and change owner.\n\n## Steps\n\n1. Recheck the current account and evidence. Confirm result definitions, conversion delay, sample limits and any recent edits. Do not treat an unresolved source problem as proof that a campaign failed.\n2. For each evaluated weak test, propose a pause or one bounded repair using the agreed stop rule. Preserve the asset and history; pausing an ad is not deleting its source page. Document why a retry is justified or exhausted.\n3. For a winner, confirm the result still meets its target at useful volume. Prepare a gradual increase or a new audience test with explicit amount, total cap, end/review date and owner. The source’s small [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/) tests are a method, not a universal platform budget guarantee.\n4. Check the current provider’s budget and delivery rules. Do not claim a twofold increase is always safe or that every edit resets learning. Google’s [budget-change guidance](https://support.google.com/google-ads/answer/10487143?hl=en) explains that a day’s spending limit can reflect its highest selected daily budget.\n5. Apply only the exact changes covered by existing authority through the supported account workflow. If authority or required evidence is missing, save the plan and name the blocker. Freed budget may remain unspent; it is not permission to increase another campaign.\n6. Read back the changed IDs, status, budget and schedule. Keep before/after evidence and the actual save time; a proposed action or successful click alone is not a verified change.\n7. Set the agreed review condition and compare the resulting performance after adequate data arrives. Carry every pause, test and scale result into the next report, including failures or no action.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each decision has a target, sufficient evidence and an exact bounded action.\n- [ ] Only authorized changes occurred and readback matches the plan.\n- [ ] Budget totals, test limits and next review are recorded; no profit or guaranteed scaling claim is made.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nIn a fictional account, a reviewed $7 test misses its agreed goal and is paused. Another passes, so the team prepares a $30 test spread over 30 days. The owner has not authorized that new spend yet; the scale remains a proposal. The unused $7 limit is not silently moved elsewhere.\n\n## Handoff and Content Factory context\n\n[Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the action log; the assigned measurement task checks the next agreed window.\n\nThis work supports Promote in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). It follows the source, editing and publishing work of Produce, Process and Post; the actual campaign evidence feeds the next review.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=kill-underperformers-scale-winners#task-kill-underperformers-scale-winners)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "95b9cc4bb46bb3d5cbe0a913a7abcb98362bfaa3bb28cd5823a4dacc72845580",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "73af89731d87d4edad5a236c672a1287e201ba6ba73e1e0b4b0e6979bec7cedf",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=kill-underperformers-scale-winners#task-kill-underperformers-scale-winners",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "95b9cc4bb46bb3d5cbe0a913a7abcb98362bfaa3bb28cd5823a4dacc72845580",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "95b9cc4bb46bb3d5cbe0a913a7abcb98362bfaa3bb28cd5823a4dacc72845580"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "95b9cc4bb46bb3d5cbe0a913a7abcb98362bfaa3bb28cd5823a4dacc72845580"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 10,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Learn, Do, Teach apprentice model",
     "slug": "learn-do-teach-apprentice-model",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Help a teammate learn a job well enough to show someone else.",
     "content": "---\nname: learn-do-teach-apprentice-model\ndescription: \"Help a teammate learn a job well enough to show someone else.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Learn, Do, Teach apprentice model\n\nHelp a teammate learn a job well enough to show someone else. This guide turns reading into practice and checks the work at each step. Start with one real task, its guide and a person who can review the result.\n\n**The path:** Learn the method → Do checked work → Teach another person → Verify\n\n**Start when:** A learner is building competence in one scoped task and a qualified reviewer is available.\n\n## Inputs\n\n- One canonical task recipe, its current revision and relevant real examples.\n- An authorized practice task with real inputs and safe limits; a capable reviewer and later learner.\n- [Learn, Do, Teach](https://blitzmetrics.com/learn-do-teach/) source and the task’s actual quality checks.\n\n## Steps\n\n1. Define the skill to learn and its observable pass criteria. A learner status or a completed document is not evidence of task competence.\n2. Learn: read the recipe and proof examples, then explain the method and expected result back to the reviewer. List questions and source gaps before dependent actions.\n3. Do: execute a bounded, authorized real task using the guide. Agree an early direction check before the full build and retain inputs, output and actual reviewer feedback.\n4. Correct defects and repeat suitable practice until the agreed competence evidence is met. This library’s prior checklist asks for two consecutive clean real runs; keep that as an explicit local training gate, not a universal number claimed by the framework.\n5. Teach: help another learner perform the task from the same maintained guide. Observe that learner’s result against the checks. Writing a lesson or meta article alone does not prove the second person learned the task.\n6. Record each actual execution and the learner’s current stage, including incomplete teaching. The reviewer decides any change of review duty or responsibility; a successful demonstration does not grant new account access.\n7. Use recurring questions to improve the recipe through its existing review process. Write each real run’s meta article; any public example requires separate release authority.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Learning questions and actual practice evidence are retained.\n- [ ] The agreed clean-run gate and the next learner’s result are verified or explicitly unfinished.\n- [ ] Training status and responsibility reflect the reviewer’s real decision.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional apprentice checks one service page with a reviewer. The first attempt misses a broken link; the next two pass the agreed checks. The apprentice then teaches a colleague, whose first check misses an image defect. The record says Do passed and Teach still in progress; the lesson write-up does not close that gap.\n\n## Handoff and Content Factory context\n\n[Manage the next assignment](https://local-service-spotlight.github.io/task-library/?task=management-communicate-iterate-delegate#task-management-communicate-iterate-delegate) receives the demonstrated scope and unresolved training needs.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=learn-do-teach-apprentice-model#task-learn-do-teach-apprentice-model)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "b855ffd6561b77ead0791401da8a3c41076ff722df4eba1a06fe934f48232c9d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5b38bbdd9a51b4314f5895adca05dcd05a3fb10a7d29236055b96d96f4f2b0a2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=learn-do-teach-apprentice-model#task-learn-do-teach-apprentice-model",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b855ffd6561b77ead0791401da8a3c41076ff722df4eba1a06fe934f48232c9d",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b855ffd6561b77ead0791401da8a3c41076ff722df4eba1a06fe934f48232c9d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b855ffd6561b77ead0791401da8a3c41076ff722df4eba1a06fe934f48232c9d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 11,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "MAA cycle (Metrics, Analysis, Action)",
     "slug": "maa-cycle-metrics-analysis-action",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Turn reports into a clear next step for your team.",
     "content": "---\nname: maa-cycle-metrics-analysis-action\ndescription: \"Turn reports into a clear next step for your team.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# MAA cycle (Metrics, Analysis, Action)\n\nTurn reports into a clear next step for your team. This guide links each key number to what it means and what to do next. Start with the goal, this week’s facts and the last plan.\n\n**The path:** Metrics → Analysis → Action → Check the next result\n\n**Start when:** A business review needs to connect sourced results to concrete next actions.\n\n## Inputs\n\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) and the agreed metrics, period, targets and definitions.\n- [Collect verified weekly measurements](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements) outputs and the prior report with action evidence.\n- The current business context, action owners and authorized scope.\n\n## Steps\n\n1. Read the prior actions first. Mark each proposed, approved, executed, blocked or verified from its evidence. An unchanged outcome after an unexecuted action is not a failed test.\n2. Collect the agreed metrics with the same definitions and comparable windows. Lead with the result the business needs, such as qualified leads, then include the balancing numbers and source limits.\n3. Analyze material changes against target and history. State what is observed, the best supported explanation and what remains uncertain. A plausible reason is a hypothesis until evidence distinguishes it from alternatives.\n4. Turn each important finding into a concrete next action or a defined evidence check. Name the owner, deadline, expected signal and acceptance condition. Do not invent extra actions merely to fill a report.\n5. Keep actual actions separate from proposals. Execute or send only under current authority, retaining readback or delivery evidence. A report does not itself change an account or brief.\n6. Save one coherent report using [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/). The next agreed cycle starts with this action list and checks what happened; retain changed targets or definitions instead of comparing unlike numbers.\n7. Capture a reusable lesson and propose a recipe improvement when evidence supports it. Internal checks and edits stay under the same execution identity.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The metrics are sourced and comparable; missing data is explicit.\n- [ ] Analysis explains evidence and labels unknown causes.\n- [ ] Important findings lead to named, bounded actions whose state can be checked next cycle.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop records 20 qualified leads after 16 last week. It also has six missed calls. The report suggests that phone coverage may limit bookings, but does not claim a cause from totals alone. The action owner checks the call log and tests the agreed coverage change; next week’s report checks its result.\n\n## Handoff and Content Factory context\n\n[Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) packages the client-facing cycle; [Diagnose weak results](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail) or the specific action task receives the evidence needing work.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=maa-cycle-metrics-analysis-action#task-maa-cycle-metrics-analysis-action)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "7c0e3101ea63e902e701269a070cf114ef50266373e5de32c9b6bc702a2506cb",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f315605610697ef5691182fc530bed939df8c02c9b71424ec744bea4361df6da",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=maa-cycle-metrics-analysis-action#task-maa-cycle-metrics-analysis-action",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7c0e3101ea63e902e701269a070cf114ef50266373e5de32c9b6bc702a2506cb",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7c0e3101ea63e902e701269a070cf114ef50266373e5de32c9b6bc702a2506cb"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7c0e3101ea63e902e701269a070cf114ef50266373e5de32c9b6bc702a2506cb"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 4,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Management (Communicate, Iterate, Delegate)",
     "slug": "management-communicate-iterate-delegate",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Help your team finish the right work without late surprises.",
     "content": "---\nname: management-communicate-iterate-delegate\ndescription: \"Help your team finish the right work without late surprises.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Management (Communicate, Iterate, Delegate)\n\nHelp your team finish the right work without late surprises. This guide sets clear owners, early checks and useful next steps. Start with one assigned task and what a good result looks like.\n\n**The path:** Clear assignment → Early check → Small correction → Verified handoff\n\n**Start when:** Work is being delegated or an existing assignment needs a reliable feedback loop.\n\n## Inputs\n\n- The task’s goal, source recipe, pass criteria and current work.\n- A real owner, agreed due date, review channel and person authorized to judge the result.\n- Previous feedback and the scope each person or AI worker can actually carry.\n\n## Steps\n\n1. Communicate the result, inputs, allowed actions, deadline and check method. Ask the receiving owner to confirm the assignment or name the missing input; do not infer acceptance from a sent message.\n2. Agree a useful status cadence for this task: result shipped, blocker and next step. A missed report is unknown state to resolve, not proof that no work occurred.\n3. Review a small representative draft early, around the source’s 10% teaching point when useful. Use the real deliverable and checklist to test direction before expensive work.\n4. Give specific corrections tied to evidence. Separate a one-off execution error from a defect in the recipe; save the changed draft and confirm the correction actually addressed the issue.\n5. Delegate a bounded next scope based on demonstrated results. Access, sending, publishing and spending authority remain explicit; a model name or a good draft does not establish them.\n6. When feedback repeats, inspect its cause and propose a maintained-guide improvement. Record the actual accepted change and check its effect in a later run rather than treating an edit as proof of improvement.\n7. Close only when the saved result meets the checks and reaches the next owner. Track real rework and turnaround against comparable prior tasks without claiming that more delegation always means better results.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The assignment has an accepted owner, scope, deadline and pass criteria.\n- [ ] Early review and corrections have actual saved evidence.\n- [ ] Handoff and any responsibility change are confirmed; unresolved work stays visible.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional manager assigns a service-page draft with a real source and a Friday due date. The early outline targets the wrong town, so the manager corrects it before writing. The revised draft passes its content check but still awaits publishing access. The tracker shows a checked draft, not a live page.\n\n## Handoff and Content Factory context\n\n[Build task competence](https://local-service-spotlight.github.io/task-library/?task=learn-do-teach-apprentice-model#task-learn-do-teach-apprentice-model) handles training needs; [Improve the repeatable process](https://local-service-spotlight.github.io/task-library/?task=systematization-content-checklists-software#task-systematization-content-checklists-software) handles a proven recipe defect.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=management-communicate-iterate-delegate#task-management-communicate-iterate-delegate)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "959962728fdf4268c18576c7ce1b95cb48c7f151f5b3dc91409eeb78e277f0a3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f3909f556cf63ebfad4b47f4a34d95bbb89938f42397416efccaac78b396eea8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=management-communicate-iterate-delegate#task-management-communicate-iterate-delegate",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "959962728fdf4268c18576c7ce1b95cb48c7f151f5b3dc91409eeb78e277f0a3",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "959962728fdf4268c18576c7ce1b95cb48c7f151f5b3dc91409eeb78e277f0a3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "959962728fdf4268c18576c7ce1b95cb48c7f151f5b3dc91409eeb78e277f0a3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 12,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Map HOW ring (methods)",
     "slug": "map-how-ring-methods",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/topic-wheel",
     "articleKind": "task-recipe",
     "desc": "Show the topics your business knows well.",
     "content": "---\nname: map-how-ring-methods\ndescription: \"Show the topics your business knows well.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /topic-wheel\nstatus: complete\n---\n\n# Map HOW ring (methods)\n\nShow the topics your business knows well. This guide links those topics to the service you sell, so your team can choose useful content. Start with the offer at the center of your topic map.\n\n**The path:** WHAT offer → Real expertise → HOW topics → Story links\n\n**Start when:** The WHAT offer is checked and the Topic Wheel needs its supporting topics.\n\n## Inputs\n\n- [The checked WHAT center](https://local-service-spotlight.github.io/task-library/?task=map-what-ring-specific-content#task-map-what-ring-specific-content) and current offer page.\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) plus real service methods, customer questions and existing topic pages.\n- Proof of the team’s expertise; any current wheel and [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/).\n\n## Steps\n\n1. Use HOW for the middle ring: topics, methods and areas of expertise that support the WHAT offer. WHY belongs outside as real people and stories, not in the center.\n2. List the subjects customers need to understand and the methods the business actually uses. Use source-backed customer language and retain the example or question behind each candidate.\n3. Consolidate around the maintained guide’s three to seven useful topics. Treat that as a planning range; never invent expertise to reach a count. Note when a smaller supported map needs more research.\n4. For each HOW, write a sentence explaining its relationship to the WHAT and the evidence that the business knows it. Merge overlaps, narrow vague labels, and set aside topics outside the real offer.\n5. Map each HOW to its existing canonical topic or service page. Check the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/) so a new topic does not create a duplicate competing owner.\n6. Place the topics around WHAT and link any real stories already known. Save source links and missing story needs for the WHY task; an empty story list means evidence is missing, not proof that the method is fake.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] HOW is the middle ring around the real WHAT offer.\n- [ ] Each topic has expertise support and a clear owned page or explicit mapping gap.\n- [ ] The topic count is honest and the next story requirements are usable.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional plumber’s WHAT is home plumbing repair. Its supported HOW topics are drain cleaning, leak checks and heater repair. A proposed commercial-fire-system topic has no source support, so it stays out. Each of the three topics maps to its real service page, ready for related job stories.\n\n## Handoff and Content Factory context\n\n[Map WHY stories and people](https://local-service-spotlight.github.io/task-library/?task=map-why-ring-core-purpose#task-map-why-ring-core-purpose) receives the topics and source gaps.\n\nThis work supports Produce in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The selected sources pass to Process, approved outputs go to Post, and useful proven work can enter Promote. The real inputs and handoff above set this task’s scope.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/topic-wheel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=map-how-ring-methods#task-map-how-ring-methods)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "187dc30d9917e944c99e6f47bfea91c5edbaa474ca55fce7c73944af49d3842f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "13b457473105d8daf1760feaba608333a690064bf0e954a6119b0c0d99018106",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=map-how-ring-methods#task-map-how-ring-methods",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "187dc30d9917e944c99e6f47bfea91c5edbaa474ca55fce7c73944af49d3842f",
      "articleKey": "blitzmetrics.com/topic-wheel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "187dc30d9917e944c99e6f47bfea91c5edbaa474ca55fce7c73944af49d3842f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "187dc30d9917e944c99e6f47bfea91c5edbaa474ca55fce7c73944af49d3842f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/topic-wheel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 265,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Map the WHAT offer at the center",
     "slug": "map-what-ring-specific-content",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/topic-wheel",
     "articleKind": "task-recipe",
     "desc": "Make it clear what your business sells before you plan more content.",
     "content": "---\nname: map-what-ring-specific-content\ndescription: \"Make it clear what your business sells before you plan more content.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /topic-wheel\nstatus: complete\n---\n\n# Map the WHAT offer at the center\n\nMake it clear what your business sells before you plan more content. This guide defines the center of your topic map. Start with the real offer, who buys it and the problem it solves.\n\n**The path:** Real offer → Clear WHAT → Evidence check → HOW topics\n\n**Start when:** A new or revised Topic Wheel needs its central offer defined.\n\n## Inputs\n\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) current source and any existing wheel.\n- The actual service or product, buyer, service area and supporting business records.\n- Current customer language and the owner’s accepted scope.\n\n## Steps\n\n1. Follow the maintained geometry: WHAT is the center, HOW is the middle ring of useful topics, and WHY is the outer ring of people and real stories. The stable task slug contains “ring”; it does not make WHAT an outer content backlog.\n2. List what the business actually offers. Separate a current offer from an aspiration or a past service, and name the buyer problem it solves.\n3. Draft one plain sentence stating the offer and who it serves. Use a specific customer-facing description rather than a broad mission slogan.\n4. Check that sentence against the service page, real work and the owner’s accepted scope. Resolve conflicting claims or geography; do not make the offering broader to fill a wheel.\n5. Place the checked WHAT in the center with source links and date. Put proposed questions in a separate backlog; they will connect to HOW topics and WHY stories, not replace the central offer.\n6. Hand the center statement to the HOW task. Keep the existing canonical offer page as the trunk of the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/); propose a missing page only after checking for an existing owner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The WHAT center states a real specific offer and customer problem.\n- [ ] The saved wheel uses WHAT center/HOW middle/WHY outer consistently.\n- [ ] Sources and the next topic-mapping task are linked.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional plumbing firm offers emergency repair and heater installation in one city. That is its WHAT. “Why does my heater leak?” is a useful recording question, but it is not the center of the wheel. The question belongs under a heater topic connected back to the actual service.\n\n## Handoff and Content Factory context\n\n[Map HOW topics](https://local-service-spotlight.github.io/task-library/?task=map-how-ring-methods#task-map-how-ring-methods) receives the checked WHAT and service proof.\n\nThis work supports Produce in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The selected sources pass to Process, approved outputs go to Post, and useful proven work can enter Promote. The real inputs and handoff above set this task’s scope.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/topic-wheel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=map-what-ring-specific-content#task-map-what-ring-specific-content)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "877df48dcdd7339e7eaaac17dafbfd1f2724699b46f594865e864fcecd02b954",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b2e3323962ce15c6e5798d36b81ce1319720abef139314eec42996ff3c1d6c8b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=map-what-ring-specific-content#task-map-what-ring-specific-content",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "877df48dcdd7339e7eaaac17dafbfd1f2724699b46f594865e864fcecd02b954",
      "articleKey": "blitzmetrics.com/topic-wheel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "877df48dcdd7339e7eaaac17dafbfd1f2724699b46f594865e864fcecd02b954"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "877df48dcdd7339e7eaaac17dafbfd1f2724699b46f594865e864fcecd02b954"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/topic-wheel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 266,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Map WHY stories in the outer ring",
     "slug": "map-why-ring-core-purpose",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/topic-wheel",
     "articleKind": "task-recipe",
     "desc": "Use real stories to show why people trust your work.",
     "content": "---\nname: map-why-ring-core-purpose\ndescription: \"Use real stories to show why people trust your work.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /topic-wheel\nstatus: complete\n---\n\n# Map WHY stories in the outer ring\n\nUse real stories to show why people trust your work. This guide adds the people and moments that support each topic on your map. Start with real jobs, shared work and stories you have the right to use.\n\n**The path:** Real story → Relevant HOW → WHAT offer → Content brief\n\n**Start when:** The WHAT and HOW are mapped and the Topic Wheel needs real supporting people and stories.\n\n## Inputs\n\n- [The checked WHAT offer](https://local-service-spotlight.github.io/task-library/?task=map-what-ring-specific-content#task-map-what-ring-specific-content) and [HOW topics](https://local-service-spotlight.github.io/task-library/?task=map-how-ring-methods#task-map-how-ring-methods).\n- Real interviews, jobs, reviews, events and collaborations with dated sources and use rights.\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) and current story assets in the content library.\n\n## Steps\n\n1. Place WHY in the outer ring. It contains real people, stories and collaborations that connect to a HOW topic and the WHAT offer. Personal purpose can inform a story, but the maintained wheel does not place a mission statement in its center.\n2. Inventory moments that show the work: a customer problem and outcome, a learned lesson, a shared project or an event. Record the people’s real roles and the exact source.\n3. Verify what each source proves. A shared photo proves that moment, not a business partnership, endorsement or result. Get the permission required for any private customer story before public use.\n4. Connect each supported story to the relevant HOW topic and WHAT. Leave unsupported claims or unrelated famous names out; reputation is not created by drawing a line.\n5. Write a short story prompt: who, what happened, useful lesson and source evidence. Label a proposed interview as a plan until it is actually recorded.\n6. Save the WHY ring with source links, permission state and missing evidence. Keep the mission consistent with the goals brief while preserving the distinction between a WHY video and the wheel’s full outer story ring.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] WHY is the outer ring of relevant, supported people and stories.\n- [ ] Every claimed relationship or result is scoped to its actual proof.\n- [ ] Recording prompts and rights gaps are clear enough for the next owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional roofer has a homeowner’s approved story about a repaired leak and a photo from a trade event. The repair story supports its leak-diagnosis topic. The event photo supports attendance only; it does not prove the speaker endorsed the roofer. Both claims stay as narrow as their sources.\n\n## Handoff and Content Factory context\n\n[Plan the next recording session](https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics) receives the story prompts and source rights; the goals task receives any supported purpose clarification.\n\nThis work supports Produce in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The selected sources pass to Process, approved outputs go to Post, and useful proven work can enter Promote. The real inputs and handoff above set this task’s scope.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/topic-wheel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=map-why-ring-core-purpose#task-map-why-ring-core-purpose)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "ab660044f95078a640489fd6fd77f7e98cb2407e6fd107974b8d014f749bf566",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "bd047b01a82da09aee75b18cee22a84d49c4e7415a7f2b878da9d063ee5f34ad",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=map-why-ring-core-purpose#task-map-why-ring-core-purpose",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ab660044f95078a640489fd6fd77f7e98cb2407e6fd107974b8d014f749bf566",
      "articleKey": "blitzmetrics.com/topic-wheel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ab660044f95078a640489fd6fd77f7e98cb2407e6fd107974b8d014f749bf566"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ab660044f95078a640489fd6fd77f7e98cb2407e6fd107974b8d014f749bf566"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/topic-wheel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 267,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Measure content → rankings → traffic → revenue",
     "slug": "measure-content-rankings-traffic-revenue",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "See where content stops doing its job.",
     "content": "---\nname: measure-content-rankings-traffic-revenue\ndescription: \"See where content stops doing its job.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Measure content → rankings → traffic → revenue\n\nSee where content stops doing its job. This guide puts pages, search visits, leads and sales in one clear view. Start with the pages you shipped and the sources that can prove each next step.\n\n**The path:** Published content → Search visibility → Visits → Leads and sales\n\n**Start when:** The team needs a sourced view from published content through search and business outcomes.\n\n## Inputs\n\n- The actual publishing log with canonical URLs and dates.\n- Matching Search Console and site analytics reports, plus inquiry, booking and revenue records where permitted.\n- The agreed source contract, period, targets and attribution limits; [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/).\n\n## Steps\n\n1. Create one row per canonical page or explicitly defined topic group. Name the metric and source for each stage: actual published assets; search impressions/position/clicks; site visits; qualified inquiries, bookings and revenue separately.\n2. Pull matching periods and preserve metric definitions. Search Console clicks and analytics sessions measure different things; do not silently force their totals to match.\n3. Attach page-level business outcomes only when the source supports attribution. Keep unknown or unassigned outcomes visible. Leads are not revenue, and publication is not an indexed-page result.\n4. Find the first supported weak link relative to the target and observation window. Content without search visibility can need indexing, topic fit, structure or time; verify the cause before prescribing more pages.\n5. For visible pages with few clicks, inspect queries, actual positions, competition and snippets. For visits with few leads, test the page and follow-up. Do not assign a title or offer failure from a ratio alone.\n6. Choose a bounded next diagnostic or repair, with owner, evidence and pass rule. Check the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/) before proposing page moves or new content.\n7. Save the table and trend with source gaps. Feed the evidence into the weekly report and check the chosen action’s outcome in the next comparable period.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The table distinguishes published assets, visibility, visits, leads, bookings and revenue.\n- [ ] All values have dates and sources; unknown attribution is preserved.\n- [ ] A supported weak link or open question has a specific next action and owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional page has 500 search impressions,20 clicks and 18 recorded sessions. It has two forms, but the sales record has no matching page attribution. The report shows the two forms and unknown page revenue. It checks form quality next rather than declaring that 18 visits made the week’s total sales.\n\n## Handoff and Content Factory context\n\n[Show what works and what needs review](https://local-service-spotlight.github.io/task-library/?task=show-whats-working-and-what-isnt#task-show-whats-working-and-what-isnt) and [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receive the linked table; the relevant page or tracking task receives the exact defect.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- A dedicated canonical article is not mapped in this task’s source. Use the linked method references above and resolve the correct existing owner before creating another page.\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=measure-content-rankings-traffic-revenue#task-measure-content-rankings-traffic-revenue)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "b0727f471ad94d5baece8905ef67867bc57b8aa9e92306c7ad685852b8576017",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a2b88b3a8705f3f4dade14db17f61f41ae15f9a0ab9b2e01654d8db6023e771b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b0727f471ad94d5baece8905ef67867bc57b8aa9e92306c7ad685852b8576017",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b0727f471ad94d5baece8905ef67867bc57b8aa9e92306c7ad685852b8576017"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b0727f471ad94d5baece8905ef67867bc57b8aa9e92306c7ad685852b8576017"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 123,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Personal Efficiency (Do, Delegate, Delete)",
     "slug": "personal-efficiency-do-delegate-delete",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Clear the next step for work that lands in your inbox.",
     "content": "---\nname: personal-efficiency-do-delegate-delete\ndescription: \"Clear the next step for work that lands in your inbox.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Personal Efficiency (Do, Delegate, Delete)\n\nClear the next step for work that lands in your inbox. This guide helps you do it, hand it to the right person or set it aside with a clear reason. Start with one inbox and your current goals.\n\n**The path:** Incoming item → Do / Delegate / Delete → Evidence → Follow-up\n\n**Start when:** An agreed inbox or task list needs triage into clear owned actions.\n\n## Inputs\n\n- The exact inbox or task list in scope, with the operator’s current priorities and authority.\n- Existing assignments, threads, deadlines and follow-up records.\n- A suitable receiving owner where delegation is possible; relevant task guides.\n\n## Steps\n\n1. Define the source’s three choices. Do means own the action; Delegate means give a bounded task to a capable owner; Delete means decline, archive or remove only as appropriate and authorized. It does not require irreversible deletion.\n2. Read each exact item and its history before acting. Check whether it already has an owner, sent reply or working follow-up so triage does not duplicate a live task.\n3. Do a short in-scope action when the inputs and authority are present. For a longer action, record its next step, owner and due date in the existing task system. A calendar-bound task can be owned without being done now.\n4. Delegate with the goal, sources, expected output, deadline and relevant guide. Preserve the originating thread and confirm the receiving owner’s acceptance where required. Do not send messages or grant access without the current authority.\n5. Archive or decline irrelevant items under the source’s retention and communication rules. Keep records that support an active matter; do not unsubscribe, delete or refuse a commitment merely to reach zero.\n6. Reconcile every in-scope item to a real disposition. Waiting on someone remains waiting with a next check; unread or inaccessible items remain unresolved. Inbox zero is a useful working view, not a reason to conceal open work.\n7. Save the triage result and verified actions. Use any existing follow-up cadence; create a new schedule only when separately authorized. Compare useful completed outcomes and rework, not just the fraction delegated.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every reviewed item has a supported disposition and an exact next action if open.\n- [ ] No duplicate handoff, unsupported send, irreversible removal or lost active evidence occurred.\n- [ ] Waiting and blocked work remain tracked; completion reflects actual action.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional owner has a simple file request, a tax document and a repair quote awaiting a vendor. The allowed file reply is sent and checked. The tax document is routed to its existing owner, and the quote stays waiting with its next check. Archiving the inbox view does not mark the quote delivered.\n\n## Handoff and Content Factory context\n\n[Manage the accepted handoffs](https://local-service-spotlight.github.io/task-library/?task=management-communicate-iterate-delegate#task-management-communicate-iterate-delegate) receives delegated work and unresolved dependencies.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=personal-efficiency-do-delegate-delete#task-personal-efficiency-do-delegate-delete)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "ef0f902a3eff9958b1ea7c46ec2aa29fc9ad1a715720d89330cb49e88f459a88",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8f995db2559ccce12465f82e3e7b127d65567b12965405c145a060e14c06cfcd",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=personal-efficiency-do-delegate-delete#task-personal-efficiency-do-delegate-delete",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ef0f902a3eff9958b1ea7c46ec2aa29fc9ad1a715720d89330cb49e88f459a88",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ef0f902a3eff9958b1ea7c46ec2aa29fc9ad1a715720d89330cb49e88f459a88"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ef0f902a3eff9958b1ea7c46ec2aa29fc9ad1a715720d89330cb49e88f459a88"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 13,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Show what's working and what isn't",
     "slug": "show-whats-working-and-what-isnt",
     "status": "needs-work",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Give your team a clear view of which work helps and which needs a closer look.",
     "content": "---\nname: show-whats-working-and-what-isnt\ndescription: \"Give your team a clear view of which work helps and which needs a closer look.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: GAP — to be written\nstatus: needs-work\n---\n\n# Show what's working and what isn't\n\nGive your team a clear view of which work helps and which needs a closer look. This guide puts each result next to its goal and proof. Start with the full list, so weak results do not get left out.\n\n**The path:** Full inventory → Agreed targets → Evidence verdicts → Diagnosis\n\n**Start when:** A performance review needs a fair verdict on all in-scope active work.\n\n## Inputs\n\n- [Collect verified weekly measurements](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements) and the current active inventory, with periods and launch dates.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) targets, evaluation windows and relevant sample limits.\n- Prior comparable results and known recent changes.\n\n## Steps\n\n1. State each item’s goal and evidence rule before assigning a verdict. Judge an awareness asset and a lead asset by their different jobs; do not use one blended threshold.\n2. Reconcile the actual active inventory with the report. Retain items whose source is missing or whose results are weak instead of quietly omitting them.\n3. For comparable, sufficient data, mark working or not meeting target with the value, threshold, source and trend. For an immature test or incomplete source, use not yet assessable and name the missing evidence or review window.\n4. Make the winners and weak results equally clear. Keep the unresolved group visible; the source’s two main verdict lists do not justify forcing unknown data into either.\n5. Write each line as item, job, actual result and trend. Link detailed reports and sample limitations. Observed direction alone does not prove a cause or a profitable outcome.\n6. Hand evaluated weak cases to diagnosis. Hand supported winners to the action owner for a bounded decision, and unresolved cases to an evidence check with owner and due condition.\n7. Save the dated verdict page and the full inventory reconciliation. Carry it into the weekly report and compare against the same rules next cycle.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] All active items are accounted for, including not-yet-assessable cases.\n- [ ] Every verdict cites the right target, period and evidence.\n- [ ] Diagnosis, action and missing-data handoffs are separate and owned.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional weekly review has three tests. One meets its cost-per-qualified-lead target, one misses after its full window, and one has only a day of data. The first two receive supported verdicts. The third remains not yet assessable with a planned review date; it is neither a hidden loss nor a claimed winner.\n\n## Handoff and Content Factory context\n\n[Diagnose weak results](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail) receives evaluated weak cases; [Pause weak tests and scale proven winners](https://local-service-spotlight.github.io/task-library/?task=kill-underperformers-scale-winners#task-kill-underperformers-scale-winners) receives supported decisions and [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the full picture.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- A dedicated canonical article is not mapped in this task’s source. Use the linked method references above and resolve the correct existing owner before creating another page.\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=show-whats-working-and-what-isnt#task-show-whats-working-and-what-isnt)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4e8e10523c7c3e8f038da47d8e14f96c2cbe830855a5f6c4c17125b65ba4764a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2beeae47a5babe8de92c6909307ae13e4b0e6a5799c5051e0a07c3b8f3eb0381",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4e8e10523c7c3e8f038da47d8e14f96c2cbe830855a5f6c4c17125b65ba4764a",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4e8e10523c7c3e8f038da47d8e14f96c2cbe830855a5f6c4c17125b65ba4764a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4e8e10523c7c3e8f038da47d8e14f96c2cbe830855a5f6c4c17125b65ba4764a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 125,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Stage 1: Plumbing (FB Ads, Google Ads, Analytics)",
     "slug": "stage-1-plumbing-fb-ads-google-ads-analytics",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Make sure your business can see what its marketing does.",
     "content": "---\nname: stage-1-plumbing-fb-ads-google-ads-analytics\ndescription: \"Make sure your business can see what its marketing does.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 1: Plumbing (FB Ads, Google Ads, Analytics)\n\nMake sure your business can see what its marketing does. This guide checks the accounts and tracking before work goes live. Start with the right business, its allowed scope and the access list.\n\n**The path:** Accepted scope → Asset ownership → Tracking tests → Readiness handoff\n\n**Start when:** An accepted business scope is ready for the first Social Amplification Engine phase, or its tracking needs repair.\n\n## Inputs\n\n- [Social Amplification Engine, the six-phase marketing plan](https://blitzmetrics.com/social-amplification/) accepted scope and the authoritative client-status record.\n- The current access register and asset IDs; business owners for Meta, Google Ads, website, Tag Manager, Analytics and Search Console as applicable to the agreed engine gate.\n- [Digital Plumbing](https://blitzmetrics.com/digital-plumbing/) and the intended conversion definitions, test limits and change authority.\n\n## Steps\n\n1. Confirm the right business and relationship status first. Active Client or a separately scoped Special Project can supply the work path; Not Active or HOLD stops dependent operations. Read the current engine gate rather than treating a self-report as onboarding approval.\n2. Inventory existing assets and ownership. Record the actual domain, account/property/container IDs and granted roles without copying secrets. Reuse working business-owned assets instead of creating duplicates.\n3. Check Meta business and ad-account ownership and the required partner access through the account’s supported controls. Verify a permitted read; a displayed account name does not prove administrative access or correct ownership.\n4. If Google Ads manager linking is in scope, use [Google’s current manager-link instructions](https://support.google.com/google-ads/answer/7456530?hl=en). A link preserves the client account and does not automatically transfer administrative ownership or billing.\n5. Validate the site’s actual analytics and tag setup against the agreed key events. Inspect existing tags before installing anything. Use [Google’s DebugView procedure](https://support.google.com/analytics/answer/7201382?hl=en) for a controlled test device, with its consent state and event parameters; do not generate a real purchase or contact a customer to simulate proof.\n6. Check each required destination for missing or duplicate test events and the correct account. Debug visibility demonstrates receipt, not full revenue attribution. Keep test traffic identifiable and remove temporary debug configuration as the official guide requires.\n7. Save ownership, access and test receipts. The current engine requires Search Console, CMS, Analytics and Tag Manager green before shipping or amplification. Drafting can continue where allowed, but any missing required row keeps the release phase blocked; hand a precise repair to its owner.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The accepted scope and authoritative business identity are confirmed.\n- [ ] Required asset roles and controlled tracking tests have evidence; missing rows remain blocked.\n- [ ] No duplicate account/tag, implicit billing transfer or unsupported release occurred.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop has a working Analytics tag but two form events per submission. The test identifies a duplicate tag. The owner approves its narrow removal, and a new controlled submission reaches the right property once. Search Console access is still unknown, so the shipping gate remains blocked despite that repair.\n\n## Handoff and Content Factory context\n\n[Set the engine goals](https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget) receives verified measurements and constraints; missing access goes to the named asset owner.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-1-plumbing-fb-ads-google-ads-analytics#task-stage-1-plumbing-fb-ads-google-ads-analytics)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "e02b341d5f48b4890fa0745fb6ca2aeaf9980563ec188a060a05e3c8d8d5fb9b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "14c1115343940f9ea7676b55c4d753bfd1ae652b0062447cf483c702ed70b3de",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-1-plumbing-fb-ads-google-ads-analytics#task-stage-1-plumbing-fb-ads-google-ads-analytics",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "e02b341d5f48b4890fa0745fb6ca2aeaf9980563ec188a060a05e3c8d8d5fb9b",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "e02b341d5f48b4890fa0745fb6ca2aeaf9980563ec188a060a05e3c8d8d5fb9b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "e02b341d5f48b4890fa0745fb6ca2aeaf9980563ec188a060a05e3c8d8d5fb9b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 27,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Stage 2: Goals (mission, 90-day goals, CPA/ROAS, budget)",
     "slug": "stage-2-goals-mission-90-day-goals-cpa-roas-budget",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Choose a goal your business can afford and serve.",
     "content": "---\nname: stage-2-goals-mission-90-day-goals-cpa-roas-budget\ndescription: \"Choose a goal your business can afford and serve.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 2: Goals (mission, 90-day goals, CPA/ROAS, budget)\n\nChoose a goal your business can afford and serve. This guide puts the next three months of marketing on one clear page. Start with real sales, costs, lead quality and the budget the owner has agreed to.\n\n**The path:** Business facts → Goal + economics → Bounded budget → Checked brief\n\n**Start when:** The accepted engine scope needs a goals and economics brief before content, targeting or spend.\n\n## Inputs\n\n- [Tracking and access findings](https://local-service-spotlight.github.io/task-library/?task=stage-1-plumbing-fb-ads-google-ads-analytics#task-stage-1-plumbing-fb-ads-google-ads-analytics) and the accepted business scope.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) source, mission, offer, audience and current service capacity.\n- Revenue, relevant delivery costs, lead-to-customer rate, refund/collection timing and approved marketing budget from the responsible owner.\n\n## Steps\n\n1. Write the mission and one clear business outcome. Use the actual offer and customers; do not copy a broad purpose statement when the source needs a specific result.\n2. Set dated goals for the next 90 days using the current baseline and capacity. Keep projected leads, qualified leads, booked work and collected revenue separate.\n3. Define the result in cost per acquisition (CPA) before using it: a lead or a customer produces different math. Use the owner’s allowable acquisition cost after relevant costs and margin needs. Average collected revenue per customer times the verified lead-to-customer rate estimates revenue per lead; it is not a profitable cost-per-lead ceiling.\n4. For a lead plan, an explicit planning ceiling can be allowable customer-acquisition cost multiplied by the verified lead-to-customer rate, with consistent definitions. Record uncertainty and who accepted the economics; do not invent the missing close rate.\n5. If using return on ad spend (ROAS), state the conversion value divided by ad cost and what the value represents. [Google’s definition](https://support.google.com/google-ads/answer/6268637?hl=en) targets an average value-to-spend ratio; it does not guarantee revenue or profit.\n6. Check the plan on the same period: approved 90-day spend divided by assumed cost per lead estimates leads, then apply the same qualified/close-rate definitions and capacity. Show a scenario range and the shortfall if the plan cannot support the goal.\n7. Save the one-page goal, assumptions, limits and owner’s decision. Changes to the budget, scope or target require their existing authority; an attractive forecast is not permission to launch.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Goals, budget and forecast use matching periods and explicitly defined outcomes.\n- [ ] Acquisition-cost assumptions include costs/margin and source-backed close rates or visible unknowns.\n- [ ] The saved brief has bounded spend, capacity and an accepted review date without guaranteed results.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional owner allows $100 to acquire one new customer, after its cost review. One in four qualified leads becomes a customer, so the planning ceiling is $25 per qualified lead. A $750 test could yield 30 such leads if that cost holds. These are assumptions to test, not promised sales or an instruction to spend.\n\n## Handoff and Content Factory context\n\n[Prepare source content](https://local-service-spotlight.github.io/task-library/?task=stage-3-content-endorsements-why-video-3x3-grid-library#task-stage-3-content-endorsements-why-video-3x3-grid-library) receives the brief; later stages and [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) compare results with this same version.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "bead8094edd41fa1fae2d87a3d2640399771fed300c49c0b883d153d398386b9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "eaf28bde8e5437c13b3fae93d244e83256bd4783cdbe49bc03f73bcbf56cbb2b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bead8094edd41fa1fae2d87a3d2640399771fed300c49c0b883d153d398386b9",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bead8094edd41fa1fae2d87a3d2640399771fed300c49c0b883d153d398386b9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bead8094edd41fa1fae2d87a3d2640399771fed300c49c0b883d153d398386b9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 80,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Stage 3: Content (endorsements, WHY video, 3×3 grid, library)",
     "slug": "stage-3-content-endorsements-why-video-3x3-grid-library",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Give your team real stories and proof to share.",
     "content": "---\nname: stage-3-content-endorsements-why-video-3x3-grid-library\ndescription: \"Give your team real stories and proof to share.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 3: Content (endorsements, WHY video, 3×3 grid, library)\n\nGive your team real stories and proof to share. This guide gathers the files and plans the clips you still need. Start with the goal, the offer and the work the business has done.\n\n**The path:** Goal + real proof → WHY story + grid → Usable library → Processing\n\n**Start when:** The accepted goals brief is ready and the engine needs a usable set of source content.\n\n## Inputs\n\n- [The accepted goal and offer brief](https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget).\n- [Topic Wheel, the map of your offer, topics and real stories](https://blitzmetrics.com/topic-wheel/) with WHAT center, HOW middle and WHY outer; current source library and page map.\n- Real customer stories, endorsements and event or work media, with attribution and permission; a recording owner and editor.\n\n## Steps\n\n1. Inventory existing relevant sources before asking for more. Record file, topic, person, date, claim supported, permission and usable state. Do not treat an authority’s photograph as their endorsement.\n2. Prepare a real WHY story using [Create a three-minute WHY video](https://local-service-spotlight.github.io/task-library/?task=create-a-3-minute-why-video#task-create-a-3-minute-why-video). The owner tells a specific moment and useful reason behind the work; the target length is guidance, not license to invent a story.\n3. Build the agreed nine-cell plan through [Create a 3×3 video grid](https://local-service-spotlight.github.io/task-library/?task=create-a-3x3-video-grid#task-create-a-3x3-video-grid). Name its variant: three topic rows by story/WHY, teaching/HOW and offer/proof/WHAT purpose columns. These purposes are not the Topic Wheel’s physical ring positions.\n4. Use actual questions and proof for each prompt. If a proof cell lacks evidence, leave the gap and agree a truthful offer explanation; never fill it with a made-up customer win.\n5. Record and inspect the selected takes. Count nine distinct usable files only when they exist and the editor can access them. An agent uses muted frames, captions and metadata unless silent playback is verified; it cannot claim it heard sound from a silent check.\n6. Store raw files and selected takes through [Set up the Content Library](https://local-service-spotlight.github.io/task-library/?task=set-up-content-library#task-set-up-content-library). Keep names, versions, source links, rights and the grid IDs aligned.\n7. Hand the best supported sources to Process with the intended outputs. The editor selects useful derivatives; every source need not become every format. Mark unmet content inputs explicitly before the engine’s next gate.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] WHY story and agreed grid cells have real sources and usable selected takes, or specific gaps.\n- [ ] Topic Wheel labels and the chosen grid variant are correct and distinct.\n- [ ] The editor can open the library and knows the supported claims, rights and intended outputs.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop plans a nine-cell grid but has only eight usable takes. The ninth was meant to claim a customer result without a source. The team replaces that prompt with a true offer explanation and still marks its recording pending. Eight files are handed over as eight, not a complete nine-video set.\n\n## Handoff and Content Factory context\n\n[Upload the sources for processing](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) receives files and brief. [Plan targeting](https://local-service-spotlight.github.io/task-library/?task=stage-4-targeting-custom-audiences-lookalikes-remarketing#task-stage-4-targeting-custom-audiences-lookalikes-remarketing) receives the actual available content and gaps.\n\nThis work supports Produce in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The selected sources pass to Process, approved outputs go to Post, and useful proven work can enter Promote. The real inputs and handoff above set this task’s scope.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-3-content-endorsements-why-video-3x3-grid-library#task-stage-3-content-endorsements-why-video-3x3-grid-library)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "403e9847c2c41901e17d1afd08203c4a10b9c26c358ea8984c4b652aa8467481",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "b6656e7b7d4f35f8f75eaf1d183ac51513e692a0d446f9d904e4fae43aa8909b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-3-content-endorsements-why-video-3x3-grid-library#task-stage-3-content-endorsements-why-video-3x3-grid-library",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "403e9847c2c41901e17d1afd08203c4a10b9c26c358ea8984c4b652aa8467481",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "403e9847c2c41901e17d1afd08203c4a10b9c26c358ea8984c4b652aa8467481"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "403e9847c2c41901e17d1afd08203c4a10b9c26c358ea8984c4b652aa8467481"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 152,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Stage 4: Targeting (custom audiences, lookalikes, remarketing)",
     "slug": "stage-4-targeting-custom-audiences-lookalikes-remarketing",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Help the right people see content that fits their needs.",
     "content": "---\nname: stage-4-targeting-custom-audiences-lookalikes-remarketing\ndescription: \"Help the right people see content that fits their needs.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 4: Targeting (custom audiences, lookalikes, remarketing)\n\nHelp the right people see content that fits their needs. This guide helps you plan who should see each piece of work. Start with the real offer, service area and the data you are allowed to use.\n\n**The path:** Customer facts → Audience hypotheses → Supported controls → Checked map\n\n**Start when:** Goals and available content are clear, and the engine needs its targeting plan or an authorized audience setup.\n\n## Inputs\n\n- [The accepted goal and customer brief](https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget) and [available source content](https://local-service-spotlight.github.io/task-library/?task=stage-3-content-endorsements-why-video-3x3-grid-library#task-stage-3-content-endorsements-why-video-3x3-grid-library).\n- Verified tracking where required, actual platform access and the relevant source lists with permission for advertising use.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) and current provider documentation for the chosen account and objective.\n\n## Steps\n\n1. Define the intended customer, problem, location, exclusions and campaign objective. Keep targeting last in the Goals, Content, Targeting sequence; do not choose a convenient list and invent a strategy around it.\n2. Inventory permissible audience sources. Existing customer lists, site visitors, video viewers and interests are possible inputs, not mandatory data to upload. Record source, recency, rights and whether it is actually available.\n3. Choose bounded audience hypotheses matched to the content and funnel job. Do not label every customer hot or every website visitor ready to buy; the source behavior and intended action determine the use.\n4. Read the current account controls and official help before setup. [Meta Blueprint’s audience course](https://www.facebookblueprint.com/student/path/253166-advantage-plus-audiences) covers audience selection, detailed, custom and lookalike audiences. The account must establish which settings are firm controls and which are suggestions or expanded delivery; do not assume an old interest stack or 1% lookalike rule is universally available.\n5. Prepare the exact source definition, retention window, inclusion/exclusion logic, country/service area and name for each audience. Check minimum eligibility and supported options in the actual interface. A too-small or unavailable pool stays a gap.\n6. Create or edit only the audiences covered by existing authority using the supported interface. Verify saved definitions and status. An accepted file or saved audience is not proof of matching quality, actual reach or a launched ad.\n7. Save the map with audience IDs, definitions, content fit and unresolved constraints. Hand it to amplification for a separate launch review, retaining no unnecessary personal data in public documentation.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every audience has a permissible source, relevant hypothesis and current supported definition.\n- [ ] Saved controls and limitations are checked; unavailable options remain visible.\n- [ ] The map distinguishes plans, configured audiences, eligible delivery and actual reach.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop can use its permitted customer list, but the current account reports too few matched people for the planned test. The map records that limit and a separate prospecting idea for review. It does not claim a live lookalike or switch to a broader audience without an approved plan.\n\n## Handoff and Content Factory context\n\n[Stage bounded paid tests](https://local-service-spotlight.github.io/task-library/?task=stage-5-amplification-boost-posts-remarketing-ads#task-stage-5-amplification-boost-posts-remarketing-ads) receives the verified map and limits.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-4-targeting-custom-audiences-lookalikes-remarketing#task-stage-4-targeting-custom-audiences-lookalikes-remarketing)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA current authorized account must verify audience controls, source permissions, eligibility and saved setup. The detailed Meta help page required login during source review; no unsupported UI behavior is certified. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "5d2b87c7d5465a6aa074768455434fab0c4abff47dc5d49317742bf9cd61eda0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "12cff8c8c5b29baa850d85b78110e929cd52e3b84e59e68ec797683779dcb84c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-4-targeting-custom-audiences-lookalikes-remarketing#task-stage-4-targeting-custom-audiences-lookalikes-remarketing",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5d2b87c7d5465a6aa074768455434fab0c4abff47dc5d49317742bf9cd61eda0",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5d2b87c7d5465a6aa074768455434fab0c4abff47dc5d49317742bf9cd61eda0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5d2b87c7d5465a6aa074768455434fab0c4abff47dc5d49317742bf9cd61eda0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 28,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Stage 5: Amplification (boost posts, remarketing ads)",
     "slug": "stage-5-amplification-boost-posts-remarketing-ads",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Use small ad tests to give proven content more reach.",
     "content": "---\nname: stage-5-amplification-boost-posts-remarketing-ads\ndescription: \"Use small ad tests to give proven content more reach.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 5: Amplification (boost posts, remarketing ads)\n\nUse small ad tests to give proven content more reach. This guide helps your team set the limit and check what actually went live. Start with the winning posts, the right audience and the spend already approved.\n\n**The path:** Organic proof → Bounded test → Live readback → Measured decision\n\n**Start when:** Engine readiness, goals, source content and targeting are checked and a specific paid test is authorized.\n\n## Inputs\n\n- The passed required engine gates and exact approved budget, dates, action scope and owner.\n- [The checked audience map](https://local-service-spotlight.github.io/task-library/?task=stage-4-targeting-custom-audiences-lookalikes-remarketing#task-stage-4-targeting-custom-audiences-lookalikes-remarketing) and organic result evidence for usable published content.\n- [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/) current method, target result and campaign/source access.\n\n## Steps\n\n1. Rank relevant organic content by the job and signals that matter, including watch quality, useful engagement or qualified response. Select a small supported test set; the old 3–5-post suggestion is not permission to invent winners.\n2. Prepare the source’s small-test pattern: typically $1 per day for seven days, with the exact total portfolio exposure, audience, result and end/review condition stated. Check the platform’s supported budget rules and minimums; do not silently increase spend to satisfy a control.\n3. Document the test variable and goal. Use the maintained Dollar-a-Day procedure for the chosen test rather than inventing a universal four-stage optimization sequence that the current operating hub does not define.\n4. Include remarketing only when its source, rights, eligibility and actual campaign support are verified. Choose a justified window; 1-day abandoners on both Google and Meta are not a universal prerequisite.\n5. Create or launch only the exact campaign covered by authority through the supported account workflow. Keep the correct post identity, destination, budget, audience, optimization goal and schedule. A green checklist alone does not grant publication or spending authority.\n6. Read back live settings and delivery state. Record rejected, pending-review, active and non-delivering states as observed; a saved campaign is not proof that an ad was served.\n7. Monitor on the agreed cadence and evaluate after the relevant window and conversion delay. Apply the current stop rules through [Pause weak tests and scale proven winners](https://local-service-spotlight.github.io/task-library/?task=kill-underperformers-scale-winners#task-kill-underperformers-scale-winners). Save spend, result, changes and next review for optimization; a nominal daily budget is not always the platform’s daily billing cap.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The test set has organic proof and exact approved settings and total exposure.\n- [ ] Saved and live account state match the authorized plan; delivery is separately observed.\n- [ ] Review/stop conditions and actual spend are recorded without promises of return.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional team selects two proven posts for two approved $7 tests. One is active; the other is still under review. The launch receipt records those two states and the total planned $14 exposure. It does not call both delivered, and no extra money moves to the active test without authority.\n\n## Handoff and Content Factory context\n\n[Review the engine results](https://local-service-spotlight.github.io/task-library/?task=stage-6-optimization-metrics-budget-review-recommendations#task-stage-6-optimization-metrics-budget-review-recommendations) receives the settings, spend and outcome records.\n\nThis work supports Promote in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). It follows the source, editing and publishing work of Produce, Process and Post; the actual campaign evidence feeds the next review.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 3 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-5-amplification-boost-posts-remarketing-ads#task-stage-5-amplification-boost-posts-remarketing-ads)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "b37011525c369ade3a337aa5ecbdbcb2649016e799ee463a8c7caf32367480c0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2b5798362bdbba56506ebe8d5ca40a69c1c912949b32cdff48f7df3f0a9f704b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-5-amplification-boost-posts-remarketing-ads#task-stage-5-amplification-boost-posts-remarketing-ads",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b37011525c369ade3a337aa5ecbdbcb2649016e799ee463a8c7caf32367480c0",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b37011525c369ade3a337aa5ecbdbcb2649016e799ee463a8c7caf32367480c0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b37011525c369ade3a337aa5ecbdbcb2649016e799ee463a8c7caf32367480c0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 53,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Stage 6: Optimization (metrics, budget review, recommendations)",
     "slug": "stage-6-optimization-metrics-budget-review-recommendations",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/social-amplification",
     "articleKind": "task-recipe",
     "desc": "Use the latest results to choose the next useful change.",
     "content": "---\nname: stage-6-optimization-metrics-budget-review-recommendations\ndescription: \"Use the latest results to choose the next useful change.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /social-amplification\nstatus: complete\n---\n\n# Stage 6: Optimization (metrics, budget review, recommendations)\n\nUse the latest results to choose the next useful change. This guide helps your team see which part needs work and who should fix it. Start with this period’s facts, the original goal and the last action list.\n\n**The path:** Results + prior actions → Explain the change → Bounded plan → Next cycle\n\n**Start when:** The agreed engine review is due and there is sufficient data to inspect, or a source gap needs routing.\n\n## Inputs\n\n- [Actual campaign settings and result records](https://local-service-spotlight.github.io/task-library/?task=stage-5-amplification-boost-posts-remarketing-ads#task-stage-5-amplification-boost-posts-remarketing-ads).\n- [The accepted goals/economics brief](https://local-service-spotlight.github.io/task-library/?task=stage-2-goals-mission-90-day-goals-cpa-roas-budget#task-stage-2-goals-mission-90-day-goals-cpa-roas-budget) and prior actions.\n- Matching source exports, conversion definitions, dates, tracking limits and action authority.\n\n## Steps\n\n1. Read back which prior actions actually happened, their timing and any concurrent account changes. Start comparison from the real state, not the prior report’s intentions.\n2. Break a headline result into useful components. With the same clicks and conversions, cost per lead equals average cost per click divided by leads per click. Check matching populations and zero denominators before applying the formula.\n3. Compare the current and prior comparable periods, allowing for conversion lag, seasonality, mix and changed definitions. Name observed changes and plausible explanations separately; do not assign a proven cause to every fluctuation.\n4. Audit actual spend against the agreed total and by relevant campaign, audience or channel. Pair unit cost with qualified volume and business outcomes so a cheap result is not mistaken for a good one.\n5. Choose the highest-value concrete next actions, usually a small set for the coming week. Each has an evidence link, owner, due date, expected signal and decision rule. Fewer supported actions are better than padding to three or five.\n6. Route new content to phase 3, audience work to phase 4, and approved campaign changes to phase 5. Keep proposals separate from execution and check any authorized change afterward.\n7. Save the [Metrics, Analysis, Action: what happened, why and what to do](https://blitzmetrics.com/maa/) report and handoff. The next agreed cycle checks these results; no guide text creates a weekly job or guarantees that a provider will run it.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Component math and comparisons use the same definitions and periods.\n- [ ] Budget and business-result findings are evidence-backed with uncertainty visible.\n- [ ] Next actions have actual receiving owners and review conditions; saved and proposed actions remain distinct.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nIn a fictional account, 200 clicks cost $100 and produce 10 qualified leads. Cost per click is $0.50, lead rate is 5%, and cost per lead is $10. Next week’s cost rises, but the source is only two days old. The team retains the observation and waits for its agreed window before calling the test worse.\n\n## Handoff and Content Factory context\n\n[Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the report; the exact phase owner receives each accepted action and its future measurement condition.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/social-amplification/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=stage-6-optimization-metrics-budget-review-recommendations#task-stage-6-optimization-metrics-budget-review-recommendations)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "f430306272f297e875103d34b4216fa35e4776a9d195198a38cea579cd1ba998",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a4d4b81106e20dc735ebcc486a33b69d0119176b6745ce49896013c6ff2d6e78",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=stage-6-optimization-metrics-budget-review-recommendations#task-stage-6-optimization-metrics-budget-review-recommendations",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f430306272f297e875103d34b4216fa35e4776a9d195198a38cea579cd1ba998",
      "articleKey": "blitzmetrics.com/social-amplification",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f430306272f297e875103d34b4216fa35e4776a9d195198a38cea579cd1ba998"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f430306272f297e875103d34b4216fa35e4776a9d195198a38cea579cd1ba998"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/social-amplification"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 81,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Submit weekly MAA report every Friday",
     "slug": "submit-weekly-maa-report-every-friday",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/",
     "articleKind": "task-recipe",
     "desc": "Show a business owner what changed and what the team should do next.",
     "content": "---\nname: submit-weekly-maa-report-every-friday\ndescription: \"Show a business owner what changed and what the team should do next.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/\nstatus: needs-work\n---\n\n# Submit weekly MAA report every Friday\n\nShow a business owner what changed this week and what to do next. This helps the team choose work that serves the owner’s goal. Use [MAA—Metrics, Analysis, Action](https://blitzmetrics.com/maa/): check the numbers, explain what they mean, and pick the next step.\n\n**The path:** Verified numbers → Meaning → Owned next actions → Checked delivery\n\n**Start when:** The client’s agreed weekly reporting deadline is due; use Friday only when that is the accepted cadence.\n\n## Inputs\n\n- [Collect verified weekly measurements](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements) report and the client’s accepted metric definitions, source contract and period.\n- Last report, evidence of actual actions, current business context and named project lead.\n- The agreed reporting day, channel, recipients and sending authority; [the weekly MAA article](https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/).\n\n## Steps\n\n1. Read the previous action list and mark actual results. Confirm the goal, reporting window, timezone, definitions and any approved changes before comparing numbers. Record when each source was checked and the last complete day it covers. Compare equal, complete periods using the same definitions. If the current week is partial, label it and withhold a week-over-week change until a matching prior window is available. A monthly view may add context, but is not a weekly comparison. If a source revised last week’s number, retain the old figure, revised figure, pull time and reason; do not silently rewrite the earlier report.\n2. Open with the most useful supported finding, why it matters to this client’s goal and the decision or action it enables. Use two or three grade-five sentences beside a relevant chart or evidence diagram; do not begin with a generic explanation of marketing. Apply the meaning review in [Write the hook and establish context](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and retain the exact opening text and quoted reviewer evidence in the report receipt.\n3. Lead with qualified calls and leads for a local-service engagement when that is its accepted goal. Keep total calls, qualified calls, booked jobs and revenue separate. Call duration can screen a queue but does not establish qualification.\n4. Show source breakdowns, actual ad spend and cost per defined result, followed by relevant search and website measures. Keep missing sources and attribution limits visible; do not report an unread source as zero.\n5. Explain what is working, what misses its target and what cannot yet be judged. Use [Show what works and what needs review](https://local-service-spotlight.github.io/task-library/?task=show-whats-working-and-what-isnt#task-show-whats-working-and-what-isnt) and [Diagnose weak results](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail) for supporting detail. Analysis connects facts to a supported reason or testable question rather than merely restating the table.\n6. Write a short priority list of concrete next actions with owner, due date and pass rule. Distinguish changes already verified from proposals and blocked actions. Do not fill a three-action template with invented work.\n7. Check the report’s math, links, dates, privacy and clear grade-five opening. Use the accepted voice and current [Article Guidelines](https://localservicespotlight.com/article-guidelines/) for any public form.\n8. Save and deliver in the exact agreed channel only when sending is authorized. Verify the sent or posted copy and retain its location and exact report revision. Record draft, delivered and accepted states separately. A successful post proves delivery, not that the receiver approved the report. Record the receiving owner’s actual acknowledgement or acceptance against this report; otherwise keep acceptance unknown. If delivery is blocked, name that dependency and next owner. Use the existing follow-up process rather than starting a duplicate reminder.\n9. Carry the report and next actions into the Success Tracker and next cycle. Keep the actual scheduler configuration separate from this Friday-named recipe.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] The report uses agreed definitions and comparable sourced numbers, with qualification distinct from volume.\n- [ ] Analysis and concrete next actions follow the evidence; unknowns remain visible.\n- [ ] Saved and delivered states are verified separately in the correct destination, or the delivery blocker is explicit.\n- [ ] The source pull time, complete-through date and equal comparison windows are visible; partial periods and revised numbers are labeled.\n- [ ] The report and next actions have a receiving owner. Acceptance cites the exact report and observed reply, or remains unknown.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional report shows 30 total calls, 12 qualified calls and five bookings under the client’s definitions. It proposes checking six missed calls next. The draft is ready Thursday, but the agreed delivery is Friday in the client’s existing channel. The record stays draft until the authorized send is read back. If search data covers only four complete days, the team does not compare it with seven days and call the difference a decline. It waits for a matching window or marks the comparison unavailable. Once posted, the report is delivered; acceptance remains unknown until the receiver confirms this report.\n\n## Handoff and Content Factory context\n\n[Update the Success Tracker](https://local-service-spotlight.github.io/task-library/?task=update-client-success-tracker#task-update-client-success-tracker) receives the exact report, source links, comparison limits and actions with owners, due dates and pass rules. Name the receiving project lead and record the handoff location. The next agreed review checks what happened to those actions; an assignment alone does not prove they were done.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 4/5 `●●●●○` — frequency 4, revenue 4, gating 2 (runs every factory cycle or weekly; creates the asset ads amplify)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. Written and presentation checks are recorded against this exact revision in the library review ledger. Those checks do not supply real-run acceptance or novice setup evidence.",
     "importance": 4,
     "freq": 4,
     "revenue": 4,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify",
     "instructionReview": {
      "source_sha256": "09f1b49e8973d432e3716395eaab70b465c2486286291caebe019a8bbf6b654b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "One written weekly-report recipe and selected synchronized article instructions. Full article certification, actual report execution, account setup and novice use excluded. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Exact quoted lead states task, business value and the linked MAA method in plain language. Current owned destination explains numbers, analysis and next action. Phone and desktop path previews are visible.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
        },
        "recipe": {
         "state": "pass",
         "reason": "Names trigger, accepted goal and definitions, complete-through dates, equal periods, labeled revisions, supported analysis and specific owned actions. Friday depends on agreed cadence.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
        },
        "links": {
         "state": "pass",
         "reason": "MAA, Content Factory and Success Tracker returned200 with ordinary browser headers and destination meanings read. Existing source and next-task links remain maintained references.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Qualification is distinct from call length; partial data and missing sources stay explicit. Fictional example is labeled. Original report thread supplied a lesson; unavailable attachment and absent receiver acceptance are not promoted into proof.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
        },
        "handoff": {
         "state": "pass",
         "reason": "Exact delivered report and source limits go to the named project lead and Success Tracker with owners, dates and pass rules. Draft/delivered/accepted are separate; existing follow-up and next reporting cycle retain ownership.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "5a74190de93ffb6135a7d87d2c54ee00f042a9ed31ccb32fe77b91d1e642753c",
       "previousReviewDate": "2026-10-11",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 1,
      "candidateCount": 1,
      "records": [
       {
        "version": 1,
        "evidenceId": "historical-67283f8934345f04d0bb68a6",
        "taskSlugs": [
         "submit-weekly-maa-report-every-friday"
        ],
        "occurrence": {
         "start": {
          "precision": "unknown",
          "value": null
         },
         "end": {
          "precision": "unknown",
          "value": null
         }
        },
        "recipeRevision": {
         "state": "unknown",
         "canonicalURL": null
        },
        "observedAt": "2026-10-06T02:58:28.783349+00:00",
        "outcome": "A weekly business report was posted with Metrics, Analysis and Action, source exports, named owners and due dates. Nineteen selected aggregate checks matched the attached files, with one explicitly marked test submission excluded. Private customer details and figures are withheld.",
        "review": {
         "identity": {
          "state": "pass",
          "notes": "One dated weekly report and its exact attachment were recovered from the original project thread. Praise for a separate page delivery was not treated as report approval."
         },
         "output": {
          "state": "pass",
          "notes": "The report and its readable export archive exist. Selected totals reconcile with the stated date ranges and explicit test-row exclusion. This check does not certify every claim or source-system provenance."
         },
         "acceptance": {
          "state": "unknown",
          "notes": "No report-specific reviewer acceptance was found. A conclusion that direct traffic rules out ad influence is unsupported, so full accuracy acceptance remains open."
         },
         "handoff": {
          "state": "pass",
          "notes": "The report was posted to its project channel with named next actions and dates. Receipt by a particular reader and completion of those future actions remain unknown."
         }
        },
        "evidenceUrls": [],
        "privateEvidenceRecorded": true
       }
      ]
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 1,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 1,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [
       "historical-67283f8934345f04d0bb68a6"
      ],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "09f1b49e8973d432e3716395eaab70b465c2486286291caebe019a8bbf6b654b",
      "articleKey": "blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: One written weekly-report recipe and selected synchronized article instructions. Full article certification, actual report execution, account setup and novice use excluded. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "09f1b49e8973d432e3716395eaab70b465c2486286291caebe019a8bbf6b654b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "One written weekly-report recipe and selected synchronized article instructions. Full article certification, actual report execution, account setup and novice use excluded. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "09f1b49e8973d432e3716395eaab70b465c2486286291caebe019a8bbf6b654b",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Exact quoted lead states task, business value and the linked MAA method in plain language. Current owned destination explains numbers, analysis and next action. Phone and desktop path previews are visible.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
          },
          "recipe": {
           "state": "pass",
           "reason": "Names trigger, accepted goal and definitions, complete-through dates, equal periods, labeled revisions, supported analysis and specific owned actions. Friday depends on agreed cadence.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
          },
          "links": {
           "state": "pass",
           "reason": "MAA, Content Factory and Success Tracker returned200 with ordinary browser headers and destination meanings read. Existing source and next-task links remain maintained references.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Qualification is distinct from call length; partial data and missing sources stay explicit. Fictional example is labeled. Original report thread supplied a lesson; unavailable attachment and absent receiver acceptance are not promoted into proof.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
          },
          "handoff": {
           "state": "pass",
           "reason": "Exact delivered report and source limits go to the named project lead and Success Tracker with owners, dates and pass rules. Draft/delivered/accepted are separate; existing follow-up and next reporting cycle retain ownership.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/weekly-maa-clarity-2026-10-11.md"
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-write-weekly-maa-reports-for-local-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 78,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Systematization (Content → Checklists → Software)",
     "slug": "systematization-content-checklists-software",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "Turn a job your team knows into steps others can use.",
     "content": "---\nname: systematization-content-checklists-software\ndescription: \"Turn a job your team knows into steps others can use.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Systematization (Content → Checklists → Software)\n\nTurn a job your team knows into steps others can use. This guide helps you test the steps before you build tools around them. Start with one real task and the person who can show it well.\n\n**The path:** Real work → Canonical guide → Tested checklist → Bounded software\n\n**Start when:** A repeated task needs a reliable documented method and evidence for any automation decision.\n\n## Inputs\n\n- A real repeated task, current source guide if one exists and an experienced operator.\n- Actual input/output examples, errors and review criteria; permission to record or inspect the work.\n- The maintained task/document sources, a reviewer and an authorized scope for any later software change.\n\n## Steps\n\n1. Observe a real execution and capture the goal, inputs, decisions, steps, result and exceptions. Preserve actual work evidence; an imagined clean path misses the problems this process must handle.\n2. Use [Document a task](https://local-service-spotlight.github.io/task-library/?task=document-a-task#task-document-a-task) to create or update its single canonical recipe. Separate a task guide from a topic hub, and connect supporting articles through the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/).\n3. Extract a checklist with explicit inputs, ordered actions, pass criteria and next handoff. Package it as a skill, meaning reusable task instructions, using the current [skill publishing standard](https://blitzmetrics.com/skill-publishing-standard/).\n4. Test the checklist on actual authorized work with different operators. The prior local recipe calls for at least three runs including someone other than the expert; record that agreed gate and the actual distinct executions. A question can reveal missing context, an exception or an execution mistake; diagnose it before editing.\n5. Compare the runs for stable mechanical steps and judgment points. Propose automation only where inputs, failure handling, access, authority and observable outputs are defined. Software use is not automatically a scheduled job.\n6. Implement only the approved bounded tool or worker. Test success, missing-input and failure paths without hidden live effects, and retain the actual result. Keep a manual handoff where judgment or access remains human.\n7. Compare time, rework and output quality against the baseline after use. A new script, skill or plugin is an artifact; do not call the method improved until its evidence supports that claim.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] One canonical recipe and usable checklist trace to real work.\n- [ ] The agreed multi-operator test gate has distinct run evidence or remains unfinished.\n- [ ] Any automated portion has authorized scope, failure handling and observed tests; unresolved judgment is explicit.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional team records three real invoice-check attempts in its practice setting. Two operators miss a field that the guide never named, so the guide changes. A fourth attempt has not happened. The new checklist is saved, but the team does not claim its revised process has passed or that a new script can send invoices.\n\n## Handoff and Content Factory context\n\n[Publish the reviewed skill and task page](https://local-service-spotlight.github.io/task-library/?task=publish-skill-and-task-page#task-publish-skill-and-task-page) handles the approved document; the implementation owner receives any separate software proposal.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=systematization-content-checklists-software#task-systematization-content-checklists-software)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c220784a16445be8597385584af173b29f16c05f458c2ce7a3a8824a322de4a2",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9d0ad9f1151ee6c54b7cd7897d7f58fc29de68b85f4902b549eff85ffecd3338",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=systematization-content-checklists-software#task-systematization-content-checklists-software",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c220784a16445be8597385584af173b29f16c05f458c2ce7a3a8824a322de4a2",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c220784a16445be8597385584af173b29f16c05f458c2ce7a3a8824a322de4a2"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c220784a16445be8597385584af173b29f16c05f458c2ce7a3a8824a322de4a2"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 17,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Three Pillars (Marketing, Operations, Finance)",
     "slug": "three-pillars-marketing-operations-finance",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/",
     "articleKind": "topic-hub",
     "desc": "See which part of the business needs help first.",
     "content": "---\nname: three-pillars-marketing-operations-finance\ndescription: \"See which part of the business needs help first.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /9-triangles-framework-scalable-home-service-businesses/\nstatus: complete\n---\n\n# Three Pillars (Marketing, Operations, Finance)\n\nSee which part of the business needs help first. This guide looks at sales, the work you deliver and the money you keep. Start with the owner’s goal and one useful number for each part.\n\n**The path:** Business goal → Three functions → Supported constraint → Review plan\n\n**Start when:** A whole-business review must locate a supported constraint before reallocating effort.\n\n## Inputs\n\n- The accepted goals, current roles and recurring work.\n- Sourced sales/pipeline, delivery/quality and finance records for comparable periods.\n- The owner and relevant function leads, with the scope of decisions they can make.\n\n## Steps\n\n1. Define the three functions from the source: Marketing/Sales creates demand and sales; Operations delivers the promised work; Finance plans and tracks money and resources. These are functional lenses, not a newly certified reconstruction of the nine-part diagram.\n2. Map in-scope work and roles to their primary function, retaining real cross-functional dependencies. A task that spans functions is not automatically irrelevant or a delete candidate.\n3. Choose a useful measure and target for each function. Examples are qualified pipeline, on-time delivery with quality, and margin or available cash. The responsible owner must define the metric and source rather than accepting a generic dashboard label.\n4. Compare the values with the goals and operating limits. Distinguish a missing measure from a weak measured result. Check whether the proposed constraint actually limits the business, using supporting records.\n5. Draft a concrete response for the best-supported constraint, with owner, time/budget limits and expected signal. A staffing, pricing or financial decision follows its existing authority; this review does not make it automatically.\n6. Save the functional map, evidence and unresolved questions. Set the agreed review condition and carry the three functions into the relevant weekly or strategic report.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Functions and shared dependencies are mapped truthfully.\n- [ ] Each key metric has a definition, source, period and target or an explicit gap.\n- [ ] The proposed constraint and bounded response have evidence and a responsible owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop has enough booked work but misses three of ten promised dates. Its cash figure has not been supplied. The review investigates delivery capacity first while keeping finance unknown. It does not declare finance healthy or hire another person just because the operations metric is weak.\n\n## Handoff and Content Factory context\n\n[Assign the accepted next work](https://local-service-spotlight.github.io/task-library/?task=management-communicate-iterate-delegate#task-management-communicate-iterate-delegate) receives the plan; [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the function evidence where relevant.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=three-pillars-marketing-operations-finance#task-three-pillars-marketing-operations-finance)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c881c989d49eb4a660d25946f5dc544bb53b625b220c0ac29df626e305c7ce2c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5a736657bf34e027527bba29b9a57b9ce7323f67097a16a29b7246e1745bea43",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
     "articleStateReviewed": "2026-08-22",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=three-pillars-marketing-operations-finance#task-three-pillars-marketing-operations-finance",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c881c989d49eb4a660d25946f5dc544bb53b625b220c0ac29df626e305c7ce2c",
      "articleKey": "blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c881c989d49eb4a660d25946f5dc544bb53b625b220c0ac29df626e305c7ce2c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c881c989d49eb4a660d25946f5dc544bb53b625b220c0ac29df626e305c7ce2c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/9-triangles-framework-scalable-home-service-businesses/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06.",
        "reviewedAt": "2026-08-22"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 19,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the live hub duplicates GCT and DDD and omits the accepted AEC, CID, and SBP triangle labels from Nine Triangles operational version 2026-08-06."
     }
    },
    {
     "title": "Use for content planning and video topics",
     "slug": "use-for-content-planning-and-video-topics",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/topic-wheel",
     "articleKind": "task-recipe",
     "desc": "Make a useful plan for your next set of clips.",
     "content": "---\nname: use-for-content-planning-and-video-topics\ndescription: \"Make a useful plan for your next set of clips.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /topic-wheel\nstatus: complete\n---\n\n# Use for content planning and video topics\n\nMake a useful plan for your next set of clips. This guide turns your topic map and real questions into a short list of clips to make. Start with the offer, the stories you can prove and the time you have.\n\n**The path:** Wheel + demand → Clear prompts → Recording plan → Editor\n\n**Start when:** A checked Topic Wheel needs to become a bounded recording plan.\n\n## Inputs\n\n- [The WHAT offer](https://local-service-spotlight.github.io/task-library/?task=map-what-ring-specific-content#task-map-what-ring-specific-content), [HOW topics](https://local-service-spotlight.github.io/task-library/?task=map-how-ring-methods#task-map-how-ring-methods) and [WHY stories](https://local-service-spotlight.github.io/task-library/?task=map-why-ring-core-purpose#task-map-why-ring-core-purpose).\n- Real customer questions, source proof, current content results and the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/).\n- The speaker’s availability, recording setup, existing library and receiving editor.\n\n## Steps\n\n1. Read the current wheel with WHAT in the center, HOW in the middle and WHY stories outside. Use its relevant stories and topic-linked questions to make a separate recording backlog; do not export an imaginary outer WHAT ring.\n2. For each prompt, record the source, topic, intended viewer, purpose and owned destination page. Keep real questions in the customer’s language where appropriate and distinguish a proposed story from existing proof.\n3. Prioritize by the current business goal, repeated customer need, usable proof and production effort. Search volume or last period’s winner is a signal, not a guaranteed future outcome.\n4. Check for relevant existing assets that can be reused. Apply the source’s 90/10 greatest-hits principle to the declared effort unit, leaving a bounded portion for new tests.\n5. Prepare one session’s prompts that fit the available time. Give the speaker a question and source reminders rather than invented first-person claims. Use the [one-minute guide](https://blitzmetrics.com/one-minute-video-guide/) for a clear short answer; split a topic that needs more.\n6. Agree the actual recording owner, date and file handoff. A plan is not a scheduled calendar event until saved and verified, and a planned clip is not recorded.\n7. After the authorized session, link the selected takes and actual remaining gaps in the library. Hand only real available sources to the editor and use later results to refine the next plan.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Prompts use correct wheel relationships and trace to real questions or proof.\n- [ ] The bounded session plan has a speaker, time, sources and editor handoff.\n- [ ] Planned, recorded, usable and published states remain distinct in the backlog.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional bike shop has five source-backed questions but time for three clips. It picks the three that match its current service goal and saves the other two as pending. After recording, one take has no usable picture. The editor gets two selected files, and the plan records that the third still needs a take.\n\n## Handoff and Content Factory context\n\n[Record the planned clips](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-videos#task-record-one-minute-videos) receives the prompts; [Process the saved source files](https://local-service-spotlight.github.io/task-library/?task=step-1-upload-video-to-google-drive-and-descript#task-step-1-upload-video-to-google-drive-and-descript) receives the actual usable takes.\n\nThis work supports Produce in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). The selected sources pass to Process, approved outputs go to Post, and useful proven work can enter Promote. The real inputs and handoff above set this task’s scope.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/topic-wheel/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "bea88b47bee332ee4cee4851cb2d1b35623cb0e07fe24eeeda8539dc70cec2c9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "662acd5d33748755654d68f6d71e336434258cdceab65ba8ee656d2254ce594e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=use-for-content-planning-and-video-topics#task-use-for-content-planning-and-video-topics",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bea88b47bee332ee4cee4851cb2d1b35623cb0e07fe24eeeda8539dc70cec2c9",
      "articleKey": "blitzmetrics.com/topic-wheel",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bea88b47bee332ee4cee4851cb2d1b35623cb0e07fe24eeeda8539dc70cec2c9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bea88b47bee332ee4cee4851cb2d1b35623cb0e07fe24eeeda8539dc70cec2c9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/topic-wheel"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "The hub has historical example volume, but no audited record attributes an example to this task slug.",
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 275,
      "priority": "P3",
      "priorityReason": "Missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Google Ads Analyzer (weekly MAA)",
     "slug": "google-ads-analyzer",
     "status": "complete",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Turn a local service business's Google Ads data into a short weekly report (Metrics, Analysis, Action) that a project lead can act on, drafted under evidence rules and checked by a second agent before anyone sees it; trigger on \"do the MAA for [client]\", \"weekly Google Ads MAA\", \"analyze my Google A",
     "content": "---\nname: google-ads-analyzer\ndescription: Turn a local service business's Google Ads data into a short weekly report (Metrics, Analysis, Action) that a project lead can act on, drafted under evidence rules and checked by a second agent before anyone sees it; trigger on \"do the MAA for [client]\", \"weekly Google Ads MAA\", \"analyze my Google Ads\", \"Google Ads audit\", an uploaded Google Ads export, or a scheduled weekly run.\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: https://localservicespotlight.com/google-ads-maa-agent/ (live since 2026-07-10; revision for the 1.5.0 process drafted 2026-09-15 at docs/definitive-article/google-ads-analyzer.md, awaiting publish)\nstatus: needs-work\n---\n\n# Google Ads Analyzer (weekly MAA)\n\nYou run Google Ads for a local service business, or you manage the person who does. Each week you need to know three things. What did the ads do? Why? What should change next? This skill reads the account data and writes that weekly report. The report is called an MAA. That stands for Metrics, Analysis, Action. A second agent checks every number and every suggestion before a person sees it. Your first action is to check that the client has a ledger file. The ledger is the client's memory. It says what counts as a lead, what changed and when, and what we already watch. No ledger? Run the onboarding skill first. When this skill is done, the project lead reads a short summary and decides what to post.\n\nTerms used below, explained once: **MAA** is the report format, Metrics then\nAnalysis then Action. **PMax** is Performance Max, a Google campaign type\nthat places ads across Google's networks automatically. **Quality Score** is\nGoogle's 1 to 10 rating of a keyword's ad and page fit. **Keywords** are what\nwe bid on; **search terms** are what people actually typed. **Ledger** is the\none file per client that holds definitions, rules, changes, watch items and\nknown data faults (`../../shared/frameworks/ledger-template.md`). **Hardener**\nis the second agent, `google-ads-reviewer`, that checks the draft.\n\nReading grade of the opening above: 3.7 (Flesch-Kincaid, measured 2026-09-15\non the paragraph as written; 130 words, 15 sentences).\n\n## Inputs\n\n**Boundary, stated first: this skill never changes a Google Ads account.** It\nreads through a read-only connector and writes files. Negatives, pauses, bids,\nbudgets and copy changes leave this skill as recommendations and become\ndry-run scripts in `google-ads-change-scripts`, run only after a person\napproves them.\n\nEverything the run needs before it starts. If any required item is missing,\nthe agent **stops and hands off** to the operator with the missing item named.\nIt does not guess, does not proceed on partial data, and does not splice\nsources.\n\n**Access (separate from files):**\n\n| Access | Required | Notes |\n|---|---|---|\n| Google Ads read access to the client account | Yes | Via the read-only Google Ads MCP. The account is reached through a manager account (MCC) that lists the client CID, or as a single account the credential can see. The MCP needs a developer token with Basic access or higher and an OAuth grant on the `https://www.googleapis.com/auth/adwords` scope; setup in `../../shared/frameworks/mcp-setup-guide.md`. |\n| Fallback: the weekly data email | Only if the MCP is down | Gmail label `maa-data-automation`, subject `[MAA Data] {Client} {date}`; contract in `../../shared/frameworks/data-pipeline-contract.md`. Requires the corrector script on the keyword report. |\n| Client folder, read and write | Yes | `{OUTPUT_DIR}/{Client}/` per `CONFIGURATION.md`, or the vault path named in the deployment's binding file. |\n| Basecamp, email, any client channel | Never | This skill posts nothing anywhere. |\n\n**Files (must exist before the run):**\n\n| File | Produced by | Checked output it must contain |\n|---|---|---|\n| `compiled/ledger.md` (or `{Client}_Ledger.md` in simple mode) | `google-ads-onboarding` | All ten sections; section 2 names the lead definition, target and windows; section 7 has a quarantine exit date. |\n| Client metric spec (`compiled/maa-metric-spec.md`) | onboarding, or the first run | Section order and metric names for this client. |\n| The most recent dated MAA in `deliverables/` | the prior weekly run | Used for deltas and voice. First run: none, and the report says so. |\n| The deployment's overlay and procedure files, if any | the agency | e.g. `maa-skills-binding.md`, `maa-generation.md`. |\n\n**Data pulled by the run (not pre-supplied):** the full pack in\n`../../shared/frameworks/gaql-query-pack.md`, both windows, 7 days and 30 days\nending yesterday: campaign summary, campaign budgets, keyword report with\nQuality Score components (all statuses), search terms, ad report with\nstrength, conversions by action, network and device splits, user location,\nnegatives at three levels, call data. On the email path the ten datasets in\nthe export body.\n\n**Prerequisite task:** `google-ads-onboarding`, once per client. Its checked\noutput is the ledger above plus `compiled/trend.csv` with 13 weekly rows.\n\n**Missing-access behavior, stated once:** no ledger, stop and report \"no\nledger; run google-ads-onboarding\". MCP unavailable and no email export, stop\nand report; never splice. Any query that returns exactly its row cap is\nflagged and supports no claim that something is absent. Any account state\nthe ledger's change log does not explain is recorded as an \"unlogged change\"\nquestion for the operator, not analyzed.\n\n## Steps\n\nThe run is five stages; the detailed procedure for each is in the Full\nprocedure section below.\n\n1. **Read** (Stage 0): the ledger in full, then the knowledge base, metric\n   spec, overlay files and the last MAA. No data yet.\n2. **Pull** (Stage 0b): the whole pack, both windows, saved verbatim to\n   `raw/`, with row counts. No prose yet.\n3. **Draft** (Stage 1): under the ten evidence gates in\n   `../../shared/frameworks/evidence-gates.md`, in the client's section order,\n   with a claim register in the Generation notes block. Weekly runs answer\n   context questions from the ledger or add them to its Open ASKs; they do not\n   ask in chat.\n4. **Harden** (Stage 2): dispatch `google-ads-reviewer` in a fresh context\n   with only the frozen draft, the raw pack, the ledger and the spec. Apply\n   its verdicts once. One round.\n5. **Reconcile and wrap** (Stages 3 and 4): numbers tie to the pack; every\n   Action has watch-list age or is a foundation break; append the ledger and\n   the trend row; read back the saved files; stop. The client view is not\n   rendered on a scheduled run.\n\n## Definition of done (QA checklist)\n\nEvery box must be checked before the run reports itself complete. A run that\ncannot check a box says which one and why.\n\n- [ ] Ledger, spec and last MAA were read before the first query (Generation\n      notes lists them by path).\n- [ ] Raw pack saved to `raw/google-ads/YYYY-MM-DD_mcp-pull.json` (or the\n      email export to `raw/google-ads/YYYY-MM-DD_email-data.txt` plus the\n      corrected copy), and the row count of every query is recorded, with any\n      query at its cap flagged. Any summary or derived block inside the pack\n      was computed from its rows by script, never typed by hand (a hand-typed\n      weekly call summary that did not sum to its rows produced four wrong\n      sentences on 2026-09-11).\n- [ ] Generation notes record the run's start and end timestamps (account\n      timezone). Tokens and cost are recorded when the runtime exposes them\n      and written as UNKNOWN otherwise.\n- [ ] Every campaign figure in Metrics ties to the pack to the cent; CTR, CPC\n      and CPA were recomputed, not copied.\n- [ ] Every number in Analysis carries its comparison (delta or baseline) or\n      says it is new.\n- [ ] Every causal or trend sentence in Analysis has a dataset and row\n      reference in the claim register.\n- [ ] Every Action names an owner inline, states what and why, and either has\n      two prior cycles on the ledger watch list or is a foundation break\n      (tracking, geo, bidding without signal, disapproval, not serving, budget\n      capped on multiple days).\n- [ ] Nothing in the ledger quarantine is judged; nothing on the ledger's\n      never-surface list appears; no internal vocabulary or API enum in the\n      report body.\n- [ ] The hardener ran in a fresh context and its output is pasted into\n      Generation notes verbatim: the verdict ledger as a table (one row per\n      finding and Action), the format punch list counts (BLOCK / WARN / STYLE),\n      and the grade before and after the round; each row carries Applied /\n      Reworded / Unaddressed; nothing contested is hidden. Prose summaries of\n      the verdicts do not satisfy this box (first live cycle, 2026-09-11: one of\n      four reports printed the table, none printed a grade).\n- [ ] Ledger appended (weekly log row, change-log rows, watch-list updates,\n      new ASKs, quarantine entries, data faults) and `trend.csv` row appended;\n      no past line rewritten.\n- [ ] **Read-back:** the agent re-opened `deliverables/YYYY-MM-DD-google-ads-maa.md`,\n      the ledger and `trend.csv` after writing and confirmed each exists, the\n      MAA has all three sections in the spec's order, and the ledger's new\n      lines are present. The read-back result is the last line of Generation\n      notes.\n- [ ] The chat summary is at most eight lines: leads and CPL vs last cycle,\n      Actions proposed, items the hardener demoted or dropped, open ASKs, data\n      faults.\n\n**Receiving owner:** the client's project lead, who reads the summary and the\ndraft. **Receiving tasks:** `google-ads-client-view` renders the client-facing\nreport after the lead approves; `google-ads-copy-optimizer` takes any RSA\nwork the Actions dispatch; `google-ads-change-scripts` turns approved Actions\ninto dry-run scripts and writes the ledger change-log row when they run.\n\n## Example(s)\n\n- `docs/meta/GAA-2026-09-11-C1A.md`: the meta article for one real scheduled\n  run under 1.5.0 (2026-09-11; client anonymized, numbers unchanged). It\n  shows the five stages on a one-lead week: the gates holding a lead collapse\n  off the Action list at 34 clicks, the hardener grading the first draft F\n  and correcting fifteen numbers, a same-day investigation that explained the\n  week from data already in the pack, and the ledger rows appended. Time and\n  cost are recorded as UNKNOWN; two human interventions are recorded.\n- `../../shared/examples/SummitDumpster_MAA_2026-06-26.md` is a real weekly\n  report on a live account (client, people, locations, IDs and competitor\n  names changed; numbers and reasoning preserved), produced under version\n  1.1.0. It proves the report shape, the \"we\" voice and the balanced-metrics\n  discipline; it predates the ledger, the gates and the hardener.\n- Published run articles under the earlier process, linked from the\n  definitive article: the 2026-07-10 American AF Dumpsters and Target\n  Painting runs.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Definitive article: https://localservicespotlight.com/google-ads-maa-agent/\n  (The Google Ads MAA Agent, published 2026-07-10, fetched and read\n  2026-09-15). It describes the pre-1.5.0 pipeline; the in-place revision for\n  the five-stage process is at `docs/definitive-article/google-ads-analyzer.md`\n  and replaces the page body on publish, same URL. Parent hub:\n  https://blitzmetrics.com/maa/ . Sibling that stubs the Google Ads row this\n  task feeds: https://blitzmetrics.com/inside-the-weekly-maa-report/ .\n- In this repo: `README.md` (what the suite is), `WALKTHROUGH.md` (end-to-end\n  weekly loop), `ONBOARDING-AGENCY.md` (setup and the standard scheduled\n  prompt), `CHANGELOG.md`.\n- Frameworks this skill depends on, all in `../../shared/frameworks/`:\n  `evidence-gates.md`, `ledger-template.md`, `gaql-query-pack.md`,\n  `data-pipeline-contract.md`, `maa-grading-rubric.md`, `agent-receipt.md`,\n  `methodology.md`.\n- The MAA method (Metrics, Analysis, Action) is Dennis Yu's framework; the\n  maintained explainer is https://blitzmetrics.com/maa/ (fetched and read\n  2026-09-15). Meta-article guidelines: https://blitzmetrics.com/meta-article-prompt/ .\n  Task Library home: https://local-service-spotlight.github.io/task-library/ .\n\n## Routing lane and tools\n\n- Lane: **`judgment`**. Drafting and hardening are judgment work on a top\n  model; the pull and the reconciliation are mechanical and may be delegated\n  down inside the run.\n- Tools the lane needs: the Google Ads MCP (read-only; `search` with GAQL) or\n  the email export; file read and write on the client folder; a subagent\n  facility for the hardener's fresh context. No browser is required for the\n  weekly run; the Call details UI report is optional and only when the\n  operator asks for full caller numbers.\n- When a tool is absent: MCP absent and no export, stop and report; subagent\n  facility absent, run the hardener as a second pass in the same session and\n  say so in Generation notes (the independence rule is weakened and the\n  summary must state it).\n\n## Sources and labels for numbers and claims\n\nEvery threshold below is labeled as either Google-published or a house\nheuristic. House heuristics are ours; they are not Google guidance.\n\n| Figure or claim | Label | Source or setter, date |\n|---|---|---|\n| Gate 1: no Action under 30 clicks or 5 conversions | House heuristic | Set by Daniel Goodrich for the 1.5.0 gates, 2026-09-06, from a transcript audit of live runs |\n| Gate 2: two prior cycles on the watch list; gate 3: 14-day quarantine | House heuristic | Same |\n| \"Top 5 to 10 items account for about 60% of spend\" | House heuristic, rule of thumb | BlitzMetrics MAA practice; not a Google figure |\n| \"A keyword needs 2 to 3 weeks of consistent underperformance\" | House heuristic | Same |\n| \"Smart bidding wants roughly 15 to 30 conversions per campaign per 30 days\" and \"15 conversions in 30 days\" | Google-published historically, now a house heuristic | Google Ads Help once listed a 30-day conversion minimum for Target CPA; Google has since removed hard minimums. Treated as our floor, not Google's requirement. Verify against Google Ads Help \"About Smart Bidding\" before quoting to a client. |\n| \"Restructuring doesn't trigger learning periods\", \"AI Max uses LLM-based intent matching\", \"consolidation over granularity\", \"brand and geo controls are the modern segmentation levers\" | Unverified, from Google account representative conversations in 2026 | Not confirmed against a published Google page. Label as \"per Google rep, unverified\" in any client copy, or leave out. |\n| \"12+ headlines, 4+ descriptions in RSAs\" | House heuristic | Google allows up to 15 headlines and 4 descriptions per RSA (Google Ads Help \"About responsive search ads\"); the 12 is our fill target. |\n| \"$200 CPA might be excellent for roofing and terrible for drain cleaning\" | Illustration only | Not a benchmark. |\n| Quality Score components read as-is on the MCP path; column swap on the email path | Verified | `../../shared/frameworks/data-pipeline-contract.md`, decision dated 2026-06-05 |\n| Bid strategy enum translations | Verified | Google Ads API enum names to UI labels, `../../shared/frameworks/gaql-query-pack.md` |\n\nAny new number added to this skill must be added to this table with a label.\n\n\n# Full procedure\n\n## What This Skill Does\n\nThis skill analyzes Google Ads campaign data (Search, PMax, Video, Display) for\nlocal service businesses and delivers a concise MAA (Metrics → Analysis →\nAction). The output is a tight, actionable document, not a comprehensive audit\nreport. Think 2-3 action steps tied directly to what the data shows, starting\nwith the highest-impact foundational fixes before moving to optimization.\n\n**Campaign type depth:** Search and PMax campaigns are the primary focus and get\nfull diagnostic treatment. Video and Display campaigns get a lighter touch,\ncondensed metrics and a brief note in Analysis, since they typically serve\nawareness goals rather than direct lead generation.\n\nThe skill operates in two modes:\n\n- **Analysis Mode**: Ingest data, diagnose, deliver a concise MAA\n- **Coaching Mode**: Review a user-written MAA, teach transferable principles\n\n## The weekly pipeline (1.5.0)\n\nA weekly run is five stages. Each stage has one job, and the draft does not\nstart until the pull is complete.\n\n```\nStage 0  READ      the client ledger, spec and overlays. No data yet.\nStage 0b PULL      the full data pack (gaql-query-pack.md, \"Pull discipline\"). No prose yet.\nStage 1  DRAFT     under shared/frameworks/evidence-gates.md, with a claim register.\nStage 2  HARDEN    dispatch google-ads-reviewer in a fresh context; apply its verdicts once.\nStage 3  RECONCILE numbers vs pack, Actions vs ledger watch list and quarantine, cross-refs.\nStage 4  WRAP      append the ledger and trend row. Stop. The human approves the render.\n```\n\nWhy the split: on live accounts the first draft consistently started\ntheorizing on partial data (\"we should have pulled this weeks ago\"), promoted\none-week observations to Actions, and lost facts the operator held in memory.\nReading the ledger first and pulling everything before writing removes most of\nthat; the hardener catches the rest. The human touchpoint is one: reading the\nStage 4 summary and approving the render.\n\nStages 0 to 4 apply to weekly runs. Ad-hoc questions (\"why did CPC jump on\nTuesday\") skip the pipeline but still respect the gates.\n\n## Core Principles\n\nThese principles are baked into every analysis. They come from Dennis Yu's\nBlitzMetrics methodology.\n\n### MAA: Metrics → Analysis → Action\n\nNever jump to tactics before diagnosing. Every recommendation cites the metric\nit moves and the analysis that justifies it. The MAA is a single cohesive\nnarrative, not three disconnected sections.\n\n### Balanced Metrics\n\nNever evaluate a metric in isolation. Metrics always travel in pairs:\nConversions ↔ CPA, Revenue ↔ ROAS, CTR ↔ CVR, Impression Share ↔ Marginal\nCPA/ROAS, Volume ↔ Profit.\n\nThe classic trap: CPA drops from $50 to $15, everyone celebrates, but lead\nvolume collapsed from 80 to 12 because someone turned off everything except\nbrand. Always check the balancing metric.\n\n### Top-N Focus\n\nSort by spend, focus on the top 5-10 items. These account for ~60% of total\nspend. Don't analyze the long tail unless hunting for waste. Actionable insight\nquickly, not a 20-page report.\n\n**Omit dormant campaigns entirely.** Campaigns with $0 spend (or negligible\nspend like <$1) in both the 7D and 30D windows do not appear anywhere in the\nMAA, not in Metrics, not in Analysis, not in Action. Don't waste the reader's\nattention on campaigns that aren't running. If every campaign in the account is\ndormant, say so and skip straight to Action.\n\n**Local Services Ads (LSA) are out of scope.** LSA is a separate Google product\nwith its own budget. MCP pulls surface LSA campaigns\n(`advertising_channel_type = LOCAL_SERVICES`); keep them out of the Search\nheadline math and out of the report entirely, same treatment as dormant\ncampaigns. If a client wants LSA reported, it's a separate deliverable.\n\n### \"We\" Tone\n\nWrite as an embedded team member. \"We're seeing strong CTR on the emergency\nplumbing keywords\", not \"Your CTR is strong.\"\n\n## Step 1: Quick Context\n\nBefore analyzing, get enough context to interpret the numbers. A $200 CPA might\nbe excellent for roofing and terrible for drain cleaning.\n\nAsk only what's needed, adapt based on what you already know. Don't force all\nfive questions if the user is ready to go:\n\n1. **Business & Goals**: What service type? Primary conversion goal (calls,\n   forms, bookings)? Target CPA or monthly budget?\n2. **Conversion Setup**: Where do conversions happen? Do you trust the tracking?\n3. **Service Area & Season**: Geography? Peak or slow season?\n4. **Benchmarks**: What does \"good\" look like for this account?\n5. **Known Issues**: Anything already worrying you?\n\nIf the user says \"just look at the data,\" work with what you have and flag\ncontext gaps as they become relevant in the analysis.\n\n**On a weekly run, do not ask these in chat.** The ledger answers them\n(definitions, target, service area, seasonality, prior decisions). Anything the\nledger does not settle and only a human can answer is appended to the ledger's\nOpen ASKs with today's date, and the draft proceeds with the fact marked\n`(verify)`. A question in chat costs the operator a round trip; a guess costs a\nwrong Action. The ledger line costs nothing.\n\n## Step 1.5: Load Client Continuity (ledger first, then the mode)\n\n**Read the client ledger first, in full, before anything else and before any\ndata pull.** `compiled/ledger.md` in knowledge-base mode or\n`{Client}_Ledger.md` in simple mode; format in\n`../../shared/frameworks/ledger-template.md`. It holds definitions, standing\nrules, the change log, the watch list, the recent-change quarantine, the render\nspec and known data faults. The ledger wins on any conflict with the other\ncontinuity files unless a more recent dated entry exists. Do not read a large\nstatus wiki or narrative archive end to end; consult it only to resolve a\nspecific conflict.\n\nIf no ledger exists for a client that has run before, create one from the\ntemplate using the continuity files and the last three MAAs, mark every\nunconfirmed fact `(verify)`, and say so in the Stage 4 summary. For a brand-new\nclient, run `google-ads-onboarding` first; it writes the ledger.\n\nThen check what other continuity setup exists, in this order:\n\n**Knowledge-base mode**, the client's folder contains a `compiled/` wiki\n(see `CONFIGURATION.md` → \"Knowledge-base mode\"). Read:\n\n1. `client-knowledge-base.md`, who they are, contacts, engagement terms.\n2. `compiled/maa-metric-spec.md`, this client's section order and metric\n   names. It overrides this skill's generic format. **If it's missing, stop\n   and create it first**, from the most recent MAA in `raw/maa-reports/`,\n   or, for a brand-new client with no archive, from the structure this first\n   run will produce.\n3. `compiled/paid-status.md` (live QS state and the per-client QS anchor),\n   `compiled/active-issues.md`, `compiled/data-sources.md` (CID, data path),\n   and `compiled/trend.csv`.\n4. The most recent MAA in `raw/maa-reports/`, for week-over-week deltas and\n   for voice. The spec captures structure; the archived reports capture tone.\n\nIf the vault has a `clients/_shared/maa-skills-binding.md` (or equivalent\noverlay), read it and apply its overrides, naming, output paths, house style.\nThe overlay wins over everything generic in this skill.\n\nWrap-up in this mode (weekly cycle only): update `paid-status.md` and\n`active-issues.md`, append the week's `trend.csv` row, archive the posted MAA\nto `raw/maa-reports/YYYY-MM-DD.md`. Do NOT create or update a narrative file.\n\n**Simple mode**, no `compiled/` folder, but a `{Client}_MAA-Narrative.md`\nexists in the client's output folder. Use it exactly as before: read it before\nwriting (follow up on open threads, avoid repeating context, update running\nthemes), and append a dated Weekly Log entry after each weekly MAA.\n\n**No continuity setup**, neither exists. Proceed normally; the MAA stands on\nits own. After delivering it, seed continuity for next time: in a structured\nvault, bootstrap the client folder per the vault's template; otherwise create\na new `{Client}_MAA-Narrative.md` seeded with the account context and first\nweekly log entry.\n\n**Ad-hoc analyses** (not a weekly cycle): read the continuity docs for context\nbut don't update them, the user will update them with whatever they actually\nshare with the client.\n\n## Step 2: Get the Data\n\n### MCP Mode (Primary)\n\nIf a Google Ads MCP connector is available, pull every dataset live via its\n`search` tool (GAQL) against the client's CID, using\n`../../shared/frameworks/gaql-query-pack.md`: campaign summary, keyword report\nwith Quality Score components, search terms, ad report (RSA assets + strength),\nand conversion detail by action name, each in 7D and 30D windows.\n\nRules on this path:\n\n- **Pull the whole pack before writing a word.** Campaign summary,\n  `campaign_budget`, keyword report (all statuses for inventory, a second pass\n  for metrics), search terms, ad report, conversion detail, network split,\n  device split, `user_location_view`, negatives at three levels, `call_view`\n  where call assets exist, each in 7D and 30D where windowed. Follow the \"Pull\n  discipline\" section of the query pack: paginate until the count is below the\n  cap and record it; a query at exactly its cap is flagged and supports no\n  absence claim; verify campaign names belong to this client on every\n  response; save the raw response verbatim to the client's `raw/` folder before\n  abridging. Any summary or derived block written into the saved pack (a\n  weekly call count, a daily note) is computed from the rows by script, never\n  typed; a hand-typed block that did not sum to its rows produced four wrong\n  sentences on 2026-09-11. Record the run's start timestamp (account timezone)\n  at the first query.\n- **QS components arrive correctly labeled from the API. Read them AS-IS.** The\n  column swap below applies ONLY to the email fallback, applying it to MCP data\n  re-introduces the bug it exists to fix.\n- **The MCP is read-only.** It cannot mutate the account. Negatives, pauses,\n  bid and budget changes go through `google-ads-change-scripts`, never the MCP.\n  Reading current state to target a change is fine and encouraged.\n- **Mid-cycle pulls are cheap, use them.** When the analysis raises a question\n  the initial datasets can't answer, pull the extra data inside the same cycle\n  and turn the answer into a grounded action, instead of writing \"keep watching\"\n  and deferring it a week.\n- If a query fails or the MCP's authorization has lapsed, fall back to the email\n  pipeline below rather than stalling the run.\n\n### Email Pipeline Mode (Fallback)\n\nData arrives automatically via Gmail from a Google Ads Script that runs weekly.\nSearch Gmail for label `maa-data-automation` or subject prefix `[MAA Data]` to\nfind the latest report for a given client.\n\nEach email contains ten datasets embedded in the body between markers:\n- `---BEGIN CAMPAIGN SUMMARY 30D---` / `---END CAMPAIGN SUMMARY 30D---`\n- `---BEGIN CAMPAIGN SUMMARY 7D---` / `---END CAMPAIGN SUMMARY 7D---`\n- `---BEGIN CONVERSION DETAIL 30D---` / `---END CONVERSION DETAIL 30D---`\n- `---BEGIN CONVERSION DETAIL 7D---` / `---END CONVERSION DETAIL 7D---`\n- `---BEGIN KEYWORD REPORT 30D---` / `---END KEYWORD REPORT 30D---`\n- `---BEGIN KEYWORD REPORT 7D---` / `---END KEYWORD REPORT 7D---`\n- `---BEGIN SEARCH TERMS 30D---` / `---END SEARCH TERMS 30D---`\n- `---BEGIN SEARCH TERMS 7D---` / `---END SEARCH TERMS 7D---`\n- `---BEGIN AD REPORT 30D---` / `---END AD REPORT 30D---`\n- `---BEGIN AD REPORT 7D---` / `---END AD REPORT 7D---`\n\nThe **conversion detail** section breaks out conversions by action name per\ncampaign (e.g., \"Phone Calls: 2, Lead Forms: 3\"). Use this to populate the\nconversion breakdown in the Metrics section's Conversions bullet. If this\nsection is missing (older script version), show the total conversion count\nfrom the campaign summary without a breakdown.\n\nThe ad report contains: Campaign, Ad Group, Ad Type, Headlines (pipe-separated),\nDescriptions (pipe-separated), Ad Strength, Impressions, Clicks, CTR, Cost,\nConversions, and Cost/Conv.\n\nParse the CSV data between these markers. The client name is in the email\nsubject: `[MAA Data] Client Name, YYYY-MM-DD`.\n\n### Quality Score column inversion, MANDATORY swap on EMAIL-PATH Keyword Report parse\n\n**Scope: this section applies to the email fallback only. MCP data arrives\ncorrectly labeled, never swap it.**\n\nDeployed versions of the data-collection script have a known bug: in the keyword\nquery, the GAQL select order for the three QS components doesn't match the CSV\nheader order, which inverts the **Expected CTR** and **Ad Relevance** columns.\nLanding Page Experience is in the middle position and is correct.\n\n**Preferred fix, run the corrector at ingest (mechanical, not a judgment\ncall):**\n\n```\npython3 shared/scripts/correct_qs_columns.py --infile {date}_email-data.txt\n```\n\nThen read the `_corrected.txt` file and treat every column AS-LABELED. Do NOT\nswap again, double-swapping re-introduces the bug.\n\n**Manual fallback** (only if the corrector cannot run):\n\n```\nFor each row in KEYWORD REPORT 30D and KEYWORD REPORT 7D:\n  ad_relevance_value   = row[\"Expected CTR\"]     # mislabeled in CSV\n  expected_ctr_value   = row[\"Ad Relevance\"]      # mislabeled in CSV\n  lp_experience_value  = row[\"Landing Page Exp\"]  # correct as labeled\n```\n\nAfter correction, use the corrected values in QS component callouts in Analysis,\nany per-keyword QS narrative, and the dispatch triggers (Below Average Ad\nRelevance vs. Expected CTR route to different copy fixes, getting the component\nright is the whole point).\n\n**Sanity check every run:** keep a per-client anchor (the highest-spend scored\nkeyword and its known corrected component reads) in the client's notes, and\nconfirm this week's parse matches it before writing. **Do not print the swap in\nthe report body**, apply it silently and report only corrected component names.\n\n**Why this lives in the skill body, not just the framework:** this rule\npreviously lived only in the data-pipeline contract, and a heavier analyzer\nprompt read the columns at face value and mislabeled a component on a live\nclient MAA. Restating it in the body makes it un-missable.\n\n**When this rule will be retired:** per-account, only when a corrected script is\nconfirmed deployed there, otherwise the swap re-inverts correctly-labeled data.\nSee `../../shared/frameworks/data-pipeline-contract.md` for the canonical column\nmapping and the conditions under which this swap applies.\n\n### Bid Strategy Label Mapping\n\nThe GAQL API returns internal bid strategy names that differ from what AMs see\nin the Google Ads UI. Always translate to the UI-facing name:\n\n- `TARGET_SPEND` → **Maximize Clicks**\n- `MAXIMIZE_CONVERSIONS` → **Maximize Conversions**\n- `MAXIMIZE_CONVERSION_VALUE` → **Maximize Conversion Value**\n- `TARGET_CPA` → **Target CPA**\n- `TARGET_ROAS` → **Target ROAS**\n- `MANUAL_CPC` → **Manual CPC**\n- `MANUAL_CPV` → **Manual CPV**\n- `TARGET_CPM` → **Target CPM**\n- `TARGET_CPV` → **Target CPV**\n\nNever use the API label in the MAA output.\n\n### Dual Date Range Analysis\n\nEvery MAA uses two time windows:\n- **7-day data** is the primary view, the current MAA cycle. This is what the\n  Metrics section displays.\n- **30-day data** is the trend baseline, used as a reference in the Analysis\n  section to identify momentum and whether previous actions had impact. The 30D\n  data is NOT displayed in the Metrics section.\n\nWhen writing the MAA:\n- **Metrics section**: Show **7D data only**. Each campaign gets individual\n  bullet points for each metric. The 30D data is context you use internally\n  but don't display here.\n- **Analysis section**: This is where 30D context appears. Use 30D as a\n  reference point to support broader observations, not as a headline. Lead\n  with the business implication, then cite the trend: \"The campaign is\n  struggling to compete in auctions, CTR is down to 0.36% this week from\n  0.71% over the 30-day window.\" Don't lead with the number-to-number\n  comparison itself.\n- **Action section**: Prioritize based on what the 7D data reveals. If 30D\n  shows a problem but 7D shows it's already improving, note that and deprioritize.\n  If 7D shows a new problem not visible in 30D, escalate it.\n\n### When the user uploads data manually\n\nAuto-detect what they provide. Tell them what you found and what's missing.\n\n### When you need to request data\n\nKeep it short. The AM needs a clear, simple ask, not a training manual on how\nGoogle Ads exports work. Say something like:\n\n> \"To run this MAA, I need three exports from the Google Ads account (last 30\n> days): **Campaign summary**, **Keyword report with Quality Score**, and\n> **Search terms report**. Want me to walk you through pulling those, or can\n> you grab them?\"\n\nIf they need the step-by-step, THEN provide export instructions from\n`references/gaql-queries.md`. Don't front-load the full column-by-column\nspecs unless asked.\n\n### Unexplained state is a ledger gap, not a finding\n\nIf the pull shows a state the ledger's change log does not explain (a budget\nthat moved, a keyword paused, a new ad, a network setting flipped), do not\nanalyze it as an event. Record it in Generation notes as \"unlogged change:\n{what}, first seen {date}\" and add an Open ASK: \"log a change: {what}\". The\nnext run reads the answer from the ledger. A change nobody wrote down is the\nsingle most common source of a wrong Action.\n\n## Step 2.5: Evidence Gates (hard rules, applied while drafting)\n\nThe full table with the failure each gate prevents is in\n`../../shared/frameworks/evidence-gates.md`. Read it once per session. The\ngates cannot be waived by the analyzer; only a dated standing rule in the\nclient ledger can override one. Foundation breaks (tracking, geo, bidding with\nno signal, disapprovals, not serving, budget capped on multiple days in one\nwindow) are exempt and act immediately.\n\n1. No pause, restrict, bid, budget or copy Action on fewer than 30 clicks or\n   5 conversions in the window cited. Below that: watch list, first-seen dated.\n2. A performance finding becomes an Action only after two prior cycles on the\n   ledger watch list. Do not promote a finding created this week.\n3. Nothing in the ledger's recent-change quarantine is evaluated as a problem\n   or credited as a fix before its exit date.\n4. Pull network and device splits before any keyword verdict.\n5. Check daily before averaging any budget-lost or spend figure.\n6. No absence claim on a dataset that returned exactly its row cap.\n7. Absence claims require a query with no status filter.\n8. Lead definition, target, windows and service-area test come from the\n   ledger, never from the data or a name.\n9. **Claim register.** Every causal or trend sentence in Analysis carries a\n   reference (dataset, row or figure) in the Generation notes block below the\n   report. A sentence with no reference is deleted, not softened. This is what\n   lets the hardener work in minutes.\n10. The gates apply to good news, bad news and your own new theories alike.\n\nWhen a gate blocks something you believe is true, write it into the watch list\nwith the evidence it needs to promote, and move on. That sentence in Analysis\n(\"we are watching X; if Y by date Z, we will do W\") is the correct output.\n\n## Step 3: Diagnose\n\nThe following checklist is your internal reasoning framework for prioritizing\nwhat to recommend. It exists to help YOU think through the account\nsystematically. It is NOT something you share with the user.\n\nNever write the words \"Tier 1\", \"Tier 2\", \"Tier 3\", \"Tier 4\", \"diagnostic\nladder\", \"foundations tier\", \"hygiene tier\", or any similar framework language\nin your response to the user. The user sees a clean MAA with numbered action\nsteps. They don't need to know how you arrived at the priority order, they\njust need the recommendations to be in the right order, which this checklist\nensures.\n\nWork through these checks in order. If earlier checks reveal critical issues,\nfocus your action steps there first.\n\n### Patience Principle, Don't Recommend Changes Too Quickly\n\nThis skill's output needs to be safe for people without deep Google Ads\nexperience to act on. That means resisting the urge to recommend changes\nbased on a single week of data. Small-budget local service accounts produce\nnoisy data, one bad week on a relevant keyword doesn't mean the keyword is\nbroken. True learning takes time, and changing things too frequently prevents\nthe algorithm from stabilizing.\n\n**Before recommending a change, ask: how long has this been running?**\n- Changes implemented last week (new ads, new ad groups, bid strategy\n  switches, restructures) should almost never be flagged as problems this\n  week. They haven't had time to produce meaningful data.\n- A keyword or ad group needs at least 2-3 weeks of consistent\n  underperformance before it warrants an action item, unless there's a\n  dramatic, obvious signal (e.g., spending $200 with zero clicks, or a\n  keyword that's clearly off-intent).\n- When in doubt, note the observation in Analysis (\"worth watching\") rather\n  than escalating to Action. An observation in Analysis costs nothing. A\n  premature change in Action can set the account back.\n\nThe goal of Action is 2-3 solid things we can do this week to improve\nperformance, not a list of everything that could theoretically be better.\n\n### Structure Before Tactics, Sequence the Fix\n\nRecommendations have a dependency order. The **structural layer** (account and\ncampaign structure, geo-targeting, conversion tracking) gates the **tactical\nlayer** (landing pages, keyword routing, bids, ad copy). Never recommend a\ntactic that a pending structural change will redo. Before writing any tactical\naction, ask: \"Does a structural change we are also recommending change where\nthis tactic lands?\" If yes, sequence the structural item first and say so.\n\n- **Landing pages depend on campaign structure.** Don't repoint ads or keywords\n  to specific pages before the campaigns those ads live in are settled. If\n  campaigns are about to split, page assignment happens after the split.\n- **Bidding depends on conversion tracking.** Don't recommend a bid-strategy or\n  primary-conversion change before tracking is validated, and check the chosen\n  conversion has enough per-campaign volume to support the strategy (smart\n  bidding wants roughly 15-30 conversions per campaign per 30 days).\n\n### Verify Structure From the Data, Never From Names\n\nAn account or campaign named for one city may target the whole metro. Pull the\nactual geo-targeting and campaign structure before making any geo or\nlanding-page recommendation. Names lie; settings don't.\n\n### Label Inferences as Inferences\n\nA plausible read of the data is not a fact. If per-action conversion counts look\nlike they overlap, say \"this looks like X, to be verified at the source,\" not \"X\nis happening.\" Verify at the source before recommending action on it.\n\n### Check A, Is the foundation working?\n\n- **Conversion Tracking**: Set up? Firing? Signs of breakage (strong CTR + zero\n  conversions, sudden drops)? Cross-reference with CRM if possible.\n  **Evaluate conversion accuracy at the campaign level only.** If a campaign's\n  conversion count looks reasonable for its spend and matches backend data,\n  treat it as accurate and evaluate performance against that real number. If\n  account-level totals are inflated beyond what the campaigns show, that's\n  likely activity from other campaign types (YouTube, LSA, etc.) outside this\n  export, flag it briefly and move on. Don't diagnose account-level gaps.\n  Focus on whether the campaigns in this export are counting the right things.\n- **Bid Strategy**: Manual CPC or maximize clicks → conversion-based strategy is\n  often the single biggest win. Needs 15+ conversions/30 days for smart bidding.\n  Below that, consolidate or use shared budgets/portfolio bidding.\n- **Geographic Targeting**: Tight to service area? \"Presence\" vs \"Presence or\n  Interest\" setting? Leaking budget to wrong areas?\n- **Brand vs. Non-Brand**: Mixed together? Brand inflates CTR, deflates CPA,\n  masks non-brand underperformance.\n- **Landing Page Relevance**: Dedicated service pages or just the homepage?\n\n### Check B, Is budget leaking?\n\n- **Negative Keywords**: Sort search terms by cost, look for irrelevant queries\n  (jobs, DIY, wrong services, wrong geos). Common local service waste: job\n  seekers, DIY queries, geographic mismatches.\n- **Match Type Guardrails**: Broad match without negatives bleeds budget.\n  Graduated proven queries to exact?\n- **Ad Copy & Quality Score**: Break QS into its three components and report\n  each one explicitly in the Analysis: **Expected CTR** (are the ads compelling\n  enough to earn clicks?), **Ad Relevance** (does the copy match search intent?),\n  and **Landing Page Experience** (does the LP deliver on the ad's promise?).\n  Below Average on any = fixable problem. Always name which component is below\n  average, \"QS is low\" without the component breakdown isn't actionable.\n  Ad copy mentions service + city + clear CTA? Call/location extensions present?\n- **Ad Copy Relevance**: Review RSA headlines and descriptions against the\n  top-performing keywords and search terms. Are the ads speaking to what people\n  are actually searching? Look for: generic headlines that don't mention the\n  core service, missing geographic relevance (no city/area name), weak CTAs,\n  or headlines that don't align with the landing page promise.\n- **Ad Strength**: Google rates RSAs as Poor/Average/Good/Excellent. Poor or\n  Average usually means not enough headline/description variants or not enough\n  thematic diversity. Flag any ad with Poor or Average strength, adding more\n  unique headlines is a quick win.\n- **Ad Performance Splits**: If an ad group has multiple ads, compare their\n  metrics. One ad dramatically outperforming another suggests the weaker one\n  should be paused or rewritten.\n- **Budget Allocation**: IS lost to budget on good campaigns while bad campaigns\n  have leftover? Rebalance.\n\n### Check C, Can we improve performance?\n\n- **Ad Group Coherence**: Tightly themed? Mixed intents in one ad group?\n  Restructuring doesn't trigger learning periods (Google 2026 guidance).\n- **Device & Time-of-Day**: Mobile-heavy (common for local service calls)?\n  Time patterns (emergency = after hours, remodeling = lunch breaks)?\n- **Audience Layering**: Observation audiences for home services, homeowners?\n- **Landing Page CVR**: Conversion rate variance across pages? Mobile experience?\n- **Ad Testing**: 12+ headlines, 4+ descriptions in RSAs? Testing themes?\n\n### Check D, Advanced (rarely needed for local service)\n\nRead `references/playbook-frameworks.md` only when the account is mature and\nChecks A-C are clean. Covers: incrementality, profit modeling, cohort/causal\nanalysis, metric trade-off curves, experimentation protocols.\n\n## Step 4: Deliver the MAA\n\nThe output should be concise and directly useful. Not an audit report, a working\ndocument the AM can act on this week.\n\n### Output Format\n\nSave the MAA as a markdown file in the client's output folder. The base output\nlocation is configurable, see `CONFIGURATION.md` at the repo root. The default\nconvention is:\n\n`{OUTPUT_DIR}/{Client Name}/{Client}_MAA_{YYYY-MM-DD}.md`\n\nExample: `output/Summit Dumpster Rental/SummitDumpster_MAA_2026-04-24.md`\n\n**On a scheduled weekly run, stop after Stage 4.** Do not render the client\nview until the operator approves in chat. Finish with a summary of at most\neight lines: leads and CPL vs last cycle, Actions proposed, items the hardener\ndemoted or dropped, open ASKs for the operator, data faults hit.\n\n`{OUTPUT_DIR}` defaults to `./output` but can point anywhere, a project folder,\na synced drive, or (for BlitzBase users) the client's vault folder. If the client\nfolder doesn't exist, create it. The file should contain the full MAA (Metrics,\nAnalysis, Action) as formatted markdown. Present the finished file to the user\nwhen complete.\n\n### Continuity Update (weekly cycle only)\n\nAfter delivering the MAA during a weekly analysis cycle, update the client's\ncontinuity docs in whichever mode Step 1.5 detected. Record the run's end\ntimestamp in Generation notes next to the start timestamp; write tokens and\ncost if the runtime exposes them and UNKNOWN if it does not.\n\n**Every mode, first:** append to the ledger. One weekly log row; a change-log\nrow for anything shipped this cycle (date, change, who, source); watch-list\nupdates (cycles observed +1, new items with first-seen, promotions and drops\nas their conditions fall due); new Open ASKs; new quarantine entries with exit\ndates; any data fault hit this run. Never rewrite past ledger lines. When the\noperator supplied a fact in chat during the run, it becomes a ledger line,\ndated, in section 3 (standing rules) or section 2 (definitions), so the next\nrun does not ask again.\n\nThe weekly-log row's Action count is read off the report's Action list at the\nmoment of writing, not recalled (on 2026-09-11 two rows under-counted by one\nand two). The row records file state at that moment; if the client view is\nrendered later, a later row says so and the earlier row is left as written.\n\n**Knowledge-base mode:** then update `compiled/paid-status.md` and\n`compiled/active-issues.md` with a short dated block, append the week's\n`compiled/trend.csv` row, and archive the posted MAA to\n`raw/maa-reports/YYYY-MM-DD.md`. Do not create or update a narrative file.\n\n**Simple mode:** update the narrative document (`{Client}_MAA-Narrative.md`):\n\n1. **Add a new Weekly Log entry** at the top of the log (most recent first)\n   with today's date. Include: key findings, actions recommended, and open\n   questions for next week.\n2. **Update Running Themes** if anything shifted, a resolved issue gets\n   marked resolved, a new persistent pattern gets added.\n3. **Fill in Account Context** if it's still a placeholder.\n4. **Fill in Client Contacts** if missing. Note the name(s) and role(s) of\n   anyone who receives the MAA, manages the website, or makes strategic\n   decisions. This enables the MAA to address action items to the right\n   person by name.\n\n**Do NOT update the narrative for ad-hoc analyses.** The user will update it\nwith whatever they actually share with the client, plus any client feedback.\nThe narrative reflects what was communicated, not every draft.\n\n### Stage 2: Harden before anything is rendered\n\nWhen the draft is written, dispatch `google-ads-reviewer` as a subagent in a\nfresh context with exactly these inputs: the frozen draft, the raw data pack,\nthe client ledger, the client metric spec. Not this session's reasoning. It\nreturns one verdict per finding and Action (KEEP, DEMOTE TO WATCH, DROP,\nREPULL) with the gate and the contradicting number. Apply every verdict once:\nDEMOTE moves the item to the watch list with today as first-seen; DROP removes\nit; REPULL means pull the named data and re-answer in the same cycle. One round\nonly. Anything still contested after that is listed in Generation notes for the\nhuman, two lines per side, and the draft proceeds with it flagged.\n\nPaste the reviewer's output into Generation notes verbatim: the verdict ledger\ntable, the BLOCK / WARN / STYLE counts, and the grade before and after the\nround, with an Applied / Reworded / Unaddressed status on each row. A prose\nparaphrase of the verdicts is not a record; it cannot be counted or audited\nacross runs.\n\n### Stage 3: Reconcile\n\nBefore wrap-up, check: every number ties to the pack; every Action either has\na watch-list entry of two or more cycles or is a foundation break; nothing\nquarantined is judged; every \"See Action N\" pointer resolves; nothing on the\nledger's never-surface list appears; the render spec norms (Action count,\nlength) are met.\n\n### Metrics\n\n**Campaign-level is the highest level of analysis.** Do not analyze or report\naccount-level aggregate statistics. Account-level totals will appear in exports\nbut they may include activity from campaign types outside this analysis (LSA,\netc.) whose goals and conversions are not visible in the export. Analyzing\naccount-level data risks conflating unrelated activity and producing misleading\nconclusions.\n\nIf account-level totals are visibly higher than the sum of the campaigns in the\nexport (e.g., account shows 209 conversions but campaign-level data only shows\n1), add a brief callout: \"The account-level numbers include activity from\ncampaigns outside this export, we should verify which conversion actions are\ncounted at the campaign level to make sure we aren't inflating our counts.\"\nThen move on. Do not try to diagnose or explain the account-level gap.\n\nBreak out metrics **by campaign** using bullet points. Each campaign gets a bold\nheader showing campaign name, campaign type, and bid strategy. Then list\nindividual bullet points for each core metric, with the **metric name bolded**\nas the leading portion of the bullet. Show **7D data only** in this section.\n\nTop-N focus, only include campaigns with meaningful spend.\n\n**Required metrics for every campaign** (always include these seven):\n- **Cost**\n- **Impressions**\n- **Clicks**\n- **CTR**\n- **CPC**\n- **Conversions**, break out by conversion action name when the data includes\n  it: \"**Conversions**: 4 (2 Phone Calls, 2 Lead Forms)\". This tells the reader\n  what kind of business activity the ads are driving, not just a count.\n- **CPA** (or note \"N/A, zero conversions\" if applicable)\n\n**Do NOT include an \"Other metrics of note\" line.** Metrics like search\nimpression share, IS lost to budget/rank, Quality Score components, and\nconversion rate are diagnostic, they belong in the Analysis section where\nthey can be explained in context. The Metrics section is the \"what happened\"\noverview. Keep it clean: the seven core bullets per campaign, nothing more.\n\n**Example format:**\n\n> **Emergency Plumbing - Search** (Search | Maximize Conversions)\n>\n> - **Cost**: $2,450\n> - **Impressions**: 38,200\n> - **Clicks**: 847\n> - **CTR**: 2.22%\n> - **CPC**: $2.89\n> - **Conversions**: 34 (22 Phone Calls, 12 Lead Forms)\n> - **CPA**: $72.06\n>\n> **General Plumbing - PMax** (Performance Max | Maximize Conversions)\n>\n> - **Cost**: $1,200\n> - **Impressions**: 15,400\n> - **Clicks**: 312\n> - **CTR**: 2.03%\n> - **CPC**: $3.85\n> - **Conversions**: 8 (5 Phone Calls, 3 Lead Forms)\n> - **CPA**: $150.00\n\n**Video and Display campaigns get a condensed format.** Instead of the full\nseven-metric breakdown, show them in a compact block: campaign name, cost,\nimpressions, clicks, and the metric most relevant to their goal (e.g., video\nviews and cost-per-view for Video campaigns, or CTR for Display). One or two\nlines, not a full bullet list. Example:\n\n> **Home Service Contractors Video** (Video | Target CPV), $105.52 spent,\n> 21.5K impressions, 3,280 views at $0.03 CPV. Solid engagement for a\n> $10/day awareness budget.\n\nAfter all campaigns, include a **Data gaps** note if relevant, flag missing\ndata (e.g., empty keyword reports from PMax, no visible search terms). Keep\nit brief.\n\n### Business Metrics Trend\n\nClose the Metrics section with a short paragraph (2-3 sentences max) on the\nmost important business-level question: are we converting? This is a\nhigh-level pulse check on conversion trends, week over week and against the\n30-day average. It states what is happening, not why.\n\nExamples:\n- \"Conversions are trending up, 5 this week vs. 3 last week, with a 30D\n  average of 3.4/week. CPA is holding steady at $165.\"\n- \"Zero conversions for the second straight week despite 76 clicks. The 30D\n  window shows the same pattern, 153 clicks, zero conversions.\"\n- \"Steady week, 3 conversions at $82 CPA, in line with the 30D average of\n  3.2/week at $79.\"\n\nIf things are going well, this is just a quick confirmation and doesn't need\nto feed the later sections. If conversions are declining or absent, this\nparagraph naturally sets up what Analysis needs to explore.\n\n---\n\n### Analysis\n\nA narrative explaining what the data means in context, the \"why\" behind\nthe numbers. Write in \"we\" language. Keep to 2-4 focused paragraphs, with\neach paragraph no longer than 3-4 sentences. Every paragraph should build\ntoward the action items, advancing the story of what's happening and why the\nrecommended actions follow logically.\n\n**Structure the Analysis as a narrative arc, not a topic list.** Organize by\nstoryline: what happened → why it happened → what that means for the decision.\nDon't organize by category (waste analysis, then QS analysis, then strategy\nanalysis). Instead, each paragraph should build on the last so that by the\ntime the reader reaches the Action section, the reasoning is already built\nand the recommendations feel inevitable.\n\n**Open with the most important diagnostic finding.** Lead with the insight\nthat drives the biggest action item. Don't open with a recap of last week's\nactivities, that's backward-looking. The Business Metrics Trend paragraph\nin the Metrics section already covers the week-over-week conversion picture.\nAnalysis opens with *why* things are the way they are.\n\n**Previous efforts can be mentioned briefly, but keep them subordinate.**\nIf negatives from last week are working or a QS change is showing movement,\nweave that into the narrative in a clause or sentence, don't give it a full\nparagraph. Example: \"The competitor negatives from two weeks ago are holding\nno branded bleed this week, but a new waste cluster appeared around\nnavigational queries.\" The prior effort is context, not the headline.\n\n**This is where diagnostic metrics live.** Metrics like impression share, IS\nlost to budget/rank, Quality Score components, conversion rate, and search\nterm waste percentages belong here, accompanied by the explanation of what\nthey mean and why they matter. These metrics were intentionally excluded from\nthe Metrics section so they could appear here with context rather than as\nraw numbers.\n\nKey behaviors:\n- **Keep paragraphs to 3-4 sentences.** If a paragraph is running longer, it's\n  trying to cover too much. Split it or cut. The Analysis section should be\n  tight and scannable, a busy AM reads this between calls.\n- If foundational issues exist, lead with that plainly: \"Before we optimize\n  anything, we need to make sure conversion tracking is solid.\"\n- Always use balanced metrics language: \"CPA improved to $35, but volume dropped\n  from 45 to 28 leads, we need to understand why.\"\n- Translate to business impact: \"47 irrelevant search terms cost $830 last\n  month, roughly 4 leads at our current CPA.\"\n- Be tactful: \"still gathering data\" not \"failing.\"\n- **Routine items get brief treatment.** Search term cleanup, standard negative\n  keyword additions, and ongoing optimization work are expected week to week.\n  Don't over-explain them unless there's a decision to make. \"We found another\n  $40 in waste on navigational queries, negatives are ready to run\" is enough.\n  A full paragraph dissecting each waste term is too much unless the pattern\n  reveals something new or requires a strategic choice.\n- **Narrative continuity**: If a narrative document exists, reference prior\n  findings briefly where relevant. Don't repeat context the narrative already\n  captures, build on it.\n- **Always end the Analysis section with a standing CRM quality prompt.** This\n  is a brief, consistent checkpoint, not an action item. Frame it around lead\n  quality, not tracking verification. Examples:\n  - When conversions exist: *\"CRM check: We recorded 23 conversions this week\nhow's the quality of those leads looking?\"*\n  - When zero conversions: *\"CRM check: Google shows zero conversions this\n    week, are we seeing any calls or form fills that aren't being tracked?\"*\n  This stays in Analysis every week as a standing prompt to the AM. It only\n  escalates to an Action item if the data itself suggests something is broken\n  (e.g., strong CTR with zero conversions over multiple weeks, or a sudden\n  drop from a known baseline).\n- **Stay at the campaign level.** If account-level totals don't match campaign\n  totals, note it briefly and recommend verifying conversion actions, but don't\n  try to explain the gap or build analysis around account-level numbers.\n- Don't restate what's already visible in the Metrics bullets, interpret and\n  connect the dots instead.\n- **Use 30D trends as supporting evidence, not headlines.** When comparing 7D to\n  30D, weave the trend into a broader observation rather than leading with it.\n  Instead of \"CTR halved from 0.71% to 0.33%\" as the opening, lead with the\n  business implication and use the trend as backup: \"The campaign is struggling\n  to compete in auctions, CTR has been sliding and is down to 0.33% this week\n  from 0.71% over the 30-day window.\"\n- **Video/Display gets a brief note, not deep analysis.** One or two sentences\n  on whether the awareness campaign is delivering as expected. Don't force lead\n  gen diagnostics onto awareness campaigns. If a Video or Display campaign has a\n  notable finding (e.g., irrelevant placements, surprising engagement), call it\n  out, otherwise, a quick \"running as expected\" is sufficient.\n- **Weave ad copy findings into the narrative.** The ad report data (headlines,\n  descriptions, ad strength, per-ad performance) should inform Analysis\n  naturally, not as a separate section. When discussing a campaign's\n  performance, note if ad copy is a contributing factor. Examples:\n  - Poor CTR + generic headlines → \"Part of the CTR problem may be the ad copy\nthe headlines don't mention veneers specifically, which is what people\n    are searching for.\"\n  - Ad strength rated Poor/Average → \"Google is rating this RSA as Average,\n    which usually means it needs more headline variety to find winning\n    combinations.\"\n  - One ad dominating impressions over another → \"One ad in this ad group is\n    pulling nearly all impressions at a much higher CTR, the other may be\n    dragging performance down.\"\n  If the ads look healthy and well-aligned, there's no need to force ad copy\n  commentary. Only surface it when it's a meaningful factor.\n\n### Action\n\n2-3 specific, forward-facing action steps, things we can do this week or\nnext to improve ad performance. Prioritized by the diagnostic ladder (without\nmentioning the ladder). Each action step should:\n\n- State what to do in plain language\n- State why, linked to something in the Analysis\n- Note expected impact where possible\n\n**One Action list, owners tagged inline.** Write a single numbered list with the\nowner tagged inline (e.g. \"... (Josh)\" for a client decision; agency items carry\nthe agency owner or none). Do NOT split Action into per-person sub-sections,\nthe split invites padding one person's list to look balanced. The inline tag is\nalso what the client-view render routes on: client-tagged items feed \"what we\nneed from you,\" agency-tagged items feed \"what we did.\"\n\n**No padding, no non-actions.** Never invent items to hit a count. \"Keep holding\nbudget,\" \"continue monitoring,\" and \"no change needed\" are Analysis conclusions,\nnot Actions. Three real items beat five with filler.\n\n**No method notes in the report body.** Internal data-integrity steps (the QS\ncorrector, delta computation rules) never appear in the MAA or client view.\nApply them silently.\n\n**Every action item must be forward-facing.** The test: does this item\ndescribe something we're going to *do*, or something we already *did*?\nConfirming that last week's negatives are holding, noting that the new ads\nhaven't moved QS yet, or checking that a previously excluded keyword stayed\nout, those are observations, and they belong in Analysis. Action is\nexclusively about what happens next.\n\nWatching or monitoring something *can* be an action item if it's flagging a\npotential future problem: \"Watch 'demolition bin rental', if it continues\nspending without converting over the next 1-2 weeks, consider pausing.\" That's\nforward-facing because it describes what we might need to do. But \"We checked\nand keyword A didn't show up this week\" is backward-facing and belongs in\nAnalysis.\n\nThe ordering naturally starts with the biggest-impact fixes first (broken\ntracking, wrong bid strategy) before leakage fixes (negatives, QS) before\noptimization work (creative testing, audiences, ad copy improvements). The user\njust sees a numbered list of smart recommendations, your internal reasoning is\ninvisible.\n\n### Distinguish \"things we did\" from \"things the client needs to do\"\n\nAction items fall into two categories, and they should read differently:\n\n**Our-side items** (negatives added, scripts run, ad copy changes made):\nUse completion language. If already done, mark with ✅ and state what happened.\nIf pending but within our control, state what we'll do and when.\n\n**Client-side items** (landing page changes, CRM access, strategic decisions):\nUse collaborative language. Address the client contact by name (from the\nnarrative document). Frame as a partnership, not a task assignment:\n- \"Nicholas, we noticed the interior page headline still references winter\n  services, would you like us to take a pass at updating it? We'd need\n  Elementor access.\"\n- \"Sam, do you have a sense of what types of consumers are specifically\n  searching for 'roll off dumpster'? The answer would help guide which route\n  we pursue.\"\n\nThe pattern: name the person → describe the situation → ask a specific\nquestion or make a specific offer with a specific gate (what you need from\nthem to proceed).\n\n### When the skill presents strategic options, end with a question\n\nWhen an action item involves a strategic choice (restructure vs. rewrite,\npause vs. hold, switch bid strategy vs. wait), present the options and then\nask the client a question that helps inform the decision. The skill should\ninform the decision, not make it. The question positions the client as a\ndecision-maker with expertise the data alone can't provide.\n\n**Example:** \"From our perspective, two options: (a) write dedicated\nheadlines, or (b) break the variants into their own ad group. Sam, do you\nhave a sense of what types of consumers search for 'roll off dumpster'? The\nanswer would help guide which route we pursue.\"\n\n### Split completed and open items when density is high\n\nWhen more than half of the action items are already completed, the reader has\nto wade through done items to find what still needs their attention. In these\ncases, lead the Action section with a brief note on what was completed this\nweek, then list the open items in detail:\n\n> **This week's priority order: stop the bleeding first, then fix the structure.**\n>\n> 1. ✅ **Negatives script run (4/17).** 27 negatives added. Estimated\n>    $140–160/week in waste eliminated.\n> 2. ✅ **AI Max turned off (4/17).** Confirmed with Google rep.\n>\n> 3. **Hold Maximize Conversions through 5/1, decision point extended.**\n>    [detailed rationale...]\n> 4. **Apply English-only language targeting, still pending.** [details...]\n\nThis keeps the completed items visible for the record without burying the\nopen items.\n\n**Ad copy actions belong in the optimization tier**, they're important but\nrarely the first thing to fix. Typical ad copy action items include: adding\nmore headline/description variants to improve ad strength, rewriting headlines\nto better match high-value search terms, pausing underperforming ads, or\nadding geographic or service-specific language. When recommending ad copy\nchanges, be specific, cite the actual headlines that need work and suggest\nconcrete alternatives based on what the search term data shows people are\nlooking for.\n\n**Merge related actions into single steps.** If two actions are naturally done\ntogether (e.g., building a new campaign + pre-loading negatives for that\ncampaign), combine them into one action step. Don't pad the list, fewer,\nmeatier steps are better than more granular ones.\n\n### Quarterback Dispatch, Chaining Downstream Skills\n\nThe analyzer is the quarterback of the Google Ads skill pipeline. When\ndiagnosis reveals a problem that a downstream skill can solve, don't just\nmention the skill, dispatch it. This means including enough context in the\naction item that the downstream skill can execute immediately when the user\n(or a scheduled task) triggers the chain.\n\n**Dispatch triggers and what to hand off:**\n\n| Condition Detected | Dispatch To | Hand Off |\n|---|---|---|\n| Below Average Ad Relevance or Expected CTR on keywords with >$50/week spend | **google-ads-copy-optimizer** | Ad group name, current headlines/descriptions, top search terms for that ad group, QS component breakdown |\n| Waste terms identified totaling >10% of campaign spend | **google-ads-change-scripts** | List of terms to negate, match types, campaign name, estimated weekly savings |\n| Below Average Landing Page Experience on keywords with meaningful spend, OR strong CTR + zero conversions for 2+ weeks | **google-ads-lp-auditor** | Landing page URL, current ad copy (headlines + descriptions), QS component data, campaign context (business, target CPA, conversion action, audience) |\n| Ad group restructure recommended (e.g., keyword needs its own ad group) | **google-ads-change-scripts** | Keywords to move, source/destination ad group names, match types |\n| Ad rated POOR or AVERAGE strength | **google-ads-copy-optimizer** | Current headlines/descriptions, ad strength rating, ad group's top search terms |\n\n**How to write a dispatch in the Action section:**\n\nDon't write: \"The google-ads-copy-optimizer skill can generate headlines.\"\n(This is a suggestion to the air.)\n\nDo write: \"**Dedicated RSA created for 'Roll Off Dumpster' ad group.** 15\nheadlines covering core service, geo, urgency, CTAs, sizes, and\ndifferentiators. 'Roll Off Dumpster Rentals' pinned to H1.\"\n(This is what happens when the optimizer was actually dispatched.)\n\nOr, if the action is pending and needs the user to trigger it: \"**Next step:\ngenerate dedicated ad copy for the new ad group.** The copy optimizer has\nwhat it needs, the top search terms, the QS breakdown, and the current\nheadlines. Ready to run when you are.\"\n\nThe goal is that each MAA action item either (a) was already handled by a\ndownstream skill during this session, or (b) is staged with enough context\nthat a single command triggers the downstream skill. No action item should\nrequire the user to re-explain the problem to another skill.\n\n### The \"Start here\" close\n\nEnd the Action section with a close that does one of these, not a formulaic\nrestatement of the top action item:\n\n1. **Name a person and make a specific ask**: \"Nicholas, we need to get going\n   on the interior page copy fixes. We're happy to help if you'd like, we'd\n   just need website access.\"\n2. **Pose the most important open question for next week**: \"The key question\n   going into next week: does the cleaned-up traffic mix produce the account's\n   first conversion under Maximize Conversions?\"\n3. **Both**: A named ask followed by the open question.\n\nIf the top action item is already completed (e.g., negatives were run during\nthis session), the close should point to what's next, not what's done.\n\n**Example of the right level of conciseness for an Action section:**\n\n> 1. ✅ **Added 12 negative keywords**, $640/month in waste on job-seeker\n>    and DIY queries, stopped today.\n> 2. **Switch the main campaign from Maximize Clicks to Maximize Conversions**,\n>    we're optimizing for traffic volume, not leads. With 18 conversions last\n>    month, we have enough data for smart bidding.\n> 3. **Create a separate brand campaign**, brand and non-brand are mixed,\n>    which makes our $45 CPA look better than it really is on non-brand.\n>\n> **Start here:** Sarah, the bid strategy switch is the biggest lever we\n> haven't pulled yet. Do you want us to make the change this week, or would\n> you prefer to wait until the negatives have a week of clean data?\n\n## Coaching Mode\n\nWhen a user submits their own MAA for critique or wants to learn the process,\nread `references/coaching-guide.md` for the full coaching framework. The short\nversion: be specific about gaps, teach transferable principles (balanced metrics,\nthe \"because\" bridge, action-to-analysis linkage), and use a constructive tone.\n\nImportant: even in coaching mode, don't teach the internal diagnostic checklist\nlabels (Check A/B/C/D or any tier numbering). Instead, teach the underlying\nprinciple: \"fix what's broken before optimizing what works\" and \"verify your\nfoundation before scaling.\" The sequencing concept is valuable to teach, the\ninternal labels are not.\n\n## PMax-Specific Notes\n\n- Asset Groups replace ad groups, evaluate by asset group theme\n- Search term visibility is limited, use insights tab and categories\n- Brand exclusions are critical, without them, PMax claims brand conversions\n- URL expansion controls matter, is PMax going to intended pages?\n- Watch for PMax/Search cannibalization (balanced metrics: PMax CPA looks good\n  but total conversions didn't grow)\n\n## Google's 2026 Structural Guidance\n\n> Label: unverified. These points came from Google account representative\n> conversations in 2026 and have not been confirmed against a published Google\n> page. See the Sources table above. Do not quote them to a client as Google\n> policy.\n\n- **Consolidation** over granularity, fewer campaigns with more data density\n- **15 conversions/30 days** threshold for smart bidding\n- **AI Max** uses LLM-based intent matching, be curious about unexpected queries\n- **Restructuring doesn't trigger learning periods**, bidding models recognize\n  assets regardless of structure\n- **Brand and geo controls** are the modern segmentation levers",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "flag": "external claude-skill (owner: Daniel Goodrich); repo also holds 5 sibling skills — add entries when mapped",
     "download": "https://github.com/Goodrich-Dev/google-ads-maa-skills/archive/refs/heads/main.zip",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "91f50556e53a37afa86b87e6033888db41968cdf09ecdfde55f5b77d875dd20d",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "unmet",
        "reason": "The recorded instruction review expired because its source hash no longer matches the current bytes.",
        "sourceSha256": "91f50556e53a37afa86b87e6033888db41968cdf09ecdfde55f5b77d875dd20d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "No current exact-byte instruction-requirements checklist is recorded.",
        "sourceSha256": "91f50556e53a37afa86b87e6033888db41968cdf09ecdfde55f5b77d875dd20d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "instructionRevisionReviewed",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 122,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The recorded instruction review expired because its source hash no longer matches the current bytes."
     }
    },
    {
     "title": "Run the Content Factory with your available tools",
     "slug": "run-content-factory-on-any-engine",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/content-factory",
     "articleKind": "topic-hub",
     "desc": "Use the tools you have to turn real work into content people can trust.",
     "content": "---\nname: run-content-factory-on-any-engine\ndescription: \"Use the tools you have to turn real work into content people can trust.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: /content-factory\nstatus: complete\n---\n\n# Run the Content Factory with your available tools\n\nUse the tools you have to turn real work into content people can trust. This guide shows the steps and the files each person or tool needs next. Start with one real source and the result you want to make.\n\n**The path:** Produce → Process → Post → Promote → Learn from results\n\n**Start when:** One recording or source set needs a coordinated Content Factory plan using the operator’s actual tools.\n\n## Inputs\n\n- One real recording or source set, use rights, goal, audience and owned page map.\n- [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) current method and the relevant task recipes.\n- Actual supported tools, file access, verified release gates, named owners and the allowed scope for each stage.\n\n## Steps\n\n1. Write the specific goal and outputs first. Confirm the accepted business scope and which actions are authorized. Source drafting can proceed where allowed; current engine plumbing gates apply before shipping or amplification.\n2. Produce gathers real source material. Verify the original file, speaker, date, permission and tracker entry. An AI worker can plan and inspect supported sources, but it does not become the person who performed the work.\n3. Process turns the source into the selected useful outputs: transcript where needed, [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) brief, article, clips or creative as the assignment requires. Use the actual available editor or a verified transcript export; a model name does not establish browser or media-tool access.\n4. Apply the current writing and [article review](https://local-service-spotlight.github.io/task-library/?task=grade-article-using-jennifer#task-grade-article-using-jennifer) checks. Keep the person’s voice, sources and proof, a grade-five opening and a useful first-screen visual. An A-minus editorial grade is one gate, not permission to ignore factual, media or release defects.\n5. Post uses the destination’s supported editor/source rail. Preserve existing builder data, page type and media. Check authorship, metadata, owned links and the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/). Save drafts or publish only under current authority, then verify source and public rendering separately.\n6. Promote reviews actual organic evidence and prepares the relevant [Dollar a Day, small paid tests of proven content](https://blitzmetrics.com/dollar-a-day/) test or other accepted distribution task. Do not prescribe paid spend for every content job; a live URL alone does not establish campaign readiness or authority.\n7. Pass a concrete packet between stages: source files and rights; selected edited outputs and checks; exact saved/live destinations; then distribution settings and measured results. One usable shared file trail can support multiple tools, but each receiving worker must prove it can read it.\n8. Record actual tools, file paths, checks and blockers in the run record. Reuse the same four-stage method without promising every provider or local model can perform every action. Next work starts from the retained evidence, not an assumed cross-vendor memory.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] All completed stage outputs are real, source-backed and readable by the next owner.\n- [ ] The four stages are Produce, Process, Post and Promote; plumbing and measurement support them.\n- [ ] Actual tool access, release authority and observed results are distinct; blocked stages are not called complete.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional owner has one recording and an AI app that can read text but cannot control the video editor. A teammate provides a checked transcript. The app drafts the article from it and saves the source links. Publishing and paid promotion remain with their authorized owners; one engine has not been claimed to run the whole line.\n\n## Handoff and Content Factory context\n\nThe next real stage owner receives its exact packet. [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives any measured business results; recipe changes follow the recorded review path.\n\nThis recipe coordinates the four stages in the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/). Each stage produces only its actual assigned outputs, and each handoff preserves source evidence and authority.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://localservicespotlight.com/content-factory/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=run-content-factory-on-any-engine#task-run-content-factory-on-any-engine)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 5,
     "freq": 5,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "c5f549606d0ae02f925a264f5d9f91074a4fdd40c9156227f4f2d8e44f858494",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "ccd252a416083c4a743da591edc7e756a83d2456cd5d06b7816ab1728ddbf275",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=run-content-factory-on-any-engine#task-run-content-factory-on-any-engine",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c5f549606d0ae02f925a264f5d9f91074a4fdd40c9156227f4f2d8e44f858494",
      "articleKey": "blitzmetrics.com/content-factory",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c5f549606d0ae02f925a264f5d9f91074a4fdd40c9156227f4f2d8e44f858494"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c5f549606d0ae02f925a264f5d9f91074a4fdd40c9156227f4f2d8e44f858494"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/content-factory"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "pass",
        "reason": "10 audited example URL(s) are attributable to this task.",
        "exampleUrls": [
         "https://blitzmetrics.com/fire-your-agency-book-ai-process/",
         "https://blitzmetrics.com/how-a-claude-agent-automated-paul-ryazanovs-content-pipeline/",
         "https://blitzmetrics.com/how-i-built-matt-bodnar-builds-his-personal-brand-by-co-creating-content/",
         "https://blitzmetrics.com/how-we-absorbed-the-repurposing-suite/",
         "https://blitzmetrics.com/how-we-built-three-articles-three-youtube-videos/",
         "https://blitzmetrics.com/how-we-optimized-the-harry-gold-article/",
         "https://blitzmetrics.com/how-we-repurposed-cody-jones-coach-yu-show-across-four-sites/",
         "https://blitzmetrics.com/how-we-tuned-up-ethan-van-de-heys-personal-brand-site/",
         "https://blitzmetrics.com/how-we-updated-youtube-descriptions-pinned-comments-35-videos/",
         "https://blitzmetrics.com/how-we-used-an-ai-agent-to-inventory-paul-ryazanovs-content/"
        ],
        "auditedAt": "2026-09-10"
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 226,
      "priority": "P2",
      "priorityReason": "Importance 5; missing proof remains",
      "nextAction": "No exact-revision positive semantic review is recorded for this article."
     }
    },
    {
     "title": "Update a client Success Tracker",
     "slug": "update-client-success-tracker",
     "status": "needs-work",
     "stage": "—",
     "article": "https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/",
     "articleKind": "task-recipe",
     "desc": "Keep the client’s work and results easy to find.",
     "content": "---\nname: update-client-success-tracker\ndescription: \"Keep the client’s work and results easy to find.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/\nstatus: needs-work\n---\n\n# Update a client Success Tracker\n\nKeep the client’s work and results easy to find. This guide helps your team show what changed and who owns the next step. Start with the latest report and proof of what was done.\n\n**The path:** Run evidence → Current tracker → Owned actions → Client review\n\n**Start when:** A client’s current work and weekly evidence need to be prepared for its next review.\n\n## Inputs\n\n- [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) and [Collect verified weekly measurements](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements) outputs for the agreed period.\n- The existing client Success Tracker or linked template, dated work artifacts, decisions, blockers and next actions.\n- [The Success Tracker method](https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/) and verified destination/owner/access.\n\n## Steps\n\n1. Find the existing relationship tracker before creating a new copy. Read the current project overview and responsible lead so the record goes to the right people and does not fork an active source.\n2. Gather the period’s dated artifacts and report. For each item distinguish planned, drafted, saved, published, delivered and verified states; link the evidence that supports the chosen label.\n3. Update only relevant current sections of the actual template: strategic context, plumbing, goals, content, targeting and results as applicable. Preserve prior reports as dated history, and mark a missing source rather than leaving a misleading empty slide.\n4. Add sourced metrics with definitions, period and comparison. Keep audience, engagement and business conversion outcomes distinct, including qualified leads, bookings and collected revenue.\n5. Explain material changes and blockers in plain language. For each next action name one actual owner, due date or trigger, source need and acceptance condition. Resolve ownership from the authoritative project record instead of inventing a contact.\n6. Preserve authority boundaries: the Client Roster owns relationship status; Client Tracker owns money/routing; verified project records own work destinations; measurement sources own metric truth. This tracker is the discussion and evidence view, not a competing control system.\n7. Review dates, links, current screenshots, access and privacy. Save and reopen the exact tracker, then use it in the authorized team/client review. Record pending delivery or meeting as pending; merely updating the document does not prove the review happened.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Every completed item has dated proof and each number has source and period.\n- [ ] Every next action has a real owner and check condition; missing access remains visible.\n- [ ] The saved tracker is understandable and preserves history and the authoritative systems.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional tracker shows a page saved in the CMS, but its public copy is still old. The row says saved, public check blocked and names the publishing owner. The weekly report link is retained. No client-facing “live” claim or completed review is added until the evidence changes.\n\n## Handoff and Content Factory context\n\nThe verified project lead uses the record at the next agreed review; [Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) reads the same history in the next cycle.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=update-client-success-tracker#task-update-client-success-tracker)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "bc38f404d7bcd4446e18faac5e41fc461f45d84f579059ed10fcbb3391e621dd",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a039608b4e3f824c468e15a1eba795a4c11f21a7375e237d3570b655096cdd07",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=update-client-success-tracker#task-update-client-success-tracker",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "bc38f404d7bcd4446e18faac5e41fc461f45d84f579059ed10fcbb3391e621dd",
      "articleKey": "localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "bc38f404d7bcd4446e18faac5e41fc461f45d84f579059ed10fcbb3391e621dd"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "bc38f404d7bcd4446e18faac5e41fc461f45d84f579059ed10fcbb3391e621dd"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/the-success-tracker-how-ai-apprentices-managing-local-service-clients-stay-organized-and-prove-results/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 148,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Collect verified weekly measurements",
     "slug": "collect-verified-weekly-measurements",
     "status": "needs-work",
     "stage": "—",
     "article": "https://localservicespotlight.com/skills-measurement-analytics/",
     "articleKind": "task-recipe",
     "desc": "See which work brings leads and sales to your business.",
     "content": "---\nname: collect-verified-weekly-measurements\ndescription: \"See which work brings leads and sales to your business.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: https://localservicespotlight.com/skills-measurement-analytics/\nstatus: needs-work\n---\n\n# Collect verified weekly measurements\n\nSee which work brings leads and sales to your business. This guide helps your team check the numbers before it chooses what to change. Start with the source and date range for each number.\n\n**The path:** Source contract → Matching exports → Checked numbers → Weekly report\n\n**Start when:** The agreed measurement window has closed for an authorized business or funnel.\n\n## Inputs\n\n- The accepted measurement source contract, business scope, period, timezone and comparison period.\n- Read access or named exports from the sources that own the requested metrics: Search Console, site analytics, calls, forms, customer records, bookings and revenue.\n- [Goals, Content, Targeting: the result, proof and people for this work](https://blitzmetrics.com/gct-business-strategy/) targets and the preceding report; the current [Measurement & Analytics procedure](https://localservicespotlight.com/skills-measurement-analytics/).\n\n## Steps\n\n1. Identify the authoritative source and definition for each metric. Search visibility, site visits, inquiries, qualified leads, bookings and collected revenue are different stages; do not substitute one for another.\n2. Confirm the in-scope relationship and approved source access. Record which sources were actually read. Use not connected or unknown for inaccessible data, never zero.\n3. Pull the current and preceding comparable windows. Retain export date, period, timezone, units, filters and attribution settings. Deduplicate leads by the client’s accepted identity rules while preserving source totals.\n4. Compute ratios with named numerators and denominators. For the source’s low-ticket funnel, opt-in rate is opt-ins divided by landing visits, take-rate is buyers divided by its specified eligible audience, cost per lead is spend divided by ad-page opt-ins, and cost per buyer is spend divided by front-end buyers. Confirm the actual source denominator before computing take-rate; do not infer it from an unlabeled percentage.\n5. Use the source’s 25% opt-in and 3% take-rate targets only for the applicable agreed funnel. Do not judge its page-rate thresholds below 100 visits. Preserve the source’s comparison notes for changes above 30%; neither a threshold nor a week-over-week move proves a cause.\n6. If using front-end revenue divided by ad spend, label that ratio precisely. A ratio of at least one covers ad spend on that revenue basis; fees, fulfillment, refunds, margin and timing still matter. It is not proof of free leads, profit or permission to scale.\n7. Reconcile totals and note missing sources, incomplete attribution and sample limits. Save the report, weakest supported stage and proposed next check. Hand findings to analysis and the relevant action owner; this measurement task changes no campaigns or funnels.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] Each value traces to its source, definition, unit and period; missing values remain unknown.\n- [ ] Funnel thresholds apply only to the declared source contract and sufficient sample; zero denominators have no invented rate.\n- [ ] Qualified leads, bookings and revenue stay separate; report and handoff are saved.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nIn a fictional week, ad spend is $100 and recorded front-end revenue is $120. The ratio is 1.2 on that basis. Fulfillment costs and refunds have not been checked, so profit stays unknown. A page has 80 visits, so its opt-in result is reported without a pass/fail verdict against the 100-visit rule.\n\n## Handoff and Content Factory context\n\n[Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) and [Diagnose weak results](https://local-service-spotlight.github.io/task-library/?task=analyze-why-underperformers-fail#task-analyze-why-underperformers-fail) receive the report. The authorized sales or ads owner receives the relevant stage finding, not an automatic scale instruction.\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://localservicespotlight.com/skills-measurement-analytics/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "affa8d2dfde70b2450998dcac4a45ba74663f2c078602fddb7cc20acaca3ba2c",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4d1f44f338d8f8dca0fdd6c40bc3033898a729e292bdb6480b8ad62cbfb18da8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=collect-verified-weekly-measurements#task-collect-verified-weekly-measurements",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "affa8d2dfde70b2450998dcac4a45ba74663f2c078602fddb7cc20acaca3ba2c",
      "articleKey": "localservicespotlight.com/skills-measurement-analytics",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "affa8d2dfde70b2450998dcac4a45ba74663f2c078602fddb7cc20acaca3ba2c"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "affa8d2dfde70b2450998dcac4a45ba74663f2c078602fddb7cc20acaca3ba2c"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/skills-measurement-analytics/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 133,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Measure AI citations for a brand",
     "slug": "measure-ai-citations-for-brand",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/how-to-track-if-ai-cites-you/",
     "articleKind": "task-recipe",
     "desc": "See what AI tools say when people look for a business like yours.",
     "content": "---\nname: measure-ai-citations-for-brand\ndescription: \"See what AI tools say when people look for a business like yours.\"\ncategory: Strategy & Measurement\nstage: —\ndefinitive_article: https://blitzmetrics.com/how-to-track-if-ai-cites-you/\nstatus: needs-work\n---\n\n# Measure AI citations for a brand\n\nSee what AI tools say when people look for a business like yours. This guide helps your team keep a fair record and find claims to fix. Start with the brand, the buyer’s problem and the same set of questions.\n\n**The path:** Fixed questions → Observed answers → Separate scores → Source fixes\n\n**Start when:** A brand needs a first baseline or a comparable repeat check of AI answers.\n\n## Inputs\n\n- The resolved business identity, category, service area and real buyer questions.\n- Selected AI tools the operator can actually access, with exact prompts and a comparison grid.\n- [The AI-citation measurement method](https://blitzmetrics.com/how-to-track-if-ai-cites-you/) and any prior raw answers.\n\n## Steps\n\n1. Write prompts for the exact brand, its category and the problem a buyer wants solved. Record them before the check. Keep branded prompts separate from discovery prompts that do not name the brand.\n2. Define the repeat conditions: selected tool, visible model/version when known, mode, date, location/account context and whether browsing is used. Do not invent a model version hidden by the interface.\n3. Run the bounded prompt set through available supported access. Retain the exact raw answers and any visible citation URLs; a tool failure is not a negative brand result.\n4. Score three separate outcomes: a mention names the brand, a citation links a source, and a recommendation suggests the business for the buyer’s need. Inspect the cited page and whether it supports the actual statement.\n5. Repeat key prompts under comparable conditions and retain all observations. Distinguish stable patterns from variation; a small prompt sample is not market share or a universal rank.\n6. Compare the observations with authoritative brand facts and the previous grid. Prioritize source corrections that address a verified error or evidence gap, such as a wrong service area or unclear offer page.\n7. Save the grid, method and limitations. Hand exact source improvements to the appropriate owner; do not claim that a citation can be guaranteed by a content change.\n\n## Definition of done (QA checklist)\n\nQuality assurance (QA) means checking the result against its agreed requirements; see the [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n- [ ] All prompts, tool conditions, answers and failures are retained.\n- [ ] Mentions, citations and recommendations are scored separately and source claims checked.\n- [ ] The comparison states its sample limits and gives specific evidence-backed next work.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nIn a fictional test, one tool names a shop but links no source. Another links the shop’s hours page without recommending it. The grid records a mention in the first answer and a citation in the second. A later answer differs, so the report shows variation instead of one claimed ranking.\n\n## Handoff and Content Factory context\n\n[Write the agreed weekly report](https://local-service-spotlight.github.io/task-library/?task=submit-weekly-maa-report-every-friday#task-submit-weekly-maa-report-every-friday) receives the trend; the source-page owner receives exact fact or evidence corrections through the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/).\n\nThis work supports the [Content Factory: Produce, Process, Post and Promote](https://localservicespotlight.com/content-factory/) across its relevant stages. It uses the actual inputs and next owner above; a strategy or measurement guide does not manufacture transcripts, clips or other unrelated stage outputs.\n\n## Start with an agent\n\nGive the AI worker this recipe, the real Inputs, the desired result and the actions already authorized. Ask for the saved output, source evidence, passed and failed checks, and the next owner. A skill is a set of instructions. Loading it does not prove access, install a scheduled job or complete the work. Use the [current installation guide](https://localservicespotlight.com/install/) only if reusable setup is needed; a ZIP contains instructions and is not an access grant.\n\nUse the actual supported app and verified source access. A model name is not a promise of browser control, memory or unattended work. For recurring work, inspect the real job’s trigger, owner, timezone and observed firing; this recipe creates no schedule. Before any media playback, mute the player and set volume to zero. A silent review does not prove sound was heard.\n\n## Record the real execution\n\nOpen the run record when work begins. Keep one execution ID, the exact starting recipe revision, input sources and actual state. Write a [meta article, the record of one real execution](https://blitzmetrics.com/meta-article-prompt/) with results, checks, failures and next owner. Link it to this task in the [Task Library](https://local-service-spotlight.github.io/task-library/). Writing is required; public release follows existing authority.\n\nReuse the same execution ID for internal reviews, meta writing, revisions and retries. A blocked run stays open with its dependency and owner, without an invented finish time. Keep historical public examples as dated evidence; article counts alone are not verified execution frequency. Use supported findings to propose and verify a recipe improvement.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/how-to-track-if-ai-cites-you/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=measure-ai-citations-for-brand#task-measure-ai-citations-for-brand)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [Definitive article and task recipe standard](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, account access, an actual execution or a client outcome.\n\nA relevant real execution, source evidence, independent reviewer and accepted handoff remain to be recorded. The fictional example teaches the method and does not fill a real-run evidence gap. The opening and full method need a named semantic reviewer; the task-specific path is source guidance, with visible desktop/mobile presentation still to check.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3b4ae4030746183a7c285035a7480b30d00662c48f35f4c6945461f33efbcb16",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f265a0d08da01d0d4013b1584de06fa2ff22a9abdcabe69ed168146ae73e1d3a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=measure-ai-citations-for-brand#task-measure-ai-citations-for-brand",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3b4ae4030746183a7c285035a7480b30d00662c48f35f4c6945461f33efbcb16",
      "articleKey": "blitzmetrics.com/how-to-track-if-ai-cites-you",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3b4ae4030746183a7c285035a7480b30d00662c48f35f4c6945461f33efbcb16"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3b4ae4030746183a7c285035a7480b30d00662c48f35f4c6945461f33efbcb16"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-track-if-ai-cites-you/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 141,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "thank-you-machine",
   "name": "Thank You Machine",
   "icon": "🙏",
   "color": "#f43f5e",
   "description": "Turn gratitude into content, testimonials, and referrals — a compounding asset",
   "tasks": [
    {
     "title": "Test a Thank-You Post With a Small Ad",
     "slug": "boost-with-dollar-a-day",
     "status": "complete",
     "stage": "Promote",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Test a thank-you post with a small ad. Use this when the goal and budget are set.",
     "content": "---\nname: boost-with-dollar-a-day\ndescription: \"Test a thank-you post with a small ad. Use this when the goal and budget are set.\"\ncategory: Thank You Machine\nstage: Promote\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Test a Thank-You Post With a Small Ad\n\nA small ad can test whether a good post helps your business. This guide helps you use a thank-you post with a clear goal and a set budget. Start with a checked post. Finish with the test result and a choice to stop or keep going.\n\n**The path:** Checked post and budget → small test → measured next choice.\n\n**Use this when:** the post is suitable for paid use and the owner has named a goal, audience, total budget and decision date.\n\n## Inputs\n\n- The checked live post, its organic results if available and rights for paid use.\n- The goal and success measure, allowed audience, ad account, budget, dates and authorized actions.\n- Working measurement for the chosen result; a view goal and a sales goal require different proof.\n\n## First-run prompt\n\n> Use this post and budget to prepare the Dollar-a-Day test. Check current account limits, calculate total possible spend across all ad sets, and show the settings. Run only the spending actions already authorized. At the review date, use actual results to propose the next step.\n\n## Steps\n\n1. Write the goal, source post and audience in plain words using the [Goals, Content, and Targeting brief](https://local-service-spotlight.github.io/task-library/?task=gct-goals-content-targeting#task-gct-goals-content-targeting). Choose a useful measure and target before launch; gratitude or a tag is not evidence of sales.\n2. Read the current Dollar-a-Day method and the actual platform’s budget rules. The initial method is $1 per day for seven days where supported. Daily budgets can be averages; this is not a universal hard $7 cap.\n3. Count every planned campaign or ad set and its currency, dates and spending limit. If a minimum exceeds the authorized amount, reduce scope where supported or return the exact decision needed. Do not silently increase the budget.\n4. Use a relevant audience supported by the current account. Do not assume named-person targeting, sensitive attributes, arbitrary interests or access to the recipient’s audience. Confirm the exact post and paid-use rights.\n5. Prepare the ad, objective, destination, placements and measurement. Check a preview silently. Save the settings and total budget calculation so the owner can review any new spending decision concretely.\n6. Launch only within the authorized account and spend scope. Read back the saved settings and delivery status. Record pending review, rejected or not delivering honestly; save the ad ID and check time.\n7. Observe the planned test, but stop or repair a broken destination, consent issue or spend error promptly. At the decision date, compare actual spend and the chosen outcome with the target. Mark sparse or untracked data as inconclusive.\n8. Propose stop, revise or a bounded winner test. The maintained winner stage is $30 total over 30 days where applicable; it is not $30 per day and is not automatic approval. Record any authorized next action and verify its saved state.\n\n## Definition of done (QA checklist)\n\n- [ ] The specific post, paid-use rights, goal, audience and account are checked.\n- [ ] Budget arithmetic covers all ad sets, dates, currency and actual platform rules.\n- [ ] Saved settings and delivery state are verified if launched.\n- [ ] The review uses actual measured results and identifies missing data.\n- [ ] A next decision is recorded without guaranteed reach, return or automatic scaling.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A fictional test plan has two ad sets at a nominal $1 per day for seven days: $14 nominal spend, subject to the platform’s rules. With only $7 authorized, it cannot launch both. The prepared plan makes that mismatch clear instead of claiming a $7 campaign.\n\n## Handoff and Content Factory context\n\nSave the post and ad IDs, dates, spend, measured outcome and next decision in the project report. Use [Metrics, Analysis, Action](https://local-service-spotlight.github.io/task-library/?task=maa-cycle-metrics-analysis-action#task-maa-cycle-metrics-analysis-action) to explain what the numbers support. Add a repeat only through the actual agreed runtime.\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nRun for a specific approved test, then at its review date. An instruction file does not start ads or schedule a seven-day review.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Promote\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 2 (runs every factory cycle or weekly; ads/revenue path)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Organic metrics CSV (or Ads Manager export), pixel ID, creative filenames, kill/scale log. Next week's ranking starts from this file.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Test a Thank-You Post With a Small Ad](https://local-service-spotlight.github.io/task-library/?task=boost-with-dollar-a-day#task-boost-with-dollar-a-day)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 2,
     "phase": "Promote",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path",
     "instructionReview": {
      "source_sha256": "8f40fc26987f8641c08c4e2cf186f90084400edd0caa04d41c054e646ba4add0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "251ceab46fcdc471ce6a78a92ff57dff236b56cc56ea2fd301dc9ae6fb05645c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=boost-with-dollar-a-day#task-boost-with-dollar-a-day",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "8f40fc26987f8641c08c4e2cf186f90084400edd0caa04d41c054e646ba4add0",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "8f40fc26987f8641c08c4e2cf186f90084400edd0caa04d41c054e646ba4add0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "8f40fc26987f8641c08c4e2cf186f90084400edd0caa04d41c054e646ba4add0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 3,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Keep a Simple Thank-You Routine",
     "slug": "build-into-post-project-checklist-and-weekly-routine",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Help your team remember to say thanks. Use this when you want a simple way to track real help and the next step.",
     "content": "---\nname: build-into-post-project-checklist-and-weekly-routine\ndescription: \"Help your team remember to say thanks. Use this when you want a simple way to track real help and the next step.\"\ncategory: Thank You Machine\nstage: —\ndefinitive_article: /thank-you-machine\nstatus: needs-work\n---\n\n# Keep a Simple Thank-You Routine\n\nIt is easy to forget to thank people when work gets busy. This guide helps your team keep a small list and follow through. Start with real help from recent work. Finish with clear next steps and proof of what was done.\n\n**The path:** Recent work → choose real thanks → track the next step.\n\n**Use this when:** the team wants a repeatable way to notice good deeds after projects or during an agreed weekly review.\n\n## Inputs\n\n- The team’s existing project closeout checklist and recent work records.\n- The gratitude log and the owner of the review.\n- The chosen trigger or cadence, time zone, actual task tool and allowed communication scope.\n\n## First-run prompt\n\n> Add a small thank-you review to this workflow. Use real deeds, check for duplicates and name the next owner. Keep the client’s work closeout criteria intact. If a repeat is requested, configure and verify the actual schedule; otherwise save the checklist.\n\n## Steps\n\n1. Read the existing closeout rules and current log. Add a review prompt such as “Did someone help in a way we should acknowledge?” without making public thanks or ad spend a condition of completing unrelated client work.\n2. Choose an event trigger or an agreed cadence with the team. Define who reviews, which projects are included and how much effort is useful. Do not invent a compulsory weekly quota of videos.\n3. Keep one row per deed with source, person, date, intended audience, next owner and state. States can include note ready, clip checked, draft, sent, posted or no further action; require evidence for the last two.\n4. Review recent work and check duplicates before planning a new message. Use [Find a Real Reason to Say Thanks](https://local-service-spotlight.github.io/task-library/?task=identify-thank-you-triggers#task-identify-thank-you-triggers) for each worthwhile event. No new deed can mean no message this week.\n5. Choose the lightest suitable form: a private note, short video or approved public post. Carry the person’s preferences forward; do not turn each thank-you into a required promotion campaign.\n6. If recurring work is requested, configure it in the actual task tool or agent runtime with owner, time zone, trigger, required access and failure route. Verify the saved configuration and the first actual firing. A checklist or calendar idea alone is not a running schedule.\n7. At each review, read existing records before retrying a send. Check exact delivery or post evidence, identify the smallest missing item, and carry open work forward with its owner. A reminder or automated acknowledgment is not proof of human receipt.\n8. Periodically check whether the routine helps: real deeds noticed, time spent, pending work and repeated-message errors. Adjust the cadence within scope; do not claim relationships or revenue improved without evidence.\n\n## Definition of done (QA checklist)\n\n- [ ] The thank-you prompt fits the project workflow without changing unrelated closeout criteria.\n- [ ] The log has source, deduplication key, state, evidence and next owner.\n- [ ] Private and public routes are chosen for the actual event.\n- [ ] A requested schedule is verified, or clearly remains a proposal.\n- [ ] The report distinguishes planned, sent, posted and received states.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A team adds a five-minute review after each project. One week has no new deed, so it sends nothing. Another week has a checked private note. The project can still close once its own agreed deliverables pass.\n\n## Handoff and Content Factory context\n\nUse the log to hand a chosen event to [Find a Real Reason to Say Thanks](https://local-service-spotlight.github.io/task-library/?task=identify-thank-you-triggers#task-identify-thank-you-triggers) and later record its checked output. Send project updates only within the already authorized communication scope.\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nUse the actual agreed event trigger or cadence. Save one run record per real review and keep the same execution ID for retries of that review.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Keep a Simple Thank-You Routine](https://local-service-spotlight.github.io/task-library/?task=build-into-post-project-checklist-and-weekly-routine#task-build-into-post-project-checklist-and-weekly-routine)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "622185eaa4d23e6b282041103b4f99a53cc0a1bfbc907d671fc9b5b4c2ec0c7a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "73fd13cf5387b5a4d5fe0ff621d5454ce1f953e56dd783c53c6ffc61f62bf09e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-into-post-project-checklist-and-weekly-routine#task-build-into-post-project-checklist-and-weekly-routine",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "622185eaa4d23e6b282041103b4f99a53cc0a1bfbc907d671fc9b5b4c2ec0c7a",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "622185eaa4d23e6b282041103b4f99a53cc0a1bfbc907d671fc9b5b4c2ec0c7a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "622185eaa4d23e6b282041103b4f99a53cc0a1bfbc907d671fc9b5b4c2ec0c7a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete"
      ],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 5,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Find a Real Reason to Say Thanks",
     "slug": "identify-thank-you-triggers",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Use a real good deed to plan a clear thank-you. Start when someone has helped you or your team.",
     "content": "---\nname: identify-thank-you-triggers\ndescription: \"Use a real good deed to plan a clear thank-you. Start when someone has helped you or your team.\"\ncategory: Thank You Machine\nstage: Produce\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Find a Real Reason to Say Thanks\n\nPeople help your business in small ways each day. This guide helps you spot one good deed and say why it mattered. Start with a real event. Finish with a clear note that someone can use to record thanks.\n\n**The path:** Real good deed → check the facts → one clear note.\n\n**Use this when:** a real referral, useful lesson, kind act or completed piece of work gives you a specific reason to thank someone.\n\n## Inputs\n\n- The source of the good deed: a project note, message, call notes or your own dated recollection.\n- The person’s name, their role in this event and the intended private or public use.\n- The existing gratitude log, if there is one; no account access is needed merely to write the note.\n\n## First-run prompt\n\n> Use this source to find one specific reason for thanks. Name what the person did and why it helped. Check for a duplicate. Save a short recording note and flag facts or sharing rights we still need.\n\n## Steps\n\n1. Read the actual source. Write the event date and one sentence about what happened; distinguish an observed deed from a guess about someone’s motive.\n2. Confirm the right person and spelling. If two people share the name, use the known project or profile to resolve identity rather than choosing the first search result.\n3. State what they did, the practical effect and your genuine reason for thanks. Keep numbers and claims within the source; an introduction is not a sale unless that sale is proven.\n4. Check the log for the same person, deed and date. Reuse an existing record when this is the same event; a new deed can deserve new thanks.\n5. Choose the audience. Keep personal matters and private client details out of a public script. Note whether the event can be shared and whether the person wants to be named; a private thank-you can be the right outcome.\n6. Write three short talking points: their name, the specific deed and why it mattered. Remove any pitch, request for a favor or implied endorsement of your business.\n7. Save the source reference and talking points with a next owner. If a key fact is missing, mark exactly which fact needs checking and prepare the rest.\n\n## Definition of done (QA checklist)\n\n- [ ] One real, sourced deed is named without added results.\n- [ ] Identity and duplicate check are recorded.\n- [ ] Private details and intended sharing scope are clear.\n- [ ] The note contains a specific reason for thanks and no request for a return favor.\n- [ ] The next owner can find the source and the recording note.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A project note says Jordan covered the front desk for ten minutes while the owner helped a customer. The note thanks Jordan for that time. It does not claim that Jordan brought in new sales.\n\n## Handoff and Content Factory context\n\nPass the checked note to [Record a One-Minute Thank-You Video](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-thank-you-video#task-record-one-minute-thank-you-video). If the note should stay private, keep that scope with the handoff.\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nRun after a specific good deed or during an already agreed review of recent work. A recurring review is optional and needs an actual configured schedule.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Find a Real Reason to Say Thanks](https://local-service-spotlight.github.io/task-library/?task=identify-thank-you-triggers#task-identify-thank-you-triggers)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "94cad306ef318cb85ffab8f927c41dd747d21a6547b6bf22f2ecc153c396fcf4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4de6d70557ec8994de90a2e6516573b6670c33b41936cd4e600c8dce5b71ccc6",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=identify-thank-you-triggers#task-identify-thank-you-triggers",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "94cad306ef318cb85ffab8f927c41dd747d21a6547b6bf22f2ecc153c396fcf4",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "94cad306ef318cb85ffab8f927c41dd747d21a6547b6bf22f2ecc153c396fcf4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "94cad306ef318cb85ffab8f927c41dd747d21a6547b6bf22f2ecc153c396fcf4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 9,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Process the Thank-You Clip",
     "slug": "process-through-content-factory",
     "status": "complete",
     "stage": "Process",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Make the files you need from a thank-you clip. Use this when the clip is checked and you know who should see it.",
     "content": "---\nname: process-through-content-factory\ndescription: \"Make the files you need from a thank-you clip. Use this when the clip is checked and you know who should see it.\"\ncategory: Thank You Machine\nstage: Process\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Process the Thank-You Clip\n\nOne thank-you clip can be used in more than one place. This guide helps your team make the files you need without changing the story. Start with the checked clip. Finish with clear files and a list of where each may go.\n\n**The path:** Checked clip → useful versions → reviewed files and next owner.\n\n**Use this when:** the original clip is checked and you know who should see it.\n\n## Inputs\n\n- The original clip, checked transcript and source note.\n- The agreed channels, audience and sharing rights; planned formats must serve a real use.\n- Access only to the file store and editing tools needed for the chosen outputs.\n\n## First-run prompt\n\n> Use this thank-you clip to make the agreed files. Keep the facts and tone. Fix captions, label each version and prepare the right post or private-message copy. Show which files are checked and what comes next.\n\n## Steps\n\n1. Open the original and source note; confirm that this is the checked take. Preserve the original rather than overwriting it.\n2. Choose the needed outputs, such as the full clip, a short cut, captions or a brief text post. Do not force five formats if the audience only needs one.\n3. Edit for clarity and remove dead space without changing the reason for thanks. Keep enough context for a stranger to understand the deed. Do not use an edit to make the recipient appear to endorse your business.\n4. Correct names and words in the transcript, then time captions to the clip. Choose framing and text size for each agreed channel; verify current platform requirements when exporting.\n5. Write a short caption naming the deed and why it mattered. Attribute any real quote accurately. A thank-you you recorded is not a customer testimonial; do not label it as their recommendation.\n6. Review each export visually and inspect its duration, dimensions, file size and caption timing. Keep agent playback silent. Open the saved export, not only the editor preview.\n7. Create an output list with file link, format, audience, permission limits, checked state and next owner. Prepare post drafts or the private-message draft. Publish or send only when that action is already authorized, and record its actual result separately.\n\n## Definition of done (QA checklist)\n\n- [ ] The original is preserved and each chosen export opens.\n- [ ] Facts, names, attribution and tone match the source.\n- [ ] Captions and visible text are readable for the intended channel.\n- [ ] Every output has a purpose and sharing scope; no fabricated testimonial was created.\n- [ ] Draft, exported, posted and delivered states are distinguished in the handoff.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** The agreed use is a private video plus one team post. The editor saves the full clip with corrected captions and a short post draft. No testimonial, public blog post or ad is created just to fill a quota.\n\n## Handoff and Content Factory context\n\nPass an approved public post to [Tag the Right Person in a Thank-You Post](https://local-service-spotlight.github.io/task-library/?task=tag-the-person-on-social-media#task-tag-the-person-on-social-media). If this stays private, hand off the exact message and destination to the authorized sender. A suitable posted clip can later enter [Test a Thank-You Post With a Small Ad](https://local-service-spotlight.github.io/task-library/?task=boost-with-dollar-a-day#task-boost-with-dollar-a-day).\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nRun after a checked clip arrives. Use the agreed output list rather than a fixed number of posts or an assumed automatic distribution job.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Process the Thank-You Clip](https://local-service-spotlight.github.io/task-library/?task=process-through-content-factory#task-process-through-content-factory)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "b399b9edfb4701e220b81419b6152152d7bb019b21a235efe1924309a80422ea",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a7b61a9b5a2a882b0459005c3015df1d20c72da4aee48b75e79edef9ef100e10",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=process-through-content-factory#task-process-through-content-factory",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b399b9edfb4701e220b81419b6152152d7bb019b21a235efe1924309a80422ea",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b399b9edfb4701e220b81419b6152152d7bb019b21a235efe1924309a80422ea"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b399b9edfb4701e220b81419b6152152d7bb019b21a235efe1924309a80422ea"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 14,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Record a One-Minute Thank-You Video",
     "slug": "record-one-minute-thank-you-video",
     "status": "complete",
     "stage": "Produce",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Make a short thank-you clip. Use this when you have a real deed to thank someone for.",
     "content": "---\nname: record-one-minute-thank-you-video\ndescription: \"Make a short thank-you clip. Use this when you have a real deed to thank someone for.\"\ncategory: Thank You Machine\nstage: Produce\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Record a One-Minute Thank-You Video\n\nA short video can make your thanks feel personal. This guide helps a business owner thank one person for one real deed. Start with your notes and a phone. Finish with a clear clip that is ready to check.\n\n**The path:** Checked note → short recording → checked clip.\n\n**Use this when:** you have a specific reason for thanks and recording is suitable for the person and intended use.\n\n## Inputs\n\n- The checked note from [Find a Real Reason to Say Thanks](https://local-service-spotlight.github.io/task-library/?task=identify-thank-you-triggers#task-identify-thank-you-triggers).\n- A phone or camera, a quiet place, enough light and a place to save the original file.\n- The intended viewer and any limits on public use of the person’s name, story or image.\n\n## First-run prompt\n\n> Turn this checked note into three brief talking points for a thank-you video. Help me record and review one clear clip. Keep the person’s deed and my reason for thanks accurate. Save the original and a review copy.\n\n## Steps\n\n1. Use the note to say who you are thanking, what they did and why it mattered. Speak to the person. Aim for about a minute and one point; do not add a sales pitch.\n2. Choose a quiet space with light on your face. Frame for the planned use, leave room for captions and clear private details from the background.\n3. Make a short test to check framing and sound. An agent must keep playback muted with volume zero; use captions and audio metadata, or ask the human recorder to assess sound without starting speaker playback.\n4. Record in your own words from the talking points. A natural take is useful, but redo a wrong name, unsupported claim, inaudible line or major interruption. One take is a preference, not a rule that overrides accuracy.\n5. Save the original file before editing. Label it with date, person or safe project code and topic, without exposing private facts in a public filename.\n6. Review the clip against the source. Check the name, deed, meaning, framing and intended duration. Use a transcript to catch errors; do not treat generated captions as proof that the spoken name is correct.\n7. Save a checked review copy and the transcript. Record any sound check that a person still needs to make. Hand off the file and sharing limits; recording does not itself mean the clip has been sent or posted.\n\n## Definition of done (QA checklist)\n\n- [ ] The clip thanks one correct person for one sourced deed.\n- [ ] A usable original and review copy are saved and open successfully.\n- [ ] Framing and transcript are checked; sound verification and any limits are recorded.\n- [ ] The message has no invented result, favor request or implied endorsement.\n- [ ] Sharing scope and the next owner are attached to the files.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** The owner records a 48-second clip thanking Jordan for covering the desk. The first take uses the wrong day, so the owner records it again. The corrected clip and note are saved for review; no send or public post is claimed.\n\n## Handoff and Content Factory context\n\nSend the checked files to [Process the Thank-You Clip](https://local-service-spotlight.github.io/task-library/?task=process-through-content-factory#task-process-through-content-factory). Deliver a private message only when that send is within the user’s instructions, then verify the actual sent copy.\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nRun when a checked thank-you note is ready. Record a fresh clip for a new event; a file download does not start a recording or create a recurring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Produce\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Raw files in Content Library `01-Raw/` plus a tracker row (question, date, speaker). Next skill never needs the chat — it needs the files.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Record a One-Minute Thank-You Video](https://local-service-spotlight.github.io/task-library/?task=record-one-minute-thank-you-video#task-record-one-minute-thank-you-video)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Produce",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "65a7ec847741ac8e73b7a5a0df417592cecafde7502212aee0aa5a87f5c311e0",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "d3a859aebfa97738cb9324d9fdde866b5a09f5752b74e5ec97ece7d33159a23a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=record-one-minute-thank-you-video#task-record-one-minute-thank-you-video",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "65a7ec847741ac8e73b7a5a0df417592cecafde7502212aee0aa5a87f5c311e0",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "65a7ec847741ac8e73b7a5a0df417592cecafde7502212aee0aa5a87f5c311e0"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "65a7ec847741ac8e73b7a5a0df417592cecafde7502212aee0aa5a87f5c311e0"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 15,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    },
    {
     "title": "Tag the Right Person in a Thank-You Post",
     "slug": "tag-the-person-on-social-media",
     "status": "complete",
     "stage": "Post",
     "article": "https://blitzmetrics.com/thank-you-machine",
     "articleKind": "unknown",
     "desc": "Tag the right person in a thank-you post. Use this when the post is ready to share.",
     "content": "---\nname: tag-the-person-on-social-media\ndescription: \"Tag the right person in a thank-you post. Use this when the post is ready to share.\"\ncategory: Thank You Machine\nstage: Post\ndefinitive_article: /thank-you-machine\nstatus: complete\n---\n\n# Tag the Right Person in a Thank-You Post\n\nA tag can help the right person find your thank-you post. This guide helps your team avoid tagging the wrong person or sharing a private story. Start with a checked post. Finish with the right tag and proof of the post’s state.\n\n**The path:** Checked public post → confirm profile → check the saved post.\n\n**Use this when:** public posting is within scope and naming or tagging the person is appropriate for this story.\n\n## Inputs\n\n- The checked media, caption and source note.\n- The authorized account, intended channel and verified profile for the person.\n- The person’s stated preferences and any limits on public sharing.\n\n## First-run prompt\n\n> Check this thank-you post and the person’s profile. Add the correct tag if the story can be shared. Carry out the already authorized posting step, then check the saved post. If posting is not in scope, save the exact draft and missing decision.\n\n## Steps\n\n1. Confirm that the content is intended for public use. Remove private details and respect a request not to be named or tagged; omit a tag if no suitable profile is confirmed.\n2. Open the profile from a known link or verify its name, photo and relevant role against the project source. Do not select a similar name from search without evidence.\n3. Use the platform’s actual tag or mention control on the intended posting account. A typed name is not proof that a clickable tag exists.\n4. Read the full caption with the tag. Keep the thank-you specific and free of sales pressure. Do not promise that tagging will notify everyone, force a reshare or reach the person’s audience.\n5. Preview the correct media and captions. Check that the tag does not cover a face or important text and that the destination account is the intended one.\n6. Publish when already authorized. Otherwise save the concrete draft and the one decision needed. Never label a draft as posted.\n7. For a posted item, reopen its normal permalink from the correct account. Check the visible media, caption and profile destination. Save the permalink, time and actual state; a platform’s notification delivery may remain unknown.\n\n## Definition of done (QA checklist)\n\n- [ ] Public sharing and the correct posting account are established.\n- [ ] The person’s profile and tag destination are verified or the tag is deliberately omitted.\n- [ ] The caption keeps the real meaning and excludes private facts.\n- [ ] The exact saved post or draft is checked.\n- [ ] No reshare, endorsement, audience reach or notification delivery is inferred from a tag.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** Two profiles share Jordan’s name. The project’s known profile link resolves the right account. The owner authorizes the post, which is then reopened and checked. The record says “posted,” with no claim that Jordan saw or shared it.\n\n## Handoff and Content Factory context\n\nSave the checked permalink in the gratitude log. If a paid test is useful and authorized, hand the actual post and goal to [Test a Thank-You Post With a Small Ad](https://local-service-spotlight.github.io/task-library/?task=boost-with-dollar-a-day#task-boost-with-dollar-a-day). Otherwise the posted or private result is enough.\n\nThis fits the [Content Factory](https://localservicespotlight.com/content-factory/): Produce a true story, Process it into useful files, Post only in the agreed places, and Promote a suitable post when its test has a budget. Each stage passes its checked files and next owner forward.\n\n## When this runs\n\nRun for each intended public thank-you post. Do not repeatedly tag the same event to force attention.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Tag the Right Person in a Thank-You Post](https://local-service-spotlight.github.io/task-library/?task=tag-the-person-on-social-media#task-tag-the-person-on-social-media)\n- [One-minute video guide](https://blitzmetrics.com/one-minute-video-guide/) — how to record one clear point.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — how the source becomes checked posts.\n- [Dollar-a-Day guide](https://blitzmetrics.com/dollar-a-day/) — the paid test method; current platform controls still need checking.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Source mapping needs repair: on September 6, 2026, the recorded /thank-you-machine/ hub redirected to /face-socks/, a gift-ordering guide. That live gift recipe does not certify this video workflow. Keep the task ID and contributor state; use the relevant video and process guides below until the owner resolves the canonical video hub.\n- Add a dated, real execution record with the actual checked output. The example below does not fill that gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "15c13a25b255b7a8fcc6d9fb5a81c12d73ce9fccb51ac0232479ff07c1189d61",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c5121ee02d89f966edf13822dc9450f5697d85f9521f70125b5f1f344abde55f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "weak article backing: /thank-you-machine redirects to /face-socks/ (single tactic page, not a definitive article)",
     "articleState": "wip",
     "articleStateReason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
     "articleStateReviewed": "2026-09-06",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=tag-the-person-on-social-media#task-tag-the-person-on-social-media",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "15c13a25b255b7a8fcc6d9fb5a81c12d73ce9fccb51ac0232479ff07c1189d61",
      "articleKey": "blitzmetrics.com/thank-you-machine",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "15c13a25b255b7a8fcc6d9fb5a81c12d73ce9fccb51ac0232479ff07c1189d61"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "15c13a25b255b7a8fcc6d9fb5a81c12d73ce9fccb51ac0232479ff07c1189d61"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/thank-you-machine"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "hold",
        "reason": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged.",
        "reviewedAt": "2026-09-06"
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [],
      "heldStandardGates": [
       "articleCatalogGate",
       "articleSemanticCertification"
      ],
      "unknownStandardGates": [
       "instructionStandards",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 18,
      "priority": "P0",
      "priorityReason": "Explicit evidence hold",
      "nextAction": "Semantic certification held: the ordinary public URL redirects to /face-socks/ (How to Order Custom Face Socks, post 103160). That gift-ordering recipe does not certify the mapped thank-you video, tagging and paid-test workflows. The canonical video destination needs owner reconciliation; contributor task states are unchanged."
     }
    }
   ]
  },
  {
   "folder": "knowledge-system-maintenance",
   "name": "Knowledge System Maintenance",
   "icon": "🔄",
   "color": "#a855f7",
   "description": "The recursive maintenance layer — auditing and improving SOPs and definitive articles",
   "tasks": [
    {
     "title": "Add Knowledge Capture to existing workflows",
     "slug": "add-knowledge-capture-to-existing-workflows",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Your team learns things that can save the next person time.",
     "content": "---\nname: add-knowledge-capture-to-existing-workflows\ndescription: Your team learns things that can save the next person time.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Add Knowledge Capture to existing workflows\n\nYour team learns things that can save the next person time. This guide puts a short lesson note into the work you already do. Start with the call, report, and audit steps your team uses.\n\n**The path:** Current work → Capture point → Checked note → Adoption review\n\n**Start when:** A checked lesson form exists, but a call, report or audit workflow lacks a reliable capture point.\n\n## Inputs\n\n- Current client-call, campaign-review and audit checklists, with their owners and revisions.\n- [The checked four-field note form](https://local-service-spotlight.github.io/task-library/?task=provide-knowledge-capture-note-template#task-provide-knowledge-capture-note-template) and its shared location.\n- Authority for the proposed workflow changes and a reviewer for the rollout.\n\n## Steps\n\n1. Read each actual workflow and mark where a reusable finding appears: call wrap-up, after report analysis, and audit closeout. Do not add a capture step to a process that is outside the agreed scope.\n2. At each point draft: “If this work reveals a reusable lesson, save a note within 24 hours.” Link the form there and state that the clock starts when the lesson is learned. A routine run with no new lesson need not invent one.\n3. Name who writes the note and who routes it. Keep source, insight, destination and priority as the four fields; date the source and retain the actual save time in the record.\n4. Prepare exact before/after checklist changes. Use [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words) and the existing review authority to approve and version the edits. Preserve any already working capture step.\n5. After the approved rollout, inspect one real run of each workflow. Check whether a lesson arose, whether the capture step was used, and whether any resulting note reached the shared location within 24 hours.\n6. Agree a 2–4 week adoption review with an owner and dates. Inspect missed captures and false alarms. Zero notes can mean no reusable finding, no work, missing access or a broken capture point; investigate before changing the method.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] All three in-scope workflows have a specific capture point, linked form and owner.\n- [ ] Approved source versions are saved; each trial has actual findings and timestamps, or an explicit untested state.\n- [ ] Adoption review is assigned; any calendar entry is checked separately from a completed review.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nIn a made-up shop, the report review finds a wrong date range. Its new closeout step yields a note with the export as source. A call produces no new lesson, so no note is invented. The audit trial has not run. Result: two capture points tried, one still untested; this is not three successful captures.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Capture a lesson within 24 hours](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours) receives real lessons; [The distribution owner](https://local-service-spotlight.github.io/task-library/?task=create-knowledge-capture-note-template-and-distribute#task-create-knowledge-capture-note-template-and-distribute) tracks adoption and the next review.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=add-knowledge-capture-to-existing-workflows#task-add-knowledge-capture-to-existing-workflows)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "831901ed973b26395a2ed8abbbcf7f11069efe7e412ed02d475f763b97ac4e82",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "07ffe3231ef058200e4563e076d1e2b366ad2f7500cf7766d790b470906dd111",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-knowledge-capture-to-existing-workflows#task-add-knowledge-capture-to-existing-workflows",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "831901ed973b26395a2ed8abbbcf7f11069efe7e412ed02d475f763b97ac4e82",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "831901ed973b26395a2ed8abbbcf7f11069efe7e412ed02d475f763b97ac4e82"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "831901ed973b26395a2ed8abbbcf7f11069efe7e412ed02d475f763b97ac4e82"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 190,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Add Last Audited column to Definitive Article Guide status table",
     "slug": "add-last-audited-column-to-definitive-article-guide-status-table",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "An old green label can hide missed checks.",
     "content": "---\nname: add-last-audited-column-to-definitive-article-guide-status-table\ndescription: An old green label can hide missed checks.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Add Last Audited column to Definitive Article Guide status table\n\nAn old green label can hide missed checks. This guide makes the last real check easy to see. Start with the live audit list and keep any proof it already has.\n\n**The path:** Current audit list → Preserve proof → Add date field → Check rows\n\n**Start when:** The current audit register lacks a usable last-check field or its audit history needs reconciliation.\n\n## Inputs\n\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/) and the current audit register it points to. The guide’s old teaching table is historical, not the live status authority.\n- The current page inventory, prior audit receipts, and editor access to the maintained register.\n\n## Steps\n\n1. Identify the source that owns current audit status. Read the live guide and record that destination and revision. Do not turn the historical example table back into a live database.\n2. Inspect whether an equivalent audit-date field already exists. Reuse it rather than adding a duplicate. If missing, propose “Last audited” alongside result, reviewer, evidence link and source revision.\n3. Reconcile inventory URLs to rows, normalizing only known canonical redirects. Preserve existing verified dates and evidence; record conflicts for review.\n4. For a row with no audit evidence, use “Unknown — no verified audit recorded.” Use “Not yet audited” only if the retained record actually establishes that no audit has occurred. Never erase a real date to make a clean starting table.\n5. Save the scoped register/schema change through its supported source workflow. Reopen the saved rows and compare their count, dates and links against the pre-change snapshot.\n6. Explain how later audit closeout records the actual check date and result. Hand unresolved inventory rows to the audit owner and prepare any authorized team notice.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] One maintained date field exists without a competing current-status table.\n- [ ] Verified old history remains intact; unknown history is explicit.\n- [ ] Saved row counts and proof links reconcile; every mismatch has an owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA sample register has three pages: one checked on 2 August with a receipt, one carrying an undated green badge, and one known to be new. Keep 2 August for the first, use unknown for the second, and use not yet audited for the third only if the new-page record supports it. Adding a column creates no new audit.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) writes later check results. [Assign auditors](https://local-service-spotlight.github.io/task-library/?task=schedule-and-assign-quarterly-auditors#task-schedule-and-assign-quarterly-auditors) receives rows needing a new check.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=add-last-audited-column-to-definitive-article-guide-status-table#task-add-last-audited-column-to-definitive-article-guide-status-table)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "98bfe8dec9ed8c321dd540444cb312466acebe23e629dac5b6c45b615946014a",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a3fea85fb5649ee5e8a81a5fd9c2c0e3214f1edcec204f11df6cd1570154b2c8",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=add-last-audited-column-to-definitive-article-guide-status-table#task-add-last-audited-column-to-definitive-article-guide-status-table",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "98bfe8dec9ed8c321dd540444cb312466acebe23e629dac5b6c45b615946014a",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "98bfe8dec9ed8c321dd540444cb312466acebe23e629dac5b6c45b615946014a"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "98bfe8dec9ed8c321dd540444cb312466acebe23e629dac5b6c45b615946014a"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 191,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Apply portability discipline to meta-articles",
     "slug": "apply-portability-discipline-to-meta-articles",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A good run note helps the next person use what you learned.",
     "content": "---\nname: apply-portability-discipline-to-meta-articles\ndescription: A good run note helps the next person use what you learned.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Apply portability discipline to meta-articles\n\nA good run note helps the next person use what you learned. This guide keeps the lesson clear and saves the exact steps as proof. Start with one real run and its source files.\n\n**The path:** Run evidence → Method → Tool details → Checked record\n\n**Start when:** You are writing or reviewing a real run record whose reusable method is mixed with its tool details.\n\n## Inputs\n\n- The in-scope run records, their execution IDs, source revisions and evidence.\n- [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) and the two-layer [knowledge maintenance method](https://blitzmetrics.com/knowledge-system-maintenance/).\n- Editing authority and the record’s current private, draft or public state.\n\n## Steps\n\n1. List each record in scope and its actual outcome. Keep the same execution ID when improving the wording; a rewrite is not a new run.\n2. Extract the decisions and reasons another operator can reuse. Label this the approach. Avoid turning one result into a universal promise.\n3. Keep exact tool names, versions, commands, dates and failures in a separate “How this run worked” passage. Link retained private proof safely; do not expose credentials or replace a failed attempt with a successful teaching story.\n4. Test the approach with the tools hidden in a review copy. A reader should see the inputs, decisions, checks and handoff; this does not prove a different platform has the required features.\n5. Recheck each factual sentence against the original evidence, then save through the record’s existing editing route. Keep old evidence links and outcome states.\n6. Check whether the current meta prompt already asks for this separation. If not, propose the exact missing instruction through [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words). Record the reviewed IDs and changed revisions.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Approach and actual implementation are clearly separated.\n- [ ] Dates, tools, failure evidence and same execution identity are retained.\n- [ ] A reader can state the method without assuming another app works; saved copy matches the review.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional run corrected a transcript in Tool A but failed to upload it. The approach says to check spoken claims against the recording. The run details retain Tool A’s version and the failed upload. The improved record still says upload blocked; changing its headings does not make the run successful.\n\n## Handoff and Content Factory context\n\nThe [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/) runs through Produce → Process → Post → Promote. This review improves a run record in Process; any public release belongs to Post and follows its existing authority. The record can describe work from any stage.\n\nThe record owner keeps the checked revision. Process improvements go to [Tag and queue the proposal](https://local-service-spotlight.github.io/task-library/?task=tag-proposal-with-affected-sop-and-queue-for-review#task-tag-proposal-with-affected-sop-and-queue-for-review); future authors use the maintained meta prompt.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=apply-portability-discipline-to-meta-articles#task-apply-portability-discipline-to-meta-articles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "0997d2502e27c5a0983e65dc7f40d786662963ae83967c474679a4fa33917c52",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "9919e609ca7aec250365d2f0a7f00bed6fc792d80280c62243ce7ac2664a019d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=apply-portability-discipline-to-meta-articles#task-apply-portability-discipline-to-meta-articles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "0997d2502e27c5a0983e65dc7f40d786662963ae83967c474679a4fa33917c52",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "0997d2502e27c5a0983e65dc7f40d786662963ae83967c474679a4fa33917c52"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "0997d2502e27c5a0983e65dc7f40d786662963ae83967c474679a4fa33917c52"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 200,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Audit this maintenance article every 6 months",
     "slug": "audit-this-maintenance-article-every-6-months",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Rules can get old too.",
     "content": "---\nname: audit-this-maintenance-article-every-6-months\ndescription: Rules can get old too.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Audit this maintenance article every 6 months\n\nRules can get old too. This guide checks whether your team’s guide system still helps people do good work. Start with the last six months of records and look for what worked, failed, or was never checked.\n\n**The path:** Six-month evidence → Five processes → Decisions → Next review\n\n**Start when:** The agreed six-month system review is due, with actual records for a declared period.\n\n## Inputs\n\n- The current maintenance article and revision history, with an agreed review period.\n- Audit receipts, proposal records, capture notes and portability results for that period.\n- [The proposal-pattern review](https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns) and named review/approval owners.\n\n## Steps\n\n1. Record the period and source coverage. If six months of records do not exist, state the actual window and missing evidence; do not backfill fictional history.\n2. Run [Check whether the page stays on topic](https://local-service-spotlight.github.io/task-library/?task=check-topic-coherence-for-each-definitive-article#task-check-topic-coherence-for-each-definitive-article), [Check the current article structure](https://local-service-spotlight.github.io/task-library/?task=verify-structural-completeness-against-8-step-framework#task-verify-structural-completeness-against-8-step-framework), [Check facts against current sources](https://local-service-spotlight.github.io/task-library/?task=check-information-currency-with-latest-data#task-check-information-currency-with-latest-data) and [Check links and their meaning](https://local-service-spotlight.github.io/task-library/?task=validate-cross-reference-integrity-across-articles#task-validate-cross-reference-integrity-across-articles) against the maintenance article itself. Apply current article requirements to its hub and task sections.\n3. Assess all five processes: quarterly audits, proposal review, lesson capture, method/tool separation and this recursive review. Compare planned events to actual receipts, delays, outputs and unresolved gaps.\n4. Give each process a reasoned disposition: keep, propose a change, propose retirement, or evidence insufficient. Missing records do not prove success or justify removal.\n5. Use repeated problems to propose a missing process only when evidence supports it. Draft exact changes through [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words) and retain review decisions; do not silently change the rules being used to judge the system.\n6. Apply approved changes through the owning sources and reconcile affected Task Library guides. Record the audit result and changed revisions in the current register.\n7. Name the next review owner and agreed six-month date. Verify any saved calendar/job separately; keep completion of that later review unclaimed.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Four article checks and all five process assessments have evidence or explicit gaps.\n- [ ] Every proposed change has scope, reason and owner; approved releases have readback.\n- [ ] Current audit record and next review handoff are saved without invented dates or runs.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional six-month review finds two of two planned article audits, six capture notes, and no proposal export. Keep the audit method based on its receipts; mark proposal review unverified and ask the queue owner for the missing export. “No export” is not “no proposals” or a reason to remove the process.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) records the result. The named maintenance owner handles approved changes and [the next review setup](https://local-service-spotlight.github.io/task-library/?task=schedule-first-6-month-recursive-review#task-schedule-first-6-month-recursive-review) if no cycle exists.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=audit-this-maintenance-article-every-6-months#task-audit-this-maintenance-article-every-6-months)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f941c01fa6e590ca55b44456e4f16921fa6f21a9b9fe0c32e6191479240b555b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "8c3246e135376a23a604cc8ef87e7af34753810d66edb6083de15d8d9fefe28b",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=audit-this-maintenance-article-every-6-months#task-audit-this-maintenance-article-every-6-months",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f941c01fa6e590ca55b44456e4f16921fa6f21a9b9fe0c32e6191479240b555b",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f941c01fa6e590ca55b44456e4f16921fa6f21a9b9fe0c32e6191479240b555b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f941c01fa6e590ca55b44456e4f16921fa6f21a9b9fe0c32e6191479240b555b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 201,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Check information currency with latest data",
     "slug": "check-information-currency-with-latest-data",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Old facts can send a customer or teammate down the wrong path.",
     "content": "---\nname: check-information-currency-with-latest-data\ndescription: Old facts can send a customer or teammate down the wrong path.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Check information currency with latest data\n\nOld facts can send a customer or teammate down the wrong path. This guide checks the claims that may have changed. Start with one page and the sources that can prove its facts today.\n\n**The path:** Claims → Relevant sources → Current or stale → Repair handoff\n\n**Start when:** The audit reaches its facts check, or new credible evidence may change a published claim.\n\n## Inputs\n\n- The current article revision, prior audit evidence and agreed scope.\n- Access to relevant source systems: listing records, analytics/research exports, calls or campaign results when those claims occur.\n- Official product documentation for current tool instructions and the authority for any source edits.\n\n## Steps\n\n1. List changeable claims with exact locations: dates, prices, counts, roles, screenshots, rankings and tool steps. Separate dated historical examples from claims about now.\n2. For each claim, identify its strongest relevant source and required date range. The maintenance hub names Google Business Profile, Ahrefs, calls and campaign data as examples; do not require all four for a page that makes none of those claims.\n3. Read the source and retain date, scope and evidence. Use current official docs for a provider’s controls. If access fails, mark not checked instead of inferring the value.\n4. Mark each claim current, stale, contradicted or unknown. A newer page is not automatically more authoritative; compare the source’s role and what it actually measures.\n5. Prepare narrow corrections to stale wording or screenshots. Preserve historical measurements as dated history rather than rewriting them as current results. Method changes require a reviewed [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words).\n6. Capture reusable new lessons through [Capture a lesson within 24 hours](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours). Save the exact changed version, recheck affected claims after any authorized release, and report unresolved items with owners.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every in-scope changeable claim has a source and disposition.\n- [ ] Historical facts and current facts remain distinct; inaccessible sources are unknown.\n- [ ] Corrections and remaining gaps have saved evidence and a next owner.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional help page says a button is called Import. Current official help says Add files; a dated screenshot from last year still shows Import. Update the present-day instructions, label or replace the old screenshot, and keep the old run receipt unchanged. No campaign dashboard is needed for this UI-only claim.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Check links and their meaning](https://local-service-spotlight.github.io/task-library/?task=validate-cross-reference-integrity-across-articles#task-validate-cross-reference-integrity-across-articles) checks the changed page’s references, then [Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) records the combined audit result.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=check-information-currency-with-latest-data#task-check-information-currency-with-latest-data)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "d2f23cbc188d7d0310fc648b8328232ee941cc9d46b04da65b7d6fc82bc28412",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "a1214bbd4179ca414fdd801719371409d83d392a3ac45b9010cf8f29572de308",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-information-currency-with-latest-data#task-check-information-currency-with-latest-data",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d2f23cbc188d7d0310fc648b8328232ee941cc9d46b04da65b7d6fc82bc28412",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d2f23cbc188d7d0310fc648b8328232ee941cc9d46b04da65b7d6fc82bc28412"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d2f23cbc188d7d0310fc648b8328232ee941cc9d46b04da65b7d6fc82bc28412"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 203,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Check topic coherence for each definitive article",
     "slug": "check-topic-coherence-for-each-definitive-article",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A page should help readers with one clear subject.",
     "content": "---\nname: check-topic-coherence-for-each-definitive-article\ndescription: A page should help readers with one clear subject.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: complete\n---\n\n# Check topic coherence for each definitive article\n\nA page should help readers with one clear subject. This guide finds text, links, and media that send them elsewhere. Start by saying what the page is for, then check each part against that purpose.\n\n**The path:** Page purpose → Every element → Relevance decision → Fix list\n\n**Start when:** An article audit begins and its declared purpose needs to be checked against the whole page.\n\n## Inputs\n\n- Exact page URL and source revision, declared role and reader need.\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/) and the [SEO Tree, the map of related pages](https://blitzmetrics.com/seo-tree/).\n- The page outline, media/transcript sources, link list and audit-record location.\n\n## Steps\n\n1. State the page’s purpose and role from its real body and opening. A task recipe teaches a repeatable job; a hub explains a subject; a reference or story has another role. An unclear purpose is a finding to resolve.\n2. Inventory every section, image, video, example and meaningful link. For each, record how it supports the purpose; use captions/transcripts or silent frames for media, without claiming a sound review.\n3. Check examples for matching subject and method. A related person’s photo proves that moment, not their use of the method or a customer result.\n4. Check headings for a competing topic and links for useful parent, prerequisite or supporting context. A related prerequisite link can belong without turning the whole page into that topic.\n5. Classify each item keep, clarify, move, remove or not verified. Give the exact location and reason. Preserve source evidence and prior history before proposing a move.\n6. Apply authorized small corrections through the owning editor/source. For structural moves, prepare destination and cross-link changes together so useful material is not lost.\n7. Save the checked inventory and open issues. Capture reusable lessons within 24 hours; a ticketed defect remains unresolved on the page until a fix is verified.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] The page’s purpose and role are explicit; all elements have dispositions.\n- [ ] Every proposed removal or move has a relevance reason and preservation plan.\n- [ ] Open defects remain visible with owners; tickets are not counted as repaired pages.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional bike-repair guide includes a video about a roofing company. The video has no lesson about bike repair, so the audit proposes moving it to its true topic. A link to the shop’s booking page stays because it is the reader’s next step. The move is not marked done until both pages are checked.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Check the current article structure](https://local-service-spotlight.github.io/task-library/?task=verify-structural-completeness-against-8-step-framework#task-verify-structural-completeness-against-8-step-framework) uses this relevance review; [Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) receives findings after all four audit checks.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=check-topic-coherence-for-each-definitive-article#task-check-topic-coherence-for-each-definitive-article)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "9724e4054bec5d58bfdce5f3c20f41e0f48dc9d9e45afa8ef07eab1432056f94",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4ea1e3a849f9e79dc244f11d4470e2ec243ad1fa58979c1f9a5200beebad0349",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=check-topic-coherence-for-each-definitive-article#task-check-topic-coherence-for-each-definitive-article",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "9724e4054bec5d58bfdce5f3c20f41e0f48dc9d9e45afa8ef07eab1432056f94",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "9724e4054bec5d58bfdce5f3c20f41e0f48dc9d9e45afa8ef07eab1432056f94"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "9724e4054bec5d58bfdce5f3c20f41e0f48dc9d9e45afa8ef07eab1432056f94"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 222,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Conduct first portability review of Blog Posting Guidelines",
     "slug": "conduct-first-portability-review-of-blog-posting-guidelines",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Good writing steps should still help when your team changes apps.",
     "content": "---\nname: conduct-first-portability-review-of-blog-posting-guidelines\ndescription: Good writing steps should still help when your team changes apps.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Conduct first portability review of Blog Posting Guidelines\n\nGood writing steps should still help when your team changes apps. This guide tests that idea on the article rules you use now. Start with the live guide and keep its useful tool details.\n\n**The path:** Current guide → Classify steps → Review copy → Pilot handoff\n\n**Start when:** The team is piloting method/tool separation on the maintained Article Guidelines.\n\n## Inputs\n\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/) at its current canonical URL, with source revision and existing media.\n- [Separate the method from tool steps](https://local-service-spotlight.github.io/task-library/?task=separate-methodology-layer-what-why-from-implementation-layer-how#task-separate-methodology-layer-what-why-from-implementation-layer-how) and a reviewer who can judge the full writing/publishing workflow.\n- Source editing authority and an amendment queue; any former seventeen-step outline is historical until checked.\n\n## Steps\n\n1. Fetch the current guide and list its actual headings and steps. Follow the maintained canonical destination instead of assuming the old Blog Posting Guidelines URL or a fixed 1–17 sequence.\n2. Classify each instruction as purpose/decision/check or current tool implementation. Mark mixed sentences for separation; retain all original examples, links and media in a review copy.\n3. Put the transferable instruction first, then label the actual app controls, versions and screenshots beneath it. Keep concrete tool steps so today’s user can still perform the task.\n4. Hide tool blocks in a test copy. Confirm a competent reader can explain source intake, editing, checks and handoff. This tests the method’s clarity; it does not prove another platform can publish the same page.\n5. Prepare the exact restructure through [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words). After approval, save through the guide’s owning source/editor and compare preserved media, links and body meaning.\n6. Record hard classification decisions, tested revisions and unresolved tool dependencies as the pilot example. Capture any reusable lesson within 24 hours.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every current instruction is classified; no old step count is treated as current evidence.\n- [ ] Method and tool detail remain usable, with original proof/media retained.\n- [ ] Pilot review and any authorized release have exact source/readback receipts.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional step says “Open Tool A and fix the words highlighted in blue.” The pilot splits it into “Check the transcript against the speaker’s words” and a dated Tool A control note. A reviewer spots that speaker names also need checking. That missing method check is proposed explicitly rather than buried in the screenshot.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Review the rest of the guide library](https://local-service-spotlight.github.io/task-library/?task=review-existing-sops-for-portability-compliance#task-review-existing-sops-for-portability-compliance) receives the pilot pattern and unresolved dependencies.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=conduct-first-portability-review-of-blog-posting-guidelines#task-conduct-first-portability-review-of-blog-posting-guidelines)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1476a77c8b6150724258ae6c5b86973dc47b4ef45c86c69ab9af77c014950a67",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6bb5013c42e867c160d27fa1892d368a071112feac444bb12733e1d041407d00",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=conduct-first-portability-review-of-blog-posting-guidelines#task-conduct-first-portability-review-of-blog-posting-guidelines",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1476a77c8b6150724258ae6c5b86973dc47b4ef45c86c69ab9af77c014950a67",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1476a77c8b6150724258ae6c5b86973dc47b4ef45c86c69ab9af77c014950a67"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1476a77c8b6150724258ae6c5b86973dc47b4ef45c86c69ab9af77c014950a67"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 192,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Create Knowledge Capture Note template and distribute",
     "slug": "create-knowledge-capture-note-template-and-distribute",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A lesson form helps only if your team can find and use it.",
     "content": "---\nname: create-knowledge-capture-note-template-and-distribute\ndescription: A lesson form helps only if your team can find and use it.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Create Knowledge Capture Note template and distribute\n\nA lesson form helps only if your team can find and use it. This guide puts the form where the work happens. Start with the checked form, then try it with the people who need it.\n\n**The path:** Checked form → Workflow links → Real trial → Adoption review\n\n**Start when:** A checked lesson form exists and the intended team needs a usable rollout and adoption check.\n\n## Inputs\n\n- [The checked four-field form](https://local-service-spotlight.github.io/task-library/?task=provide-knowledge-capture-note-template#task-provide-knowledge-capture-note-template) and a real filled example.\n- Shared storage, the team’s three capture workflows, and their owners.\n- Authority for training, source updates and any team notice; an agreed adoption-review date.\n\n## Steps\n\n1. Inspect the existing form before creating another. It needs source, insight, destination and priority, short hints and a real sourced example. Use the authoring task if these are missing.\n2. Confirm one canonical saved copy and the receiving team’s access. Keep a revision and point copies back to it.\n3. Use [the workflow-integration task](https://local-service-spotlight.github.io/task-library/?task=add-knowledge-capture-to-existing-workflows#task-add-knowledge-capture-to-existing-workflows) to put the form at call wrap-up, campaign review and audit closeout. Preserve already working links and route process changes through review.\n4. Run an agreed walkthrough with one genuine lesson. Show how to cite the source, state the insight, choose a destination and set priority. A sample demonstration is training, not a completed client task.\n5. Over the first two weeks, inspect real opportunities to capture lessons, saved notes and their timestamps. Check both use and quality; no notes may mean no relevant work, inaccessible storage or a missed capture.\n6. Record adoption as observed, partial or untested for each workflow. Route repeated problems to a reviewed form/workflow change and retain who owns the next check.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Canonical form and example are accessible at all three in-scope capture points.\n- [ ] A real walkthrough and its participants/output are recorded.\n- [ ] The two-week review measures actual notes and opportunities, with blockers retained.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional rollout links the form from three checklists. During two weeks, calls produce four usable notes, an audit produces one, and no campaign review occurs. Report adoption evidence for calls/audits and campaign adoption untested. Five notes do not prove all three workflows are working.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nCapture owners use [Capture a lesson within 24 hours](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours); the rollout owner retains adoption evidence and [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words) handles accepted changes.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-knowledge-capture-note-template-and-distribute#task-create-knowledge-capture-note-template-and-distribute)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "33bfd909b0a59a2aa26e6a21ac31163ea09cfb9f78c783cf9f9a82f81d902bdb",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "1342d8cdff2a9fe5304629f4482fe1b8b469f68d3634a42adfe0f1c32f3f3b2c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-knowledge-capture-note-template-and-distribute#task-create-knowledge-capture-note-template-and-distribute",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "33bfd909b0a59a2aa26e6a21ac31163ea09cfb9f78c783cf9f9a82f81d902bdb",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "33bfd909b0a59a2aa26e6a21ac31163ea09cfb9f78c783cf9f9a82f81d902bdb"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "33bfd909b0a59a2aa26e6a21ac31163ea09cfb9f78c783cf9f9a82f81d902bdb"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 193,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Create shared location for task guide Amendment Proposals",
     "slug": "create-shared-location-for-sop-amendment-proposals",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Good fixes get lost when they stay in chat.",
     "content": "---\nname: create-shared-location-for-sop-amendment-proposals\ndescription: Good fixes get lost when they stay in chat.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Create shared location for task guide Amendment Proposals\n\nGood fixes get lost when they stay in chat. This guide gives your team one place to propose a change and see its answer. Start by checking whether a shared queue already exists.\n\n**The path:** Current queue → Format and roles → Test proposal → Tracking handoff\n\n**Start when:** The approved process needs one findable proposal queue, or the existing one needs repair.\n\n## Inputs\n\n- The approved team workspace, current proposal locations and their owners.\n- The [knowledge maintenance method](https://blitzmetrics.com/knowledge-system-maintenance/) proposal format: problem, affected guide, exact new wording and at least two real examples, within 500 words.\n- Named submitters/reviewers and authority for any storage or access change.\n\n## Steps\n\n1. Find the maintained proposal home before creating one. The source allows a document, a WordPress draft or a project board; choose the approved tool that the intended users can reach.\n2. Organize three clear areas: format/help, pending queue, resolved archive. Keep existing IDs, decisions and evidence links; do not merge histories without checking provenance.\n3. Map roles to needed actions: submit, read, review and resolve. Grant only approved access and keep confidential client examples in authorized storage.\n4. Seed the blank four-part format and one clearly labeled teaching example. A sample item uses a test ID and never counts as a real accepted amendment.\n5. Have an intended submitter and reviewer perform a test handoff. Confirm they can find, read and resolve the sample with a reason. Use a test document for any simulated version/changelog update.\n6. Link the canonical home from the maintained workflow under existing publishing authority. Prepare or send the exact notice only within the job’s communication scope.\n7. Hand location, roles, test evidence and unresolved access to the tracking-system task.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] One identified home contains format, queue and archive without losing prior records.\n- [ ] Approved roles are verified by a submitter/reviewer test.\n- [ ] Sample records are labeled and excluded from production amendment metrics.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional team already has a proposal board but no format card. Add the format and a sample item there rather than making a second board. A reviewer can open the sample but cannot change its state; record that missing role and leave the round-trip test incomplete.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Set up proposal tracking](https://local-service-spotlight.github.io/task-library/?task=set-up-sop-amendment-proposal-tracking-system#task-set-up-sop-amendment-proposal-tracking-system) adds the metadata and review schedule to this checked location.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-shared-location-for-sop-amendment-proposals#task-create-shared-location-for-sop-amendment-proposals)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "a5ca546512717944c3c9fe4b3059a0bcc9435057da3086893f272e2294a8c25d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "299724839cfe10da4349a95fcf1a05b03e873dbf9a1dfcf32f381a6025930403",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-shared-location-for-sop-amendment-proposals#task-create-shared-location-for-sop-amendment-proposals",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a5ca546512717944c3c9fe4b3059a0bcc9435057da3086893f272e2294a8c25d",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a5ca546512717944c3c9fe4b3059a0bcc9435057da3086893f272e2294a8c25d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a5ca546512717944c3c9fe4b3059a0bcc9435057da3086893f272e2294a8c25d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 194,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Create task guide Amendment Proposal (≤500 words)",
     "slug": "create-sop-amendment-proposal-500-words",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "If a guide keeps causing trouble, write down the fix.",
     "content": "---\nname: create-sop-amendment-proposal-500-words\ndescription: If a guide keeps causing trouble, write down the fix.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: complete\n---\n\n# Create task guide Amendment Proposal (≤500 words)\n\nIf a guide keeps causing trouble, write down the fix. This guide helps you show the problem, proof, and exact new words. Start with the current guide and two real examples.\n\n**The path:** Two real examples → Exact change → 500-word check → Review queue\n\n**Start when:** Two real cases show a repeatable method defect that needs a formal proposed correction.\n\n## Inputs\n\n- The affected [standard operating procedure, or task guide](https://blitzmetrics.com/how-to-document-a-task/) and its current revision.\n- At least two source-backed cases showing the problem, plus the shared proposal location.\n- The applicable change authority and a named reviewer.\n\n## Steps\n\n1. Check whether the current guide already covers the issue or has changed since the examples. Identify the exact faulty or missing step; a stale local copy may need updating instead.\n2. Draft four parts: problem; affected guide and section; exact added/replacement wording; at least two real examples with dates and sources. If only one exists, capture that lesson and mark the evidence gap. Do not wait for a second harm when an urgent correction is already authorized through the proper route.\n3. Write one coherent change in the guide’s voice. Separate the method from product controls, and describe the expected result and failure behavior.\n4. Count the whole proposal body against the 500-word maximum. Trim background before evidence or exact wording. Split unrelated guide changes into linked proposals.\n5. Compare the proposed text with adjacent steps and current shared rules. Confirm the examples support the claimed defect rather than merely mentioning the subject.\n6. Save the proposal and its source revision in the shared location, then read it back. Queue it for review; a proposal saved is not a live procedure change.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Four parts, exact affected revision and two real examples are present, or the proposal remains evidence-incomplete.\n- [ ] The body has 500 words or fewer and one coherent proposed change.\n- [ ] Saved proposal is readable and ready for the named reviewer; live state is reported separately.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional proposal has: Problem—two reports used the wrong week. Guide—weekly reporting, date check. Wording—“Compare export start/end dates with the report title before computing totals.” Evidence—two labeled sample report/export pairs. This teaches the four-part form; real use requires actual records, not the invented reports.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Tag and queue the proposal](https://local-service-spotlight.github.io/task-library/?task=tag-proposal-with-affected-sop-and-queue-for-review#task-tag-proposal-with-affected-sop-and-queue-for-review) receives the saved proposal. One-off lessons without the evidence for a proposal go through [Capture a lesson within 24 hours](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours).\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2c7be0dce68a473c06f9d40fd175bafcde462813973b33c990d6b7c94564fa71",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "50f08832cdb10985515679357f3a9ca0f3e65d19b27a18ed72eac00292432ba4",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2c7be0dce68a473c06f9d40fd175bafcde462813973b33c990d6b7c94564fa71",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2c7be0dce68a473c06f9d40fd175bafcde462813973b33c990d6b7c94564fa71"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2c7be0dce68a473c06f9d40fd175bafcde462813973b33c990d6b7c94564fa71"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 223,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Generate Knowledge Capture Note within 24 hours",
     "slug": "generate-knowledge-capture-note-within-24-hours",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Save one real lesson in a short note while the facts are fresh.",
     "content": "---\nname: generate-knowledge-capture-note-within-24-hours\ndescription: Save one real lesson in a short note while the facts are fresh.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Generate Knowledge Capture Note within 24 hours\n\nSave a useful lesson while the facts are fresh. This guide turns one real finding into a short note your team can use. Start with the source and write the note within 24 hours.\n\n## Inputs\n- A real new lesson from a call, campaign, audit or completed step, plus when it was learned.\n- The [four-field note form](https://local-service-spotlight.github.io/task-library/?task=provide-knowledge-capture-note-template#task-provide-knowledge-capture-note-template) and shared capture location.\n- A source link or retained record, the affected guide or task, and permission to save the note.\n\n## First-run prompt\n> Use our four-field form to capture this lesson: [source, finding and time learned]. State the source, insight, destination and priority. Separate observed facts from guesses. Save it in [capture location] within 24 hours of the finding and record the actual save time. If the deadline passed, report that honestly.\n\n## Steps\n1. Confirm there is a lesson worth keeping: a new fact, a useful example, or evidence that a method needs to change. Record when it was learned so the 24-hour clock has a real start.\n2. Open the shared four-field form. Add the dated source and the person or system that supplied it. Keep private proof in the authorized location.\n3. Write the insight in one to three sentences. Explain what is newly known and what the source actually proves. Label uncertainty; do not turn a guess into a result.\n4. Name the current guide or task that should receive it. If the destination is unclear, record the uncertainty for the routing owner instead of creating a competing article.\n5. Set priority from the work affected. A finding blocking current work needs prompt attention; a useful future example can wait for the normal review.\n6. Save the note in the shared location within 24 hours. Reopen it and check the source link. Record the actual save time and any missed deadline rather than backdating.\n7. Hand the note to the routing task. Capturing a lesson does not mean the shared procedure has been changed.\n8. If missed capture deadlines keep happening, record the pattern and pass it to [Add knowledge capture to existing workflows](https://local-service-spotlight.github.io/task-library/?task=add-knowledge-capture-to-existing-workflows#task-add-knowledge-capture-to-existing-workflows). That task owns the workflow change; this note does not set up a schedule.\n\n## Definition of done (QA checklist)\n- [ ] Exactly four fields are filled: source, insight, destination and priority.\n- [ ] The insight is one to three sentences, and its factual claims match the source.\n- [ ] Time learned and actual save time show whether the 24-hour target was met.\n- [ ] The saved note opens in the shared location; its proof is accessible to the authorized receiver.\n- [ ] The routing owner has the note or a visible queue entry; unresolved destination/access is explicit.\n\n## Example(s)\n**Fictional teaching example, not a real client run.** A shop owner learns at 10:00 on Tuesday that a campaign report used the wrong date range. By 10:30 the note says: Source: the Tuesday report and its dated export. Insight: the report covered two weeks while its title said one week; compare dates before comparing totals. Destination: the weekly reporting guide. Priority: before the report is sent. The measured delay is 30 minutes. A real note must link the actual source, not this example.\n\n## Handoff\n[Route the saved lesson](https://local-service-spotlight.github.io/task-library/?task=route-notes-to-sop-update-protocol-or-directly-to-articles#task-route-notes-to-sop-update-protocol-or-directly-to-articles) decides whether it belongs in an article as evidence or in a proposed process change. The author remains available to clarify the source.\n\n## When it runs\nRun after each useful new finding, with a 24-hour capture target. This is an event in the work, not proof of a configured timer. Add a reminder only through the team’s agreed workflow.\n\n## Using this guide with AI\nA guide is a set of steps. Ask an AI worker to use it with the files for this job. Confirm it can read the files and save the result where the next owner can find it. Use the existing authority for the work; identify the exact missing grant before an action outside that scope.\n\nFor repeat work, agree on the trigger, time zone, runtime and receiving owner. Check one run before relying on the schedule. The guide itself does not create a schedule, access or shared memory.\n\nRecord the actual work in a [meta article: the run record and its proof](https://blitzmetrics.com/meta-article-prompt/). Keep one execution ID for the same run and its retries. A teaching example does not add a completed run.\n\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n- Method: [How the knowledge system learns](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This exact Task Library task](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours)\n- [Writing and visual guidelines](https://localservicespotlight.com/article-guidelines/)",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7b7f49e8c59e6e173d3484d7471fe47474949afe9cd7a1246a9c1848765ae275",
      "reviewed_at": "2026-09-06",
      "reviewer": "Codex editorial review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate."
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7b7f49e8c59e6e173d3484d7471fe47474949afe9cd7a1246a9c1848765ae275",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-09-06. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate.",
        "reviewedAt": "2026-09-06",
        "reviewer": "Codex editorial review",
        "sourceSha256": "7b7f49e8c59e6e173d3484d7471fe47474949afe9cd7a1246a9c1848765ae275"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7b7f49e8c59e6e173d3484d7471fe47474949afe9cd7a1246a9c1848765ae275"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 207,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Provide Knowledge Capture Note template",
     "slug": "provide-knowledge-capture-note-template",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Make a short form that helps your team save and use a lesson from its work.",
     "content": "---\nname: provide-knowledge-capture-note-template\ndescription: Make a short form that helps your team save and use a lesson from its work.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Provide Knowledge Capture Note template\n\nHelp your team save lessons before they get lost. Use this guide to make a short note form with one filled example. Start with a real lesson from a call, a campaign, or a task.\n\n## Inputs\n- The maintained four-field method in the [knowledge system guide](https://blitzmetrics.com/knowledge-system-maintenance/): source, insight, destination and priority.\n- One real lesson with a dated source you can check.\n- The shared capture location and permission to save the template. Identify its owner and one person or agent who will use it.\n\n## First-run prompt\n> Make a one-page lesson form with exactly four fields: source, insight, destination and priority. Use this real lesson: [source and lesson]. Add one short hint per field and a filled example. Show any missing facts. Save it in [shared location] within my existing instructions, then check that the next user can read it.\n\n## Steps\n1. Make the blank form with exactly four fields. Under Source, ask for a dated link or record and who supplied it. Under Insight, ask what was learned in one to three sentences. Under Destination, ask which current guide or task should use it. Under Priority, ask how soon it needs attention.\n2. Fill a second copy with one real lesson. Keep the source link and distinguish the observed fact from a proposed fix. Do not invent a date, result, person or destination.\n3. Keep the form and hints to one page at normal reading size. Open the actual file to check it; a word-count guess does not prove the layout.\n4. Save one canonical copy in the shared capture location. Link to it from the maintained knowledge guide under the existing publishing authority. Copies should identify their source and revision.\n5. Have the receiving user or agent open the saved form. Record the location, source revision and read-back result. A local file that the receiver cannot reach is not a shared template.\n6. Hand the template, filled example and access check to the distribution task below. That task owns rollout and the later adoption check.\n\n## Definition of done (QA checklist)\n- [ ] The blank form has exactly four fields and one useful hint per field.\n- [ ] The filled example has a real dated source and a one-to-three-sentence insight.\n- [ ] The form fits one readable page; the saved copy and source link open.\n- [ ] The receiving owner can read the canonical copy; missing access is recorded honestly.\n- [ ] The knowledge guide points to the canonical copy, or publication is explicitly pending.\n- [ ] The distribution handoff names the next owner and the later adoption check.\n\n## Example(s)\n**Worked example from this Task Library review, 6 September 2026.** This records a source finding; it does not claim a repaired release or a completed rollout.\n\n| Field | Filled example |\n|---|---|\n| Source | The all-task ZIP builder in [Task Library commit 02ea7b3](https://github.com/Local-Service-Spotlight/task-library/blob/02ea7b3d2d981b7011cdd48afb64ec7a4bf3a953/build/build.py), reviewed on 6 September 2026 by Codex for this audit. |\n| Insight | That builder writes guide files and a manifest but no first-start file. A new user needs a clear first job, required files and access, and a way to check one result. |\n| Destination | The Task Library ZIP builder and its START-HERE instructions. |\n| Priority | Before the next ZIP release; people are already being directed to download it. |\n\nThe record supports the missing-start-file finding at that source revision. It does not prove that every user got stuck or that any business lost revenue.\n\n## Handoff\n[Share the template and check adoption](https://local-service-spotlight.github.io/task-library/?task=create-knowledge-capture-note-template-and-distribute#task-create-knowledge-capture-note-template-and-distribute) receives the canonical file, filled example and access proof. Review the first real notes during that rollout. Keep proposed form changes in the normal amendment process.\n\n## When it runs\nRun when the team lacks a usable shared form. The authoring result is the checked template and handoff. The later two-week adoption review belongs to the distribution task; downloading this guide does not schedule it.\n\n## Using this guide with AI\nA guide is a set of steps. Ask an AI worker to use it with the files for this job. Confirm it can read the files and save the result where the next owner can find it. Use the existing authority for the work; identify the exact missing grant before an action outside that scope.\n\nFor repeat work, agree on the trigger, time zone, runtime and receiving owner. Check one run before relying on the schedule. The guide itself does not create a schedule, access or shared memory.\n\nRecord the actual work in a [meta article: the run record and its proof](https://blitzmetrics.com/meta-article-prompt/). Keep one execution ID for the same run and its retries. A teaching example does not add a completed run.\n\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n- Method: [How the knowledge system learns](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This exact Task Library task](https://local-service-spotlight.github.io/task-library/?task=provide-knowledge-capture-note-template#task-provide-knowledge-capture-note-template)\n- [Writing and visual guidelines](https://localservicespotlight.com/article-guidelines/)",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "aef7ef2c3bc8827ff71c5ea02150565161d29f10821c6923de220424a00f92e9",
      "reviewed_at": "2026-09-06",
      "reviewer": "Codex editorial review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate."
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=provide-knowledge-capture-note-template#task-provide-knowledge-capture-note-template",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "aef7ef2c3bc8827ff71c5ea02150565161d29f10821c6923de220424a00f92e9",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-09-06. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate.",
        "reviewedAt": "2026-09-06",
        "reviewer": "Codex editorial review",
        "sourceSha256": "aef7ef2c3bc8827ff71c5ea02150565161d29f10821c6923de220424a00f92e9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "aef7ef2c3bc8827ff71c5ea02150565161d29f10821c6923de220424a00f92e9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 195,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Review existing task guides for portability compliance",
     "slug": "review-existing-sops-for-portability-compliance",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Your team should keep its know-how when an app changes.",
     "content": "---\nname: review-existing-sops-for-portability-compliance\ndescription: Your team should keep its know-how when an app changes.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Review existing task guides for portability compliance\n\nYour team should keep its know-how when an app changes. This guide finds task guides that mix the method with tool buttons. Start with the guides people use now and the checked pilot example.\n\n**The path:** Guide inventory → Layer review → Graded gaps → Change queue\n\n**Start when:** The pilot is ready to apply to an agreed inventory of existing task guides.\n\n## Inputs\n\n- An agreed inventory of current task guides and source owners.\n- [The article-guidelines pilot](https://local-service-spotlight.github.io/task-library/?task=conduct-first-portability-review-of-blog-posting-guidelines#task-conduct-first-portability-review-of-blog-posting-guidelines) and [Separate the method from tool steps](https://local-service-spotlight.github.io/task-library/?task=separate-methodology-layer-what-why-from-implementation-layer-how#task-separate-methodology-layer-what-why-from-implementation-layer-how).\n- Read access and the approved review/changes register.\n\n## Steps\n\n1. Build the in-scope list from current operating references, not only search results. Record source revision, owner, use and any inaccessible guide.\n2. For each, classify decisions/checks and tool-specific instructions. In a review copy, hide the implementation and inspect where the method becomes unclear.\n3. Grade compliant, mixed or entangled with cited passages. Use unknown for an unreadable or insufficiently reviewed source; a label alone is not evidence.\n4. Prepare narrow layering changes for mixed guides. Queue a larger rewrite for an entangled guide, explaining which inputs, decisions or checks would otherwise be lost.\n5. Prioritize from actual use, known upcoming tool changes and demonstrated failures. Do not assume every ad or editor guide is more urgent than a blocked client task.\n6. Route exact proposals through the existing amendment process. Record reviewed revisions and next owners; recheck released changes and propose a portability check for new guides if it is missing.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every guide in scope has evidence-backed classification or explicit unknown.\n- [ ] Restructures preserve runnable detail and have owned next actions.\n- [ ] Reviewed dates and any released revisions are recorded; no auto-certification occurs.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional list has ten guides: six separate method/tool steps, three mix them, and one cannot be opened. Report 6 compliant, 3 mixed, 1 unknown. The unreadable guide is not counted as entangled or passed. A promised restructure is not a completed rewrite.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Separate the method from tool steps](https://local-service-spotlight.github.io/task-library/?task=separate-methodology-layer-what-why-from-implementation-layer-how#task-separate-methodology-layer-what-why-from-implementation-layer-how) handles restructures; [review the run records](https://local-service-spotlight.github.io/task-library/?task=apply-portability-discipline-to-meta-articles#task-apply-portability-discipline-to-meta-articles) applies the same method to examples.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=review-existing-sops-for-portability-compliance#task-review-existing-sops-for-portability-compliance)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "d95ec41de702f2f4458e3ffd1a3df051c69fb848ebc925496cd96fc7bf269916",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0c01d314378460d1c76ef87d50438ab543aee70dfe5f0b7ede6528c148f592d5",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=review-existing-sops-for-portability-compliance#task-review-existing-sops-for-portability-compliance",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d95ec41de702f2f4458e3ffd1a3df051c69fb848ebc925496cd96fc7bf269916",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d95ec41de702f2f4458e3ffd1a3df051c69fb848ebc925496cd96fc7bf269916"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d95ec41de702f2f4458e3ffd1a3df051c69fb848ebc925496cd96fc7bf269916"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 212,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Review past 6 months of task guide Amendment Proposals for patterns",
     "slug": "review-past-6-months-of-sop-amendment-proposals-for-patterns",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Repeated fixes can show where a guide needs more work.",
     "content": "---\nname: review-past-6-months-of-sop-amendment-proposals-for-patterns\ndescription: Repeated fixes can show where a guide needs more work.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Review past 6 months of task guide Amendment Proposals for patterns\n\nRepeated fixes can show where a guide needs more work. This task looks across past change requests for the cause. Start with the real records for a clear six-month period.\n\n**The path:** Complete period → Distinct proposals → Checked patterns → Owned actions\n\n**Start when:** The system review needs a source-backed pattern report for its stated six-month period.\n\n## Inputs\n\n- The proposal tracker export for an explicit six-month period, including returned/rejected items.\n- Related guide versions, review dates and a prior-period export if one exists.\n- The maintenance process map and a reviewer for the analysis.\n\n## Steps\n\n1. Record the exact time window and export coverage. Include all known states; list missing records and tests separately. Deduplicate versions by proposal ID instead of counting each edit as a new request.\n2. Classify each real proposal by affected guide, problem type and outcome. Retain the source and decision evidence for each classification.\n3. Calculate proposals per guide; approved divided by decided proposals for approval rate; and median elapsed submission-to-decision time for records with both dates. State denominators, excluded missing dates and open proposals.\n4. Compare with a prior period only when definitions and coverage match. Do not turn a larger collected sample into a growth claim.\n5. Investigate repeated guide changes, missing-process clusters and returned-format patterns. Zero proposals may reflect low activity, good methods, missing capture or queue friction; test the possibilities before calling it failure.\n6. Give each supported pattern a specific proposed action, owner and evidence. Keep uncertain explanations as questions. Feed method changes through [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words).\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Distinct real proposals and coverage are reconciled; samples/versions are excluded.\n- [ ] Metric formulas, denominators and missing data are visible.\n- [ ] Each supported pattern has an owner and next action, without automatic cause claims.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional export contains 8 real proposals: 4 approved, 2 rejected and 2 pending. Approval rate among decided proposals is 4/6, not 4/8. Two approved proposals concern the same confusing field, so the review proposes a field-definition fix. The eight proposals do not establish eight completed client jobs.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[The six-month system review](https://local-service-spotlight.github.io/task-library/?task=audit-this-maintenance-article-every-6-months#task-audit-this-maintenance-article-every-6-months) receives the pattern report, evidence and unresolved questions.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "aae3127f93381bc03fc0b2acb5e17c1847c5428becda7bd21eb615a28c867273",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "13648667021aaf4fb7c25ab744e58213c43faf29553c542f3ef05c274de6931c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "aae3127f93381bc03fc0b2acb5e17c1847c5428becda7bd21eb615a28c867273",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "aae3127f93381bc03fc0b2acb5e17c1847c5428becda7bd21eb615a28c867273"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "aae3127f93381bc03fc0b2acb5e17c1847c5428becda7bd21eb615a28c867273"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 213,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Route notes to task guide Update Protocol or directly to articles",
     "slug": "route-notes-to-sop-update-protocol-or-directly-to-articles",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A saved lesson still needs to reach the right guide.",
     "content": "---\nname: route-notes-to-sop-update-protocol-or-directly-to-articles\ndescription: A saved lesson still needs to reach the right guide.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Route notes to task guide Update Protocol or directly to articles\n\nA saved lesson still needs to reach the right guide. This task helps you choose whether to add proof or change the steps. Start with the note, its source, and the page that owns the subject.\n\n**The path:** Saved lesson → Check source → Choose route → Record outcome\n\n**Start when:** A saved lesson has been captured and still needs a verified destination and next owner.\n\n## Inputs\n\n- [Capture a lesson within 24 hours](https://local-service-spotlight.github.io/task-library/?task=generate-knowledge-capture-note-within-24-hours#task-generate-knowledge-capture-note-within-24-hours) output: source, insight, destination and priority.\n- The current topic/page map, article editor and proposal queue.\n- A routing owner, agreed review interval and existing authority for changes.\n\n## Steps\n\n1. Read the current unrouted-note list within the agreed scope. Check source access, note identity, duplicate versions and priority. Urgent work can be escalated through existing authority rather than waiting for a routine batch.\n2. Check the insight against its evidence and confirm which maintained guide owns it. A capturer’s guessed destination is a starting point, not authority.\n3. If it changes how work should be done, route to [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words). Keep at least two real examples for that formal proposal or mark the missing evidence; do not invent a second occurrence.\n4. If it adds a fact or example without changing method, prepare an addition to the owning article with a relevance note and source. Use current writing/privacy standards and the supported publishing rail.\n5. Record routed, awaiting evidence, proposed, saved draft or published accurately, with destination, owner and date. “Routed” does not mean the guide changed.\n6. Check the receiver can find the note/proposal. Revisit parked notes at the agreed review point and escalate repeated blockage; do not silently abandon them or create duplicate notes to clear a queue.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every in-scope note has a verified destination or a specific open question.\n- [ ] Method and evidence additions take the correct review route.\n- [ ] Source, owner, date and actual downstream state remain inspectable.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional note says a report used the wrong week. It proposes a new date check, so it enters the process-change path. A second note provides a new approved customer example and goes to the relevant article draft. Neither note is marked published until the actual page is checked.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Tag and queue the proposal](https://local-service-spotlight.github.io/task-library/?task=tag-proposal-with-affected-sop-and-queue-for-review#task-tag-proposal-with-affected-sop-and-queue-for-review) receives method changes; the owning article editor receives evidence additions and reports the actual saved/public result.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=route-notes-to-sop-update-protocol-or-directly-to-articles#task-route-notes-to-sop-update-protocol-or-directly-to-articles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "a0a0dbabf6970f4dea7aefdfef227099c66bcd61fea43b7620bcb9f5d5d6d1b2",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2005949a9498696756e12c439ef119f6aa2b90fe6fac8901fabf515b81370546",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=route-notes-to-sop-update-protocol-or-directly-to-articles#task-route-notes-to-sop-update-protocol-or-directly-to-articles",
     "executionHistory": {
      "status": "partial",
      "recordedRuns": 1,
      "completedRuns": 1,
      "failedRuns": 0,
      "partialRuns": 0,
      "completedLast30Days": 1,
      "lastCompletedAt": "2026-10-08T15:37:19.306219+00:00",
      "executionIds": [
       "enhancement-guide-repair-20261008-1446"
      ],
      "executionOutcomes": [
       {
        "executionId": "enhancement-guide-repair-20261008-1446",
        "status": "completed",
        "startedAt": "2026-10-08T14:46:23.616591+00:00",
        "finishedAt": "2026-10-08T15:37:19.306219+00:00"
       }
      ],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a0a0dbabf6970f4dea7aefdfef227099c66bcd61fea43b7620bcb9f5d5d6d1b2",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a0a0dbabf6970f4dea7aefdfef227099c66bcd61fea43b7620bcb9f5d5d6d1b2"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "a0a0dbabf6970f4dea7aefdfef227099c66bcd61fea43b7620bcb9f5d5d6d1b2"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "pass",
        "reason": "1 distinct execution ID(s) name this task; outcomes remain separate.",
        "executionIds": [
         "enhancement-guide-repair-20261008-1446"
        ],
        "historyStatus": "partial"
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 214,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Schedule and assign quarterly auditors",
     "slug": "schedule-and-assign-quarterly-auditors",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A page can drift if no one owns its next check.",
     "content": "---\nname: schedule-and-assign-quarterly-auditors\ndescription: A page can drift if no one owns its next check.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Schedule and assign quarterly auditors\n\nA page can drift if no one owns its next check. This guide gives each page a reviewer and a real due date. Start with the current page list and people who can do the work.\n\n**The path:** Current pages → Named reviewers → Agreed dates → Coverage check\n\n**Start when:** A new quarterly audit window needs named reviewers and agreed page-level due dates.\n\n## Inputs\n\n- The maintained audit inventory, current register and prior unfinished checks.\n- Reviewer availability, relevant source access and independent-review requirements.\n- An agreed quarter, timezone and authority for assignments/calendar changes.\n\n## Steps\n\n1. Reconcile the article list from the current register and canonical index. Include existing gaps and page roles; the old guide’s teaching table is not the live inventory.\n2. Assign one accountable reviewer per page, with needed specialist help. Balance actual scope and avoid an author being the only reviewer of their own changes.\n3. Agree specific due dates and an audit window with those reviewers. Q3 2026 was the source’s first-cycle target; retain it as history rather than assigning an expired deadline to every new run.\n4. Save assignments in the existing system. Include page URL, source revision, reviewer, due date/timezone, required checks and evidence location.\n5. Create only authorized calendar reminders or jobs, check their saved details and confirm intended participants can see them. A saved event is not an accepted assignment or a completed audit.\n6. At the midpoint and quarter close, compare planned checks with actual receipts. Carry misses with named owners and revised dates, keeping the old due date and reason.\n7. Capture load or workflow problems from the real rotation and propose improvements. Do not erase missed audits by changing a status label.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every in-scope page has one accountable reviewer, clear scope and an agreed date.\n- [ ] Saved assignments/reminders are verified; conflicts and access gaps remain visible.\n- [ ] Coverage uses actual audit receipts, with unfinished checks carried forward honestly.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional quarter has 12 pages and two reviewers. One large guide is split into specialist checks but keeps one accountable reviewer. At close, 10 have complete receipts and 2 remain blocked on source access. Report 10/12 audited, not 12/12 because all were assigned.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nAuditors begin with [Check whether the page stays on topic](https://local-service-spotlight.github.io/task-library/?task=check-topic-coherence-for-each-definitive-article#task-check-topic-coherence-for-each-definitive-article) and finish with [Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide). The coordinator owns missed-review follow-through.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=schedule-and-assign-quarterly-auditors#task-schedule-and-assign-quarterly-auditors)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c39e49ea489c81ecae264edb7ccf164e011be1903bcafb4e924af051b30d4896",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c6afaa4b4e246d568d70c4549f5bee5f1a897b45bf1398a490518073b144b249",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=schedule-and-assign-quarterly-auditors#task-schedule-and-assign-quarterly-auditors",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c39e49ea489c81ecae264edb7ccf164e011be1903bcafb4e924af051b30d4896",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c39e49ea489c81ecae264edb7ccf164e011be1903bcafb4e924af051b30d4896"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c39e49ea489c81ecae264edb7ccf164e011be1903bcafb4e924af051b30d4896"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 196,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Schedule first 6-month recursive review",
     "slug": "schedule-first-6-month-recursive-review",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Your guide system needs a date to check itself.",
     "content": "---\nname: schedule-first-6-month-recursive-review\ndescription: Your guide system needs a date to check itself.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Schedule first 6-month recursive review\n\nYour guide system needs a date to check itself. This task sets up that first review with the right people and records. Start with when the system was adopted and who owns it.\n\n**The path:** Adoption date → Review owners → Saved agenda → Verified handoff\n\n**Start when:** No checked first system-review plan exists, or its adoption date and ownership need reconciliation.\n\n## Inputs\n\n- Evidence of the maintenance system’s actual adoption date and any existing review schedule.\n- A review lead, approving reviewer, availability and timezone.\n- The audit register, proposal tracker, capture records and portability-review locations.\n\n## Steps\n\n1. Check for an existing review event or job and its owner before creating another. Preserve it if it already meets the need.\n2. Use six months from documented adoption as the first planning date. If adoption is unknown, ask the owner to set a transparent baseline; do not invent it or backdate an event.\n3. Agree the real review date and participants. Record a separate preparer if exports need advance work.\n4. Build an agenda: first analyze the proposal history, then audit the maintenance article and its five processes, then agree the next cycle. Attach source locations and required evidence periods.\n5. Save through the authorized calendar/task system. Read back date, timezone, recurrence if any, participants and agenda link. Confirm availability or leave acceptance pending.\n6. Record the scheduled state in the maintained audit system. Assign prep collection and the later review; this setup task does not claim the meeting has happened.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Date is based on a real adoption record or an explicitly agreed new baseline.\n- [ ] Named reviewers can access the saved agenda and evidence list.\n- [ ] Existing schedules are reconciled; scheduled, accepted and held are distinct states.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional system was adopted on 10 January, making 10 July the six-month point. One reviewer is unavailable that day; the team agrees 12 July and records the reason. If the event is saved but the second reviewer has not replied, acceptance remains pending. No six-month audit is counted.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Prepare the pattern review](https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns) feeds [the actual maintenance audit](https://local-service-spotlight.github.io/task-library/?task=audit-this-maintenance-article-every-6-months#task-audit-this-maintenance-article-every-6-months).\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=schedule-first-6-month-recursive-review#task-schedule-first-6-month-recursive-review)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f2d44072ea0f8bcaa4f63b81ea3691d361b40ddb32b393166dac926b1e661bee",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "3b5978531b3ee1648e8419e7d11a4f40226c84a1690bbcdc4bb71ca791913c3c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=schedule-first-6-month-recursive-review#task-schedule-first-6-month-recursive-review",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f2d44072ea0f8bcaa4f63b81ea3691d361b40ddb32b393166dac926b1e661bee",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f2d44072ea0f8bcaa4f63b81ea3691d361b40ddb32b393166dac926b1e661bee"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f2d44072ea0f8bcaa4f63b81ea3691d361b40ddb32b393166dac926b1e661bee"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 197,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Schedule first quarterly audit cycle",
     "slug": "schedule-first-quarterly-audit-cycle",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "The first page review needs more than a date on a calendar.",
     "content": "---\nname: schedule-first-quarterly-audit-cycle\ndescription: The first page review needs more than a date on a calendar.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Schedule first quarterly audit cycle\n\nThe first page review needs more than a date on a calendar. This guide sets the list, people, and checks for that first cycle. Start with the current pages and the place that will hold the results.\n\n**The path:** Current register → Review assignments → Audit window → First-cycle closeout\n\n**Start when:** The audit system needs its first agreed cycle, or an unfinished initial cycle must be resumed.\n\n## Inputs\n\n- The current article inventory/register with an audit-date field or a clear schema gap.\n- [The assignment method](https://local-service-spotlight.github.io/task-library/?task=schedule-and-assign-quarterly-auditors#task-schedule-and-assign-quarterly-auditors) and available reviewers.\n- An agreed initial window, timezone and authority for task/calendar changes.\n\n## Steps\n\n1. Inspect existing audit history and plans. If a cycle already exists, reconcile or resume it rather than calling this the first audit ever.\n2. Confirm the register can retain date, reviewer, source revision, result and evidence. Use [the audit-date setup task](https://local-service-spotlight.github.io/task-library/?task=add-last-audited-column-to-definitive-article-guide-status-table#task-add-last-audited-column-to-definitive-article-guide-status-table) only if the field is missing; preserve real prior dates.\n3. Assign every page in scope with the assignment method. Record exclusions and unresolved ownership instead of quietly reducing the denominator.\n4. Agree a real first-cycle deadline and midpoint check. The source’s Q3 2026 target is historical context, not a perpetual deadline. Retain any missed original target beside the revised plan.\n5. Equip reviewers with the four checks: topic, structure, currency and references. State that a complete audit needs evidence from all four; a failed page can still have a completed audit.\n6. At close, reconcile pages reviewed, partially reviewed and not reviewed. Make fixes and their owners visible; scheduling an audit or filing a defect does not repair the page.\n7. Capture real launch lessons and hand unfinished work into the next cycle without erasing the original commitment.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Inventory, register and named assignments are ready for the initial window.\n- [ ] Actual four-check receipts determine audit coverage.\n- [ ] First-cycle outcome and carried gaps retain honest dates and owners.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional first cycle covers five pages. Four have all checks; one lacks a source read. Of the four reviewed pages, two need repairs. Report 4/5 audits complete and 2 reviewed pages needing work. Do not equate audit completion with every page passing.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nAuditors use [Check whether the page stays on topic](https://local-service-spotlight.github.io/task-library/?task=check-topic-coherence-for-each-definitive-article#task-check-topic-coherence-for-each-definitive-article) through [Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide). The cycle owner tracks repairs and the next quarter.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=schedule-first-quarterly-audit-cycle#task-schedule-first-quarterly-audit-cycle)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4b019eeca1318dc1936dcfc54c7342067f2916ca06cd88f0bfc81961f03174d8",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "33f2acbf421f3b5247adf39a9c47f867aec8bfee5fb6ed89edf5b920a88ec5a0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=schedule-first-quarterly-audit-cycle#task-schedule-first-quarterly-audit-cycle",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4b019eeca1318dc1936dcfc54c7342067f2916ca06cd88f0bfc81961f03174d8",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4b019eeca1318dc1936dcfc54c7342067f2916ca06cd88f0bfc81961f03174d8"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4b019eeca1318dc1936dcfc54c7342067f2916ca06cd88f0bfc81961f03174d8"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 198,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Senior team member reviews weekly",
     "slug": "senior-team-member-reviews-weekly",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A proposed fix needs a clear answer and a next step.",
     "content": "---\nname: senior-team-member-reviews-weekly\ndescription: A proposed fix needs a clear answer and a next step.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Senior team member reviews weekly\n\nA proposed fix needs a clear answer and a next step. This guide helps a reviewer judge the proof and wording each week. Start with the real queue and the current guides it affects.\n\n**The path:** Queued changes → Evidence review → Decision → Verified release or return\n\n**Start when:** The agreed weekly review is due and actual pending proposals need decisions or next actions.\n\n## Inputs\n\n- The actual proposal queue, prior pending decisions and review cutoff.\n- The current affected guide revisions and the 500-word/four-part proposal standard.\n- A named reviewer with decision authority and the supported change/publication workflow.\n\n## Steps\n\n1. Open the queue at the agreed review time. Record the pending scope and any inaccessible items. An empty view is not a proven empty queue until filters/access are checked.\n2. Check format: problem, affected guide/section, exact wording and two real examples within 500 words. Return missing parts with a specific reason instead of pretending the request was substantively rejected.\n3. Read the examples and current source. Judge whether the change fixes the problem and preserves adjacent steps, source authority and tool/method separation.\n4. Record approved, rejected, returned or decision pending with reviewer, date and reason. Do not force every item to a final decision just to end with an empty queue.\n5. For an approved change, use the authorized owning-source workflow. Record the version/change history and verify the saved/public result separately. An approval awaiting deployment stays approved, not released.\n6. For returns/rejections, send the reason only through the authorized project channel and verify that notice. Keep the item findable and name any next action.\n7. Flag aged pending items and repeated issues for the process owner. Preserve original submission dates and decision latency for later analysis.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Every in-scope proposal has a justified decision or an explicit pending dependency.\n- [ ] Approvals and actual releases are separate, with changed-version/readback evidence.\n- [ ] Reasons and next owners remain visible; overdue work is not hidden.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional queue holds three proposals. One is approved but awaits the source owner’s release; one lacks a second example and is returned; one is rejected because the current guide already covers it. The receipt records three distinct outcomes, not three published changes.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe source owner releases approved changes. [The pattern-review task](https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns) uses the retained decisions and timings.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=senior-team-member-reviews-weekly#task-senior-team-member-reviews-weekly)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "1f05537faaac53c60e799195c72ee8787f4e9ed970f285e8dc13296f14af78a4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4f91861cc0b84e6e105860ba3057e2cb564aa31665a9f1d842345ab23703c226",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=senior-team-member-reviews-weekly#task-senior-team-member-reviews-weekly",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "1f05537faaac53c60e799195c72ee8787f4e9ed970f285e8dc13296f14af78a4",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "1f05537faaac53c60e799195c72ee8787f4e9ed970f285e8dc13296f14af78a4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "1f05537faaac53c60e799195c72ee8787f4e9ed970f285e8dc13296f14af78a4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 215,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Separate methodology layer (what/why) from implementation layer (how)",
     "slug": "separate-methodology-layer-what-why-from-implementation-layer-how",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A tool may change while the job stays the same.",
     "content": "---\nname: separate-methodology-layer-what-why-from-implementation-layer-how\ndescription: A tool may change while the job stays the same.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Separate methodology layer (what/why) from implementation layer (how)\n\nA tool may change while the job stays the same. This guide keeps the method clear and the current tool steps easy to update. Start with one task guide and keep the details people need to do it.\n\n**The path:** Current guide → Method and tool map → Layered copy → Reader check\n\n**Start when:** A task guide is being written or revised and its method is mixed with product-specific steps.\n\n## Inputs\n\n- The current process guide with its source revision, examples and media.\n- A reviewer who understands the task’s inputs, decisions and expected output.\n- The [knowledge maintenance method](https://blitzmetrics.com/knowledge-system-maintenance/) two-layer rule and authority for proposed source changes.\n\n## Steps\n\n1. Classify every instruction and image: method means what to do, why and how to judge it; implementation means this product’s controls, commands, versions or screenshots.\n2. Put method steps first or pair each with a clearly marked implementation block. Split mixed sentences instead of deleting the practical instructions.\n3. Preserve the task’s actual constraints. If a named service is the required target of the job, say so; portability does not mean pretending a WordPress-only task has no WordPress dependency.\n4. In a review copy, hide implementation blocks and check whether a reader understands inputs, sequence, decisions, pass/fail and next owner. Then restore the blocks and check today’s concrete steps still work as documented.\n5. Explain which details need rechecking when a tool changes. Some capability changes can also alter the method; use evidence and review rather than assuming separation guarantees an unchanged process forever.\n6. Prepare the exact restructure through the change protocol. Preserve media, links and examples, then compare the saved revision after authorized release.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] All instructions are assigned to a clear layer; no useful tool detail is lost.\n- [ ] Method clarity and current implementation are separately checked.\n- [ ] Real platform constraints and unresolved compatibility stay explicit.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional guide says “Click Tool A’s blue words to fix the transcript.” Split it into “Compare the transcript with the recording and correct errors” and a dated Tool A control note. If another app lacks the needed export, that is a real implementation gap; the plain method does not make the export exist.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[The library reviewer](https://local-service-spotlight.github.io/task-library/?task=review-existing-sops-for-portability-compliance#task-review-existing-sops-for-portability-compliance) receives the pattern; use [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words) for source changes.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=separate-methodology-layer-what-why-from-implementation-layer-how#task-separate-methodology-layer-what-why-from-implementation-layer-how)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4ba38fd040e78c4bb46a0e0da54b316f9b6ce67e9816438f5e2903f9cdd17c4f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "7ea316bc5d2c6de1fce9148b32c7b07797ecd09ae6fd46a11f2165ca3765ff52",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=separate-methodology-layer-what-why-from-implementation-layer-how#task-separate-methodology-layer-what-why-from-implementation-layer-how",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4ba38fd040e78c4bb46a0e0da54b316f9b6ce67e9816438f5e2903f9cdd17c4f",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4ba38fd040e78c4bb46a0e0da54b316f9b6ce67e9816438f5e2903f9cdd17c4f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4ba38fd040e78c4bb46a0e0da54b316f9b6ce67e9816438f5e2903f9cdd17c4f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 216,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set up task guide Amendment Proposal tracking system",
     "slug": "set-up-sop-amendment-proposal-tracking-system",
     "status": "gap",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "Your team needs to know which fixes are waiting and which are live.",
     "content": "---\nname: set-up-sop-amendment-proposal-tracking-system\ndescription: Your team needs to know which fixes are waiting and which are live.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: gap\n---\n\n# Set up task guide Amendment Proposal tracking system\n\nYour team needs to know which fixes are waiting and which are live. This guide sets up that record from request to result. Start with the shared proposal home and the person who reviews it.\n\n**The path:** Shared queue → Tracking fields → Test cycle → Real review setup\n\n**Start when:** The shared proposal home exists but needs decision metadata, a test loop and a review workflow.\n\n## Inputs\n\n- [The checked proposal location](https://local-service-spotlight.github.io/task-library/?task=create-shared-location-for-sop-amendment-proposals#task-create-shared-location-for-sop-amendment-proposals) or its existing equivalent.\n- The four-part/500-word format, named reviewer and agreed weekly review window.\n- Authority for metadata, access, calendar changes and team notices.\n\n## Steps\n\n1. Reuse the approved location and preserve existing proposal IDs and history. Verify the current submit/review roles before adding fields.\n2. Create or map title, affected guide, submitter, submission date, priority, decision state, resolution note and resulting source version. Add decision/release dates and evidence links so later metrics have actual timestamps.\n3. Keep queued, returned, approved, rejected and awaiting evidence distinct; track release separately from approval. Preserve earlier decisions instead of overwriting them with the latest status.\n4. Pin the format and seed a labeled test proposal. Check a full sample loop through tagging, review and resolution on test records, including a test-only version/changelog if used.\n5. Agree the weekly reviewer and save any authorized event/job. Read back identifier, date/timezone and agenda; the saved review slot is not an observed review.\n6. Test a small export and verify that real proposal IDs, submission/decision dates and states remain usable for later analysis. Exclude test proposals from production counts.\n7. Link the maintained workflow to the system and issue only authorized notices. Record the real readiness gaps and the owner of the first live review.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Required metadata and history are retained in one accessible system.\n- [ ] A test round trip and export work, with samples excluded from real counts.\n- [ ] Review slot and real review/release outcomes are kept separate.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional test proposal is approved against a test guide, creating a test version and changelog. Its row is marked sample. The first real proposal is still queued. The tracking system test passed; no real process improvement has been released yet.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Review queued changes](https://local-service-spotlight.github.io/task-library/?task=senior-team-member-reviews-weekly#task-senior-team-member-reviews-weekly) handles live proposals; [the later pattern review](https://local-service-spotlight.github.io/task-library/?task=review-past-6-months-of-sop-amendment-proposals-for-patterns#task-review-past-6-months-of-sop-amendment-proposals-for-patterns) reads the retained metadata.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=set-up-sop-amendment-proposal-tracking-system#task-set-up-sop-amendment-proposal-tracking-system)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `gap`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "b377adb8e9b7b8a6bd5285a220d91e1ad8cbe3736e2ddc497c325b6ae726c61d",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "aaf4687db1429b87dd9a814ca9dbf5769645df084024b168e0d0b194d89f50d2",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-sop-amendment-proposal-tracking-system#task-set-up-sop-amendment-proposal-tracking-system",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "b377adb8e9b7b8a6bd5285a220d91e1ad8cbe3736e2ddc497c325b6ae726c61d",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "b377adb8e9b7b8a6bd5285a220d91e1ad8cbe3736e2ddc497c325b6ae726c61d"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "b377adb8e9b7b8a6bd5285a220d91e1ad8cbe3736e2ddc497c325b6ae726c61d"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 199,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is gap; finish and review the guide."
     }
    },
    {
     "title": "Tag proposal with affected task guide and queue for review",
     "slug": "tag-proposal-with-affected-sop-and-queue-for-review",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A good fix is easy to miss if it reaches the wrong list.",
     "content": "---\nname: tag-proposal-with-affected-sop-and-queue-for-review\ndescription: A good fix is easy to miss if it reaches the wrong list.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Tag proposal with affected task guide and queue for review\n\nA good fix is easy to miss if it reaches the wrong list. This guide puts each proposal where its reviewer can find it. Start with the saved proposal and the guide it would change.\n\n**The path:** Saved proposal → Format check → Exact guide tag → Reviewer queue\n\n**Start when:** A saved process-change proposal needs a format check, exact guide tag and reviewer queue.\n\n## Inputs\n\n- [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words) output and the affected guide’s current canonical identity.\n- The maintained proposal queue and a named reviewer with access.\n- Submission source/time, priority and authority to update that queue.\n\n## Steps\n\n1. Read the whole proposal and count its body. Verify the four required parts and two real examples within 500 words; return gaps with a clear reason.\n2. Tag the exact affected guide and section, keeping its canonical URL/source revision. A nickname or a similarly named article is not the correct target.\n3. Check for an existing proposal about the same issue. Link related records or update the correct version without erasing the first submission time.\n4. Add submitter, submission date, priority and current state. Split unrelated changes to different guides into linked proposals so each decision has a clear scope.\n5. Place it in the approved review queue, ordered by genuine urgency then age. Record awaiting evidence or returned states honestly rather than calling every item ready.\n6. Confirm the intended reviewer can read it and its private proof. Send any required notice only through existing authority. Keep the proposal queued until a real decision is recorded.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Format/target checks are recorded; missing evidence is explicit.\n- [ ] No duplicate proposal or overwritten history is introduced.\n- [ ] Reviewer can reach the item and proof; actual state and date are accurate.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional proposal targets “the upload guide,” but two guides have similar names. The router reads both and tags the actual file-upload task with its source revision. One example link is private to the author; the item remains awaiting reviewer access, not ready for decision.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Review queued changes](https://local-service-spotlight.github.io/task-library/?task=senior-team-member-reviews-weekly#task-senior-team-member-reviews-weekly) receives the exact queued record, current source and evidence links.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=tag-proposal-with-affected-sop-and-queue-for-review#task-tag-proposal-with-affected-sop-and-queue-for-review)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "05acf7448a174118d8635d70b954c1bc3d2a15ab7bf0bd242838d6e6058207b3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "42c83e46dfbdff680bb50b0aae127e9d0edc5208c05af9d4e99602a33bc8bb9f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=tag-proposal-with-affected-sop-and-queue-for-review#task-tag-proposal-with-affected-sop-and-queue-for-review",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "05acf7448a174118d8635d70b954c1bc3d2a15ab7bf0bd242838d6e6058207b3",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "05acf7448a174118d8635d70b954c1bc3d2a15ab7bf0bd242838d6e6058207b3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "05acf7448a174118d8635d70b954c1bc3d2a15ab7bf0bd242838d6e6058207b3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 219,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Update status table in Definitive Article Guide",
     "slug": "update-status-table-in-definitive-article-guide",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A page can look done while key checks are missing.",
     "content": "---\nname: update-status-table-in-definitive-article-guide\ndescription: A page can look done while key checks are missing.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Update status table in Definitive Article Guide\n\nA page can look done while key checks are missing. This guide records what was checked, what passed, and who owns the gaps. Start with the real audit notes and the current page list.\n\n**The path:** Four check results → Evidence-based result → Saved record → Fix owner\n\n**Start when:** The article audit has results to record, including any skipped, blocked or failed checks.\n\n## Inputs\n\n- The article identity, source revision and dated results for topic, structure, facts and links.\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/) and the current maintained audit register; its historical teaching table is not a live status database.\n- The register’s declared status meanings and authority to save the scoped result.\n\n## Steps\n\n1. Read all four check results and the source revision each covers. Keep skipped, blocked and failed checks distinct; record a partial audit rather than inventing a full pass.\n2. Confirm the current register and legend. If it uses Green/Yellow/Red for audits, Green requires all applicable checks to pass, Yellow records an existing page with unresolved requirements, and Red means missing or fundamentally broken. Use its declared blocked/unknown state when evidence cannot establish a result; propose a missing state instead of silently redefining colors.\n3. Keep the contributor’s Task Library document-status claim separate from this audit assessment. Neither a “complete” label nor a green catalog badge proves a real task execution, current document readiness or client success.\n4. Update only the correct row with the actual audit date, reviewed source revision, reviewer, proof link and concise result. Preserve prior dated entries; if the date field is absent, use [the evidence-preserving field setup](https://local-service-spotlight.github.io/task-library/?task=add-last-audited-column-to-definitive-article-guide-status-table#task-add-last-audited-column-to-definitive-article-guide-status-table).\n5. Give each unresolved gap an exact next action and named owner. Set or request a due date through the existing workflow; do not invent ownership or mark an assigned fix complete.\n6. Read back the saved row and compare it with the notes. Check the agreed inventory for missing rows or overdue audits, but leave unrelated historical rows intact and report inconsistencies separately.\n7. If the register or legend cannot represent the evidence, draft the exact correction through [Draft a process-change proposal](https://local-service-spotlight.github.io/task-library/?task=create-sop-amendment-proposal-500-words#task-create-sop-amendment-proposal-500-words). Close the audit record only to the extent the actual checks and handoff support.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Result, date and source revision match the actual audit evidence.\n- [ ] Contributor status, document review, execution count and client outcomes remain separate.\n- [ ] The saved record preserves history and each unresolved issue has a real next owner or an explicit assignment gap.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional audit passes topic and structure, finds a stale price, and cannot open one private evidence link. Record the stale claim and blocked link check with their owners. The contributor’s “complete” field stays unchanged pending the separate status process. The audit does not become Green because two of four checks passed.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe named article owner handles the specific fixes. [The audit coordinator](https://local-service-spotlight.github.io/task-library/?task=schedule-and-assign-quarterly-auditors#task-schedule-and-assign-quarterly-auditors) receives remaining coverage and overdue-review gaps.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "6d77a92bdba03f24e1efe0fd5affeca2be1d47ba2a90f7572c94b96c4b2d09fa",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4bb4527a43d359641b9e07ff0d633f9622f4061aae035f37040c293c7871af3e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "6d77a92bdba03f24e1efe0fd5affeca2be1d47ba2a90f7572c94b96c4b2d09fa",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "6d77a92bdba03f24e1efe0fd5affeca2be1d47ba2a90f7572c94b96c4b2d09fa"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "6d77a92bdba03f24e1efe0fd5affeca2be1d47ba2a90f7572c94b96c4b2d09fa"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 220,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Validate cross-reference integrity across articles",
     "slug": "validate-cross-reference-integrity-across-articles",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A link should take people to the help its words promise.",
     "content": "---\nname: validate-cross-reference-integrity-across-articles\ndescription: A link should take people to the help its words promise.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: needs-work\n---\n\n# Validate cross-reference integrity across articles\n\nCheck that each link leads to the help its words promise. Read the source page and its linked page so readers get the right answer. Next, [record the full article audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) once the topic, steps, and facts are also checked.\n\n**The path:** Reference list → Read both pages → Scoped fixes → Check again\n\n**Start when:** An audit needs to check whether the links around a page still describe their targets accurately.\n\n## Inputs\n\n- The audited article’s current URL, known aliases, role and source revision.\n- A scoped site export or internal-link report, with its coverage and collection time; access to the current source and rendered pages, or a named owner for pages the auditor cannot open.\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and the owned [SEO Tree, how related pages link to their main topic](https://blitzmetrics.com/seo-tree/) for topic relationships.\n\n## Steps\n\n1. Build a working table with source URL, source revision, anchor and surrounding claim, destination URL or fragment, direction (inbound or outbound), and status. Populate inbound links from the available site export or link report, checking known aliases and title mentions. Search can find more candidates, but it cannot prove a complete inventory; record covered sites, collection dates and inaccessible sources.\n2. Read each inbound anchor with its surrounding sentence and then read its current destination. Record whether the destination teaches or proves the promised task, concept or claim and whether any cited section still exists. If access fails, mark meaning UNKNOWN rather than passing the link from its URL.\n3. Mark wrong subject links, removed fragments, misleading descriptions and redirects to the wrong page. A successful page load proves reachability only, not that the linked claim is true.\n4. Inventory the major concepts and prerequisites mentioned in the article, including ones with no link yet. Explain unfamiliar terms in a short phrase and link the first useful mention to the existing maintained guide. Follow the [SEO Tree](https://blitzmetrics.com/seo-tree/): a supporting page links to its main topic, and the main guide links back when that example or subtask helps readers. Search the Task Library and owned sites before proposing a new article. Create one only for a distinct reader need with enough evidence, useful instruction and a clear place in the tree; otherwise improve the existing guide or define the term in place. Record a missing-guide gap rather than inventing a destination.\n5. Use concise descriptive anchors that fit the sentence. Retain an external primary source when it supports a provider-specific fact or required tool action. Never retarget an external documentation link solely because an internal page mentions the same product. Apply the approved link rules for each example. Keep internal account information out of public copy, downloadable instructions and public run records. A private source may guide an editorial decision without being quoted or disclosed. Use Local Service Spotlight (LSS) for the current organization; the publishing domain can remain blitzmetrics.com. Preserve exact historical quotations and technical identifiers.\n6. Repeat the same table and meaning check for outbound links, including related task and topic links. A task recipe, entity hub, comparison and story have distinct purposes; do not relabel one just to fill a required link slot.\n7. Prepare exact source edits for inaccurate references and preserve all unrelated content/media. Release only through the owning source and existing authority; otherwise hand the owner the precise sentence, destination and reason.\n8. Reopen each changed link and read the rendered sentence at both ends. Save the dated table with one result per listed link: correct, repaired and read back, wrong and handed off, or UNKNOWN with access reason. Count each result, name coverage limits and remaining owners, and propose a source-workflow fix if repeated renames or edits leave references stale.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] The dated reference table states actual coverage, source revision and counts; every listed link has a semantic result or explicit UNKNOWN.\n- [ ] Major concepts have a helpful maintained link, an in-place definition, or a recorded missing-guide gap; examples, privacy and current LSS naming follow the publishing rules.\n- [ ] Wrong destinations and descriptions have a verified repair or an exact owner handoff.\n- [ ] Readback covers changed anchors and targets; reachability is not substituted for meaning.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional article links “how to set up your library” to a story about one team’s library. The story loads, but it does not teach setup. Change the link only after locating and reading the actual setup guide. A separate vendor link for a supported file limit stays as primary evidence; the owned guide does not establish that limit.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe article owner receives the dated link table, confirmed repairs, source sentences, coverage limits and unresolved issues. [Record the article audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) receives these link findings when the topic, structure and facts checks are also ready; a link-only pass stays partial.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=validate-cross-reference-integrity-across-articles#task-validate-cross-reference-integrity-across-articles)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "04364cbcde72ed8ac7341d3997740771089cca5f590d8461142e0f32f14a825b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Exact-revision written instruction review after removing private account information from public instructions; whole-task gates remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Names link meaning, reader value and the dependent full-audit result record.",
         "evidence": "Check that each link leads to the help its words promise. Read the source page and its linked page so readers get the right answer. Next, record the full article audit result once the topic, steps, and facts are also checked."
        },
        "recipe": {
         "state": "pass",
         "reason": "Scoped sources, eight ordered steps, concept coverage, checked outputs and explicit missing-access treatment.",
         "evidence": "Working table records source revision, surrounding claim, target/fragment, direction, semantic result and coverage limits."
        },
        "links": {
         "state": "pass",
         "reason": "Maintained concept guides and next task are linked; public example/link choices do not disclose private account information.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "Fiction is labeled and source-backed real evidence is still required.",
         "evidence": "A loaded URL is not semantic proof; the source requires dated observations and explicit UNKNOWN coverage."
        },
        "handoff": {
         "state": "pass",
         "reason": "Specific owner handoff and full-audit dependency are explicit.",
         "evidence": "Article owner receives dated link table, checked repairs and unresolved source edits. Record full result only after other audit checks."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "8d6c630a81443874a72bbbb3f606d20c61a849f6037df92822d3af6b12acc523",
       "previousReviewDate": "2026-09-27",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=validate-cross-reference-integrity-across-articles#task-validate-cross-reference-integrity-across-articles",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "04364cbcde72ed8ac7341d3997740771089cca5f590d8461142e0f32f14a825b",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Exact-revision written instruction review after removing private account information from public instructions; whole-task gates remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "04364cbcde72ed8ac7341d3997740771089cca5f590d8461142e0f32f14a825b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "Exact-revision written instruction review after removing private account information from public instructions; whole-task gates remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "04364cbcde72ed8ac7341d3997740771089cca5f590d8461142e0f32f14a825b",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Names link meaning, reader value and the dependent full-audit result record.",
           "evidence": "Check that each link leads to the help its words promise. Read the source page and its linked page so readers get the right answer. Next, record the full article audit result once the topic, steps, and facts are also checked."
          },
          "recipe": {
           "state": "pass",
           "reason": "Scoped sources, eight ordered steps, concept coverage, checked outputs and explicit missing-access treatment.",
           "evidence": "Working table records source revision, surrounding claim, target/fragment, direction, semantic result and coverage limits."
          },
          "links": {
           "state": "pass",
           "reason": "Maintained concept guides and next task are linked; public example/link choices do not disclose private account information.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/public-editorial-boundary-2026-09-27.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "Fiction is labeled and source-backed real evidence is still required.",
           "evidence": "A loaded URL is not semantic proof; the source requires dated observations and explicit UNKNOWN coverage."
          },
          "handoff": {
           "state": "pass",
           "reason": "Specific owner handoff and full-audit dependency are explicit.",
           "evidence": "Article owner receives dated link table, checked repairs and unresolved source edits. Record full result only after other audit checks."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 221,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Check structure against the current article guidelines",
     "slug": "verify-structural-completeness-against-8-step-framework",
     "status": "complete",
     "stage": "—",
     "article": "https://blitzmetrics.com/knowledge-system-maintenance",
     "articleKind": "topic-hub",
     "desc": "A clear guide should help you do the job and check the result.",
     "content": "---\nname: verify-structural-completeness-against-8-step-framework\ndescription: A clear guide should help you do the job and check the result.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: /knowledge-system-maintenance\nstatus: complete\n---\n\n# Check structure against the current article guidelines\n\nA clear guide should help you do the job and check the result. This guide finds missing parts, broken links, and hard-to-use pages. Start with the live page and the rules that apply to its purpose.\n\n**The path:** Page role → Current requirements → Screen and link checks → Exact gaps\n\n**Start when:** The article audit has checked topic fit and is ready to inspect the page against current structural rules.\n\n## Inputs\n\n- The current article source and public page, with its role and revision.\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/), [Article Guidelines](https://localservicespotlight.com/article-guidelines/) and the current Task Library Standard linked from [Task Library](https://local-service-spotlight.github.io/task-library/).\n- The completed topic check, available media/source evidence and desktop/mobile browser access.\n\n## Steps\n\n1. Read the current maintained standards and record their revisions. This task keeps its legacy “8-step” identifier for existing links, but the checklist follows today’s requirements; do not force an old eight-step scheme onto every page.\n2. Confirm page role. For a task recipe, check its trigger/starting state, real inputs and prerequisite tasks, ordered method, measurable output/pass criteria and next owner. Hubs, references, comparisons and stories require clear scope and truthful links, not a fabricated task recipe.\n3. Check the opening for plain fifth-grade context: who benefits, why the task matters and what to do first. Explain the first use of jargon with an owned concept link. Inspect a useful real image or diagram in the first desktop and mobile screen; source markup alone does not prove it is visible.\n4. For a recipe, inspect its lower Content Factory context: the four stages Produce, Process, Post and Promote; the task’s truthful placement; actual prerequisites and next task; and the link from run notes back into method improvements. Do not invent prerequisites from generic catalog neighbors.\n5. Where a table of contents exists, check each link against the actual section ID and order. Test internal, external and action links, noting authentication and inaccessible targets honestly. Where structured data is required or present, check its type and visible facts against the page rather than inventing unsupported schema values.\n6. Read examples for real supporting evidence or a clear fictional-teaching label. A fictional example can teach the method but does not satisfy a real execution-proof gap. Check useful related help/service handoffs without inserting an irrelevant sales call to action.\n7. Record each defect with location, evidence and exact correction. Preserve the existing page type, builder data, media and authoritative source when preparing repairs. Verify saved source and public rendering separately after an authorized change; hand audit findings to the current register.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Current role-appropriate requirements are checked; no legacy step count substitutes for them.\n- [ ] Opening and meaningful lead visual pass actual desktop/mobile review, or that check is explicitly still pending.\n- [ ] Navigation, schema where applicable, examples and task context have evidence; defects have exact corrections and owners.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional recipe has all its headings and a valid contents list, but its top image is an empty colored block on a phone. Its input list also says “get access” without naming the needed source. Record both defects. The HTML having an image tag and the contributor status saying complete do not make the document ready.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[Check facts against current sources](https://local-service-spotlight.github.io/task-library/?task=check-information-currency-with-latest-data#task-check-information-currency-with-latest-data) receives the page for the next audit check; [Record the audit result](https://local-service-spotlight.github.io/task-library/?task=update-status-table-in-definitive-article-guide#task-update-status-table-in-definitive-article-guide) receives the final combined findings after all four checks.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/knowledge-system-maintenance/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=verify-structural-completeness-against-8-step-framework#task-verify-structural-completeness-against-8-step-framework)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `complete`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nThe legacy task identifier remains stable. Actual desktop/mobile review, link/schema results and a named semantic reviewer are required before claiming this structural check passed. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "c451b98d3ce814eb9298f10e32cacd7795b135b6e01b61e43bc6ed26b8242e50",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f7ca11a38cb60c81f86beae4f0b8092fe335c40d7710bdaf6c12c0235f7ab865",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=verify-structural-completeness-against-8-step-framework#task-verify-structural-completeness-against-8-step-framework",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "c451b98d3ce814eb9298f10e32cacd7795b135b6e01b61e43bc6ed26b8242e50",
      "articleKey": "blitzmetrics.com/knowledge-system-maintenance",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "c451b98d3ce814eb9298f10e32cacd7795b135b6e01b61e43bc6ed26b8242e50"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "c451b98d3ce814eb9298f10e32cacd7795b135b6e01b61e43bc6ed26b8242e50"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/knowledge-system-maintenance"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 225,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "At least one task mapped to this hub is not contributor-complete."
     }
    },
    {
     "title": "Document a task",
     "slug": "document-a-task",
     "status": "needs-work",
     "stage": "Process",
     "article": "https://blitzmetrics.com/how-to-document-a-task/",
     "articleKind": "task-recipe",
     "desc": "Your team should be able to repeat good work without guessing.",
     "content": "---\nname: document-a-task\ndescription: Your team should be able to repeat good work without guessing.\ncategory: Knowledge System Maintenance\nstage: Process\ndefinitive_article: https://blitzmetrics.com/how-to-document-a-task/\nstatus: needs-work\n---\n\n# Document a task\n\nYour team should be able to repeat good work without guessing. This guide turns one real job into clear steps and checks. Start while you do the work, so you can save the details that matter.\n\n**The path:** Real task → Steps and proof → Fresh-reader check → Published guide\n\n**Start when:** Real work reveals a task recipe that is missing or too unclear for someone else to follow.\n\n## Inputs\n\n- The actual task, starting state, required sources and authorized actions.\n- Permission to retain screenshots or recordings, with private details excluded.\n- A maintained guide if one exists, [current article guide](https://blitzmetrics.com/definitive-article-guide/), and [Article Guidelines](https://localservicespotlight.com/article-guidelines/).\n\n## Steps\n\n1. Name the trigger, reader, useful result and boundary of the task in plain words. Search the Task Library and site for an existing recipe before creating a second guide.\n2. As the real work proceeds, capture inputs, decisions, actions, expected results and failures. Keep exact source references and timestamps; a reconstructed success is not evidence.\n3. Write ordered steps that another operator can follow. For each, state the input, action and observable result. Add current tool instructions beneath the method, with version/date where relevant.\n4. Add real annotated screenshots or a truthful task diagram beside the grade 5 opening. Explain jargon on first use and link owned prerequisite guides. Preserve existing media and body content when editing.\n5. Create completion checks for the saved result, not just the presence of headings. Include downstream task, receiving owner and how to handle a missing input or failed check.\n6. Ask a fresh reviewer to follow the recipe with appropriate test inputs. Record ambiguous steps and actual proof; a desk review alone is not a completed client execution.\n7. Prepare the readable page and matching skill through [the skill-publishing task](https://local-service-spotlight.github.io/task-library/?task=publish-skill-and-task-page#task-publish-skill-and-task-page). Preserve the owning format; a builder page must use its supported builder save, not an overwrite of generated HTML.\n\n## Opening meaning review\n\nKeep the opening to two or three short sentences at grade 5 or below. It must show the actual reader’s situation, why the subject matters, the useful result, and how this page helps. A source-backed moment or useful finding can lead. Keep its relevant visual in the first screen; check that the body delivers the opening’s promise.\n\nSave the exact opening and artifact revision in the existing run receipt. Have the reviewer quote the words that establish the situation, reason to care, result and method. Record PASS, FAIL or UNKNOWN with reasons and a readability diagnostic. A grade score, keyword, generic audience label or unsupported conversion promise cannot approve meaning. Follow [Step 7: write and review the opening](https://local-service-spotlight.github.io/task-library/?task=step-7-write-hook-and-establish-context#task-step-7-write-hook-and-establish-context) and the [maintained opening standard](https://github.com/dennisyu/local-service-spotlight-skills/blob/main/standards/every-article-and-project-starts-with-specific-gct.md).\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Trigger, inputs, exact steps, measurable output and downstream handoff are explicit.\n- [ ] Real proof is relevant and private material stays protected; teaching examples are labeled.\n- [ ] Source/page/skill agree after any authorized release and the fresh-reader review is recorded.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional editor documents a broken booking-link repair. The recipe begins with the old page URL, names the correct target source, shows the link edit and checks the anonymous page afterward. The example’s “saved” state is separate from its “public page works” check. This is a teaching outline, not evidence of a repaired site.\n\n## Handoff and Content Factory context\n\nThe [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/) goes Produce → Process → Post → Promote. Capture the real work in Produce, turn it into a usable recipe in Process, then release and connect the approved guide in Post. The same recipe can support later work in any of the four stages.\n\n[Publish the skill and task page](https://local-service-spotlight.github.io/task-library/?task=publish-skill-and-task-page#task-publish-skill-and-task-page) receives the guide, example, review findings and exact source revision.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Process\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Process-stage artifact examples include `transcript.md`, `gct.md`, `article.html` (or a staged draft), `clips/`, or `04-Promote-Creatives/`. These are examples, not requirements for every task. Follow this task's actual Inputs and Handoff sections for the required output, evidence, and next owner. Pass the files or records, not one vendor's memory.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/how-to-document-a-task/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=document-a-task#task-document-a-task)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "Process",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "7bef263f6c256f6133c33097631fc7d4f4c26ff39b8780735b19e5e70d47476e",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "73e81be87288b2db0aafaac95cf1701a58bbc79c43f866b6db4630a24a0f03fc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=document-a-task#task-document-a-task",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "7bef263f6c256f6133c33097631fc7d4f4c26ff39b8780735b19e5e70d47476e",
      "articleKey": "blitzmetrics.com/how-to-document-a-task",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "7bef263f6c256f6133c33097631fc7d4f4c26ff39b8780735b19e5e70d47476e"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "7bef263f6c256f6133c33097631fc7d4f4c26ff39b8780735b19e5e70d47476e"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-document-a-task/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 206,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Install the canonical skill packs",
     "slug": "install-canonical-skill-packs",
     "status": "needs-work",
     "stage": "—",
     "article": "https://localservicespotlight.com/install/",
     "articleKind": "task-recipe",
     "desc": "You can try one useful task before adding more tools.",
     "content": "---\nname: install-canonical-skill-packs\ndescription: You can try one useful task before adding more tools.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://localservicespotlight.com/install/\nstatus: needs-work\n---\n\n# Install the canonical skill packs\n\nYou can try one useful task before adding more tools. This guide helps you choose the right skill pack and check that it works in your app. Start with the task you want done and the files it needs.\n\n**The path:** Choose one task → Verify package → Install supported parts → Check result\n\n**Start when:** The user wants a supported package available for one bounded task in their actual app.\n\n## Inputs\n\n- One bounded draft task, its real sources and intended result.\n- The chosen product/surface/plan and authority for installation or account changes.\n- Current [install guide](https://localservicespotlight.com/install/) and [plugin explainer](https://localservicespotlight.com/plugin/).\n\n## Steps\n\n1. Open the maintained install guide and identify the path for the actual app. A guide ZIP and a platform-installable plugin are different packages. A read of a public URL is neither installation nor source-account access.\n2. Inspect the current installed package, version and dependent jobs before replacing anything. Preserve a recovery copy and do not uninstall an unknown working setup.\n3. For the Claude marketplace path, use the supported marketplace control to add https://github.com/dennisyu/local-service-spotlight-skills and install the reviewed lss-everything package. Confirm this surface and account support that route using current official help; do not substitute a GitHub upload page.\n4. Record the package identity and manifest revision. Verify the needed skills are actually listed and enabled; a broad task-library count is not the installed package count.\n5. In a fresh task, explicitly select or ask for the intended installed skill. Supply the allowed inputs and request one bounded draft. Record which skill loaded and inspect the actual output against its checks.\n6. If the source files cannot be reached, record the exact access gap. Do not copy secrets into prompts or assume an installed skill grants its connectors.\n7. Report downloaded, installed, enabled and tested states separately. Set up a recurring job only if requested, through its separate recipe; the first useful manual result is still useful without a schedule.\n\n## Current implementation\n\nFor the current Claude marketplace route, open Customize, then Plugins. Under Personal plugins, use the plus control, choose Add marketplace, then Add from a repository. Add [the maintained marketplace](https://github.com/dennisyu/local-service-spotlight-skills), inspect its package, and install `lss-everything`. In Cowork, enter the Cowork tab before opening Customize. Then use `/` or the plus control in a fresh task to select the intended skill. Confirm the actual account has these controls; plugins and every feature they can carry do not have identical support on every surface. [Current official Claude plugin instructions](https://support.claude.com/en/articles/13837440-use-plugins-in-claude).\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Canonical package/revision and actual app/account are recorded.\n- [ ] The intended skill is observed loading and produces a checked result or an honest failure.\n- [ ] Existing setup and access boundaries are preserved; no automatic schedule or update is claimed.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional user can read a guide ZIP and gets a draft from a chat. No installed skill is selected. The result is “guide used for one draft,” not “plugin installed.” After a supported install, a fresh task shows the named skill loaded and its result passes the selected task’s checks; that is separate activation evidence.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe user continues with the tested task. [Configure a recurring job](https://local-service-spotlight.github.io/task-library/?task=configure-and-verify-recurring-agent-job#task-configure-and-verify-recurring-agent-job) is optional when repeat work is authorized.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://localservicespotlight.com/install/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=install-canonical-skill-packs#task-install-canonical-skill-packs)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nActual install controls vary by app and plan. No account installation or activation is performed by authoring this guide. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3e92f1565637140862b5a498f7fbe6471f54b376e6b6cbaee37491cea0be09f1",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "6e3a51975bdf2b25c4ad81c7aaa61bc204da368c21dec2948045baf1656df051",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=install-canonical-skill-packs#task-install-canonical-skill-packs",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3e92f1565637140862b5a498f7fbe6471f54b376e6b6cbaee37491cea0be09f1",
      "articleKey": "localservicespotlight.com/install",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3e92f1565637140862b5a498f7fbe6471f54b376e6b6cbaee37491cea0be09f1"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3e92f1565637140862b5a498f7fbe6471f54b376e6b6cbaee37491cea0be09f1"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://localservicespotlight.com/install/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 208,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Build and maintain an AI knowledge base",
     "slug": "build-and-maintain-ai-knowledge-base",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base/",
     "articleKind": "task-recipe",
     "desc": "Your team should not have to hunt through old chats for key facts.",
     "content": "---\nname: build-and-maintain-ai-knowledge-base\ndescription: Your team should not have to hunt through old chats for key facts.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base/\nstatus: needs-work\n---\n\n# Build and maintain an AI knowledge base\n\nYour team should not have to hunt through old chats for key facts. This guide puts source files, facts, and work notes in one home. Start with one person or business and the job you need to do.\n\n**The path:** Allowed sources → Checked facts → Real task → Updated base\n\n**Start when:** A scoped task needs a reliable, reusable source of facts about one real subject.\n\n## Inputs\n\n- The actual goal, source material and intended reader, explained in [Goals, Content and Targeting](https://blitzmetrics.com/gct-business-strategy/).\n- Allowed websites, social exports, transcripts and project records; a named owner and storage/access plan.\n- An existing knowledge base if one exists, with its revision and source-authority rules.\n\n## Steps\n\n1. Confirm the subject’s identity, the work scope and who may see each source. Use an existing approved base; installation of a separate package is only needed if that is the chosen setup.\n2. Create or map separate locations for raw sources, compiled references and deliverables. Add a source index with URL or private file reference, date, owner, access limit and retrieval result.\n3. Collect the agreed corpus without bypassing source access limits. Track found, captured, unavailable and excluded items. “The whole site” needs a real inventory, not an assumed count.\n4. Derive four references from the material: voice with quoted examples, supported topics, goals/current project state, and entity facts such as name and role. Every claim points to its source; an uncertain identity stays unresolved.\n5. At session start, read the relevant base, then verify changeable facts in the system that owns them. A newer direct instruction or authoritative record can reveal a stale compiled fact; retain the conflict and resolve it before updating.\n6. Use the base for one bounded task. At wrap-up, save what changed, what shipped, actual output links, failures and next owner. Confirm a fresh session can find that state; writing a file alone does not load it into every app.\n7. If public output is in scope, prepare only approved material in the correct voice with owned links. The source’s map/build-writeup/first-person-companion pattern is an editorial option requiring its own useful purpose and release authority. Keep private project records out of public copy.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Raw, compiled and finished work are separate and traceable.\n- [ ] Voice, topics, identity and current state have source support and visible unknowns.\n- [ ] A fresh reader can recover one task and its result; public drafts disclose no private records.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop base contains five public pages and one allowed interview. Two pages use an old opening time; the current owner record gives a new time. The base keeps both dated sources, marks the old time superseded, and uses the verified current time in a draft. It does not invent missing sales figures.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe next scoped task reads the base. Use [shared-memory coordination](https://local-service-spotlight.github.io/task-library/?task=coordinate-agents-with-shared-memory#task-coordinate-agents-with-shared-memory) for multi-agent work and [the publishing task](https://local-service-spotlight.github.io/task-library/?task=step-12-post-article-on-wordpress#task-step-12-post-article-on-wordpress) only for authorized public output.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=build-and-maintain-ai-knowledge-base#task-build-and-maintain-ai-knowledge-base)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nActual source coverage, conflict resolution, fresh-session readback and any public output require real task evidence. The published hub still contains older package/setup and automatic-feed examples; verify those separately before using them. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "64720e9985f627c0277751c5eb013176bcd5856c357f4f872e80229f61dfc45b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "e5fa30e08fe224bb65a295741988f05f069773d1a76721f3a4ac5a594c748ec0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=build-and-maintain-ai-knowledge-base#task-build-and-maintain-ai-knowledge-base",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "64720e9985f627c0277751c5eb013176bcd5856c357f4f872e80229f61dfc45b",
      "articleKey": "blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "64720e9985f627c0277751c5eb013176bcd5856c357f4f872e80229f61dfc45b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "64720e9985f627c0277751c5eb013176bcd5856c357f4f872e80229f61dfc45b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/how-to-build-use-publish-ai-knowledge-base/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 202,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Coordinate agents with shared memory",
     "slug": "coordinate-agents-with-shared-memory",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/set-up-cross-agent-shared-memory/",
     "articleKind": "task-recipe",
     "desc": "Two AI workers should not undo each other’s work.",
     "content": "---\nname: coordinate-agents-with-shared-memory\ndescription: Two AI workers should not undo each other’s work.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/set-up-cross-agent-shared-memory/\nstatus: needs-work\n---\n\n# Coordinate agents with shared memory\n\nTwo AI workers should not undo each other’s work. This guide gives them shared notes and a clear owner for each change. Start with one real task and the sources that hold its facts.\n\n**The path:** Source owners → Task claim → Verified work → Fresh handoff\n\n**Start when:** More than one authorized worker needs to contribute to or resume the same real task.\n\n## Inputs\n\n- An owned shared folder or [Obsidian, a workspace for shared notes](https://blitzmetrics.com/obsidian-cowork-layer-shared-memory-across-agents/) with agreed read/write access.\n- The task, allowed actions, actual source systems and a shared claim/checkpoint format.\n- Canonical skill sources and a designated secret store; no credential values in the working notes.\n\n## Steps\n\n1. Map each record type to its authority: task/source system for live work, repository for maintained instructions, shared notes for context, secret store for credentials. Vendor memory and copied packs are caches.\n2. Prepare only the context needed for the task: current goal, relevant source links/revisions, evidence, constraints and next action. Keep unrelated client records out of the packet.\n3. Read active task claims before editing. Claim the exact targets with owner, task ID and timestamp using the team’s supported shared mechanism. If another claim overlaps, coordinate or choose independent work; a timestamp alone is not permission to overwrite.\n4. Read the current source just before writing and compare its revision to the claimed base. Preserve concurrent edits. Perform only the task’s authorized actions through the source system.\n5. Check the saved result where it lives. Update the checkpoint with completed work, output references, failures, remaining decisions and next owner. Release or hand off the claim explicitly.\n6. Have a fresh authorized agent read the packet, identify the live authorities and resume a bounded next step. Compare its understanding against the source; access to the folder alone does not prove a successful handoff.\n7. Write the run record and required private team note. Propose reusable changes to the canonical skill, then verify its separate distribution/activation state.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Each fact type has one identified authority and privacy boundary.\n- [ ] Overlap is detected before writes; current-source revision guards preserve other work.\n- [ ] A fresh agent can recover the real task state and find its checked result.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nTwo fictional workers plan to edit the same page. Worker A has a current claim. Worker B reviews links in a separate file, then sends findings to A. A’s checkpoint records the saved page hash and two open checks. The next worker resumes those two checks instead of starting a second rewrite.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\n[The receiving agent](https://local-service-spotlight.github.io/task-library/?task=onboard-agent-for-first-scoped-task#task-onboard-agent-for-first-scoped-task) reads the checkpoint and executes only its assigned next task.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/set-up-cross-agent-shared-memory/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=coordinate-agents-with-shared-memory#task-coordinate-agents-with-shared-memory)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "f6b2353a37ff6773c04ddfe8af4821aab30ebb7b0d10201ac3355902af3bf8e4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f3a8d3f1373d13a823923d2d34bdaacba54970b316cc277e8635b6da4eeb8060",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=coordinate-agents-with-shared-memory#task-coordinate-agents-with-shared-memory",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f6b2353a37ff6773c04ddfe8af4821aab30ebb7b0d10201ac3355902af3bf8e4",
      "articleKey": "blitzmetrics.com/set-up-cross-agent-shared-memory",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f6b2353a37ff6773c04ddfe8af4821aab30ebb7b0d10201ac3355902af3bf8e4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f6b2353a37ff6773c04ddfe8af4821aab30ebb7b0d10201ac3355902af3bf8e4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/set-up-cross-agent-shared-memory/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 205,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Configure and verify a recurring agent job",
     "slug": "configure-and-verify-recurring-agent-job",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/persistent-agents/",
     "articleKind": "task-recipe",
     "desc": "A task on a calendar has not done the work yet.",
     "content": "---\nname: configure-and-verify-recurring-agent-job\ndescription: A task on a calendar has not done the work yet.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/persistent-agents/\nstatus: needs-work\n---\n\n# Configure and verify a recurring agent job\n\nA task on a calendar has not done the work yet. This guide helps you set up one repeat job and check its first result. Start with a task that already has clear steps and a way to judge the work.\n\n**The path:** Tested recipe → Saved trigger → Real firing → Checked result\n\n**Start when:** A clear recipe needs repeat execution and the selected job, runtime and schedule are authorized.\n\n## Inputs\n\n- One task recipe, exact source revision, allowed inputs and pass criteria.\n- The chosen app, account, plan, machine/cloud location and authority to save a recurring job.\n- A state folder, output destination, failure route and named owner, each with verified access.\n\n## Steps\n\n1. Write the job contract: scope, sources, actions, output, pass checks and what to do on failure. Keep secrets in the designated store; ordinary state notes contain references only.\n2. Check the selected runtime’s current official scheduling docs. Choose a supported trigger and record timezone, recurrence, resource limits and availability needs. A local-file job needs access to its actual machine; a cloud label alone does not establish it.\n3. Inspect existing jobs for overlap. Preserve a working job and its state; update the intended record instead of creating a duplicate.\n4. Using the supported scheduler, save the exact job with its owner, source version, output and failure destination. Read back its identifier and next expected firing. At this point it is scheduled, not observed.\n5. Run one bounded test, then check the next actual scheduled firing. Verify the result at the receiving destination and compare against the recipe. A manual test does not prove the clock fired.\n6. Test an agreed non-destructive failure case or inspect a real failure. Confirm it is visible to the owner. Record last attempt, last success/failure and next expected run separately.\n7. Open the previous state from a fresh run and verify it avoids duplicate work. Keep unresolved runtime, delivery or failure checks blocked; do not widen access to force a pass.\n\n## Current implementation\n\nFor a supported Claude Cowork account, the current manual setup is Scheduled → New task → Set up manually. Fill the task name, prompt, approval mode and cadence; choose a model or working folder only where needed and supported. Save, reopen the entry, and check its next run and actual output. Official help describes remote jobs that use connectors and files saved to the Claude account; it says those jobs run even when the computer sleeps or the desktop app is closed. The same page separately describes jobs needing local files or apps as local. For that local mode, keep the required computer and apps available and test the actual job. Check which mode the current account and task support; do not apply the remote sleep behavior to a job with local dependencies. This is one platform implementation, not an instruction to move an existing working job into Cowork. [Current official scheduling instructions](https://support.claude.com/en/articles/13854387-schedule-recurring-tasks-in-claude-cowork).\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Saved job identity, trigger/timezone, account and exact task version are verified.\n- [ ] At least one real firing has an independently checked output or failure receipt.\n- [ ] Next-run state and failure visibility are tested; manual tests and scheduled runs are separate.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional report job is saved for Monday at 09:00 in the team’s timezone. A manual test succeeds on Sunday. Monday’s run fails to read its source, and the owner sees the error. The job is scheduled and observed, but its Monday report failed; it is not a successful weekly report.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe job owner retains the operating record. Use [the original-thread status task](https://local-service-spotlight.github.io/task-library/?task=reply-with-task-status-in-origin-thread#task-reply-with-task-status-in-origin-thread) for an authorized status reply and review changes before the next firing.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/persistent-agents/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=configure-and-verify-recurring-agent-job#task-configure-and-verify-recurring-agent-job)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nActual runtime access, supported schedule configuration, first firing and failure-route test remain unverified until executed. Official scheduling controls depend on the selected surface and plan. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "dcdd62e4f483ade481fb9a02b4313a7efcc52245dd1afe96cb18df0b64c8328b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "93bdea2c918a65c023282f0a5b796f2a9b4992ea5ebc217c0e1e922879b78e71",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=configure-and-verify-recurring-agent-job#task-configure-and-verify-recurring-agent-job",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "dcdd62e4f483ade481fb9a02b4313a7efcc52245dd1afe96cb18df0b64c8328b",
      "articleKey": "blitzmetrics.com/persistent-agents",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "dcdd62e4f483ade481fb9a02b4313a7efcc52245dd1afe96cb18df0b64c8328b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "dcdd62e4f483ade481fb9a02b4313a7efcc52245dd1afe96cb18df0b64c8328b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/persistent-agents/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 204,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Publish a skill and its task page",
     "slug": "publish-skill-and-task-page",
     "status": "complete",
     "stage": "Post",
     "article": "https://blitzmetrics.com/skill-publishing-standard/",
     "articleKind": "task-recipe",
     "desc": "A useful guide should be easy for people and AI to find.",
     "content": "---\nname: publish-skill-and-task-page\ndescription: A useful guide should be easy for people and AI to find.\ncategory: Knowledge System Maintenance\nstage: Post\ndefinitive_article: https://blitzmetrics.com/skill-publishing-standard/\nstatus: complete\n---\n\n# Publish a skill and its task page\n\nPublish one clear task guide that your team can find and use. Keep its web page, skill file, and library entry in sync so no one follows old steps. Start with a [checked task recipe](https://blitzmetrics.com/definitive-article-guide/), then use this guide to publish and check its copies.\n\n**The path:** Checked recipe → Matched files → Authorized release → Live readback\n\n**Start when:** A reviewed task method needs a maintained skill and matching readable page.\n\n## Inputs\n\n- [The documented task](https://local-service-spotlight.github.io/task-library/?task=document-a-task#task-document-a-task) with its trigger, inputs, ordered steps, checks and handoff.\n- The canonical source repository, permanent task name, existing page and correct registry.\n- A real relevant example or an explicit example gap, plus publishing authority and supported editor access.\n\n## Steps\n\n1. Search the site and Task Library for the existing task. Preserve its URL, name and page type; a rename needs a migration plan for links and installed references.\n2. Prepare a complete skill file and human-readable page from the same reviewed method. Include plain grade 5 context, meaningful lead visual, owned prerequisite links, example and lower task context.\n3. Keep task registration separate from AI-worker and job registration. Update the actual task/skill entry; do not create an Agent Roster row merely because a new skill exists. Follow the [contributor guide](https://github.com/Local-Service-Spotlight/task-library/blob/main/CONTRIBUTING-SKILLS.md). A sheet row reaches the dashboard only when the intended tracker feed is imported. Check the team-update notice and build receipt; when missing, report the row saved and public sync pending. The maintainer checks the existing approved connection without silently changing sharing or access.\n4. Link the exact maintained source file and permanent task name on the page. If the page includes a copy of the skill, compare its full decoded text with the source file before release. Check exact source-file, page and registry links in both directions. The downloadable instructions must match the reviewed revision; a short summary wrapper is not the full recipe.\n5. Use the repository’s branch/review/check workflow and the page’s supported editor or generator. Preserve existing media, builder state, categories and concurrent edits. Keep the full reviewable draft before publication.\n6. After the authorized release, read back the saved source and open the ordinary anonymous URL on desktop/mobile. Inspect the lead visual, links, task context and download; clear or fix stale public copies through their owning publisher. Compare the deployed task’s owner, status, source, article and download with the intended values. A successful build or loaded feed alone does not prove these fields match.\n7. Record source available, page public, file downloadable and installed activation separately. Leave certification gaps visible; writing the run’s meta record is required even when public release is pending.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Page, full skill and registry refer to the same canonical task/revision.\n- [ ] All released destinations are read back and the rendered guide is usable.\n- [ ] Tracker import state and the deployed task fields are checked; missing sync remains pending.\n- [ ] Missing real examples, private access or installed activation remain explicit.\n\n## Example(s)\n\n**Recorded partial publishing run, September 25, 2026.** The [tracker setup review](https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/tracker-setup-2026-09-25.md) documents the saved guide changes, public readback and missing tracker feed. The [merged repair](https://github.com/Local-Service-Spotlight/task-library/pull/39) and [work record](https://blitzmetrics.com/making-task-guides-easier-to-use/#tracker-setup-20260925-000216) show what shipped and what stayed open. This proves a publishing repair and its limits; it does not prove a new user installed a skill or that the tracker feed was connected.\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional guide is merged and its page saved, but the public URL still serves yesterday’s download. Report source released and public copy stale. Fix the owning cache/publisher, then verify the same revision before calling the page current. No agent or recurring job is created by registering the skill.\n\n## Handoff and Content Factory context\n\nThe [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/) goes Produce → Process → Post → Promote. The source method is prepared and checked in Process. Its authorized page release and links belong to Post. Promotion is a separate decision after the published result is checked.\n\nThe task owner receives the public/draft state and remaining gaps. Consumers use the exact guide; any installed-package update needs its own activation check.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** Post\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Draft URL or WP post ID, slug, author user ID, featured-image media ID. Promote reads the live URL, not the draft.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/skill-publishing-standard/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=publish-skill-and-task-page#task-publish-skill-and-task-page)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Evidence limits\n\nContributor status `complete` records that these written instructions have been completed and reviewed. It does not certify account access, novice setup, a successful client outcome, or every article standard. Keep the task's current verification gates visible in the library.\n\nThe September 25 example ended partial. Each new execution still needs its own starting recipe revision, saved output, independent result review and next handoff. Name any missing upkeep owner or tracker connection; do not infer either from a byline or a successful build.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "Post",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "a5f8e0c27993597db9cdf606efb6bf3128c4ffbfe20f8ef72dbb4fe0f610a686",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "All five written-instruction checks pass for this source. Real partial example, exact source/page copy and responsive browser checks reviewed. Publication/novice/accepted execution and upkeep ownership remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/publisher-completion-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "standards": {
       "version": 1,
       "checks": {
        "opening": {
         "state": "pass",
         "reason": "Names publishing, the benefit of consistent instructions and the linked checked-recipe prerequisite.",
         "evidence": "Publish one clear task guide that your team can find and use. Keep its web page, skill file, and library entry in sync so no one follows old steps. Start with a checked task recipe, then use this guide to publish and check its copies."
        },
        "recipe": {
         "state": "pass",
         "reason": "Inputs, supported editor, authority, seven steps, import checks, public output and measurable comparison are explicit.",
         "evidence": "Seven steps now require exact decoded embedded-file comparison, current source identity, registry mapping, source/public readback, tracker state and named remaining owner."
        },
        "links": {
         "state": "pass",
         "reason": "Owned method links and exact task route are relevant; three added evidence links name the real partial repair. Actual browser reverse route opens this task.",
         "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/publisher-completion-2026-09-27.md"
        },
        "evidence": {
         "state": "pass",
         "reason": "The real September25 repair is linked with its partial result and missing setup evidence. The separate teaching example stays fictional.",
         "evidence": "PR39 is merged; reviews/tracker-setup-2026-09-25.md and the meta section #tracker-setup-20260925-000216 document source/public checks and open tracker, owner and first-user gates."
        },
        "handoff": {
         "state": "pass",
         "reason": "Post-stage task hands checked public/draft state and remaining gaps to task owner.",
         "evidence": "Content Factory context names Process inputs and Post release; activation and promotion are separate."
        }
       }
      },
      "incrementalReview": {
       "beforeSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
       "previousReviewDate": "2026-09-27",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "Written instructions reviewed. Upkeep owner, full article certification, novice setup and accepted execution remain separate evidence gates.",
     "articleState": "ready",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=publish-skill-and-task-page#task-publish-skill-and-task-page",
     "executionHistory": {
      "status": "partial",
      "recordedRuns": 27,
      "completedRuns": 22,
      "failedRuns": 0,
      "partialRuns": 5,
      "completedLast30Days": 18,
      "lastCompletedAt": "2026-10-19T01:22:01.536676+00:00",
      "executionIds": [
       "authority-guides-repair-20261005-2100",
       "booking-path-checks-20261009-1259",
       "content-factory-link-repair-20261013",
       "crossref-release-20260927-162402",
       "embedded-guide-repair-20261010",
       "entity-linking-repair-20260930-0105",
       "first-use-rcf-20261005-2343",
       "historical-site-case-20261019",
       "internal-linking-repair-20261001-1405",
       "inventory-guide-repair-20261002-1610",
       "link-building-repair-20261001-1307",
       "link-plan-guide-repair-20261004-1605",
       "lss-editorial-correction-20260927-190846",
       "measurement-guide-repair-20261005-1607",
       "proof-resolution-20261014",
       "publisher-completion-20260927-134412",
       "revenue-path-repair-20261005-1855",
       "revenue-ready-download-20261017",
       "roster-public-boundary-20260927-210848",
       "seo-hub-supporting-guides-20261015",
       "site-build-proof-recipe-20261014",
       "task-direct-open-20261002-1404",
       "taxonomy-guide-repair-20261003-1606",
       "tracker-setup-20260925-000216",
       "two-task-certification-20261015",
       "weekly-maa-clarity-20261011",
       "wordpress-runtime-routing-20261012"
      ],
      "executionOutcomes": [
       {
        "executionId": "tracker-setup-20260925-000216",
        "status": "partial",
        "startedAt": "2026-09-25T00:02:16.768661+00:00",
        "finishedAt": "2026-09-25T00:19:54.369912+00:00"
       },
       {
        "executionId": "publisher-completion-20260927-134412",
        "status": "completed",
        "startedAt": "2026-09-27T13:44:12.475179+00:00",
        "finishedAt": "2026-09-27T16:14:01.977704+00:00"
       },
       {
        "executionId": "crossref-release-20260927-162402",
        "status": "partial",
        "startedAt": "2026-09-27T16:24:02.098463+00:00",
        "finishedAt": "2026-09-27T17:18:54.853552+00:00"
       },
       {
        "executionId": "lss-editorial-correction-20260927-190846",
        "status": "partial",
        "startedAt": "2026-09-27T19:08:46.459712+00:00",
        "finishedAt": "2026-09-27T19:35:44.435541+00:00"
       },
       {
        "executionId": "roster-public-boundary-20260927-210848",
        "status": "partial",
        "startedAt": "2026-09-27T21:08:48Z",
        "finishedAt": "2026-09-27T21:32:56.853190+00:00"
       },
       {
        "executionId": "entity-linking-repair-20260930-0105",
        "status": "completed",
        "startedAt": "2026-09-30T01:03:05.034622+00:00",
        "finishedAt": "2026-09-30T01:16:37.333349+00:00"
       },
       {
        "executionId": "link-building-repair-20261001-1307",
        "status": "completed",
        "startedAt": "2026-10-01T13:07:33.732838+00:00",
        "finishedAt": "2026-10-01T13:19:09.819308+00:00"
       },
       {
        "executionId": "internal-linking-repair-20261001-1405",
        "status": "completed",
        "startedAt": "2026-10-01T14:06:26.211013+00:00",
        "finishedAt": "2026-10-01T14:23:43.133403+00:00"
       },
       {
        "executionId": "task-direct-open-20261002-1404",
        "status": "completed",
        "startedAt": "2026-10-02T14:04:50.931255+00:00",
        "finishedAt": "2026-10-02T14:50:37.192050+00:00"
       },
       {
        "executionId": "inventory-guide-repair-20261002-1610",
        "status": "completed",
        "startedAt": "2026-10-02T16:11:44.260298+00:00",
        "finishedAt": "2026-10-02T16:25:08.877432+00:00"
       },
       {
        "executionId": "taxonomy-guide-repair-20261003-1606",
        "status": "completed",
        "startedAt": "2026-10-03T16:06:00.594126+00:00",
        "finishedAt": "2026-10-03T16:24:46.626565+00:00"
       },
       {
        "executionId": "link-plan-guide-repair-20261004-1605",
        "status": "completed",
        "startedAt": "2026-10-04T16:05:24.941122+00:00",
        "finishedAt": "2026-10-04T16:16:47.277363+00:00"
       },
       {
        "executionId": "measurement-guide-repair-20261005-1607",
        "status": "completed",
        "startedAt": "2026-10-05T16:04:57.028877+00:00",
        "finishedAt": "2026-10-05T16:16:01.836392+00:00"
       },
       {
        "executionId": "revenue-path-repair-20261005-1855",
        "status": "completed",
        "startedAt": "2026-10-05T18:57:29.098918+00:00",
        "finishedAt": "2026-10-05T21:39:18Z"
       },
       {
        "executionId": "authority-guides-repair-20261005-2100",
        "status": "completed",
        "startedAt": "2026-10-05T21:01:41.079406+00:00",
        "finishedAt": "2026-10-05T23:45:19.414908+00:00"
       },
       {
        "executionId": "first-use-rcf-20261005-2343",
        "status": "completed",
        "startedAt": "2026-10-05T23:43:01Z",
        "finishedAt": "2026-10-06T02:06:05.871154+00:00"
       },
       {
        "executionId": "booking-path-checks-20261009-1259",
        "status": "completed",
        "startedAt": "2026-10-09T12:59:27.985957+00:00",
        "finishedAt": "2026-10-09T13:15:59.120090+00:00"
       },
       {
        "executionId": "embedded-guide-repair-20261010",
        "status": "completed",
        "startedAt": "2026-10-10T13:07:49.214927+00:00",
        "finishedAt": "2026-10-10T13:24:23.020931+00:00"
       },
       {
        "executionId": "weekly-maa-clarity-20261011",
        "status": "completed",
        "startedAt": "2026-10-11T13:13:36.970278+00:00",
        "finishedAt": "2026-10-11T13:27:07.121253+00:00"
       },
       {
        "executionId": "wordpress-runtime-routing-20261012",
        "status": "completed",
        "startedAt": "2026-10-12T17:18:53.182126+00:00",
        "finishedAt": "2026-10-12T18:24:42.880857+00:00"
       },
       {
        "executionId": "content-factory-link-repair-20261013",
        "status": "completed",
        "startedAt": "2026-10-12T21:53:15.698067+00:00",
        "finishedAt": "2026-10-12T22:02:47.701819+00:00"
       },
       {
        "executionId": "site-build-proof-recipe-20261014",
        "status": "completed",
        "startedAt": "2026-10-14T01:05:03.771394+00:00",
        "finishedAt": "2026-10-14T01:24:58.852983+00:00"
       },
       {
        "executionId": "proof-resolution-20261014",
        "status": "completed",
        "startedAt": "2026-10-14T16:08:33.518776+00:00",
        "finishedAt": "2026-10-14T16:38:03.477390+00:00"
       },
       {
        "executionId": "two-task-certification-20261015",
        "status": "partial",
        "startedAt": "2026-10-14T17:10:41.497809+00:00",
        "finishedAt": "2026-10-14T18:21:20.969655+00:00"
       },
       {
        "executionId": "seo-hub-supporting-guides-20261015",
        "status": "completed",
        "startedAt": "2026-10-14T18:48:03.095058+00:00",
        "finishedAt": "2026-10-14T19:09:46.819601+00:00"
       },
       {
        "executionId": "revenue-ready-download-20261017",
        "status": "completed",
        "startedAt": "2026-10-17T01:12:44.970786+00:00",
        "finishedAt": "2026-10-17T01:34:13.359411+00:00"
       },
       {
        "executionId": "historical-site-case-20261019",
        "status": "completed",
        "startedAt": "2026-10-19T01:10:05.819912+00:00",
        "finishedAt": "2026-10-19T01:22:01.536676+00:00"
       }
      ],
      "acceptanceReviews": [
       {
        "version": 1,
        "reviewId": "publisher-completion-20260927-134412-acceptance-1",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-09-27T16:15:22Z",
        "reviewer": "Codex GPT-6 Sol independent source reviewer",
        "nextHandoff": "Existing Task Library maintenance worker uses the current verification queue and recorded run to resolve the owner, tracker and first-user gaps. This review covers the scoped repair under its old starting recipe only; a later use of the new recipe needs its own execution.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Publish one matching maintained skill, canonical task page and Task Library entry; make the complete guide available in the public library downloads.",
          "observedResult": "PR41 merged. The saved and anonymous article each embed the exact SHA609039d5 maintained skill. The public task entry is complete and maps to this page. All and ready ZIPs contain full generated guides plus onboarding; seven deployed archive checks passed.",
          "sourceUrl": null,
          "sourcePrivateEvidenceRecorded": true,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/41",
           "https://github.com/Local-Service-Spotlight/task-library/blob/111bca7fee201644aae9b7f7427ac4d6628c2fa6/reviews/publisher-completion-2026-09-27.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicReadback": {
          "state": "pass",
          "expectedResult": "Read back the saved and anonymous task page and public meta record; verify the lead diagram on desktop and phone.",
          "observedResult": "The task article returned 200 with exact embedded source text and equal media. The final meta page returned 200 with its whole new section and equal media at 16:06:17 UTC. Corrected phone and desktop captures show readable diagrams and opening text.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/making-task-guides-easier-to-use/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Record the scoped result and remaining owner, tracker and first-user gaps for the existing Task Library maintenance worker's next queue step.",
          "observedResult": "The published meta section and completed run record name the existing maintenance worker, current verification queue and open owner, tracker and novice gates. No separate person or new schedule was contacted or created.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/making-task-guides-easier-to-use/"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "publisher-completion-20260927-134412"
       },
       {
        "version": 1,
        "reviewId": "revenue-path-repair-20261005-1855-acceptance-1",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-05T21:41:34Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Existing Task Library maintenance function: use the released guides and current verification queue for the next bounded maintenance step. Confirm the status-only meta closeout paragraph after cache refresh; it is excluded from this acceptance. Release 19 remains a separate pending batch.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Publish one matching maintained skill, canonical task page, and Task Library entry; make the complete guide available in public library downloads.",
          "observedResult": "Fresh anonymous library data matches the generated registry output for all three repaired guides. Full-library and Digital Plumbing archives returned 200 and contain byte-identical copies of each guide. Seven archive checks and public desktop/mobile guide and queue renders are recorded. The repaired guides remain needs-work; no client execution or income result is claimed.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/data.json",
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
           "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicReadback": {
          "state": "pass",
          "expectedResult": "Read back the public parent article and meta write-up for the released substantive outputs and confirm the corrected task copies are present.",
          "observedResult": "A fresh parent-page fetch returned 200 with all three task slugs. The ordinary meta URL receipt at 21:40:09Z reports 200 and matching full text, media, and scripts against the saved substantive meta source. Scope excludes the later status-only closeout paragraph saved at 21:40:44Z; its subsequent cache receipt says fullRenderedTextPresent=false, so that later paragraph is not certified here. My own normal-URL request returned 403; the successful contemporaneous receipt is separately retained as evidence.",
          "sourceUrl": "https://blitzmetrics.com/making-task-guides-easier-to-use/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/digital-plumbing/",
           "https://blitzmetrics.com/making-task-guides-easier-to-use/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "searchAndFirstOpen": {
          "state": "pass",
          "expectedResult": "A search entered before data load produces the intended match, and the published task opens with its copy control visible after settling on phone and desktop.",
          "observedResult": "The public preload-search receipt records 3 of 276 matches and one target row. The settled first-open receipt records the target guide and copy control within phone and desktop viewports after 1.2 seconds. Clipboard contents were not read back; this is not novice setup evidence.",
          "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/task-library-dashboard/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Leave the published task set and its next maintenance step findable by the existing Task Library maintenance function.",
          "observedResult": "The public library, exact archive links, current queue and published review expose the released guides and the next maintenance route. This is a handoff to the maintenance function through its durable records; no named person's acknowledgment is claimed. The separate release-19 batch remains pending and is outside this review.",
          "sourceUrl": "https://local-service-spotlight.github.io/task-library/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://local-service-spotlight.github.io/task-library/verification-queue.json",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": false
         }
        },
        "executionId": "revenue-path-repair-20261005-1855"
       },
       {
        "version": 1,
        "reviewId": "authority-guides-repair-20261005-independent-acceptance",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-05T23:58:49Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Task Library maintenance function: use the released verification queue and current written guidance to select the next actionable task batch; keep real execution, first-use setup, and business outcomes separate until their own evidence exists.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Three named guide pages and their two associated canonical article revisions are published with exact maintained guide bytes and readable public article bodies.",
          "observedResult": "The immutable bd032 release snapshot records exact parity for all three guides. Public review receipts record HTTP 200 and full rendered text for both canonical articles; the seven-archive receipt records the expected copies. This accepts written/publication delivery only; it does not certify task execution, novice setup, client outcomes, or revenue.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/68",
           "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "The released maintenance material is reachable by the Task Library maintenance function, with its verification queue available as the next-work record.",
          "observedResult": "The public Task Library release includes a 276-task verification queue. The captured public queue lists 0 fully verified tasks and preserves gate-level unknowns; this is an actionable maintenance handoff, not a claim that a human received or acted on it.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicGuideCopiesAndArchives": {
          "state": "pass",
          "expectedResult": "All three in-scope guide pages match the immutable source release and the seven archived copies pass parity checks.",
          "observedResult": "The public release receipt records exact source parity for the three target guides; the archive parity receipt records all seven copies matching. Current later RCF working-tree edits are outside this accepted release.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/68"
          ],
          "privateEvidenceRecorded": true
         },
         "publicGuideViews": {
          "state": "pass",
          "expectedResult": "The three published guide surfaces render on desktop and mobile, with the guide content and copy control visible and no reported queue overflow.",
          "observedResult": "The live render receipt records the three guides on phone and desktop, visible copy controls, and queue overflow false. It explicitly labels the check live and not novice setup; no media played.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "authority-guides-repair-20261005-2100"
       },
       {
        "version": 1,
        "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-06T02:07:43Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
          "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/70",
           "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
          "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicFirstOpen": {
          "state": "pass",
          "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
          "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
          "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "archiveAvailability": {
          "state": "pass",
          "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
          "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
           "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
           "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
           "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
           "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
           "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "first-use-rcf-20261005-2343"
       }
      ],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 4,
      "recordedAcceptedReviewCount": 4,
      "acceptedRecordedOutputs": [
       {
        "version": 1,
        "reviewId": "publisher-completion-20260927-134412-acceptance-1",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "7857ea9ce9ff959f8470dab5fd8455c5e406fd82a5edb086936793b584a0cf2b",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-09-27T16:15:22Z",
        "reviewer": "Codex GPT-6 Sol independent source reviewer",
        "nextHandoff": "Existing Task Library maintenance worker uses the current verification queue and recorded run to resolve the owner, tracker and first-user gaps. This review covers the scoped repair under its old starting recipe only; a later use of the new recipe needs its own execution.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Publish one matching maintained skill, canonical task page and Task Library entry; make the complete guide available in the public library downloads.",
          "observedResult": "PR41 merged. The saved and anonymous article each embed the exact SHA609039d5 maintained skill. The public task entry is complete and maps to this page. All and ready ZIPs contain full generated guides plus onboarding; seven deployed archive checks passed.",
          "sourceUrl": null,
          "sourcePrivateEvidenceRecorded": true,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/41",
           "https://github.com/Local-Service-Spotlight/task-library/blob/111bca7fee201644aae9b7f7427ac4d6628c2fa6/reviews/publisher-completion-2026-09-27.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicReadback": {
          "state": "pass",
          "expectedResult": "Read back the saved and anonymous task page and public meta record; verify the lead diagram on desktop and phone.",
          "observedResult": "The task article returned 200 with exact embedded source text and equal media. The final meta page returned 200 with its whole new section and equal media at 16:06:17 UTC. Corrected phone and desktop captures show readable diagrams and opening text.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/making-task-guides-easier-to-use/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Record the scoped result and remaining owner, tracker and first-user gaps for the existing Task Library maintenance worker's next queue step.",
          "observedResult": "The published meta section and completed run record name the existing maintenance worker, current verification queue and open owner, tracker and novice gates. No separate person or new schedule was contacted or created.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/making-task-guides-easier-to-use/"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "publisher-completion-20260927-134412",
        "finishedAt": "2026-09-27T16:14:01.977704+00:00",
        "result": "Published matching maintained skill, canonical task page and library entry. Anonymous article and both download guides agree; seven deployed archive checks passed. Existing maintenance worker receives the recorded gaps and next queue step. Contributor instructions are complete; owner, novice setup, full article certification and a later accepted run of the revised recipe remain unknown."
       },
       {
        "version": 1,
        "reviewId": "revenue-path-repair-20261005-1855-acceptance-1",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-05T21:41:34Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Existing Task Library maintenance function: use the released guides and current verification queue for the next bounded maintenance step. Confirm the status-only meta closeout paragraph after cache refresh; it is excluded from this acceptance. Release 19 remains a separate pending batch.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Publish one matching maintained skill, canonical task page, and Task Library entry; make the complete guide available in public library downloads.",
          "observedResult": "Fresh anonymous library data matches the generated registry output for all three repaired guides. Full-library and Digital Plumbing archives returned 200 and contain byte-identical copies of each guide. Seven archive checks and public desktop/mobile guide and queue renders are recorded. The repaired guides remain needs-work; no client execution or income result is claimed.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/data.json",
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
           "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicReadback": {
          "state": "pass",
          "expectedResult": "Read back the public parent article and meta write-up for the released substantive outputs and confirm the corrected task copies are present.",
          "observedResult": "A fresh parent-page fetch returned 200 with all three task slugs. The ordinary meta URL receipt at 21:40:09Z reports 200 and matching full text, media, and scripts against the saved substantive meta source. Scope excludes the later status-only closeout paragraph saved at 21:40:44Z; its subsequent cache receipt says fullRenderedTextPresent=false, so that later paragraph is not certified here. My own normal-URL request returned 403; the successful contemporaneous receipt is separately retained as evidence.",
          "sourceUrl": "https://blitzmetrics.com/making-task-guides-easier-to-use/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/digital-plumbing/",
           "https://blitzmetrics.com/making-task-guides-easier-to-use/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "searchAndFirstOpen": {
          "state": "pass",
          "expectedResult": "A search entered before data load produces the intended match, and the published task opens with its copy control visible after settling on phone and desktop.",
          "observedResult": "The public preload-search receipt records 3 of 276 matches and one target row. The settled first-open receipt records the target guide and copy control within phone and desktop viewports after 1.2 seconds. Clipboard contents were not read back; this is not novice setup evidence.",
          "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://blitzmetrics.com/task-library-dashboard/"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "Leave the published task set and its next maintenance step findable by the existing Task Library maintenance function.",
          "observedResult": "The public library, exact archive links, current queue and published review expose the released guides and the next maintenance route. This is a handoff to the maintenance function through its durable records; no named person's acknowledgment is claimed. The separate release-19 batch remains pending and is outside this review.",
          "sourceUrl": "https://local-service-spotlight.github.io/task-library/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://local-service-spotlight.github.io/task-library/verification-queue.json",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/revenue-path-2026-10-05.md"
          ],
          "privateEvidenceRecorded": false
         }
        },
        "executionId": "revenue-path-repair-20261005-1855",
        "finishedAt": "2026-10-05T21:39:18Z",
        "result": "Published three corrected inquiry-path guides, business-value queue ordering and pre-load search repair. Anonymous parent/meta, exact public guide/ZIP bytes and phone/desktop normal-open checks passed. Independent publication review is retained separately. No client form/call attempt, novice setup or income result is claimed."
       },
       {
        "version": 1,
        "reviewId": "authority-guides-repair-20261005-independent-acceptance",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-05T23:58:49Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Task Library maintenance function: use the released verification queue and current written guidance to select the next actionable task batch; keep real execution, first-use setup, and business outcomes separate until their own evidence exists.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "Three named guide pages and their two associated canonical article revisions are published with exact maintained guide bytes and readable public article bodies.",
          "observedResult": "The immutable bd032 release snapshot records exact parity for all three guides. Public review receipts record HTTP 200 and full rendered text for both canonical articles; the seven-archive receipt records the expected copies. This accepts written/publication delivery only; it does not certify task execution, novice setup, client outcomes, or revenue.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/68",
           "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37379330811"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "The released maintenance material is reachable by the Task Library maintenance function, with its verification queue available as the next-work record.",
          "observedResult": "The public Task Library release includes a 276-task verification queue. The captured public queue lists 0 fully verified tasks and preserves gate-level unknowns; this is an actionable maintenance handoff, not a claim that a human received or acted on it.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/authority-guides-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicGuideCopiesAndArchives": {
          "state": "pass",
          "expectedResult": "All three in-scope guide pages match the immutable source release and the seven archived copies pass parity checks.",
          "observedResult": "The public release receipt records exact source parity for the three target guides; the archive parity receipt records all seven copies matching. Current later RCF working-tree edits are outside this accepted release.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/68"
          ],
          "privateEvidenceRecorded": true
         },
         "publicGuideViews": {
          "state": "pass",
          "expectedResult": "The three published guide surfaces render on desktop and mobile, with the guide content and copy control visible and no reported queue overflow.",
          "observedResult": "The live render receipt records the three guides on phone and desktop, visible copy controls, and queue overflow false. It explicitly labels the check live and not novice setup; no media played.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "authority-guides-repair-20261005-2100",
        "finishedAt": "2026-10-05T23:45:19.414908+00:00",
        "result": "Three authority/site guides and both canonical article revisions published and checked. Obsolete never-started deployment cancelled after verified source inclusion; successor release succeeded. Exact public guides, seven archives and phone/desktop views pass. Publication acceptance remains separate from novice setup and client results."
       },
       {
        "version": 1,
        "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
        "taskSlug": "publish-skill-and-task-page",
        "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
        "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
        "representation": "wordpress-content-html",
        "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
        "reviewedAt": "2026-10-06T02:07:43Z",
        "reviewer": "Codex independent audit subagent",
        "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
        "criteria": {
         "result": {
          "state": "pass",
          "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
          "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://github.com/Local-Service-Spotlight/task-library/pull/70",
           "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
          ],
          "privateEvidenceRecorded": true
         },
         "handoff": {
          "state": "pass",
          "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
          "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/",
           "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
          ],
          "privateEvidenceRecorded": true
         },
         "publicFirstOpen": {
          "state": "pass",
          "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
          "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
          "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [],
          "privateEvidenceRecorded": true
         },
         "archiveAvailability": {
          "state": "pass",
          "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
          "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
          "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
          "sourcePrivateEvidenceRecorded": false,
          "evidenceUrls": [
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
           "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
           "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
           "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
           "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
           "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
           "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
          ],
          "privateEvidenceRecorded": true
         }
        },
        "executionId": "first-use-rcf-20261005-2343",
        "finishedAt": "2026-10-06T02:06:05.871154+00:00",
        "result": "Published aligned web/ZIP starter inputs and clear catalog browsing labels. PR70 deployment succeeded; exact app source and all non-timestamp generated fields match, all seven public archives pass, phone/desktop standalone and embedded controls pass. Maintenance instructions and public RCA connect future work to existing business evidence. No novice setup, client execution or revenue result claimed."
       }
      ],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "a5f8e0c27993597db9cdf606efb6bf3128c4ffbfe20f8ef72dbb4fe0f610a686",
      "articleKey": "blitzmetrics.com/skill-publishing-standard",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: All five written-instruction checks pass for this source. Real partial example, exact source/page copy and responsive browser checks reviewed. Publication/novice/accepted execution and upkeep ownership remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/publisher-completion-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "a5f8e0c27993597db9cdf606efb6bf3128c4ffbfe20f8ef72dbb4fe0f610a686"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "pass",
        "reason": "All five instruction requirements have explicit passing checks for the current source revision.",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "reviewScope": "All five written-instruction checks pass for this source. Real partial example, exact source/page copy and responsive browser checks reviewed. Publication/novice/accepted execution and upkeep ownership remain separate. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/publisher-completion-2026-09-27.md Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "sourceSha256": "a5f8e0c27993597db9cdf606efb6bf3128c4ffbfe20f8ef72dbb4fe0f610a686",
        "standards": {
         "version": 1,
         "checks": {
          "opening": {
           "state": "pass",
           "reason": "Names publishing, the benefit of consistent instructions and the linked checked-recipe prerequisite.",
           "evidence": "Publish one clear task guide that your team can find and use. Keep its web page, skill file, and library entry in sync so no one follows old steps. Start with a checked task recipe, then use this guide to publish and check its copies."
          },
          "recipe": {
           "state": "pass",
           "reason": "Inputs, supported editor, authority, seven steps, import checks, public output and measurable comparison are explicit.",
           "evidence": "Seven steps now require exact decoded embedded-file comparison, current source identity, registry mapping, source/public readback, tracker state and named remaining owner."
          },
          "links": {
           "state": "pass",
           "reason": "Owned method links and exact task route are relevant; three added evidence links name the real partial repair. Actual browser reverse route opens this task.",
           "evidence": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/publisher-completion-2026-09-27.md"
          },
          "evidence": {
           "state": "pass",
           "reason": "The real September25 repair is linked with its partial result and missing setup evidence. The separate teaching example stays fictional.",
           "evidence": "PR39 is merged; reviews/tracker-setup-2026-09-25.md and the meta section #tracker-setup-20260925-000216 document source/public checks and open tracker, owner and first-user gates."
          },
          "handoff": {
           "state": "pass",
           "reason": "Post-stage task hands checked public/draft state and remaining gaps to task owner.",
           "evidence": "Content Factory context names Process inputs and Post release; activation and promotion are separate."
          }
         }
        }
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "pass",
        "reason": "The contributor status is complete; this is a source claim, not execution proof."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/skill-publishing-standard/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "pass",
        "reason": "Every task mapped to this hub is contributor-complete and no reviewed hold is active. This is catalog readiness only."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "The article revision observation is outside the 24-hour freshness window.",
        "semanticReview": {
         "version": 1,
         "taskSlug": "publish-skill-and-task-page",
         "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
         "sourceSha256": "3e9f22977b023330140c0866b6db199f0cbd31e086370043dcadfc643e45f319",
         "representation": "wordpress-content-html",
         "reviewedAt": "2026-09-27T15:49:15.573162Z",
         "reviewer": "Codex root; independent GPT-6 Sol source/link reviews plus root public browser QA",
         "criteria": {
          "openingContext": {
           "state": "pass",
           "reason": "Plain opening quotes action, value and checked-recipe prerequisite; body delivers seven publishing steps.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "roleScope": {
           "state": "pass",
           "reason": "Page is explicitly the publishing task recipe; canonical source and permanent task are named.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "owner": {
           "state": "unknown",
           "reason": "Owning repository is explicit, but responsible upkeep assignment is still missing from maintained tracker evidence.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "steps": {
           "state": "pass",
           "reason": "Inputs, authority, source comparison, supported save path, tracker state and public readback are explicit.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "links": {
           "state": "pass",
           "reason": "Current destination meanings and fragment targets checked; stale plugin/project labels corrected and exact source/partial-example links added.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "sourceEvidence": {
           "state": "pass",
           "reason": "Merged PR39, dated review and exact meta section prove the bounded September25 publishing repair; its partial result and setup gaps remain explicit.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "handoffContext": {
           "state": "pass",
           "reason": "Process supplies the reviewed method, Post publishes it; matched output, remaining issues and receiving owner are required.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "visualAndLayout": {
           "state": "pass",
           "reason": "Anonymous desktop1280x800 and phone390x844 show plain opening and readable four-step visual above fold. One H1, lower Post context and no phone horizontal overflow checked.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "publicationStandards": {
           "state": "unknown",
           "reason": "Title, canonical URL, description and headings were checked. Complete CTA/short-URL/E-E-A-T publication certification is not established by this scoped repair.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          },
          "acceptanceResults": {
           "state": "unknown",
           "reason": "This exact revised recipe has no independently accepted execution or novice setup receipt.",
           "evidenceRefs": [
            "https://github.com/Local-Service-Spotlight/task-library/blob/914e8219bc260c15ccebe4a3402c3692f2dee80d/reviews/publisher-completion-2026-09-27.md",
            "sha256:cacb3d0b06383582b74a4817a75a0c706f1233c9791b989059d1a62f1abce810"
           ]
          }
         }
        },
        "revisionObservation": {
         "version": 1,
         "taskSlug": "publish-skill-and-task-page",
         "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
         "sourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
         "representation": "wordpress-content-html",
         "observedAt": "2026-10-06T02:09:18.996036Z",
         "observer": "Codex separate post-acceptance authenticated source read",
         "state": "observed",
         "reason": "Exact publishing recipe remains unchanged after independent acceptance of the shared startup repair.",
         "evidenceRefs": [
          "sha256:d37b0b58c3d05c51b5d2fc414f21b43d960cc2d9d1277196cbc4ad0e47454139"
         ]
        }
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "pass",
        "reason": "27 distinct execution ID(s) name this task; outcomes remain separate.",
        "executionIds": [
         "authority-guides-repair-20261005-2100",
         "booking-path-checks-20261009-1259",
         "content-factory-link-repair-20261013",
         "crossref-release-20260927-162402",
         "embedded-guide-repair-20261010",
         "entity-linking-repair-20260930-0105",
         "first-use-rcf-20261005-2343",
         "historical-site-case-20261019",
         "internal-linking-repair-20261001-1405",
         "inventory-guide-repair-20261002-1610",
         "link-building-repair-20261001-1307",
         "link-plan-guide-repair-20261004-1605",
         "lss-editorial-correction-20260927-190846",
         "measurement-guide-repair-20261005-1607",
         "proof-resolution-20261014",
         "publisher-completion-20260927-134412",
         "revenue-path-repair-20261005-1855",
         "revenue-ready-download-20261017",
         "roster-public-boundary-20260927-210848",
         "seo-hub-supporting-guides-20261015",
         "site-build-proof-recipe-20261014",
         "task-direct-open-20261002-1404",
         "taxonomy-guide-repair-20261003-1606",
         "tracker-setup-20260925-000216",
         "two-task-certification-20261015",
         "weekly-maa-clarity-20261011",
         "wordpress-runtime-routing-20261012"
        ],
        "historyStatus": "partial"
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unmet",
        "reason": "The acceptance review instruction hash no longer matches the current task instruction.",
        "acceptanceReview": {
         "version": 1,
         "reviewId": "first-use-rcf-20261005-2343-independent-acceptance",
         "taskSlug": "publish-skill-and-task-page",
         "canonicalURL": "https://blitzmetrics.com/skill-publishing-standard/",
         "recipeSourceSha256": "660d6f1abd8678c851c0a08059f27982e8e29b46775ea217a2ae1d6e3ba55537",
         "representation": "wordpress-content-html",
         "instructionSourceSha256": "609039d529572a9d02b5e2b5847469d5fe7e6138a55c1ebd3c70a716c3a1093a",
         "reviewedAt": "2026-10-06T02:07:43Z",
         "reviewer": "Codex independent audit subagent",
         "nextHandoff": "Task Library maintenance function: use the published verification queue to choose the next actionable batch; keep novice setup, real client execution, and business outcomes in their own evidence gates.",
         "criteria": {
          "result": {
           "state": "pass",
           "expectedResult": "The first-use update is released to the public task library, with web startup guidance and downloadable ZIP startup files carrying the aligned fields and safe run-record instruction.",
           "observedResult": "The successful PR70 deployment and public source-parity receipt identify merge 2b531ee895a18fe17f5aff5f35e06e9be41201a4. The public web startup receipt passes desktop and mobile prompt-field checks. I fetched all seven public ZIP archives over HTTPS (HTTP 200) and inspected their START-HERE.md files; each contains the save destination, approved actions, prior-run attachment prompt, and retain-one-execution-ID instruction. This accepts the publishing and written startup update only; it does not establish novice setup, client work, or business results.",
           "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://github.com/Local-Service-Spotlight/task-library/pull/70",
            "https://github.com/Local-Service-Spotlight/task-library/actions/runs/37396308410"
           ],
           "privateEvidenceRecorded": true
          },
          "handoff": {
           "state": "pass",
           "expectedResult": "The public Task Library maintenance queue remains reachable as the receiving record for the next maintenance task.",
           "observedResult": "The deployed catalog and generated queue preserve 276 task records and gate-level status. This makes the release available to the Task Library maintenance function; no individual human receipt or subsequent action is claimed.",
           "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://local-service-spotlight.github.io/task-library/",
            "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/library-rca-2026-10-05.md"
           ],
           "privateEvidenceRecorded": true
          },
          "publicFirstOpen": {
           "state": "pass",
           "expectedResult": "The public publisher guide opens on phone and desktop with its copy control visible before interaction; selecting it gives visible confirmation without an overflow issue.",
           "observedResult": "The anonymous agent rehearsal receipt records the expected publisher guide, in-viewport copy controls and a copied-item toast on phone and desktop. Clipboard contents were not read back, and the receipt explicitly does not represent unassisted novice setup.",
           "sourceUrl": "https://blitzmetrics.com/task-library-dashboard/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [],
           "privateEvidenceRecorded": true
          },
          "archiveAvailability": {
           "state": "pass",
           "expectedResult": "The seven declared public ZIP downloads are available and contain the aligned startup instructions.",
           "observedResult": "Each of the seven public ZIP URLs returned HTTP 200. I opened each archive in memory and found one START-HERE.md containing the required save destination, action approvals, existing-run attachment, and same-run execution-ID guidance. This verifies written archive content, not a skill installation or app setup.",
           "sourceUrl": "https://blitzmetrics.com/skill-publishing-standard/",
           "sourcePrivateEvidenceRecorded": false,
           "evidenceUrls": [
            "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-all.zip",
            "https://local-service-spotlight.github.io/task-library/TaskLibrary-Skills-ready.zip",
            "https://local-service-spotlight.github.io/task-library/packs/wichita-google-ads.zip",
            "https://local-service-spotlight.github.io/task-library/packs/dealcon.zip",
            "https://local-service-spotlight.github.io/task-library/packs/website-qa.zip",
            "https://local-service-spotlight.github.io/task-library/packs/digital-plumbing.zip",
            "https://local-service-spotlight.github.io/task-library/packs/dollar-a-day.zip"
           ],
           "privateEvidenceRecorded": true
          }
         },
         "executionId": "first-use-rcf-20261005-2343"
        }
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "acceptedExecution"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "articleSemanticCertification",
       "taskExampleEvidence",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 224,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The acceptance review instruction hash no longer matches the current task instruction."
     }
    },
    {
     "title": "Set up a business AI work environment",
     "slug": "set-up-business-ai-work-environment",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/start/",
     "articleKind": "task-recipe",
     "desc": "You do not need a whole system to try useful AI work.",
     "content": "---\nname: set-up-business-ai-work-environment\ndescription: You do not need a whole system to try useful AI work.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/start/\nstatus: needs-work\n---\n\n# Set up a business AI work environment\n\nYou do not need a whole system to try useful AI work. This guide helps you set up one task with the right files and checks. Start with a small draft you can judge before you share it.\n\n**The path:** Useful first task → Supported app → Needed access → Checked result\n\n**Start when:** A business owner has chosen a useful first AI task and needs the smallest supported setup for it.\n\n## Inputs\n\n- A real business need, bounded first draft and pass criteria.\n- The selected computer/app/account/plan and current supported capabilities.\n- Allowed source files and scope for installing tools or connecting accounts.\n\n## Steps\n\n1. Choose the first task and record what useful output looks like. Start with safe provided files when possible; a public website read does not require a publishing connection.\n2. Use the maintained install guide to select the supported product path. Confirm the actual surface/plan, rather than assuming every app has Cowork, local folders or marketplace controls.\n3. Install or load the intended skill through [the canonical installation task](https://local-service-spotlight.github.io/task-library/?task=install-canonical-skill-packs#task-install-canonical-skill-packs). Record the exact source and verify actual selection in a fresh task.\n4. Connect only sources the task requires, through existing approved connectors or credential handling. Test the narrow needed action; read access, draft access and publish access are different.\n5. If a site connection must be tested, prefer a non-public draft where that proves the required capability. A public test and its cleanup require that exact authority; do not publish a dummy post just because a general setup guide says so.\n6. Run the bounded task, inspect the saved output against the agreed checks, and record any access/capability gap. Keep the result available to the intended reader.\n7. Only after the task works, decide whether repeat work is needed. Configure and observe any schedule through its separate task; a manual first result can finish a one-off setup.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Chosen app and skill support the actual task; source/revision and selection are recorded.\n- [ ] Only necessary access is used and each required action is checked.\n- [ ] A useful first output or precise blocker is retained; scheduling is not assumed.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional shop owner wants draft answers to common questions from an approved service sheet. The first task needs that file and a writing skill, not website publishing access. The draft is checked against the sheet and saved. A recurring web-publishing system remains separate future scope.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe owner chooses the next useful task. [Recurring-job setup](https://local-service-spotlight.github.io/task-library/?task=configure-and-verify-recurring-agent-job#task-configure-and-verify-recurring-agent-job) follows only if requested.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/start/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=set-up-business-ai-work-environment#task-set-up-business-ai-work-environment)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nCurrent app/plan capabilities, real source access and a checked first output require an actual account run; older /start/ examples are not universal promises. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "8e4b89f04f3f18f15952eca267ac807c6c6abcbcae9034acbcf06911820cca3b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "5929e07c12174f761f4b2c92e6f9319f292a2c5b69f87ce83d1d38baa531430e",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-business-ai-work-environment#task-set-up-business-ai-work-environment",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "8e4b89f04f3f18f15952eca267ac807c6c6abcbcae9034acbcf06911820cca3b",
      "articleKey": "blitzmetrics.com/start",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "8e4b89f04f3f18f15952eca267ac807c6c6abcbcae9034acbcf06911820cca3b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "8e4b89f04f3f18f15952eca267ac807c6c6abcbcae9034acbcf06911820cca3b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/start/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 217,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Set up a Special Project workspace",
     "slug": "set-up-special-project-workspace",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/special-project/",
     "articleKind": "task-recipe",
     "desc": "A free project still needs a clear goal and owner.",
     "content": "---\nname: set-up-special-project-workspace\ndescription: A free project still needs a clear goal and owner.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/special-project/\nstatus: needs-work\n---\n\n# Set up a Special Project workspace\n\nA free project still needs a clear goal and owner. This guide sets up a shared place for the work, files, and next steps. Start with the approved scope and the people who should take part.\n\n**The path:** Approved scope → Project record → Working threads → Checked access\n\n**Start when:** The relationship owner has confirmed Special Project status, scope and participants.\n\n## Inputs\n\n- The relationship owner’s approved Special Project scope and current roster status.\n- The exact existing conversation/project, participant list and accountable lead.\n- Authorized project setup/access plus the current Basecamp workflow.\n\n## Steps\n\n1. Confirm Special Project status from the roster and owner. A friendly name, old project prefix or lack of invoice does not authorize unpaid work or change a client’s status.\n2. Search for the existing workspace before creating one. For a new approved project, use “Special Project: [real person or company]” with the actual confirmed subject; preserve any established project ID.\n3. Enable or use the approved Message Board, To-dos and Docs & Files. Create or locate Project Overview, Access, Updates, Updates (Internal) and Meetings.\n4. Write the overview with purpose, scope, deliverables and named responsibility. Use the maintained labels Project Lead, Project Manager and Accountable when the current workflow requires them, matching actual project members.\n5. Invite only the confirmed participants under existing authority. Historical named staff in the public article are examples to verify, not a blanket current invite list.\n6. Check each thread’s actual client visibility. Keep private team notes in the internal destination and secret values in the approved store, not an Access-thread plaintext dump.\n7. Run the applicable access checklist for the work: source systems, site and measurement access as needed. Record granted, missing and untested separately; then assign the first concrete task and verify the receiver can find it.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Roster state, scope and accountable owner are confirmed.\n- [ ] Required threads exist with checked participant visibility.\n- [ ] First task and needed access are usable, or exact missing grants have owners.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional partner is approved for one profile-page review. The workspace has the five threads, but the internal Updates thread is visible to the partner. Fix and verify that visibility before posting team notes. The no-fee project still has a bounded scope; it does not authorize ongoing website work.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe assigned task owner begins only in-scope work and uses [the original-thread status method](https://local-service-spotlight.github.io/task-library/?task=reply-with-task-status-in-origin-thread#task-reply-with-task-status-in-origin-thread) for authorized progress.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/special-project/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=set-up-special-project-workspace#task-set-up-special-project-workspace)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "abc29b0084cb0f39622cf1cc56316ec878c1e170418f06d05dbf11dd3f19bc87",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "cf3513f809506b374cd4568f98dc7efe6d65609df5bbdd82991bc71acfc27bf0",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=set-up-special-project-workspace#task-set-up-special-project-workspace",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "abc29b0084cb0f39622cf1cc56316ec878c1e170418f06d05dbf11dd3f19bc87",
      "articleKey": "blitzmetrics.com/special-project",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "abc29b0084cb0f39622cf1cc56316ec878c1e170418f06d05dbf11dd3f19bc87"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "abc29b0084cb0f39622cf1cc56316ec878c1e170418f06d05dbf11dd3f19bc87"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/special-project/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 218,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Reply with task status in the original thread",
     "slug": "reply-with-task-status-in-origin-thread",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/always-reply/",
     "articleKind": "task-recipe",
     "desc": "People should not have to chase you to learn where a job stands.",
     "content": "---\nname: reply-with-task-status-in-origin-thread\ndescription: People should not have to chase you to learn where a job stands.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/always-reply/\nstatus: needs-work\n---\n\n# Reply with task status in the original thread\n\nPeople should not have to chase you to learn where a job stands. This guide helps you give a short, useful reply in the place that asked. Start by checking the real work and the exact thread.\n\n**The path:** Original ask → Real state → Useful reply → Verified send\n\n**Start when:** A received task needs acknowledgment, a meaningful state update, or a checked outcome reply.\n\n## Inputs\n\n- The exact originating thread and direct question, with request time.\n- Actual work state, proof, next date/owner and any absence coverage.\n- Existing authority to send to those recipients in that channel.\n\n## Steps\n\n1. Open the exact thread and read the request, recipients and latest replies. Confirm you owe the answer; a copied notification alone does not make you the task owner.\n2. Check the work in its source system. Choose done, doing, blocked or parked from evidence. A draft, merge or sent message alone may not prove the requested outcome.\n3. Write the appropriate short line: done with result/location; doing with a defensible next date; blocked with the exact dependency/owner; parked with reason and living owner. Do not use an empty acknowledgment.\n4. Reply within the standing 24-hour rule. If already late, give the real state now and preserve the actual send time. If away, name agreed coverage rather than a guessed substitute.\n5. Send in that thread under existing communication authority. If sending is not authorized, save the exact draft and record the sending gate; another thread does not count as this reply.\n6. Check the sent copy’s recipients, thread and content. Keep any promised next step in the actual work record and update this thread when the state materially changes.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Reply answers the direct ask with truthful state and next action.\n- [ ] Original thread/recipients and actual send time are verified, or draft-only state is explicit.\n- [ ] Done has evidence; dates, dependencies and coverage are not invented.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional repair is saved but its public page is stale. The reply says: “Doing. The source is saved; I’m checking the public copy. Next update tomorrow at 10:00.” It does not say done. A reply posted in another project would still leave the original requester without an answer.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe named task owner keeps the next action; use the same original thread for any required later status.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/always-reply/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=reply-with-task-status-in-origin-thread#task-reply-with-task-status-in-origin-thread)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "3f7044becbaab23182e5cc7d3ac0585a282238e3d7611bb226b9563b09c08d99",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "4b323d279c8a21abf4cfd6f9f3c8fdc9379d7d972049acc106b74807220edd71",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=reply-with-task-status-in-origin-thread#task-reply-with-task-status-in-origin-thread",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "3f7044becbaab23182e5cc7d3ac0585a282238e3d7611bb226b9563b09c08d99",
      "articleKey": "blitzmetrics.com/always-reply",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "3f7044becbaab23182e5cc7d3ac0585a282238e3d7611bb226b9563b09c08d99"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "3f7044becbaab23182e5cc7d3ac0585a282238e3d7611bb226b9563b09c08d99"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/always-reply/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 211,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Onboard an agent for its first scoped task",
     "slug": "onboard-agent-for-first-scoped-task",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/new-agents-start-here/",
     "articleKind": "task-recipe",
     "desc": "A new AI worker needs the same clear brief as a new teammate.",
     "content": "---\nname: onboard-agent-for-first-scoped-task\ndescription: A new AI worker needs the same clear brief as a new teammate.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/new-agents-start-here/\nstatus: needs-work\n---\n\n# Onboard an agent for its first scoped task\n\nA new AI worker needs the same clear brief as a new teammate. This guide helps it find the right rules and do one useful job. Start with the team’s current notes, client status, and task.\n\n**The path:** Operating context → Client state → Scoped claim → Checked first task\n\n**Start when:** A new or returning AI worker needs current context before its first assigned task.\n\n## Inputs\n\n- The private START HERE, current client roster and live work-state location.\n- One assigned task, its goal, sources, intended audience and authority.\n- Canonical skills and verified access to the files needed for this task.\n\n## Steps\n\n1. Read the public onboarding guide, private START HERE and current operating instructions. Verify which sources own methods, client status, live tasks and credentials.\n2. Before client/site work, check the actual roster: Active Client, Special Project or Not Active. Stop Not Active work. Billing, an old project title or a missing invoice does not set the status; never delete a roster row to resolve uncertainty.\n3. Choose the current canonical task and record its revision. Read only relevant client context. Explain [Goals, Content and Targeting](https://blitzmetrics.com/gct-business-strategy/) in plain terms: result, material and people this work serves.\n4. Inspect task claims and claim the exact write targets using the shared mechanism. Coordinate overlaps. Read-only orientation needs no competing write claim.\n5. Perform one bounded authorized task using the real source systems. If a capability is missing, retain the exact gap and continue independent safe work; do not infer permission from a connection.\n6. Verify the output where it was saved or delivered. Record draft/public, pass/fail and unresolved checks separately, including the next owner.\n7. Write the execution’s meta record plus any required private team note. Update the checkpoint and hand off remaining work without copying private client data into public instructions.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Current context, roster state and exact task source are checked.\n- [ ] No competing writes or unauthorized scope are introduced.\n- [ ] First result and handoff are independently inspectable, with blockers preserved.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional new worker finds a website task under an old paying-client project, but the roster says Not Active. It stops the site work and records the mismatch for the relationship owner. That is a correctly blocked onboarding run, not a failed reason to invent another status.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe task owner receives the result in the actual project. Use [the shared-memory handoff](https://local-service-spotlight.github.io/task-library/?task=coordinate-agents-with-shared-memory#task-coordinate-agents-with-shared-memory) for the next worker and the original thread for authorized updates.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/new-agents-start-here/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=onboard-agent-for-first-scoped-task#task-onboard-agent-for-first-scoped-task)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nA real execution still needs its own source, reviewer, saved result and handoff evidence. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "d3e910c949258795eb4791aea8c8d5e7b31d56c9948126359289b61ec8cdd876",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2af74b472902ffbf037b78b8f7499f2e5f106fe6394119f95592d4e875d0567f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=onboard-agent-for-first-scoped-task#task-onboard-agent-for-first-scoped-task",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "d3e910c949258795eb4791aea8c8d5e7b31d56c9948126359289b61ec8cdd876",
      "articleKey": "blitzmetrics.com/new-agents-start-here",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "d3e910c949258795eb4791aea8c8d5e7b31d56c9948126359289b61ec8cdd876"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "d3e910c949258795eb4791aea8c8d5e7b31d56c9948126359289b61ec8cdd876"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/new-agents-start-here/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 210,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    },
    {
     "title": "Install local Qwen",
     "slug": "install-local-qwen",
     "status": "needs-work",
     "stage": "—",
     "article": "https://blitzmetrics.com/install-local-qwen/",
     "articleKind": "task-recipe",
     "desc": "A local AI worker can help draft text on your Mac.",
     "content": "---\nname: install-local-qwen\ndescription: A local AI worker can help draft text on your Mac.\ncategory: Knowledge System Maintenance\nstage: —\ndefinitive_article: https://blitzmetrics.com/install-local-qwen/\nstatus: needs-work\n---\n\n# Install local Qwen\n\nA local AI worker can help draft text on your Mac. This guide shows how to set it up and check one small reply. Start by checking your Mac, free space, and the exact model you plan to use.\n\n**The path:** Check Mac → Install reviewed stack → Local test → Bounded draft\n\n**Start when:** An authorized Mac user wants the documented local worker for bounded draft work.\n\n## Inputs\n\n- An Apple Silicon Mac, available memory/storage, Python 3.11 and permission for the model download.\n- The exact documented checkpoint mlx-community/Qwen3.8-27B-4bit and reviewed setup revision.\n- An authorized terminal, a local working folder and a lead AI worker that can make a local web request.\n\n## Steps\n\n1. Read the owned install guide and the model card. Record hardware, free resources and model revision. The published 128 GB-Mac result is historical; it does not prove this machine has enough memory.\n2. Use a dedicated environment for the reviewed stack. Preserve an existing installation and active jobs. The concrete commands below reproduce the documented Python 3.11/MLX-VLM path; confirm compatibility before replacing an environment.\n3. Download the exact checkpoint through its supported model source under the approved download scope. Record model identity and errors. HF_HUB_DISABLE_XET=1 was a workaround on the documented Mac, not a universal requirement.\n4. Start the server bound to 127.0.0.1 on the agreed port. Inspect startup output and confirm the intended process owns the listener. Do not expose or tunnel the unauthenticated local service.\n5. Request the model list, then send one bounded “Reply with PONG” test to the returned model ID. Save the status code, response and time. A model-list response alone proves no text generation.\n6. Ask for one small draft from allowed test text and check its facts. The local endpoint is the worker; a cloud model with a similar name or a Cursor picker entry does not prove this endpoint ran.\n7. Give the lead AI worker the actual endpoint/model and a failure path. Keep drafts staged; send, publish and spend stay under existing authority. Record how to stop the process and do not install a startup job unless requested.\n\n## Current implementation\n\nThe owned guide documents this stack from its August 2026 setup. Run these commands from the reviewed team setup folder that contains its requirements.txt. The owned guide identifies that private checkout; access must already be granted. If it is unavailable, obtain that approved setup or follow the official upstream install path and record it as a different environment. The commands below are instructions, not evidence that this audit installed it. Keep the process local. The model card and [MLX-VLM documentation](https://github.com/Blaizzy/mlx-vlm) explain the loader; [the exact model card](https://huggingface.co/mlx-community/Qwen3.8-27B-4bit) identifies the checkpoint. Do not generalize that checkpoint’s mlx-lm loading failure to every Qwen model.\n\n```bash\npython3.11 -m venv .venv\n.venv/bin/python -m pip install -r requirements.txt\n.venv/bin/python -m mlx_vlm.server --help\n.venv/bin/python -m mlx_vlm.server --model mlx-community/Qwen3.8-27B-4bit --host 127.0.0.1 --port 8080\n```\n\nUse the actual installed server’s `--help` to verify its controls before starting it. The server stays in that terminal; use a second terminal for the two read/test requests:\n\n```bash\ncurl -sS --max-time 120 http://127.0.0.1:8080/v1/models -H 'Authorization: Bearer local'\ncurl -sS --max-time 120 http://127.0.0.1:8080/v1/chat/completions -H 'Authorization: Bearer local' -H 'Content-Type: application/json' -d '{\"model\":\"mlx-community/Qwen3.8-27B-4bit\",\"messages\":[{\"role\":\"user\",\"content\":\"Reply with PONG only.\"}],\"max_tokens\":16,\"temperature\":0,\"enable_thinking\":false}'\n```\n\nThe small probe explicitly turns thinking off, matching the documented team wrapper; otherwise a short token budget may yield no visible reply. Match the model ID to the model list. Review the completion itself and retain a failed response honestly. Stop the server with the terminal’s interrupt control when the test is over unless the authorized job needs it left running. The `qwen` convenience wrapper is only available if that separate team setup was actually installed.\n\n## Definition of done (QA checklist)\n\n[Quality assurance (QA)](https://localservicespotlight.com/article-guidelines/) means checking the work against the agreed result.\n\n- [ ] Exact checkpoint, environment and loopback listener are identified.\n- [ ] A real completion returns the test reply; a bounded draft is independently checked.\n- [ ] Errors, resource limits and shutdown method are recorded; no automatic scheduling or savings claim is made.\n\n## Example(s)\n\n**Fictional teaching example. This is not a client result or proof of a completed run.**\n\nA fictional setup returns the expected model ID but its PONG request times out. Record “server visible, generation failed.” Do not claim the worker is usable or rerun downloads blindly. Diagnose the retained error and resources before retrying the same setup task.\n\n## Handoff and Content Factory context\n\nThis work supports the [Content Factory, our four stages of using real content](https://localservicespotlight.com/content-factory/): Produce → Process → Post → Promote. Use the specific inputs and next task below to place the work; a maintenance task does not manufacture transcripts, clips or other stage outputs it does not call for.\n\nThe lead AI worker receives the checked endpoint and draft limits. [An overnight drafting task](https://local-service-spotlight.github.io/task-library/?task=run-overnight-local-writer#task-run-overnight-local-writer) is separate work requiring its own schedule and output checks.\n\n## Run with an agent\n\nGive the AI worker this recipe, the real Inputs above, the intended result and the actions already authorized. Ask it to return the saved output, checks, evidence and remaining owner. Check its work against this guide; loading a skill does not prove access, installation of a job, or successful execution. Keep media muted with volume at zero if playback is needed.\n\nFor recurring work, keep the actual trigger, owner and runtime in the job record. Scheduling and observed firings are separate. Do not create a schedule merely because this guide mentions a review interval.\n\n## Record the real execution\n\nOpen the run record when the work starts. Keep the exact starting recipe revision, one execution ID, source evidence and actual state. Write a [meta article, the record of one run](https://blitzmetrics.com/meta-article-prompt/) with decisions, results, checks, failures and next owner. Link it to this task and register it through the [Task Library](https://local-service-spotlight.github.io/task-library/) execution process. Writing is part of the work; public release follows existing authority.\n\nReuse the same execution ID for revisions, QA, meta writing and retries within that run. A blocked run stays open with its dependency and next owner; do not invent a finish time. Use supported findings to propose and verify a better recipe. A historical public-example count without distinct run IDs remains dated article volume, not verified execution frequency.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 1, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- [Maintained source guide](https://blitzmetrics.com/install-local-qwen/)\n- [This task in the Task Library](https://local-service-spotlight.github.io/task-library/?task=install-local-qwen#task-install-local-qwen)\n- [Article Guidelines](https://localservicespotlight.com/article-guidelines/)\n- [current article guide](https://blitzmetrics.com/definitive-article-guide/)\n- [How recipes and run records work together](https://localservicespotlight.com/meta-articles/)\n\n## Review and evidence still needed\n\nThe inherited contributor status is `needs-work`. It is preserved, not promoted by this rewrite. That label alone does not verify document readiness, a client outcome, access or an executed task.\n\nNo model download, installation, PONG request or current hardware test was performed while writing this guide. The checkpoint’s actual capacity and compatibility require a real authorized run. The fictional example teaches the method; a real example with relevant proof is still needed where required. The task-specific flow above is source guidance; its visible presentation and the full document need a named reviewer and desktop/mobile checks.",
     "importance": 2,
     "freq": 2,
     "revenue": 1,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "2fd4a13bafe93c41d86cbdc370a6fe89598862585e06cda9a24ab4b5ff3ca617",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "c2ca9ac179a2aa9558cd43e7c922f2cea011ddb769fee8ef2c676703cab1a9f3",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "flag": "New reviewed source mapping; WIP. No independent execution or runtime certification claimed.",
     "articleState": "wip",
     "taskLibraryUrl": "https://local-service-spotlight.github.io/task-library/?task=install-local-qwen#task-install-local-qwen",
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "2fd4a13bafe93c41d86cbdc370a6fe89598862585e06cda9a24ab4b5ff3ca617",
      "articleKey": "blitzmetrics.com/install-local-qwen",
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "2fd4a13bafe93c41d86cbdc370a6fe89598862585e06cda9a24ab4b5ff3ca617"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "2fd4a13bafe93c41d86cbdc370a6fe89598862585e06cda9a24ab4b5ff3ca617"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is needs-work; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "pass",
        "reason": "The task maps to a normalized canonical article URL.",
        "articleUrl": "https://blitzmetrics.com/install-local-qwen/"
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "At least one task mapped to this hub is not contributor-complete."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "No exact-revision positive semantic review is recorded for this article."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No source-backed example audit exists for the mapped hub."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 209,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "The contributor status is needs-work; finish and review the guide."
     }
    }
   ]
  },
  {
   "folder": "gaps-to-create",
   "name": "Gaps & Tasks to Create",
   "icon": "🧩",
   "color": "#ef4444",
   "description": "Articles and SOPs that need to be written — prioritized by impact",
   "tasks": [
    {
     "title": "Write or Repair the GA4 Setup Guide",
     "slug": "how-to-configure-ga4-with-internal-traffic-filtering",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write clear steps for clean website counts. Use this when the team needs a checked GA4 setup guide.",
     "content": "---\nname: how-to-configure-ga4-with-internal-traffic-filtering\ndescription: \"Write clear steps for clean website counts. Use this when the team needs a checked GA4 setup guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the GA4 Setup Guide\n\nWebsite counts can include visits from your own team. This task helps you write a guide that shows business owners how to check those counts. Start with a real setup record. Finish with steps that another person can follow and test.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- The actual property and web stream, installation method, test records and internal-traffic decision; keep private account IDs and IP addresses out of public examples.\n- A receiving analytics report and an external control visit that can distinguish internal tests from normal traffic.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Document how the operator confirmed the correct property, time zone, stream and measurement ID and found any existing tags before adding another. Explain the chosen installation route: a site integration, direct tag or Google Tag Manager. GTM is not a universal prerequisite for GA4.\n5. Show the real internal-traffic definition and its matching traffic_type value. Explain the limits of office, home and VPN IP rules; use only a scope that can be checked and maintained.\n6. Describe Testing before Active and the evidence used to distinguish an internal visit from an external control. Record the report, time window and processing delay. A missing real-time event alone is not proof that the filter works.\n7. Explain that an active exclusion changes incoming data permanently and does not remove old history. Document who authorized activation, what was checked before it and how future rules can be disabled if wrong; disabling cannot recover already excluded data. Treat linking Search Console as a separate goal-dependent step.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The installation method and duplicate-tag check match the real site.\n- [ ] Testing, internal/control evidence and activation decision are explicit.\n- [ ] The guide explains permanent incoming-data exclusion and nonretroactive behavior without promising data recovery.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A teaching draft shows one office test and one external control with placeholder evidence labels. Because no real report is attached, the author keeps the run-evidence item open and does not claim that a business’s filter passed.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Set Up GA4 With Internal Traffic Filtering](https://local-service-spotlight.github.io/task-library/?task=set-up-ga4-with-internal-traffic-filtering#task-set-up-ga4-with-internal-traffic-filtering). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 4, gating 5 (runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the GA4 Setup Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-configure-ga4-with-internal-traffic-filtering#task-how-to-configure-ga4-with-internal-traffic-filtering)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Digital Plumbing](https://blitzmetrics.com/digital-plumbing/) — how measurement supports the site.\n- [Google: exclude internal traffic](https://support.google.com/analytics/answer/10104470?hl=en) — current filter behavior.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified current canonical destination and a real setup/control-test record that is safe to show.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 5,
     "freq": 4,
     "revenue": 4,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "f54186e32d277e7b028844b08faee570fac7b9efb8de19e01ed1e4d23b17f346",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "66aac5a776faf4a559cf0c52828e7c542c21d40c8cfa397e2b6a27cfd5668159",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "f54186e32d277e7b028844b08faee570fac7b9efb8de19e01ed1e4d23b17f346",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "f54186e32d277e7b028844b08faee570fac7b9efb8de19e01ed1e4d23b17f346"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "f54186e32d277e7b028844b08faee570fac7b9efb8de19e01ed1e4d23b17f346"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 64,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the First-Person Copy Guide",
     "slug": "how-to-convert-third-person-copy-to-first-person",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Show how to write in the right voice. Use this when a personal site needs a clear copy guide.",
     "content": "---\nname: how-to-convert-third-person-copy-to-first-person\ndescription: \"Show how to write in the right voice. Use this when a personal site needs a clear copy guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the First-Person Copy Guide\n\nA personal site should sound like the person who owns it. This task helps you write a guide for making that change while keeping the facts true. Start with real before-and-after copy. Finish with steps and checks a writer can use.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- Original copy, verified facts, actual author or adopted voice and examples of how that person speaks.\n- The pages in scope and exceptions such as quotations, company copy, third-party biography, legal text or required disclosures.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Document how to sort the pages by speaker and purpose. Owner-led stories may use I/my; a company team may use we; a guest article or third-party biography may correctly remain in third person. Do not force every page into the owner’s voice.\n5. Show a before-and-after example that keeps facts, numbers, timing and qualifications intact. Replace generic praise with the source’s actual scene or event. Do not invent personal experience merely to make the prose first person.\n6. Explain how to preserve testimonial quotations and their attribution while revising surrounding copy. Check relationships and credentials against evidence; keep unsupported claims on HOLD and preserve necessary disclosures.\n7. Document author metadata according to who actually wrote or adopted the piece. Do not relabel a guest’s article as the site owner’s work. Read the revised copy for natural speech without starting audio playback, then compare it line by line with the factual source.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The speaker and page-purpose exceptions are defined.\n- [ ] Before/after copy preserves facts, quotations, attribution and required disclosures.\n- [ ] Author metadata reflects the actual article rather than a universal site-owner rule.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** “Sam founded the shop in 2018” becomes “I founded the shop in 2018” only in a verified story Sam adopts as their own. A customer’s quote remains unchanged and credited to that customer.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Review Page Voice](https://local-service-spotlight.github.io/task-library/?task=verify-all-pages-written-in-first-person#task-verify-all-pages-written-in-first-person). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the First-Person Copy Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-convert-third-person-copy-to-first-person#task-how-to-convert-third-person-copy-to-first-person)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Article guidelines](https://localservicespotlight.com/article-guidelines/) — clarity and evidence rules.\n- [Website QA guide](https://blitzmetrics.com/website-qa-audit/) — the downstream page review.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified current canonical destination and real before/after copy with voice and attribution evidence.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "55e7c49c180d7b08ca789dcf557f22bcc40796eb2f4e08bfbaa8f9e34802652b",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "0879b6d7dfe59e2b10f95f3506cd20d851be0ed774672fd83e0fbda9bb69857d",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "55e7c49c180d7b08ca789dcf557f22bcc40796eb2f4e08bfbaa8f9e34802652b",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "55e7c49c180d7b08ca789dcf557f22bcc40796eb2f4e08bfbaa8f9e34802652b"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "55e7c49c180d7b08ca789dcf557f22bcc40796eb2f4e08bfbaa8f9e34802652b"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 183,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the Jennifer Review Guide",
     "slug": "how-to-grade-an-article-using-jennifer",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write clear steps for a draft review. Use this when the team needs to check a Jennifer grade.",
     "content": "---\nname: how-to-grade-an-article-using-jennifer\ndescription: \"Write clear steps for a draft review. Use this when the team needs to check a Jennifer grade.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the Jennifer Review Guide\n\nA score can help a writer find weak parts of a draft. This task helps you write a guide to the review tool called Jennifer. Start with the real rules and a saved review. Finish with clear steps for checking and fixing the draft.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- The actual Jennifer tool or prompt, rubric version, allowed inputs and a saved grade report.\n- The reviewed draft revision, cited source material and the editorial rules that apply to its release.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Identify the real Jennifer system and its version. Record the required draft, source and context inputs and how they are submitted. Do not invent categories, weights or a passing grade to fill missing documentation.\n5. Show the current rubric’s threshold and explain its scope. Resolve conflicts with maintained article rules before release; a numerical grade cannot override factual accuracy, meaningful visuals, privacy, attribution or a useful reader result.\n6. Demonstrate a report that locates each issue in the exact draft, cites its evidence and proposes a specific fix. Distinguish a rubric result from a reviewer’s judgment and mark unsupported or inconsistent scores UNKNOWN.\n7. Document one bounded fix-and-recheck cycle using the revised source. Preserve earlier reports and stop repetitive regrading when missing evidence or a rubric conflict is the actual dependency. Do not add irrelevant links or testimonials just to meet a quota, and do not make passing a grade automatic permission to publish.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The actual rubric/version, threshold and inputs are sourced.\n- [ ] Findings point to the exact draft and supporting evidence.\n- [ ] A recheck is tied to changed text; grade, editorial acceptance and publication are distinct.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A teaching report flags an unsupported “best in town” claim. The writer removes it and asks for real proof. No A grade or successful Jennifer run is asserted without an actual tool result.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Grade an Article Using Jennifer](https://local-service-spotlight.github.io/task-library/?task=grade-article-using-jennifer#task-grade-article-using-jennifer). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 5, revenue 4, gating 4 (runs every factory cycle or weekly; creates the asset ads amplify; gates a phase)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `judgment` — Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the Jennifer Review Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-grade-an-article-using-jennifer#task-how-to-grade-an-article-using-jennifer)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — review before posting.\n- [Article guidelines](https://localservicespotlight.com/article-guidelines/) — the maintained release rules.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs the verified current Jennifer system, conflict-resolved rubric and a real input/report/revision record; no score is assumed.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 5,
     "freq": 5,
     "revenue": 4,
     "gating": 4,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "judgment",
     "lane_label": "Frontier judgment: honest scoring, entity disambiguation, the subject's voice. Claude, ChatGPT, or Grok — pick the one you have.",
     "why": "runs every factory cycle or weekly; creates the asset ads amplify; gates a phase",
     "instructionReview": {
      "source_sha256": "ad019ae0861b49b2ce7f94d4202f4564eb25da1b5d78a91465d2d546fc690dad",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "81d3575812999b9a2a321c6070ad376514ae080ffb2949df8c685d87ba167756",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "ad019ae0861b49b2ce7f94d4202f4564eb25da1b5d78a91465d2d546fc690dad",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "ad019ae0861b49b2ce7f94d4202f4564eb25da1b5d78a91465d2d546fc690dad"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "ad019ae0861b49b2ce7f94d4202f4564eb25da1b5d78a91465d2d546fc690dad"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 68,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the Tag Manager Guide",
     "slug": "how-to-install-and-configure-gtm",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write clear steps for site tags. Use this when the team needs a checked Tag Manager guide.",
     "content": "---\nname: how-to-install-and-configure-gtm\ndescription: \"Write clear steps for site tags. Use this when the team needs a checked Tag Manager guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the Tag Manager Guide\n\nSite tags help you count useful actions, such as calls and form leads. This task helps you write a guide for setting them up. Start with a real install record. Finish with clear steps and proof that the right tag worked.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- The actual site platform, existing tag inventory, account/container ownership and authorized installation record.\n- A test event, expected receiving product and publish/version evidence for the documented setup.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Explain Google Tag Manager as a tool for managing tags. Show how to confirm the company’s existing account and web container before creating one; the same website does not need a new container for every page.\n5. Document the actual supported site installation route and the correct container snippets or integration. Check representative templates and avoid installing the same container through both a plugin and the theme. Note the actual consent controls and any pages intentionally excluded.\n6. Show how Preview/Tag Assistant was used to check the intended tag and trigger, then verify the corresponding event at its destination. Distinguish a loaded container from a tag firing and a tag firing from a measured business result.\n7. Describe saving a named version and publishing only the reviewed changes in scope. Keep the prior version and rollback route, then verify the normal live site after publication. Do not imply that Preview changes were already live or that GTM removes every future need for code changes.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The correct account, container and installation route are documented.\n- [ ] The test proves the intended tag behavior and receiving event, not merely a script in page source.\n- [ ] Preview, saved version, published version and live verification are distinguished.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** The author finds an existing container and documents it rather than making a duplicate. The teaching screenshot shows where a test result belongs; it is not labeled as a successful live install.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Install the Google Tag Manager Container](https://local-service-spotlight.github.io/task-library/?task=install-google-tag-manager-container#task-install-google-tag-manager-container). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 5/5 `●●●●●` — frequency 4, revenue 5, gating 5 (runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing))\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `computer` — Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the Tag Manager Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-install-and-configure-gtm#task-how-to-install-and-configure-gtm)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Digital Plumbing](https://blitzmetrics.com/digital-plumbing/) — measurement setup context.\n- [Google: verify and publish tags](https://support.google.com/tagmanager/answer/14842769?hl=en) — current preview and version behavior.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified canonical installation guide and one documented installation with tag and receiving-event evidence.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 5,
     "freq": 4,
     "revenue": 5,
     "gating": 5,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "computer",
     "lane_label": "Logged-in UI (Meta Ads Manager, Descript, GSC, wp-admin when REST is blocked). Requires a supported browser tool and the right account access.",
     "why": "runs every factory cycle or weekly; ads/revenue path; unblocks a chain (access/plumbing)",
     "instructionReview": {
      "source_sha256": "cf0ca11d0e6c10499fe97bf071290059c923a814f7deadafb29f057aea043c17",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "114e99407b2762f151af94ae9564c7674914714bafc52e0c1d8418b4a832f31c",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "cf0ca11d0e6c10499fe97bf071290059c923a814f7deadafb29f057aea043c17",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "cf0ca11d0e6c10499fe97bf071290059c923a814f7deadafb29f057aea043c17"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "cf0ca11d0e6c10499fe97bf071290059c923a814f7deadafb29f057aea043c17"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 20,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the SEO Tree Mapping Guide",
     "slug": "how-to-map-your-seo-tree-from-scratch",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Show how pages fit together. Use this when the team needs clear steps to map a website.",
     "content": "---\nname: how-to-map-your-seo-tree-from-scratch\ndescription: \"Show how pages fit together. Use this when the team needs clear steps to map a website.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the SEO Tree Mapping Guide\n\nA clear site helps people find the answer and the next useful step. This task helps you write a guide for mapping those paths. Start with the site’s real pages. Finish with a map and steps another person can check.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- The actual URL inventory, business goal, site owner and current owned SEO Tree and directory examples.\n- The current label convention for the map, any private planning map and the public proof that may be shown.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Compare the existing concept guide with current site-directory and Money Tree examples. State the convention used: current directory views put the entity homepage at the trunk and offsite proof at the roots; older teaching may use homepage-as-root. Money Tree uses limbs for real offer groups and branches for buying or service destinations. Use the legend for the chosen artifact and define any counts from its actual measure; do not blend conventions or create a second homepage node to satisfy both labels.\n5. Document how to inventory real URLs and assign a primary role: entity home, main teaching guide, service destination, supporting proof or another suitable role. Record missing, duplicate and orphaned pages as findings; a proposed page is visibly a proposal.\n6. Show how to choose the maintained canonical guide for each task and connect supporting examples upward. Link the reader to relevant proof, a useful service and the do-it-yourself method where each belongs. Do not force an arbitrary number of links, one category layout or a redirect for every removed page.\n7. Build a legible map from the actual inventory. Make real nodes link to verified pages, separate private planning details from public evidence and explain the next changes with owner and reason. Validate the destinations and meaning; a dense invented network is not proof of authority.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] Map labels are tied to the stated current source convention.\n- [ ] Every real node resolves to an actual page; proposed work and private planning are clearly distinguished.\n- [ ] The canonical choice and useful next links follow the business goal without creating competing hubs.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A four-page teaching map has a homepage, one main guide, a real service page and one case-study placeholder marked “proposal.” It makes no claim that the proposed case study exists or has earned links.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Map Content in the SEO Tree](https://local-service-spotlight.github.io/task-library/?task=map-content-hierarchically-root-trunk-branches-leaves#task-map-content-hierarchically-root-trunk-branches-leaves). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the SEO Tree Mapping Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-map-your-seo-tree-from-scratch#task-how-to-map-your-seo-tree-from-scratch)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [SEO Tree](https://blitzmetrics.com/seo-tree/) — the parent concept and its historical labels.\n- [Internal linking](https://blitzmetrics.com/internal-linking/) — connect related pages.\n- [SEO Tree site directory](https://blitzmetrics.com/seo-tree-site-directory/) — current directory legend.\n- [Money Tree](https://blitzmetrics.com/money-tree/) — the offer and service view.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified canonical from-scratch method and a real, evidence-backed site map using an explicit label convention.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "28dc5e658cf08c9a232b86acdb655bb150f61298a21757b2da1dc72ddd9a0fd3",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "02be3954234df25f6d185cd872d1976eed8bb44576494fc9308e6a3119e54c6a",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "28dc5e658cf08c9a232b86acdb655bb150f61298a21757b2da1dc72ddd9a0fd3",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "28dc5e658cf08c9a232b86acdb655bb150f61298a21757b2da1dc72ddd9a0fd3"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "28dc5e658cf08c9a232b86acdb655bb150f61298a21757b2da1dc72ddd9a0fd3"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 184,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the MarketScale Video Guide",
     "slug": "how-to-process-videos-via-marketscale",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write clear steps for the chosen video tool. Use this when the team needs a MarketScale guide.",
     "content": "---\nname: how-to-process-videos-via-marketscale\ndescription: \"Write clear steps for the chosen video tool. Use this when the team needs a MarketScale guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the MarketScale Video Guide\n\nYour team should know where a video goes and what comes back. This task helps you write that guide for MarketScale. Start with a real video job and its files. Finish with clear steps, checked outputs and the next owner.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- An actual authorized MarketScale workspace run or a saved operator record, with source file and returned outputs.\n- The chosen tool plan, access role, export rights, expected formats and the reason to use this route.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Read the real run and identify the exact product, workspace and available features. Document what the operator could actually do. Do not invent controls, captions, automatic editing or distribution from the platform name alone.\n5. Show how the original file and its rights enter the workspace, how the job is named and how its processing state is checked. Keep the source original and distinguish an upload from a finished export.\n6. Describe the observed editing, transcript, caption and export steps. Check returned names, text, framing, duration and files against the source. Keep agent playback silent and record any sound-quality check still needed.\n7. Explain the actual routing choice between MarketScale and another approved editing route using the project’s outputs, access, cost and review needs. Hand exports to the appropriate posting task; processing does not automatically publish to every platform.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The product, available controls and route choice come from a real record.\n- [ ] Upload, processing, export and distribution states have distinct evidence.\n- [ ] The original is preserved and the returned files and rights are checked.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A saved run has one original and two reviewed exports. The author describes those outputs. A distribution feature not shown in the record stays unverified rather than appearing as a required button in the guide.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Process Videos Via MarketScale](https://local-service-spotlight.github.io/task-library/?task=process-videos-via-marketscale#task-process-videos-via-marketscale). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the MarketScale Video Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-process-videos-via-marketscale#task-how-to-process-videos-via-marketscale)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Content Factory](https://localservicespotlight.com/content-factory/) — the Process-to-Post handoff.\n- [Blog posting guidelines](https://blitzmetrics.com/blog-posting-guidelines/) — downstream article work.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a current observed MarketScale run and a verified canonical guide; missing operator evidence cannot be replaced with invented UI steps.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "5eb3eb9608680b2b59e68b6f916ce4c252a5fe7dc70cad1c73d67bac340600b9",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "2704734f67270dfa3657e5a03a73ad812951fc3a5ed6244b3474223ae657eafc",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "5eb3eb9608680b2b59e68b6f916ce4c252a5fe7dc70cad1c73d67bac340600b9",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "5eb3eb9608680b2b59e68b6f916ce4c252a5fe7dc70cad1c73d67bac340600b9"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "5eb3eb9608680b2b59e68b6f916ce4c252a5fe7dc70cad1c73d67bac340600b9"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 185,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the AI Business Audit Guide",
     "slug": "how-to-run-the-ai-business-audit",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Write clear steps to check a business online. Use this when the team needs a repeatable audit guide.",
     "content": "---\nname: how-to-run-the-ai-business-audit\ndescription: \"Write clear steps to check a business online. Use this when the team needs a repeatable audit guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the AI Business Audit Guide\n\nAn online check should show a business owner what needs work and why. This task helps you write a guide for that check. Start with a real audit and its proof. Finish with clear steps and a useful list of next actions.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- A real business audit, allowed website/account scope, observed URLs and raw evidence.\n- The current audit criteria, scoring version if used, missing-data rules and the owner of follow-up work.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Document how to confirm the business, audience, desired result and authorized read scope. A public page review does not require all client admin accounts; request only the source needed to resolve a specific missing check.\n5. Describe the actual three-layer review: Digital Plumbing checks basic site and measurement function; content architecture checks useful pages, links and voice; authority checks sourced identity, claims and proof. Keep tests tied to the business’s real goal rather than forcing every tracking tool onto every site.\n6. For each finding, preserve the exact URL or account source, time, observation, criterion and effect on the reader. Distinguish observed failures, inference and UNKNOWN. AI-generated prose is not a source and a hypothetical example cannot be reported as a real client defect.\n7. Show how the report prioritizes useful fixes, identifies the next owner and sets a measurable recheck. If scoring is used, document its version and treatment of missing data. Hand scoped fixes into [Metrics, Analysis, Action](https://local-service-spotlight.github.io/task-library/?task=maa-cycle-metrics-analysis-action#task-maa-cycle-metrics-analysis-action); an audit does not itself authorize unrelated production changes or prove future revenue.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The audit scope, criteria and raw observations can be reproduced.\n- [ ] Findings separate observation, inference and unknown data.\n- [ ] The fix list has a useful priority, owner and measurable recheck without an invented client outcome.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A teaching report identifies a broken contact link in a sample page. It explains how a real audit would record the URL and a recheck. It does not name a real business or call the sample a delivered client audit.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Audit a Local Service Website](https://local-service-spotlight.github.io/task-library/?task=audit-local-service-website#task-audit-local-service-website). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 2/5 `●●○○○` — frequency 2, revenue 2, gating 2 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the AI Business Audit Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-run-the-ai-business-audit#task-how-to-run-the-ai-business-audit)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Website QA audit](https://blitzmetrics.com/website-qa-audit/) — the three-layer review.\n- [Digital Plumbing](https://blitzmetrics.com/digital-plumbing/) — functional setup.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified canonical audit guide and a real, reproducible audit with an evidence-based fix handoff.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 2,
     "freq": 2,
     "revenue": 2,
     "gating": 2,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "805d677f48abde31d1f840c4dd0fcb1556390e9bf12d03a6c9c682202718c7f4",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "f002cde99ae3d94dcff1efcaf162343a8d50f01c8ef8ea03c1427a8a4be6870f",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "805d677f48abde31d1f840c4dd0fcb1556390e9bf12d03a6c9c682202718c7f4",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "805d677f48abde31d1f840c4dd0fcb1556390e9bf12d03a6c9c682202718c7f4"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "805d677f48abde31d1f840c4dd0fcb1556390e9bf12d03a6c9c682202718c7f4"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 186,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    },
    {
     "title": "Write or Repair the Person Schema Guide",
     "slug": "how-to-set-up-schema-markup-for-personal-brand-site",
     "status": "gap",
     "stage": "—",
     "article": null,
     "articleKind": "unknown",
     "desc": "Show how to label a person’s site clearly. Use this when the team needs a checked schema guide.",
     "content": "---\nname: how-to-set-up-schema-markup-for-personal-brand-site\ndescription: \"Show how to label a person’s site clearly. Use this when the team needs a checked schema guide.\"\ncategory: Gaps & Tasks to Create\nstage: —\ndefinitive_article: \"GAP — to be written\"\nstatus: gap\n---\n\n# Write or Repair the Person Schema Guide\n\nA personal site should make clear who the person is. This task helps you write a guide for adding those facts in code that search tools can read. Start with a real site and checked facts. Finish with steps and proof that the code matches the page.\n\n**The path:** Find the main guide → document the real method → check and link the result.\n\n**Use this when:** the library needs a complete, current guide for this topic; this task writes or repairs that guide rather than silently running its client operation.\n\n## Inputs\n\n- The exact task, intended reader, useful result and existing pages that may already teach it.\n- Current [definitive-article instructions](https://local-service-spotlight.github.io/task-library/?task=create-or-update-a-definitive-article#task-create-or-update-a-definitive-article) and [article guidelines](https://localservicespotlight.com/article-guidelines/).\n- A real source run with dated evidence, or a clear list of the evidence still missing.\n- The real personal site, visible identity facts, verified profile links and existing schema from plugins or custom code.\n- The actual implementation record, saved markup and validation results; include only public facts suitable for that page.\n\n## First-run prompt\n\n> Find the current main guide for this topic. Use the real source run and current rules to repair it or prepare the missing recipe. Explain the value and first step simply, include proof and visuals, and show what can be completed now and what exact evidence remains.\n\n## Steps\n\n1. Search the owned site, Task Library and maintained source files for an existing main guide. Record the actual URL, title, role and current content. Repair a suitable canonical guide before creating a competing page; the old GAP field is a backlog claim, not proof that no guide exists.\n2. Define the reader, starting condition, necessary inputs and measurable finish. Use a short grade-5 opening that explains business value and the first action. Expand unfamiliar terms and link to the owned teaching guide; use vendor documents to substantiate product behavior.\n3. Read the real execution record and current source method. Separate observed steps, teaching examples and unresolved decisions. If a live run is needed, scope it explicitly through the operational task; writing this guide does not itself grant new account, publishing or spending authority.\n4. Explain Person schema as structured identity facts. Separate the person from their business or place: owning a personal website does not make the person a LocalBusiness, and a private home address is not a universal input.\n5. Inventory existing markup first and identify the maintained source, such as a plugin or template. Document a stable @id for the same person and references to that identity rather than duplicate, conflicting Person records.\n6. Show how name, URL, image and relevant public facts match the visible page. Add sameAs only for pages that unambiguously identify the same person; a podcast appearance about someone belongs in a different relationship, not automatically in sameAs.\n7. Document JSON syntax and Schema.org validation of the saved and ordinary public markup. Use Google’s Rich Results Test only for supported search features; a generic Person record need not produce a rich-result item. State that valid markup does not guarantee a Knowledge Panel or search appearance.\n8. Write the complete recipe, including exceptions, measured QA and the next owner. Put a meaningful diagram, real image or suitable playable video in the first desktop and phone screen. Add a lower Content Factory context diagram with the actual upstream and downstream tasks; every link must point to a verified destination.\n9. Review the exact source revision against the maintained article rules. Check the meaning and legibility of the real rendered visual at 1280×800 and 390×844, with scripts on and off where required. A grade number, empty colored box or keyword quota cannot substitute for useful instructions and proof.\n10. Use the site’s actual supported editor or builder and preserve its existing metadata, content and media. Save and read back the source. Publish when already authorized; otherwise save the concrete draft and the precise pending decision. For a published result, check the normal public URL, expected text, links and both first screens rather than relying only on a preview or cache-busting URL.\n11. Write the actual meta article with the same execution ID and evidence. Update the canonical mapping and related task links only after verifying the right live destination. Change a status only when its stated evidence requirements pass; a published page alone does not close runtime or certification gaps.\n\n## Definition of done (QA checklist)\n\n- [ ] An existing-guide search and canonical choice are recorded, with no accidental duplicate hub.\n- [ ] The opening names reader value and the first action in grade-5 language.\n- [ ] The person, business and sameAs relationships match verified identity evidence.\n- [ ] The guide reconciles existing markup and avoids exposing unnecessary private information.\n- [ ] Validation of actual public code is distinguished from any Google search feature or outcome.\n- [ ] The recipe has actual inputs, steps, measured QA and next handoff; meaningful first-screen and lower context visuals were reviewed.\n- [ ] Draft, saved, published, independently reviewed and actually executed states have separate evidence.\n- [ ] The real meta record and any verified canonical mapping use stable task and execution IDs.\n\n## Example(s)\n\n**Fictional teaching example — no client result or completed run.** A teaching page uses a stable Person ID and two verified profile placeholders. It explains how to replace them with real evidence. A green JSON syntax check is not labeled as a Knowledge Panel success.\n\n## Handoff and Content Factory context\n\nPass the checked guide, source revision, real meta record and open evidence list to [Add Appropriate Person or Business Schema](https://local-service-spotlight.github.io/task-library/?task=add-schema-markup-person-localbusiness#task-add-schema-markup-person-localbusiness). Make the Task Library point to the verified canonical destination after its publication and review conditions pass.\n\nThis documentation job uses Process to turn real source work into a reusable recipe and Post to save and check its release. In the [Content Factory](https://localservicespotlight.com/content-factory/), later real runs supply new meta articles that improve this same recipe. Catalog neighbors are suggestions, not proven prerequisites.\n\n## When this runs\n\nRun when a verified gap or source change requires a guide update. Reuse the same execution ID for revisions of that update; another client run has its own evidence and is not created by this authoring task.\n\n## First-run setup and continuity\n\nUse the files and accounts this task actually needs. A skill is a written recipe; the [AI worker](https://blitzmetrics.com/build-agents/) needs suitable tools and access to follow it. This file does not install an app, connect an account or start a timer. Follow the [setup guide](https://localservicespotlight.com/install/) for the chosen app. Carry out work already covered by the user's instructions; ask only for an exact missing item or a new action outside that scope.\n\nSave the source, current state, checked result and next owner in the project files. Check that record before retrying or handing work to another person. Configure a repeat only when requested, with its time zone, actual runtime and first successful firing. An app or model name does not prove persistence, memory or a schedule.\n\nKeep every agent media check muted with volume zero before playback. If that cannot be verified, use captions, metadata or still frames and record the limit. Do not play sound through the user's speakers without their current request.\n\n## Write up the real run\n\nFor each real attempt, [write the meta article](https://blitzmetrics.com/meta-article-prompt/): its task and source revision, starting point, work done, evidence, measured result, gaps and next handoff. Save one execution ID across retries and edits. Partial, blocked and failed work also gets a record. A saved draft satisfies writing while any public release is pending. Writing does not grant publication authority.\n\nA teaching example is not a real execution. Do not count it, a repeated check or a revision as another run. The [recipe and meta-article guide](https://localservicespotlight.com/meta-articles/) explains the link between reusable instructions and actual work.\n\n\n<!-- factory-layer:start -->\n\n## Factory chain (do not treat this as isolated)\n\n- **Phase:** —\n- **Importance:** 3/5 `●●●○○` — frequency 3, revenue 3, gating 3 (supporting)\n- **Browse earlier task:** —\n- **Browse later task:** —\nThese are nearby tasks in the library. Use this guide’s Inputs and Handoff sections to choose what comes before and after your work. Catalog order does not establish prerequisites or handoffs.\n- **Handoff:** Save this task’s actual output, source, date and checks where the receiving owner can read them. Follow the Inputs and Handoff sections for its next step.\n\n## Model routing (same factory, any engine)\n\n- **This task's lane:** `any` — Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.\n- **Single-engine path:** Use the capable AI app you already have. Check its required tools and access before starting. Pass the actual result and proof to the next task.\n- **Optional multi-engine:** A tested local model may draft; a stronger model may review facts and voice. Use supported tools for approved actions. Pick models from observed quality and cost; a model name does not prove it can run this task.\n- **Never** store the working state in one vendor's memory. Files in the Content Library are the bridge.\n\n<!-- factory-layer:end -->\n## Definitive article & links\n\n- Exact task: [Write or Repair the Person Schema Guide](https://local-service-spotlight.github.io/task-library/?task=how-to-set-up-schema-markup-for-personal-brand-site#task-how-to-set-up-schema-markup-for-personal-brand-site)\n- [Definitive article guide](https://blitzmetrics.com/definitive-article-guide/) — reusable recipe standards.\n- [Meta article prompt](https://blitzmetrics.com/meta-article-prompt/) — record the actual work.\n- [Schema.org Person](https://schema.org/Person) — property definitions.\n- [Google structured data rules](https://developers.google.com/search/docs/appearance/structured-data/sd-policies) — relevance and search-result limits.\n- [Website QA audit](https://blitzmetrics.com/website-qa-audit/) — identity checks on the finished page.\n\n## Review and evidence still needed\n\nThe original contributor state is preserved. Instruction review, article certification, account access and completed work are separate states.\n\n- Needs a verified canonical Person schema guide and a real implementation with identity and validation evidence.\n- The contributor GAP state remains until the actual canonical guide, required review and evidence are verified. These improved writing instructions alone do not close the gap.",
     "importance": 3,
     "freq": 3,
     "revenue": 3,
     "gating": 3,
     "phase": "—",
     "before": null,
     "after": null,
     "lane": "any",
     "lane_label": "Any capable chat model (Claude, ChatGPT, Grok, Gemini). SOP following, drafts, checklists.",
     "why": "supporting",
     "instructionReview": {
      "source_sha256": "4d5438ef5f2efe1a615a7479714afe3eadae420c35ab8645c206e4c2e53fb11f",
      "reviewed_at": "2026-10-13",
      "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
      "scope": "Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
      "incrementalReview": {
       "beforeSourceSha256": "12fed87261ca1185e242b8fc570a3d0c7ad9a014d8977050e084a1c197053a00",
       "previousReviewDate": "2026-09-06",
       "change": "Only the Content Factory teaching URL changed; no step, example, opening, status or acceptance changed.",
       "review": "https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md"
      }
     },
     "executionHistory": {
      "status": "unknown",
      "recordedRuns": null,
      "completedRuns": null,
      "failedRuns": null,
      "partialRuns": null,
      "completedLast30Days": null,
      "lastCompletedAt": null,
      "executionIds": [],
      "executionOutcomes": [],
      "acceptanceReviews": [],
      "setupReviews": []
     },
     "historicalDeliveryEvidence": {
      "count": 0,
      "candidateCount": 0,
      "records": []
     },
     "proofSummary": {
      "definition": "Dated output proof, separate from current-recipe acceptance and every full-verification gate. Recorded acceptance counts distinct completed execution IDs with a latest all-pass independent review per task/run; scope is limited to its named criteria. Historical proof counts distinct source jobs, never new runs. Historical acceptance requires identity, output and acceptance pass; handoff is reported separately.",
      "recordedAcceptedOutputCount": 0,
      "recordedAcceptedReviewCount": 0,
      "acceptedRecordedOutputs": [],
      "historicalVerifiedOutputCount": 0,
      "historicalAcceptedOutputCount": 0,
      "historicalIdentityOutputOnlyCount": 0,
      "historicalAcceptedHandoffPassCount": 0,
      "historicalAcceptedHandoffHoldCount": 0,
      "historicalAcceptedHandoffUnresolvedCount": 0,
      "historicalVerifiedEvidenceIds": [],
      "historicalAcceptedEvidenceIds": []
     },
     "standardVerification": {
      "instructionSourceSha256": "4d5438ef5f2efe1a615a7479714afe3eadae420c35ab8645c206e4c2e53fb11f",
      "articleKey": null,
      "gates": {
       "instructionRevisionReviewed": {
        "id": "instructionRevisionReviewed",
        "label": "Exact instruction revision reviewed",
        "state": "pass",
        "reason": "Current source bytes match the review recorded 2026-10-13. Review scope and limits: Instructions, source checks, teaching example and handoff reviewed. Real-run evidence and article certification remain separate. Destination-only revision: existing prose and check verdicts retained after exact diff inspection; current Content Factory target and relationship checked. https://github.com/Local-Service-Spotlight/task-library/blob/main/reviews/content-factory-link-2026-10-13.md",
        "reviewedAt": "2026-10-13",
        "reviewer": "Codex incremental destination review with independent GPT-6 Luna review",
        "sourceSha256": "4d5438ef5f2efe1a615a7479714afe3eadae420c35ab8645c206e4c2e53fb11f"
       },
       "instructionStandards": {
        "id": "instructionStandards",
        "label": "Instruction requirements checked",
        "state": "unknown",
        "reason": "The current exact-byte review has no structured instruction-requirements checklist.",
        "sourceSha256": "4d5438ef5f2efe1a615a7479714afe3eadae420c35ab8645c206e4c2e53fb11f"
       },
       "contributorComplete": {
        "id": "contributorComplete",
        "label": "Contributor reports guide complete",
        "state": "unmet",
        "reason": "The contributor status is gap; finish and review the guide."
       },
       "articleMapped": {
        "id": "articleMapped",
        "label": "Canonical article mapped",
        "state": "unmet",
        "reason": "No valid canonical article URL is mapped for this task."
       },
       "articleCatalogGate": {
        "id": "articleCatalogGate",
        "label": "Article catalog gate",
        "state": "unmet",
        "reason": "The catalog gate cannot pass until the task has a valid article mapping."
       },
       "articleSemanticCertification": {
        "id": "articleSemanticCertification",
        "label": "Article semantic certification",
        "state": "unknown",
        "reason": "There is no mapped article revision to review semantically."
       },
       "taskExampleEvidence": {
        "id": "taskExampleEvidence",
        "label": "Task-attributed example evidence",
        "state": "unknown",
        "reason": "No mapped article exists from which to audit task examples."
       },
       "recordedExecution": {
        "id": "recordedExecution",
        "label": "Recorded real execution",
        "state": "unknown",
        "reason": "No execution ledger record names this task. Historical run frequency is unknown."
       },
       "acceptedExecution": {
        "id": "acceptedExecution",
        "label": "Accepted execution result",
        "state": "unknown",
        "reason": "No structured acceptance review is recorded for the current canonical article revision. A completed run label is not acceptance."
       },
       "setupSuccess": {
        "id": "setupSuccess",
        "label": "New-user setup success",
        "state": "unknown",
        "reason": "No structured receipt shows a novice human loaded the needed files, had access and completed this task successfully. Installation and scheduling are not certified.",
        "supportedRoute": "manual-guide",
        "installationCertified": false,
        "schedulingCertified": false
       }
      },
      "unmetStandardGates": [
       "contributorComplete",
       "articleMapped",
       "articleCatalogGate"
      ],
      "heldStandardGates": [],
      "unknownStandardGates": [
       "instructionStandards",
       "articleSemanticCertification",
       "taskExampleEvidence",
       "recordedExecution",
       "acceptedExecution",
       "setupSuccess"
      ],
      "fullyVerified": false,
      "queuePosition": 96,
      "priority": "P1",
      "priorityReason": "Known standard gap",
      "nextAction": "No valid canonical article URL is mapped for this task."
     }
    }
   ]
  }
 ]
}