# New download / resource page — agent to-do template

**Last Updated:** 2026-03-25

For gated download pages (`v2/pages/download_*.php`) and related resource pages that use the downloads carousel. **Hub:** [WEBSITE_PAGE_PUBLICATION_INDEX.md](../WEBSITE_PAGE_PUBLICATION_INDEX.md).

## Content and lead capture

- [ ] HubSpot / gated form, GDPR consent, file delivery path per `.cursor/rules/download-pages.mdc`
- [ ] Internal linking: [NEW_DOWNLOAD_LINKING_CHECKLIST.md](../pages/download-pages/NEW_DOWNLOAD_LINKING_CHECKLIST.md) (if applicable)

## OG image

- [ ] Spec slug in `og-image-specs.json` (often `download-*` or dedicated key—match registry)
- [ ] If `--gemini-visuals`: `VISUAL_DESCRIPTIONS` + `VISUAL_ONLY_PROMPTS` for that slug in `generate-og-image-gemini.py`
- [ ] Generate, validate (`validate-og-images.py`, `validate-og-logo.py`)
- [ ] `og-image-registry.php` and page meta + `og_image_alt`
- [ ] Checklist: [NEW_PAGE_OG_AND_SOCIAL_CHECKLIST.md](../../systems/og-images/NEW_PAGE_OG_AND_SOCIAL_CHECKLIST.md)

## Downloads carousel

- [ ] Register asset in `v2/base/downloads_carousel.php` data / `$filenameToSlugMap` if the PHP basename differs from the public slug
- [ ] Set `$currentDownloadSlug = '...'` before `include '../base/downloads_carousel.php';`
- [ ] Place include **before** the FAQ block (matches existing `download_*.php` pages)
- [ ] Confirm peer download pages list the new item where intended

## QA

- [ ] Carousel order vs FAQ; form + download flow
- [ ] OG tags; post-deploy social debugger
