Noindex proof intake ledger

Record accepted proof before changing a public surface.

This ledger mirrors the open external action queue and turns each proof requirement into a closeout record: what proof is accepted, where to write it, what can change after intake, what remains blocked, and which commands must pass before deployment.

Proof intake gate: Do not mark an external dependency complete, activate DOGGYD4N, publish gear links, add real-dog claims, close social reviews, or change GA4/GSC decisions until the accepted proof record is written and the listed revalidation commands pass.

Open proof records

63 intake rows still require accepted proof.

Mix: 3 access / 5 approval / 8 evidence / 14 social / 33 analytics.

Intake state mix

waiting-for-final-whitelist-proof: 1 / waiting-for-approval-proof: 4 / waiting-for-read-access-proof: 3 / blocked-until-dated-evidence: 8 / ready-for-public-url-proof: 10 / blocked-until-controlled-footage: 8 / waiting-for-ga4-proof: 15 / waiting-for-email-followup-proof: 4 / waiting-for-gsc-proof: 10

Waiting rows stay waiting even when planning packets exist; only dated proof can move a row into source updates and live validation.

waiting-for-final-whitelist-proof

doggyd4n

Attach final ClickBank good-to-go, dashboard approval, or generated DOGGYD4N affiliate link proof for affiliate nickname gooochiii; the 2026-06-08 trainer review is recorded but does not replace whitelist proof.

Status: approved-paused Priority: P1 Type: affiliate-approval
Accepted proof record

Attach final ClickBank good-to-go, dashboard approval, or generated DOGGYD4N affiliate link proof for affiliate nickname gooochiii; the 2026-06-08 trainer review is recorded but does not replace whitelist proof.

Required proof

Trainer review passed on 2026-06-08; final ClickBank good-to-go or dashboard proof is still required before any reactivity CTA changes. | 2026-06-08 Doggy Dan email says whitelist setup is in progress and ClickBank confirmation should arrive later; do not treat it as final good-to-go proof.

Proof acceptance check

Accept only a final ClickBank good-to-go email, dashboard approval state, or generated DOGGYD4N affiliate link proof; the 2026-06-08 Doggy Dan email is whitelist-in-progress only.

Primary update target

src/data/affiliateProgramStatus.ts

Secondary update target

/affiliate-approvals/ | /launch-ops/external-action-queue/

Public change allowed after intake

Activate DOGGYD4N only if final ClickBank whitelist proof and the 2026-06-08 trainer review outcome are both recorded; keep professional-help-first copy.

Still blocked until

No public DOGGYD4N hoplink, CTA, or auto-forward while final ClickBank good-to-go or dashboard proof is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch && npm run audit:gear

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if approval cannot be reverified, tracking fails, merchant URL changes risk category, or audit finds an unapproved outbound link.

waiting-for-approval-proof

amazon-associates

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Status: not-confirmed Priority: P1 Type: affiliate-approval
Accepted proof record

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Required proof

Account approval, merchant approval, real tracking ID, approved HTTPS merchant URL, factual commission note, and gear safety proof. | Merchant or network dashboard screenshot/export plus the exact tracking ID and product or category URL.

Proof acceptance check

Accept only a dashboard state, approval email, real tracking ID, approved merchant URL, and dated note that matches the program row.

Primary update target

src/data/affiliateProgramStatus.ts | src/data/gearOffers.ts

Secondary update target

/affiliate-approvals/ | /launch-ops/external-action-queue/

Public change allowed after intake

Replace category-only gear guidance with approved merchant redirect details only for approved merchants and safe categories.

Still blocked until

No public outbound merchant link, hoplink, or auto-forward while approval, tracking ID, or merchant URL is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch && npm run audit:gear

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if approval cannot be reverified, tracking fails, merchant URL changes risk category, or audit finds an unapproved outbound link.

waiting-for-approval-proof

chewy

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Status: not-confirmed Priority: P1 Type: affiliate-approval
Accepted proof record

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Required proof

