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 Cowork Base Camp design basecamp-fidelity | Home page matches the Cowork prototype instead of a redesigned interpretation. | Index page renders from prototype source with internal URL rewrites. | 696fa9d | Live HTML contains original prototype classes and copy. |
| 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 press tracker tracker-port | Coverage tracker becomes a real launch surface, not a placeholder. | Port gfd-press-tracker.html to /tracker/ and route CTAs to /score/. | 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 | 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 | Deployment | Configure Kinsta Static Site kinsta-static | cyber.greenflagdigital.com can go live. | Build command npm run build; publish directory dist; DNS to Kinsta target. | pending | Run production build after remote connected. |
| 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. |
| Blocked | Deployment | Create GitHub remote and push github-remote | Repo is ready to connect to Kinsta. | Needs GitHub repo URL or connector action. | pending | Local git is clean; remote not configured. |
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 NYT_API_KEY plus WSJ_APPROVED_EXPORT_PATH, FACTIVA_EXPORT_PATH, or DOW_JONES_EXPORT_PATH in GitHub Actions. | pending | Blocked asks are visible in data/coverage-goal/published.json and /coverage/. |