walkeros-create-cmp-so…
A CMP source is a specialized walkerOS source that listens to a consent management platform's events and translates consent…
- Creating a new package README - Writing website documentation (MDX) - Creating or updating skills - Reviewing documentation for quality - Documenting Phase 7 of create-destination or create-source
$ npx -y skills add elbwalker/walkerOS --skill walkeros-writing-documentation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/walkeros-writing-documentationContext preview
The summary Claude sees to decide when to auto-load this skill.
- Creating a new package README - Writing website documentation (MDX) - Creating or updating skills - Reviewing documentation for quality - Documenting Phase 7 of create-destination or create-source
name: walkeros-writing-documentation description: Use when writing or updating walkerOS documentation - README, website docs, or skills. Covers quality standards, example validation, and DRY patterns.
context
naming rules
---
| Type | Purpose | Audience | | ------------------ | --------------------------------------------- | --------------------------- | | **Package README** | Installation, basic usage, API reference | Package users | | **Website docs** | Guides, integration examples, detailed config | Integrators | | **Skills** | Process knowledge, workflows | AI assistants, contributors |
Keep these separate - don't mix tutorials with reference:
| Type | Purpose | User State | | ---------------- | ------------------ | ----------------------------- | | **Tutorial** | Learning | Studying, beginner | | **How-To Guide** | Problem-solving | Working, knows what they need | | **Reference** | Information lookup | Working, needs facts | | **Explanation** | Understanding | Studying, needs context |
---
AI-generated examples can be:
TIER 1: apps/quickstart/ ✓ Tested ✓ Compiled ✓ CI-validated → USE FOR: All code examples TIER 2: packages/core/src/eventGenerator.ts ✓ Canonical events ✓ Real data structures → USE FOR: Event examples TIER 3: packages/*/src/index.ts exports ✓ Actual public API → USE FOR: Verifying API names exist TIER 4: Package READMEs & Website docs ⚠ May contain errors → VERIFY against Tier 1-3 before trusting
Getting-started and onboarding code examples are sourced from Tier-1 `apps/quickstart/src/*.ts` (CI-validated) first, then the docs source them. The current canonical examples:
quickstart and integrated-mode pages and the README.
GA4 reference page and the GA4 ecommerce tutorial.
These are pinned against drift by the doc-lint at `apps/scripts/validate-docs.ts` (run `npx tsx apps/scripts/validate-docs.ts`). It extracts canonical tokens from the Tier-1 source and asserts the docs snippets contain them, tolerating intentional doc simplifications (dropping the `seen` capture, arrow `push` instead of a method). `first-event.ts` is pinned on the quickstart, integrated-mode, and README pages, plus the GA4 ecommerce page; `react.mdx` is pinned shape-only (it pushes no `page view`).
The doc-lint also runs these structural and coherence checks:
event, `elb({ name: 'entity action', data })`. A quoted `"entity action"` string as the first `elb` argument is an error; `walker` commands keep their string name (`elb('walker consent', ...)`).
`config.platform` (getting-started, README, flow reference).
in getting-started, guides, or the gtag page.
`push --simulate <type>.<key>` must resolve to a step key declared in a flow.json on the SAME page; a simulate command on a page with no flow.json fails. This is what catches an integrated page showing a bundled push loop.
snippet is run through `schemas.validateFlowConfig` from `@walkeros/core/dev`; fragments and `version: 3` migration "before" snippets are out of scope.
upgrade language. **No `:::cloud`** (all docs): there is no walkerOS Cloud, and the callout type no longer exists.
The rule: when you edit a pinned example, edit the Tier-1 `.ts` source and re-run the doc-lint. If the docs snippet must change too, update both so the lint passes.
Three rules govern the getting-started surface (decided 2026-07-06, encoded in the doc-lint):
**See your event, per mode.** Integrated-mode pages (quickstart, react, nextjs, modes/integrated, ga4-ecommerce) verify via their own console output; they must never show `walkeros push --simulate`. Only bundled-mode pages may show it, and only targeting a `<type>.<key>` that a flow.json on the SAME page defines.
**Open/paid boundary (Self-Host Sufficiency Rule).** Every getting-started task must reach a working result with MIT packages, the CLI, and reader-controlled infrastructure only. There is no walkerOS Cloud: never write "Cloud" as a walkerOS product, and never add a "What Cloud adds" pointer. Where docs describe commands or tools that talk to the hosted app (`auth`, `projects`, `flows`, `deploy`), call it "the walkerOS app". Never prices, tier names, or upgrade language anywhere in open docs. Self-host is always listed first.
From browser to BigQuery and ad platforms - warehouse-native, and ready for AI agents via MCP.
A CMP source is a specialized walkerOS source that listens to a consent management platform's events and translates consent…
Use when creating a new walkerOS destination to send events to a vendor or API (GA4/gtag, Meta/Facebook Pixel, Mixpanel,…
Use when creating a new walkerOS source to capture events (browser source, dataLayer interception, server/HTTP source, webhook…
| Symptom | Likely Cause | Check | | ---------------------------------- | ---------------------------- |…
Read [understanding-mapping](../walkeros-understanding-mapping/SKILL.md) first for core concepts.