Account approval, merchant approval, real tracking ID, approved HTTPS merchant URL, factual commission note, and gear safety proof. | Merchant or network dashboard screenshot/export plus the exact tracking ID and product or category URL.

Proof acceptance check

Accept only a dashboard state, approval email, real tracking ID, approved merchant URL, and dated note that matches the program row.

Primary update target

src/data/affiliateProgramStatus.ts | src/data/gearOffers.ts

Secondary update target

/affiliate-approvals/ | /launch-ops/external-action-queue/

Public change allowed after intake

Replace category-only gear guidance with approved merchant redirect details only for approved merchants and safe categories.

Still blocked until

No public outbound merchant link, hoplink, or auto-forward while approval, tracking ID, or merchant URL is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch && npm run audit:gear

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if approval cannot be reverified, tracking fails, merchant URL changes risk category, or audit finds an unapproved outbound link.

waiting-for-approval-proof

petco

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Status: not-confirmed Priority: P1 Type: affiliate-approval
Accepted proof record

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Required proof

Account approval, merchant approval, real tracking ID, approved HTTPS merchant URL, factual commission note, and gear safety proof. | Merchant or network dashboard screenshot/export plus the exact tracking ID and product or category URL.

Proof acceptance check

Accept only a dashboard state, approval email, real tracking ID, approved merchant URL, and dated note that matches the program row.

Primary update target

src/data/affiliateProgramStatus.ts | src/data/gearOffers.ts

Secondary update target

/affiliate-approvals/ | /launch-ops/external-action-queue/

Public change allowed after intake

Replace category-only gear guidance with approved merchant redirect details only for approved merchants and safe categories.

Still blocked until

No public outbound merchant link, hoplink, or auto-forward while approval, tracking ID, or merchant URL is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch && npm run audit:gear

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if approval cannot be reverified, tracking fails, merchant URL changes risk category, or audit finds an unapproved outbound link.

waiting-for-approval-proof

impact

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Status: not-confirmed Priority: P1 Type: affiliate-approval
Accepted proof record

Record the approval email or dashboard state, real tracking ID, approved merchant URL, and matching gear offer fields before any outbound gear link.

Required proof

Account approval, merchant approval, real tracking ID, approved HTTPS merchant URL, factual commission note, and gear safety proof. | Merchant or network dashboard screenshot/export plus the exact tracking ID and product or category URL.

Proof acceptance check

Accept only a dashboard state, approval email, real tracking ID, approved merchant URL, and dated note that matches the program row.

Primary update target

src/data/affiliateProgramStatus.ts | src/data/gearOffers.ts

Secondary update target

/affiliate-approvals/ | /launch-ops/external-action-queue/

Public change allowed after intake

Replace category-only gear guidance with approved merchant redirect details only for approved merchants and safe categories.

Still blocked until

No public outbound merchant link, hoplink, or auto-forward while approval, tracking ID, or merchant URL is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch && npm run audit:gear

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if approval cannot be reverified, tracking fails, merchant URL changes risk category, or audit finds an unapproved outbound link.

waiting-for-read-access-proof

gmail-connector-reauth

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Status: reauth-required Priority: P1 Type: access-recovery
Accepted proof record

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Required proof

Connector search output or browser Gmail screenshot with timestamp, query, result count, sender, subject, and relevant approval or support proof.

Proof acceptance check

Accept only dated connector output, authenticated report screenshots, or workflow URLs that identify the account, property, repository, query, or date range checked.

Primary update target

external-launch-checklist-2026-06-02.md | ops-log-2026-06-03.md | src/data/affiliateProgramStatus.ts only when new approval proof exists.

Secondary update target

/launch-ops/ | /launch-ops/external-action-queue/

Public change allowed after intake

No public visible change; only update the access proof note and then run the underlying approval, GA4, or Actions check.

Still blocked until

Do not mark approvals, workflow runs, GA4 counts, or growth decisions complete while access is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback any closed access note if the connector loses authorization again, the report cannot be reopened, or proof was captured from the wrong account/property/repository.

waiting-for-read-access-proof

github-actions-access

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Status: authorization-required Priority: P1 Type: access-recovery
Accepted proof record

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Required proof

Workflow run URL, commit SHA, workflow name, conclusion, timestamp, latest attempt, and failing job log if any run is not green.

Proof acceptance check

Accept only dated connector output, authenticated report screenshots, or workflow URLs that identify the account, property, repository, query, or date range checked.

Primary update target

ops-log-2026-06-03.md | live-deployment-check-2026-06-03.md | worker-live-check-2026-06-03.md.

Secondary update target

/launch-ops/ | /launch-ops/external-action-queue/

Public change allowed after intake

No public visible change; only update the access proof note and then run the underlying approval, GA4, or Actions check.

Still blocked until

Do not mark approvals, workflow runs, GA4 counts, or growth decisions complete while access is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback any closed access note if the connector loses authorization again, the report cannot be reopened, or proof was captured from the wrong account/property/repository.

waiting-for-read-access-proof

ga4-read-access

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Status: login-or-read-access-required Priority: P1 Type: access-recovery
Accepted proof record

Paste the dated connector output, report screenshot, or workflow URL into the access recovery packet before closing only that access lane.

Required proof

GA4 screenshot or export with property name, date range, event count, source or page cluster breakdown, and explicit zero-count note when applicable.

Proof acceptance check

Accept only dated connector output, authenticated report screenshots, or workflow URLs that identify the account, property, repository, query, or date range checked.

Primary update target

/growth-review/ | /growth-review/analytics-manifest.csv | external-launch-checklist-2026-06-02.md | ops-log-2026-06-03.md.

Secondary update target

/launch-ops/ | /launch-ops/external-action-queue/

Public change allowed after intake

No public visible change; only update the access proof note and then run the underlying approval, GA4, or Actions check.

Still blocked until

Do not mark approvals, workflow runs, GA4 counts, or growth decisions complete while access is missing.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback any closed access note if the connector loses authorization again, the report cannot be reopened, or proof was captured from the wrong account/property/repository.

blocked-until-dated-evidence

owner-test-treasure-hunt

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: needs-real-test Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated session note, dog age/size/energy, setup, dog response, mistakes, safety observations, session length, publishing decision, and safe media reference if used.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

src/data/evidenceCollectionStatus.ts

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

owner-test-snuffle-scatter

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: needs-real-test Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated session note, dog age/size/energy, setup, dog response, mistakes, safety observations, session length, publishing decision, and safe media reference if used.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

src/data/evidenceCollectionStatus.ts

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

owner-test-muffin-game

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: needs-real-test Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated session note, dog age/size/energy, setup, dog response, mistakes, safety observations, session length, publishing decision, and safe media reference if used.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

src/data/evidenceCollectionStatus.ts

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

media-indoor-low-risk-games

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: needs-real-media Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Real photo or clip reference, date, setup notes, safety check result, caption boundary, and linked owner note when the media implies a dog tried the game.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

src/data/evidenceCollectionStatus.ts

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

media-shorts-controlled-demos

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: needs-real-media Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Real photo or clip reference, date, setup notes, safety check result, caption boundary, and linked owner note when the media implies a dog tried the game.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

src/data/evidenceCollectionStatus.ts

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

trainer-review-puppy

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: ready-to-add-notes Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated trainer notes, reviewer name or credential note, exact page list, requested changes, approval limits, and do-not-promote flags.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

trainer-review-needed.md

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

trainer-review-leash

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: ready-to-add-notes Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated trainer notes, reviewer name or credential note, exact page list, requested changes, approval limits, and do-not-promote flags.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

trainer-review-needed.md

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

blocked-until-dated-evidence

trainer-review-reactivity

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Status: ready-to-add-notes Priority: P2 Type: evidence-intake
Accepted proof record

Attach the dated owner notes, media files, or trainer comments to the evidence tracker and limit public copy to the exact page or cluster covered.

Required proof

Dated trainer notes, reviewer name or credential note, exact page list, requested changes, approval limits, and do-not-promote flags.

Proof acceptance check

