walkeros-create-cmp-so…
A CMP source is a specialized walkerOS source that listens to a consent management platform's events and translates consent…
Before starting, read these skills:
$ npx -y skills add elbwalker/walkerOS --skill walkeros-create-transformer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/walkeros-create-transformerContext preview
The summary Claude sees to decide when to auto-load this skill.
Before starting, read these skills:
name: walkeros-create-transformer description: Use when creating a new walkerOS transformer to modify events in the pipeline (validate, enrich, or redact) at a before/next chain position. Example-driven workflow for the transformer interface, return values, and chaining.
Before starting, read these skills:
transformers fit in architecture
Transformer interface
structure
Documentation standards (for Phase 7)
| Category | Purpose | Example | | ------------ | ----------------------------- | ---------------------------- | | **Validate** | Check event structure/content | JSON Schema, required fields | | **Enrich** | Add data to events | Server timestamps, geo data | | **Redact** | Remove/mask sensitive data | Strip PII, anonymize IPs |
1. Research → Understand use case (validate/enrich/redact) 2. Examples → Create event before/after examples FIRST 3. Scaffold → Copy template, configure package.json 4. Convention → Add walkerOS.json metadata and buildDev 5. Implement → Build transformer with TDD 6. Test → Verify against example transformations 7. Document → Write README
This skill includes reference files you can copy:
transformer
transformer template
pattern
helpers
---
**Goal:** Understand what the transformer needs to do.
# Reference implementation ls packages/transformers/fingerprint/ # Transformer types cat packages/core/src/types/transformer.ts
---
**Goal:** Define event transformations in `dev` entry FIRST.
mkdir -p packages/transformers/[name]/src/{examples,schemas,types}Adapt [examples/events.ts](examples/events.ts) for your transformer's use case. Each example file should include:
Adapt [examples/config.ts](examples/config.ts) for your transformer's settings.
Add step examples with `{ in, out }` pairs for end-to-end step testing:
// examples/step.ts
export const step = {
'order-passes': {
in: { name: 'order complete', data: { id: 'ORD-123' } },
out: { name: 'order complete', data: { id: 'ORD-123' } },
},
'debug-filtered': {
in: { name: 'debug test', data: { message: 'noise' } },
out: false, // Transformer rejects this event
},
};For transformers, both `in` and `out` are walkerOS events, except `out: false` which indicates the transformer filters (rejects) the event. Set `title` + `description` for public examples; mark test-only fixtures with `public: false`. See [using-step-examples](../walkeros-using-step-examples/SKILL.md) for the Three Type Zones.
export * as schemas from './schemas'; export * as examples from './examples';
---
**Template transformer:** `packages/transformers/fingerprint/`
cp -r packages/transformers/fingerprint packages/transformers/[name] cd packages/transformers/[name] # Update package.json: name, description, repository.directory
**Directory structure:**
packages/transformers/[name]/ ├── src/ │ ├── index.ts # Main export │ ├── transformer.ts # Transformer implementation │ ├── index.test.ts # Tests against examples │ ├── dev.ts # Exports schemas and examples │ ├── examples/ │ │ ├── index.ts # Re-exports │ │ ├── events.ts # Before/after event examples │ │ └── config.ts # Configuration examples │ ├── schemas/ │ │ └── index.ts # Zod schemas for settings │ └── types/ │ └── index.ts # Settings, Types interfaces ├── package.json ├── tsconfig.json ├── tsup.config.ts ├── jest.config.mjs └── README.md
---
Every walkerOS package ships a `walkerOS.json` file for CDN-based schema discovery.
{
"walkerOS": {
"type": "transformer"
},
"keywords": ["walkerOS", "walkerOS-transformer", ...]
}Replace `buildMod
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.
You are an AI agent running inside a **code-execution host**, not issuing tool calls one at a time through the model. Examples: