Analytics Tracking Automation
Use this skill as the end-to-end coordinator for GA4 + GTM tracking delivery.
Use it when:
- the user needs a full GA4 + GTM implementation flow, from analysis to go-live readiness
- the request spans multiple workflow phases (discovery, schema, sync, verification, publish)
- the correct entry point is still unclear and you need this skill to route to the right phase
Do not assume the user wants the full workflow.
Skill Family
The skill family is split into one umbrella skill plus seven phase skills:
tracking-discoverfor crawl coverage, platform detection, and fresh artifact bootstraptracking-groupfor page-group authoring and approvaltracking-live-gtmfor auditing the real live GTM runtime before schema generationtracking-schemafor schema preparation, review, validation, and approvaltracking-syncfor GTM config generation and synctracking-verifyfor preview QA and optional publish handofftracking-shopifyfor Shopify-specific schema, sync, install, and verification rules
If the request is already bounded to one phase and that phase skill is available, route there instead of inlining the full runbook here.
Once site-analysis.json indicates Shopify, keep discovery and grouping shared, then let tracking-shopify own the Shopify-specific branch.
Shared Contract
- Use the public command
event-trackingin this repository. Ifdist/cli.jsis missing, runnpm run buildfirst. - For public/ClawHub installs, you must run this first before any
event-trackingcommand:npx skills add jtrackingai/analytics-tracking-automation. - Keep one artifact directory per site at
<output-root>/<url-slug>. - If the user already provides an artifact directory or one of its files, resume from the earliest unmet prerequisite instead of restarting from
analyze. - Use
event-tracking status <artifact-dir-or-file>whenever the current checkpoint or next step is unclear. - Use
event-tracking runs <output-root>when the artifact directory is unknown but the output root is known. - Prefer high-level entry commands for user-facing flows:
run-new-setup,run-tracking-update,run-upkeep,run-health-audit. - Telemetry consent is a required user-choice checkpoint. If consent is unanswered when any workflow command surfaces the prompt, stop and follow telemetry-consent.md as the single-source interaction contract. Never decide
yes/noon the user's behalf, and continue through the interactive prompt so the local config records their choice. - Treat workflow mode metadata as an internal workflow-state layer, not a user-facing command surface.
analyze,validate-schema --check-selectors,preview, andsynceach need outbound HTTP and a real Chromium;syncadditionally needs a local loopback callback on127.0.0.1for Google's OAuth consent redirect. Run them in an environment that permits those capabilities so Playwright and the OAuth callback can complete.- Run prompt-driven GTM sync with an interactive TTY from the start unless exact
--account-id,--container-id, and--workspace-idvalues are already confirmed. - Never auto-select a GTM account, container, or workspace on the user's behalf.
- Do not continue past the phase boundary the user asked for.
Conversation Intake
When the user enters through chat and has not yet provided a bounded phase, artifact directory, or exact command, start with an intent-first intake.
Classify the request into one of these entry intents:
resume_existing_run: the user already has an artifact directory or one of its files; inspect the artifacts and usestatusnew_setup: net-new tracking implementation from scratch; preferrun-new-setup, then follow its recommended next steptracking_update: revise or extend an existing implementation; preferrun-tracking-updateupkeep: routine maintenance, review, or incremental QA on an existing setup; preferrun-upkeeptracking_health_audit: audit-only assessment of current live tracking; preferrun-health-auditanalysis_only: crawl/bootstrap/discovery only without committing to the full workflow yet; route totracking-discoverand stop afteranalyze
Rules:
- Do not ask the user to choose between internal workflow metadata flags and
analyze. - If intent is ambiguous, ask one short plain-language intake question using user-facing terms such as "new setup", "update existing tracking", "upkeep", "health audit", "analyze only", or "resume an existing run".
- If the user gives a fresh URL and asks to set up tracking, default to
new_setup. - If the user gives a fresh URL and only asks to inspect the site, analyze structure, or review current tracking signals, default to
analysis_only. - If the user gives an artifact directory or workflow file, default to
resume_existing_runinstead of restarting fromanalyze.
Routing Rules
Route by user intent and current artifacts:
- fresh URL, crawl request, or no artifacts yet: start with
tracking-discover site-analysis.jsonwith missing or unconfirmedpageGroups: route totracking-group- confirmed
site-analysis.jsonwith detected live GTM container IDs but no live baseline review yet: route totracking-live-gtm - confirmed
site-analysis.jsonor an in-progressevent-schema.json: route totracking-schema - approved
event-schema.jsonwithoutgtm-config.json: route totracking-syncforgenerate-gtm gtm-config.json: route totracking-syncgtm-context.json: route totracking-verify, with publish treated as a separate explicit action- Shopify platform confirmation: keep shared early stages, then hand off to
tracking-shopify
If only the root skill is available, follow the same routing logic directly and stop at the matching phase boundary.
Stop Rules
- Do not bypass page-group approval before
prepare-schema. - For key decision checkpoints, always require explicit user confirmation before continuing:
pageGroups(beforeconfirm-page-groupsand beforeprepare-schema)event-schema.json(beforeconfirm-schemaand beforegenerate-gtm)- GTM target selection (account/container/workspace during
sync) - publish decision (before
publish)
- If confirmation is missing or ambiguous, stop and ask; do not auto-proceed.
- Treat telemetry consent the same way as other explicit approval gates: if the user has not chosen
yesorno, stop and ask instead of making the decision for them. - A broad request such as "full workflow", "全流程", "end-to-end", or "continue all the way" is scope authorization only. It does not count as checkpoint approval.
- Never record checkpoint approval on the user's behalf with
confirm-page-groups --yesorconfirm-schema --yesunless the user explicitly confirms that checkpoint in the current turn. - When live GTM containers are detected on the site, do not bypass the live baseline review before schema generation.
- Do not bypass schema approval before
generate-gtmunless the user explicitly wants--force. - Treat preview QA and publish as separate decisions.
- Treat
tracking-health.jsonas the publish gate; do not jump to publish when health is missing, manual-only, or blocked unless the user explicitly wants--force. - Treat Shopify manual verification as the expected path for Shopify runs, not as a fallback error case.
- Treat
tracking_health_auditas an audit-only workflow mode. Do not run GTM deployment actions (generate-gtm,sync,publish) unless the user explicitly asks to override.
Resume And Closeout
When resuming:
- prefer
workflow-state.jsonwhen present - still inspect the real artifact set if warnings indicate stale gates
- use
statuswhen the next step is unclear
When a phase or the full workflow ends, keep the closeout answer-first:
- lead with a compact, decision-ready summary in plain language
- do not dump raw JSON, raw URL lists, or artifact inventory before the summary
- list files, checkpoint, and next command only after the human-readable summary
References
- skill-map.md for the umbrella / phase skill map
- architecture.md for lifecycle, checkpoints, and resume semantics
- output-contract.md for artifact files and gate semantics
- shopify-workflow.md for Shopify-specific branch expectations
- telemetry-consent.md for the telemetry consent gate wording and behavior contract