Accept only dated notes, media, or trainer feedback that covers every required field and safety stop in the proof packet.

Primary update target

trainer-review-needed.md

Secondary update target

/evidence-tracker/ | /review-status/

Public change allowed after intake

Add narrow first-hand note, real media reference, or trainer-reviewed wording only to the exact covered page or cluster.

Still blocked until

No owner-tested, real dog demo, trainer-reviewed, or stronger trust claim until proof is attached and dated.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback if notes are incomplete, media conflicts with safety checks, or trainer feedback flags wording as unsafe.

ready-for-public-url-proof

pin-indoor-10-games

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-indoor-10-games.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-rainy-day-enrichment

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-rainy-day-enrichment.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-diy-brain-games

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-diy-brain-games.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-puppy-redirect

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-puppy-redirect.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-puppy-games

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-puppy-games.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-loose-leash-reset

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-loose-leash-reset.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-puzzle-toy-criteria

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-puzzle-toy-criteria.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-snuffle-mat-safety

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-snuffle-mat-safety.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-trigger-log

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-trigger-log.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

ready-for-public-url-proof

pin-game-finder-quiz

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Status: ready-to-publish Priority: P1 Type: social-publishing
Accepted proof record

Paste the public URL, publish date, exact UTM landing URL, and proof capture into the social launch tracker.

Required proof

output/playwright/pinterest-exports-2026-06-02/pin-game-finder-quiz.png | Copy is safety-first and does not imply real dog testing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-one-game-30s

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Status: needs-real-footage Priority: P2 Type: social-publishing
Accepted proof record

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Required proof

output/playwright/shorts-production-cards-2026-06-02/short-one-game-30s.png | Skip food games if there is guarding, swallowing unsafe objects, or multiple dogs competing.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-puzzle-toy-test

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Status: needs-real-footage Priority: P2 Type: social-publishing
Accepted proof record

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Required proof

output/playwright/shorts-production-cards-2026-06-02/short-puzzle-toy-test.png | Do not show or recommend puzzle toys for dogs who break and swallow pieces.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-loose-leash-reset

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Status: needs-real-footage Priority: P2 Type: social-publishing
Accepted proof record

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Required proof

output/playwright/shorts-production-cards-2026-06-02/short-loose-leash-reset.png | Do not film near hard triggers or dogs the handler cannot control.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-common-mistake-demo

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Status: needs-real-footage Priority: P2 Type: social-publishing
Accepted proof record

Attach the controlled footage file or public video URL before changing the Shorts row from footage-needed to published or review-ready.

Required proof

output/playwright/shorts-production-cards-2026-06-02/short-common-mistake-demo.png | Do not use frustration, fear, or failure as entertainment.

Proof acceptance check

Accept only a public URL or real controlled footage plus exact UTM URL, publish date, and proof capture.

Primary update target

src/data/socialLaunchStatus.ts

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

quiz_result

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

GA4 event counts by segment after the quiz receives real sessions.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

lead_magnet_signup

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

GA4 event counts plus Worker/Resend delivery checks when traffic is live.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

internal_cta_click

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

GA4 event counts by source campaign and page cluster.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

offer_box_view

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

GA4 offer-box exposure counts paired with affiliate clicks.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

affiliate_click

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

GA4 affiliate_click plus ClickBank reporting by tid, campaign, creative, and ad.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-email-followup-proof

email-followup-send-status

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Status: needs-worker-data Priority: P4 Type: analytics-review
Accepted proof record

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Required proof

KV sample or export showing queued-not-sent, sending, sent, send-failed, skipped-suppressed, and matching Resend send evidence for the review window.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | email-follow-up-map-2026-06-03.md | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-email-followup-proof

email-followup-return-visits

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Required proof

GA4 sessions or events filtered to source_utm_source=resend, source_utm_medium=email, source_utm_campaign=lead_magnet_delivery, and source_utm_content containing followup.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | email-follow-up-map-2026-06-03.md | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-email-followup-proof

email-followup-affiliate-path

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Status: tracking-ready Priority: P3 Type: analytics-review
Accepted proof record

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Required proof

