Skip to content

docs: make the campaign agent guide the starting point - #72

Open
next-devin wants to merge 2 commits into
mainfrom
campaign-docs-entry
Open

next-devin wants to merge 2 commits into
mainfrom
campaign-docs-entry

Conversation

@next-devin

Copy link
Copy Markdown
Contributor

Make the agent guide the first Campaigns navigation item and the general starting point for new builds, existing repositories and saved Maps. The guide links to the appropriate continuation, with the configured Page Kit recipe and optional Workspace clearly scoped.

Remove the conflicting Olympus default recommendation, show Apollo families first, and point template selection to the current catalog. Direct campaign pricing to Campaigns App Offers & Discounts.

Validation: NEXT_TELEMETRY_DISABLED=1 npm run build and npm run check passed (agent surfaces, 71 authored-page frontmatter checks, markup and links; 0 link errors). Inspected the generated agent guide locally at mobile width.

Related merchant documentation: NextCommerceCo/docs#80. This documentation work does not close or expand campaigns-os #716.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
developer-docs 3e1abeb Commit Preview URL

Branch Preview URL
Nov 02 2026, 09:47 AM

Comment thread content/docs/campaigns/templates.mdx Resolved
Comment thread content/docs/campaigns/index.mdx Resolved
Comment thread content/docs/campaigns/index.mdx Resolved
Comment thread scripts/generate-agent-setup.mjs Resolved
Comment thread components/campaign-templates-grid.tsx Resolved
@kilo-code-bot

kilo-code-bot Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: 5 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 3
SUGGESTION 2
Issue Details (click to expand)

WARNING

File Line Issue
content/docs/campaigns/index.mdx 15 "Page Kit setup recipe" mislabels campaigns.nextcommerce.com/start/. This repo documented that URL as the Campaigns OS Start guide that "also provides the Workspace/Map route" (ce437eb) and a configure-in-dashboard → map in Workspace → copy Handoff flow (7504f93). The new label also contradicts the Workspace domain (campaign-map.nextcommerce.com) asserted in the same sentence, and index.mdx:18 already describes the real Page Kit CLI, making three undifferentiated "Page Kit" entry points.
scripts/generate-agent-setup.mjs 59 The canonical agent prompt (served byte-for-byte as /agent-setup/prompt.md, per check-agent-surfaces.mjs:130) now describes /start/ as "the Page Kit setup recipe ... for a new static project with its campaign and offers already configured". Per the repo's own history that page is a plan-and-handoff flow, not a scaffolder, and this wording steers agents away from the Workspace/Handoff route the next bullet presents as the saved-Map entry point.
content/docs/campaigns/templates.mdx 12 The new "picker catalog" / "template browser" split is applied only here and in content/agent-setup.md:58. index.mdx:105 still calls templates.json "the [current catalog]", and index.mdx:296 / page-kit.mdx:110 still call it "the [template catalog]". The promoted browser URL is not mentioned on either sibling page, so the same file now has three names across the section.

SUGGESTION

File Line Issue
content/agent-setup.md 28 The new "Handoff provides the prompt for continuing" is a second, unranked continuation route for a saved Map, alongside the entry-point table row at line 24 ("The Campaigns OS continuation command for that artifact") and line 85's campaigns-os next. Also placed after the sentence that closes the section.
content/docs/campaigns/index.mdx 183 The Offers rewrite replaces "These are the rules the SDK and campaign templates use for pricing and savings" with "Use this setup when building with the SDK and campaign templates", losing the only statement of how Offers relate to SDK pricing.
Files Reviewed (5 files)
  • components/campaign-templates-grid.tsx - 0 issues
  • content/agent-setup.md - 1 issue
  • content/docs/campaigns/index.mdx - 2 issues
  • content/docs/campaigns/templates.mdx - 1 issue
  • scripts/generate-agent-setup.mjs - 1 issue

Previous Findings Re-verified

