Analytics-tracking-automation tracking-schema
Use when the user wants schema preparation, event design, selector validation, schema review, or event-spec generation.
git clone https://github.com/jtrackingai/analytics-tracking-automation
T=$(mktemp -d) && git clone --depth=1 https://github.com/jtrackingai/analytics-tracking-automation "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tracking-schema" ~/.claude/skills/jtrackingai-analytics-tracking-automation-tracking-schema && rm -rf "$T"
skills/tracking-schema/SKILL.mdTracking Schema
Use this skill for Step 3 work only.
Inputs
One of:
- confirmed
<artifact-dir>/site-analysis.json - existing
<artifact-dir>/event-schema.json
Workflow
Role And Quality Bar
During schema work, act as an expert in event tracking design.
Your job is not to list generic events. Your job is to produce a tracking plan that is:
- aligned with common GA4 / GTM industry standards
- comprehensive enough to cover the site's meaningful business journeys
- accurate enough to be implemented and verified without guesswork
- disciplined enough to avoid noisy, redundant, or low-signal events
- easy for the user to review, approve, QA, and maintain
Favor event definitions that are business-meaningful, implementation-ready, and analytically useful. Do not preserve weak legacy patterns just for continuity. Do not inflate the schema with events that add little reporting or decision value.
If the telemetry consent prompt appears and no prior choice is recorded, stop and follow ../../references/telemetry-consent.md before continuing.
If schema context is not prepared yet:
./event-tracking prepare-schema <artifact-dir>/site-analysis.json
If the site has a live GTM container installed, make sure
tracking-live-gtm has already produced <artifact-dir>/live-gtm-analysis.json before running prepare-schema.
Then:
validate-schema --check-selectors launches a real Chromium via Playwright to test each schema selector against the live site. Run it in an environment that permits outbound network and local browser execution; environments that restrict either tend to cause Playwright to hang or fail silently rather than return a clean error.
./event-tracking validate-schema <artifact-dir>/event-schema.json --check-selectors ./event-tracking generate-spec <artifact-dir>/event-schema.json ./event-tracking confirm-schema <artifact-dir>/event-schema.json
During review:
- explain what live tracking problems the schema fixes when
is presentlive-gtm-analysis.json - explain what benefits the new schema brings compared with the current live baseline
- default to a compact tracking-plan summary in this order:
,Event Table
,Common PropertiesEvent-specific Properties - keep long parameter inventories out of the main event table
- stop for user approval before GTM generation
- a broad request such as "full workflow" or "全流程" does not count as schema approval
- do not run
on the user's behalf unless the user explicitly confirms the schema and parameters in the current turn./event-tracking confirm-schema <artifact-dir>/event-schema.json --yes
Required Output
Produce and share:
<artifact-dir>/event-schema.json- optional
<artifact-dir>/event-spec.md - optional
when<artifact-dir>/tracking-plan-comparison.md
is presentlive-gtm-analysis.json
after schema confirmation<artifact-dir>/schema-decisions.jsonl
restore snapshots after schema confirmation<artifact-dir>/schema-restore/- updated
<artifact-dir>/workflow-state.json
Closeout Style
- default to a decision-ready tracking-plan summary before listing files
- keep the chat structure in this order:
,Event Table
,Common PropertiesEvent-specific Properties - if a live baseline comparison exists, keep it as a compact appendix rather than replacing the tracking-plan structure
- list files and next steps only after the summary
Stop Boundary
Stop after schema approval.
Do not continue into
generate-gtm from a broad workflow request alone. The user must explicitly approve the current event-schema.json and its parameters first.
Default next phase:
./event-tracking generate-gtm <artifact-dir>/event-schema.json --measurement-id <G-XXXXXXXXXX>