GA4 affiliate_click filtered to resend/email/followup traffic plus ClickBank tid or traffic parameter evidence for approved offers only.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | email-follow-up-map-2026-06-03.md | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-email-followup-proof

email-followup-unsubscribe-suppression

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Status: needs-worker-data Priority: P4 Type: analytics-review
Accepted proof record

Record Worker KV, Resend, GA4 email UTM, and suppression evidence before changing follow-up cadence, volume, or segment routing.

Required proof

KV suppression:* sample, unsubscribe token status, and skipped-suppressed followup:* records when a subscriber unsubscribes.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/growthReviewStatus.ts | email-follow-up-map-2026-06-03.md | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-indoor-10-games

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-rainy-day-enrichment

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-diy-brain-games

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-puppy-redirect

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-puppy-games

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-loose-leash-reset

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-puzzle-toy-criteria

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-snuffle-mat-safety

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-trigger-log

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-ga4-proof

pin-game-finder-quiz

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: waiting-for-publish Priority: P4 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-one-game-30s

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: needs-real-footage Priority: P2 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

Real controlled footage, 24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-puzzle-toy-test

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: needs-real-footage Priority: P2 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

Real controlled footage, 24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-loose-leash-reset

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: needs-real-footage Priority: P2 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

Real controlled footage, 24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

blocked-until-controlled-footage

short-common-mistake-demo

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Status: needs-real-footage Priority: P2 Type: analytics-review
Accepted proof record

Record the GA4 screenshot or export with event name, page cluster, campaign filters, date range, counts, and decision output.

Required proof

Real controlled footage, 24h tracking check, 72h expected-signal check, and 7d decision after publishing.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/growth-review/

Primary update target

src/data/socialLaunchStatus.ts | src/data/growthReviewStatus.ts | /growth-review/

Secondary update target

/growth-review/ | /growth-review/review-packet/

Public change allowed after intake

Keep, rewrite, pause, or kill the matching CTA, landing card, email path, or offer placement only for the proven campaign and page cluster.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gsc-gsc-impressions

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

At least 7 days of GSC impressions after the page is indexed.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gsc-indexed-pages

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-index-check Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

GSC page indexing state plus sitemap presence for each indexable cluster page.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/seo-review/indexing-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gsc-queries-by-page

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Top queries by page after impressions exist.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gsc-ctr-by-intent-page

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

CTR and average position by page for at least one weekly review window.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gsc-pages-with-impressions-but-low-ctr

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

GSC impressions paired with GA4 action counts from the same review window.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

pillar-training-games

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Weekly after GSC impressions appear.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

problem-pages

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Weekly, with high-risk pages checked before any CTA expansion.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

resource-lead-magnets

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Weekly after publishing social/email traffic and sitemap recrawl.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

gear-guides

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Weekly, but merchant links stay paused until approvals and tracking IDs exist.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.

waiting-for-gsc-proof

game-library

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Status: needs-gsc-data Priority: P3 Type: analytics-review
Accepted proof record

Record the GSC screenshot or export with page/query filters, date range, crawl or index state, and the exact SEO decision output.

Required proof

Weekly after crawl, then monthly once stable.

Proof acceptance check

Accept only a GA4 or GSC screenshot/export with date range, filters, metric evidence, and decision output.

Proof packet

/growth-review/review-packet/

Source tracker

/seo-review/

Primary update target

src/data/seoReviewStatus.ts | /seo-review/

Secondary update target

/seo-review/ | /growth-review/review-packet/

Public change allowed after intake

Rewrite title, meta, internal links, or cluster copy only for the page/query pair proven by GSC and matching GA4 action evidence when traffic exists.

Still blocked until

No funnel, CTA, title, meta, content-cluster, or internal-link change from impressions alone.

Local revalidation command

npm run check && npm run build && npm run audit:growth && npm run audit:launch

Live revalidation

After deploy, verify the changed route and run npm run audit:live.

Rollback trigger

Rollback public change if the report filters were wrong, the date range is too thin, or later data contradicts the decision.