All five findings from the prior review at ac48618 were re-checked against the current HEAD 3e1abeb and are resolved; they are not carried forward.

  • Catalog naming (templates.mdx:12, agent-setup.md:58) — resolved: the two artifacts are now distinguished as "picker catalog" (templates.json) and "template browser" (campaigns.nextcommerce.com/templates/). A residual half-application to the sibling pages is reported above as a new finding.
  • "Workspace" undefined (index.mdx:15) — resolved: defined in the canonical content/agent-setup.md:28 as an optional visual planning tool, with Map and Handoff defined alongside it.
  • Inconsistent label for campaigns.nextcommerce.com/start/ — resolved as to naming consistency: both index.mdx:15 and generate-agent-setup.mjs:59 now say "Page Kit setup recipe". A separate issue with that name is reported above.
  • Unverified external anchor build-packet.md#changing-a-campaign-after-handoff (generate-agent-setup.mjs:60, agent-setup.md:46) — resolved: the anchor is now applied consistently in the canonical source and the generator, and the author reported verifying the upstream heading by GET. Not re-verified here (see notes).
  • TEMPLATES array order (campaign-templates-grid.tsx) — resolved: the array is now Apollo-first (apollo, apollo-mv-single-step, then the rest), and templates.mdx:14 uses the component's default ordering. The slugs prop is still used by index.mdx:107, so it is not dead code.

Verification Notes

Reviewed against AGENTS.md / CLAUDE.md; AGENTS.md is the public contract for agents reading this repository and was used as the evidence standard for the terminology findings.

Verified locally: the removed slugs list in templates.mdx covered exactly the same 8 templates as the TEMPLATES array in the same order, so <CampaignTemplatesGrid /> renders identically to the previous explicit list; the new array order matches the previous slugs order exactly; CampaignTemplatesGrid is registered in components/mdx.tsx, so no import is needed for the now-props-less usage; check-agent-surfaces.mjs:154 still asserts the prompt does not contain --template apollo, which the PR does not violate; scripts/validate-links.mjs resolves only internal content/docs links and fragments, so none of the external URLs or external anchors in this PR are covered by CI. The two "prior documentation" quotations above are verbatim from git show ce437eb:content/docs/campaigns/index.mdx and git show 7504f93:content/docs/campaigns/index.mdx.

Not verified (no network access in this environment): reachability or current content of https://campaigns.nextcommerce.com/start/, https://campaigns.nextcommerce.com/templates/, https://campaign-map.nextcommerce.com/, and https://docs.nextcommerce.com/docs/apps/campaigns-app/campaigns-offers-and-discounts; and the existence of the build-packet.md#changing-a-campaign-after-handoff heading upstream. The /start/ findings are therefore based on this repository's own prior description of that URL rather than on the live page — the wording should be confirmed against the current page before merging.

Not re-run: npm run build / npm run check were not executed (read-only review mode).

Fix these issues in Kilo Cloud

Previous Review Summary (commit ac48618)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit ac48618)

Status: 5 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 4
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
content/docs/campaigns/templates.mdx 12 Two different URLs are now both called the "current template catalog". This line points at campaigns.nextcommerce.com/templates/, but index.mdx:105, index.mdx:296, page-kit.mdx:110 and the canonical agent prompt content/agent-setup.md:56 still call campaign-cart-starter-templates/.../templates.json the catalog. The prompt is the machine surface, so agent and human get different catalogs.
content/docs/campaigns/index.mdx 15 "Workspace" is used as a product term but is defined nowhere in the repo, including the canonical content/agent-setup.md, which uses "saved Map". Same for "saved Workspace Map" (templates.mdx:16) and scripts/generate-agent-setup.mjs:61.
content/docs/campaigns/index.mdx 15 The campaigns.nextcommerce.com/start/ link is labelled "Campaigns OS setup recipe" here but "configured-campaign setup recipe" at scripts/generate-agent-setup.mjs:59, with different gating conditions. "Campaigns OS" elsewhere in the repo means the campaigns-os GitHub CLI, not this domain.
scripts/generate-agent-setup.mjs 60 New unverified external deep-link anchor #changing-a-campaign-after-handoff. The canonical source content/agent-setup.md:44 links the same file with no anchor and no repo file references that heading. validate-links.mjs only resolves internal links, so CI cannot catch a broken external anchor.

SUGGESTION

