Skip to content

How this was made

These docs are a derived artifact. They aren’t written from memory — they’re generated from PulseAd’s live source repositories and pinned to the exact commit each page was produced from. That’s what makes them re-syncable: when the code moves, you re-run the sync and only the affected pages change. (To do that, see Refreshing the docs.)

  • The source repos are the truth for what exists. Endpoints, agents, models, tables, CLI commands — all read from code, not recalled.
  • This repo is the truth for the mental model and point of view. It explains how the pieces fit, what to predict, and where the gotchas are.
  • Every page records its provenance. sync/manifest.json maps each page to the source paths it’s derived from and pins the commit it was last generated from. A freshness check (npm run freshness) fails the build if a page has no provenance or a link breaks.
  • Unverifiable claims don’t get published. Anything the code can’t confirm goes to _internal/needs-johnny.md instead of being guessed.

The full contract lives in AGENTS.md at the repo root; this page is the human-readable summary.

  • Astro Starlight — the docs site framework.
  • Bilingual — English at /, Korean mirror under /ko/.
  • Cloudflare Pages — static hosting.
  • The interactive bits (the AI models map) are Astro components; provider logos come from lobe-icons.

The GitHub projects these docs are pulled from

Section titled “The GitHub projects these docs are pulled from”

Every page is derived from one or more PulseAd/* repositories. Here’s what each contributes:

GitHub projectBranchWhat it feeds in these docs
PulseAd/ai-apidevelopThe backend “brain” — overview, capabilities, reference, the chat/report agents, and most of the AI models map
PulseAd/pulsy-frontenddevelopThe Pulson web app — the overview, guides, and the user-facing agents (the three families)
PulseAd/pulsead-agentsmasterThe autonomous AgentCore layer — campaign agents, the optimize-cycle, and the autonomous side of the AI models map
PulseAd/snowflake-semantic-agentmainHow the semantic layer is built/refreshed — the data model
PulseAd/data_semanticviewmainThe semantic views and per-domain analysts — the data model
PulseAd/off-amazon-uploadmainOff-Amazon channel ingestion — data & coverage
PulseAd/aop-hermesmainThe operator tool surface — the aop CLI and the read-vs-write detail in capabilities
PulseAd/banana-bunchmainBulk image generation — creative
PulseAd/ads-variationmainBanner variation — creative
PulseAd/video-generatormainThe video-generation gateway — creative
PulseAd/portal · portal-api · portal-frontendmain/developThe prior-generation product — the product timeline and what’s deprecated

The authoritative, machine-readable version of this mapping — including the exact pinned commit per repo and the source paths each page derives from — is sync/manifest.json.

Source repos keep moving. When they do, refresh the docs — that page walks through re-running the sync so only the pages whose source changed get rewritten.