Shot 1
Checkpoint board.
4 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Source package | Pull Drive handoff materials into repo drive-handoff | All active prototypes, starter docs, company JSON, fonts, and handoff files are local. | Drive materials copied into repo; expired signed-link docs replaced with local build notes. | cc78ed3 | Files present; expired XML stubs removed. |
| Done | Build system | Scaffold Astro static site astro-foundation | Kinsta-ready local Astro app exists. | Static output, scripts, lockfile, fonts, shared layout, and build config in place. | cc78ed3 | Build passes. |
| Done | Prototype fidelity | Restore original category map design category-map-fidelity | Home page keeps the original strategic-market-map intent while using the current seven-step category authority language. | Index page renders the current category map route with shared shell, rail, and internal URL rewrites. | 696fa9d | Live HTML contains current category map copy and shared-shell classes. |
| Done | Data rendering | Render company ranking data from JSON json-rankings | The rankings page is powered by the 50-company dataset. | League table and three profile routes render from data/companies.json. | cc78ed3 | Internal links resolve; 50 companies detected. |
Shot 2
Checkpoint board.
12 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Conversion | Build fast Authority Score assessment authority-score-funnel | CEOs, CFOs, CMOs, and comms leads can click through a fast, reality-grounded quiz. | 12-question assessment model, 4 field-note checkpoints, 3 result bands, static no-persistence flow. | 7bb8578 | Assessment JSON validates; /score/ returns 200. |
| Done | Data architecture | Define underlying data model data-model | We know what entities the live intelligence system needs. | Company, person, signal, coverage, visitor, referral, and assessment-response model documented. | 7bb8578 | Model file committed under data/assessment. |
| Done | Integrations | Map live API stack api-stack | Clear path from static reviewed JSON to live refreshes. | Ahrefs, GSC, HubSpot, coverage/news, funding, people, visitor-intent, and AI citation layers mapped. | 7bb8578 | docs/api-data-stack.md committed. |
| Done | QA | Record smoke-test baseline smoke-qa | We have a QA receipt instead of relying on memory. | Build, link scan, assessment validation, and 10 route checks documented. | 7bb8578 | docs/qa/smoke-test-2026-06-10.md committed. |
| Done | Product ops | Create visual progress table roadmap-board | Roadmap and checkpoints are visible in the site while we build. | JSON-backed /roadmap/ page with status, owner view, tech view, commits, and QA gates. | ec941bc | Build passes; /roadmap/ returns 200; counts validate. |
| Done | Prototype port | Port full package page package-port | The quiz result has a strong destination page with matrix and calculator. | Port gfd-cyber-ultimate.html to /package/ with calculator JS intact. | 59c872f | Prototype source rendered through Astro with route rewrites. |
| Done | Prototype port | Port authority momentum tracker tracker-port | Momentum tracker becomes a real launch surface, not a placeholder. | Port tracker surface to /tracker/, then expand it into authority momentum across coverage, search, and answer visibility. | 59c872f | Prototype source rendered through Astro with route rewrites. |
| Done | Prototype port | Port media index media-index-port | Media map becomes usable as free intelligence. | Port gfd-media-index.html to /media-index/ with no public contact info. | 59c872f | Prototype source rendered through Astro with route rewrites. |
| Done | Prototype port | Bring rankings page to prototype fidelity rankings-fidelity | Rankings look like the Cowork market assessment page while staying JSON-rendered. | Replace placeholder-style rankings with prototype CSS/structure plus JSON rows. | 59c872f | Prototype shell ported; rows generated from data/companies.json. |
| Done | Prototype port | Port company profiles profile-port | CrowdStrike, Cyera, and Palo Alto profiles match the researched prototypes. | Extract prototype profile data into data/profiles/*.json and render with one [slug] template. | 59c872f | Prototype source rendered through Astro with route rewrites. |
| Done | Backend architecture | Define backend-to-revenue flow backend-revenue-blueprint | Clear map from frontend visitor to lead, deal, signed client, fulfillment, PM, and AM. | Revenue lifecycle JSON plus backend architecture doc define system ownership and data flow. | f426741 | Architecture docs committed; roadmap includes backend-to-revenue checkpoints. |
| Done | Conversion | Build quoter / bid-builder flow quoter-builder | Prospects can self-size the likely route without treating the number as a binding proposal. | Static /quote/ bid-builder renders from data/assessment/bid-builder.json and outputs route, drivers, score, and HubSpot hidden payload preview. | this-commit | Build passed with local Rollup WASM workaround; browser click-through produced route, score, and payload; static link scan passed. |
Shot 3
Checkpoint board.
9 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Deployment | Connect GitHub deploy source github-remote | Joe can push from GitHub Desktop and trigger the live deploy path. | GitHub main is connected to the Sevalla static-site deployment source. | launch-live | Push-to-deploy path proved on cyber.greenflagdigital.com. |
| Done | Deployment | Configure Sevalla Static Site kinsta-static | cyber.greenflagdigital.com can go live. | Build command npm run build; publish directory dist; DNS points cyber.greenflagdigital.com to the Sevalla static site. | launch-live | Sevalla auto-deploy is proven from GitHub main. |
| Done | Revenue ops | Define HubSpot score-capture contract hubspot-score-contract | We know exactly what quiz and quoter data should become CRM context. | Contact, company, assessment, deal fields, hidden payload, and workflow draft documented. | 59c872f | Contract file and implementation notes committed; live form remains blocked on portal/form details. |
| Done | Revenue ops | Document HubSpot form flow hubspot-form-flow | Clear answer for what Joe creates in HubSpot and what Codex wires in Astro. | docs/hubspot-form-flow.md maps custom Astro UI, Forms API handoff, supplied HubSpot IDs, manual field creation, and scripted property creation. | this-commit | Docs cross-reference score and quote payload contracts plus property creation script. |
| Done | Revenue ops | Build custom lead-capture UI custom-capture-ui | Prospects complete a polished GFD capture step instead of seeing a generic HubSpot embed. | Quote result includes validated contact fields, hidden route payload merge, HubSpot Forms API adapter, and local preview mode. | 2f0f884 | Browser smoke and build passed; live HubSpot IDs wired in follow-up commit. |
| Active | Revenue ops | Map HubSpot lead, company, assessment, and deal properties hubspot-lead-payload | Custom capture UI is wired to the HubSpot form endpoint; next step is one controlled live test submission. | Portal ID 1186707 and form GUID 45db979f-2e05-4ba5-bf39-337e61913317 are configured in /quote/ submit adapter. | this-commit | Needs live form submission test after confirming all HubSpot fields exist on the form. |
| Next | QA | Visual QA across desktop/mobile visual-qa | Launch pages look intentional and match prototypes. | Need browser screenshot pass for home, score, package, rankings, tracker, media index. | pending | Pending after prototype ports. |
| Next | QA | Performance and SEO spot checks lighthouse | No obvious launch-day performance or metadata problems. | Run Lighthouse or lightweight HTML checks on production build. | pending | Pending final page set. |
| Blocked | Integrations | Connect HubSpot score capture hubspot-fields | Assessment answers can become leads and routed follow-up. | Needs approved HubSpot form/embed or CRM private app fields. | pending | Blocked on HubSpot portal/form details. |
Post-launch
Keep it alive.
5 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Automation | Build autonomous NYT/WSJ coverage goal runner coverage-goal-runner | A deterministic coverage desk now publishes the latest source-backed cyber funding coverage state and blocker list. | data/coverage-goal config and published JSON, Node runner, validator, cap/overflow logic, /coverage/ page, QA scan, and 2-hour GitHub Actions workflow. | this-commit | Unit tests passed; dry run stopped with source blockers; first local run wrote blocker baseline; build/link/browser checks passed. |
| Next | Automation | Automate data refresh api-automation | The intelligence layer can stay fresh without hand updates. | Add scripts and GitHub Actions for API export -> staging -> reviewed JSON. | pending | Do after static launch and API access decisions. |
| Next | Revenue ops | Define sales-cycle handoff automation sales-cycle-handoff | Lead becomes a deal with tasks, owner, assessment summary, and next step. | HubSpot workflow creates/updates contact, company, deal, notes, and owner tasks after qualified conversion. | pending | Requires HubSpot pipeline and owner rules. |
| Next | Delivery ops | Define closed-won fulfillment handoff fulfillment-handoff | Signed client triggers kickoff, PM setup, reporting cadence, and account ownership. | Closed-won HubSpot deal triggers PM workspace, client folder, kickoff checklist, recurring reporting, and AM tasks. | pending | Requires chosen PM workspace and kickoff template. |
| Blocked | Automation | Connect approved NYT and WSJ source access coverage-source-access | The runner is ready, but real NYT/WSJ coverage requires approved source credentials or licensed export access. | Needs approved source credential plus approved source credentials in GitHub Actions. | pending | Blocked asks are visible in data/coverage-goal/published.json and /coverage/. |
Phase 5
Checkpoint board.
1 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Positioning | Add full-package content-offer CTAs full-package-content-offers | Each cyber step now points to a matched offer that spans SEO, AEO, PR, content, analytics, and reporting instead of only press. | src/lib/content-offers.js renders nine secondary offer modules across prototype and Astro pages with page-budget-safe CSS. | f2805a0 | Build, link scan, design audit, leak scan, and desktop/mobile offer smoke passed. |
Phase 6
Checkpoint board.
1 checkpoints
| Status | Workstream | Checkpoint | Product View | Tech View | Commit | QA / Gate |
|---|---|---|---|---|---|---|
| Done | Product ops | Reconcile docs and roadmap with full-package positioning phase-6-positioning-contract | Future Codex and Claude passes have one clear source of truth for the full GFD Cyber Category Momentum System. | Add positioning brief; update rail spec, production guide, tracker config, public metadata, and roadmap language. | phase-6 | Build, link scan, design audit, leak scan, and desktop/mobile browser smoke passed. |