File Line Issue
components/campaign-templates-grid.tsx 23 The "Default pick" framing was removed here, but TEMPLATES still lists olympus first and the component renders array order when no slugs prop is passed. A future caller omitting slugs reinstates the Olympus-first default. Related: unknown slugs values are silently dropped with no error.
Files Reviewed (5 files)
  • components/campaign-templates-grid.tsx - 1 issue
  • content/docs/campaigns/index.mdx - 2 issues
  • content/docs/campaigns/meta.json - 0 issues
  • content/docs/campaigns/templates.mdx - 1 issue
  • scripts/generate-agent-setup.mjs - 1 issue

Verification Notes

Reviewed against AGENTS.md / CLAUDE.md; AGENTS.md is the public contract for agents reading this repository and was used as the evidence standard for the terminology findings.

Verified locally: the slugs prop in templates.mdx covers exactly the same 8 templates as the TEMPLATES array and only reorders them (Apollo first); CampaignTemplatesGrid is registered in components/mdx.tsx, so no import is required; all 8 referenced preview images exist in public/assets/templates/; the meta.json link-page pattern matches the existing [Playground](/playground) entry; the new Page Kit guide link resolves to an existing /docs/campaigns/page-kit page; toPlainMarkdown drops the new self-closing CampaignTemplatesGrid tag, so the campaigns bundle keeps no MDX residue.

Not verified (no network access in this environment): reachability of https://campaigns.nextcommerce.com/start/, https://campaigns.nextcommerce.com/templates/, https://campaign-map.nextcommerce.com/, https://docs.nextcommerce.com/docs/apps/campaigns-app/campaigns-offers-and-discounts, and the existence of the build-packet.md#changing-a-campaign-after-handoff heading upstream. The merchant-docs URL does match an existing operator_docs path in content/capabilities.yaml.

Fix these issues in Kilo Cloud


Reviewed by minimax-m3 · Input: 79K · Output: 16.5K · Cached: 1.6M

<Callout type="info" title="Start or continue with your coding agent">
Start with the [campaign agent guide](/docs/agent-setup). Give your agent a funnel URL, design, existing repository or saved Map. It can inspect, plan and prepare a local preview before store access is available, while preserving your builder and host.

For a new Page Kit campaign with commerce already configured, use the [Page Kit setup recipe](https://campaigns.nextcommerce.com/start/). The optional [Workspace](https://campaign-map.nextcommerce.com/) lets you plan visually and save a Map. The quick start below covers direct Page Kit scaffolding.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: "Page Kit setup recipe" mislabels campaigns.nextcommerce.com/start/, and contradicts the Workspace domain introduced in the same sentence

This URL was introduced as the Campaigns OS Start guide, and this repository documented what it does in that capacity:

Both describe a plan-and-handoff flow centred on Workspace, not a Page Kit scaffolding recipe. Relabelling it "Page Kit setup recipe" — while pointing Workspace at a different domain (campaign-map.nextcommerce.com) in the very same sentence — leaves two mutually exclusive claims in one repo about where Workspace lives. If the page's function changed upstream, the older descriptions are now stale and should be corrected too; if it did not change, this label sends readers looking for a scaffolder where the page is a planner.

Note also that index.mdx:18, immediately below, describes the actual Page Kit CLI ("a CLI that scaffolds an SDK-ready starter template..."), so "Page Kit setup recipe" now names a third Page Kit entry point alongside the "Page Kit guide" and the "quick start" below it — with nothing stating how the three differ.


Choose the continuation that fits your project:

- **New campaign:** inspect the source and prepare a local preview. Use the [Page Kit guide](/docs/campaigns/page-kit) for a new static project, or the [Page Kit setup recipe](https://campaigns.nextcommerce.com/start/) for a new static project with its campaign and offers already configured.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: The canonical agent prompt now routes agents to /start/ as a Page Kit scaffolding path, contradicting how this repo has documented that page

This bullet reaches /agent-setup/prompt.md, which scripts/check-agent-surfaces.mjs:130 asserts is served byte-for-byte from content/agent-setup.md. It is the surface an agent actually reads, and the one this PR exists to unify.

Per this repo's own history, https://campaigns.nextcommerce.com/start/ is a plan-and-handoff flow: "configure products and offers in the NEXT dashboard, use Workspace to map and save the plan and copy its Handoff, then give that Handoff to a developer or agent to build, preview, and run QA" (7504f93), and "also provides the Workspace/Map route" (ce437eb). Describing it as "the Page Kit setup recipe ... for a new static project with its campaign and offers already configured" tells an agent to look for a scaffolder and, more importantly, steers it away from the Workspace/Handoff route that the very next bullet ("Saved Map: open its Handoff in the Workspace") presents as the saved-Map entry point.

Please confirm what /start/ actually does now and name it accordingly — for example a Workspace/Map planning-and-handoff recipe — or drop the external link if the canonical prompt should not route agents there.


These are the options you'll see at the `campaign-init` template picker. Each one installs a complete funnel into your project with SDK-ready checkout, cart, upsell, and receipt surfaces. Treat those commerce surfaces as runtime wiring: replace campaign-specific package IDs, offer codes, shipping methods, copy, assets, and routes, but avoid rebuilding the SDK-owned controls from scratch.

Compare families in the [template browser](https://campaigns.nextcommerce.com/templates/), which presents the [picker catalog](https://github.com/NextCommerceCo/campaign-cart-starter-templates/blob/main/templates.json) with previews and use cases. Keep the family an existing campaign already uses when it fits the change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: The new "picker catalog" / "template browser" split is applied to only two of the four places that name these artifacts

This line and the canonical prompt (content/agent-setup.md:58) now distinguish the raw JSON ("picker catalog") from the browsable site ("template browser"). The two sibling pages that name the same file were not updated:

  • content/docs/campaigns/index.mdx:105 — "Use the current catalog recommendations"
  • content/docs/campaigns/index.mdx:296 — "pick the family from the template catalog"
  • content/docs/campaigns/page-kit.mdx:110 — "pick the family from the template catalog"

So templates.json is now called "picker catalog", "current catalog" and "template catalog" depending on the page, and campaigns.nextcommerce.com/templates/ — the surface this line promotes — is never mentioned on either sibling page. A reader who lands on /docs/campaigns or /docs/campaigns/page-kit gets a third name and no pointer to the browser.

Since all three pages describe the same artifact, please settle on one label per artifact and apply it to all of them.

Comment thread content/agent-setup.md

These entries can join the same work at different points. Do not replay provisioning or scaffolding because a new session starts.

The optional [Workspace](https://campaign-map.nextcommerce.com/) is a visual planning tool. A Map is the campaign plan saved there; its Handoff provides the prompt for continuing with an agent.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: The Workspace/Handoff continuation is not reconciled with the entry-point table directly above it

Adding "its Handoff provides the prompt for continuing with an agent" here creates a second, unranked way to resume a saved Map. The table row four lines up already routes that exact artifact elsewhere:

| Local CampaignSpec, saved Map or Build Packet | Identify the selected campaign and read existing intent/status | The Campaigns OS continuation command for that artifact |

and content/agent-setup.md:85 reinforces it: "use the installed Campaigns OS agent entry to choose local-spec or saved-Map intake; its --help lists start for intake and next for continuation."

An agent reading this file now has three mechanisms of unequal authority for the same artifact — the table's Campaigns OS continuation command, line 85's next command, and this new Handoff prompt — with no guidance on which applies when. Consider stating the precedence (for example, that the Handoff prompt is what a human pastes to begin a new session, while campaigns-os next continues an artifact in place).

Minor placement note: the paragraph currently sits after "These entries can join the same work at different points. Do not replay provisioning or scaffolding because a new session starts.", which closes the section. Moving it above that sentence, or into its own short subsection, would keep the definition with the entry points it describes.

### Offers

**Offers** are price mutation rules that apply when an order meets a condition. Two flavours:
Configure campaign discounts in [Campaigns App Offers & Discounts](https://docs.nextcommerce.com/docs/apps/campaigns-app/campaigns-offers-and-discounts). Use this setup when building with the SDK and campaign templates. Two flavours:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: The Offers rewrite drops the only statement of how Offers relate to the SDK

The previous sentence told the reader what these rules are in platform terms: "These are the rules the SDK and campaign templates use for pricing and savings." The replacement — "Use this setup when building with the SDK and campaign templates" — only says where to configure them, and reads as a narrower condition on when the link matters.

The bullets below still define Offer and Code semantics, but nothing now says the SDK and the campaign templates read these same rules to price the cart and compute savings. If that relationship still holds, consider keeping it; if Offers & Discounts is really a separate merchant-side setup step, say so explicitly instead of leaving the reader to assume it is the SDK's pricing source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant