metrics-tagging — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited metrics-tagging (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Analyze a UI mockup or screenshot and produce a complete analytics event taxonomy, ready for handoff to a tag implementation team.
Before generating the table, always frame the output across three levels. This helps designers understand why each tag matters — not just what it is.
| Level | What it answers | Example |
|---|---|---|
| Page | What happened on screen | User clicked "Save" button |
| App | What workflow is this part of | Account setup flow completion |
| Business | Which KPI does this feed | Task completion rate, time-on-task, abandonment rate |
Accept any of:
The designer may also provide:
If the designer does not provide product or flow context, ask for it before generating the table. The "Purpose" column cannot be filled accurately without knowing what the flow is trying to accomplish.
Use camelCase. Follow this pattern: noun + Verb
Format: [object/screen][Action]
General examples:
checkoutViewed — page load on checkout screencartItemRemoved — user removes item from cartplanSelected — user selects a pricing planpasswordChanged — user updates their passwordformSubmitted — generic form submitmodalDismissed — user closes a modalflowCancelled — user exits a multi-step flowRules:
Saved, Selected, Changed, Entered)Start, Viewed)Produce a markdown table with exactly these five columns:
| # | Event or Action | ID or Variable | Definition | Purpose | Event Name |
|---|
Event or Action — Plain English label. What the user did or what happened. Use the element type + label text. Examples:
Button Click: "Save Changes"Dropdown: "Account Type"Page LoadText Input: "Email Field Changed"Radio: "Billing Frequency"ID or Variable — The DOM-level selector or variable name the tag team will hook into. Use kebab-case. Infer from the label text if not visible in the mockup. Examples:
save-changes-btnaccount-type-selectemail-inputbilling-frequency-radioDefinition — When exactly does this event fire? Be precise. Start with "When the user..." or "The moment the page..."
Purpose — Which business question does tracking this answer? Connect to a KPI. If flow context was provided, map directly to a stated KPI. If not, use the most likely KPI for that element type:
Event Name — camelCase event name following the naming convention above.
Not all inputs are equal. When deciding whether to tag a specific input field, apply these two tests. If either passes, the input must be tagged and flagged.
Test 1 — Does it cascade? If changing this field's value causes anything else in the flow to change — other fields appearing or hiding, validation rules shifting, downstream behavior changing — it must be tagged. These inputs explain why users take different paths through the same flow.
Test 2 — Does it have sizeable outcome impact? Even if nothing visually changes, does this field's value directly affect the product's core outcome — pricing, eligibility, access level, subscription tier, risk calculation, permissions? If yes, tag it.
General examples of must-tag inputs:
General examples of lower-priority inputs:
When analyzing a mockup, mark each cascading or high-impact input with a [CASCADE] or [HIGH IMPACT] flag in the Purpose column. This tells the tag team what to prioritize if they need to phase implementation.
If cascade behavior of any input is unclear from the mockup, flag it in the Coverage Gaps section and prompt the designer to verify with a PM or business analyst before handoff.
When analyzing a screen, systematically check for all of these. Do not skip any category.
Always tag:
Tag if present and notable:
Flag but do not generate — prompt the designer:
After the table, always output a Coverage Gaps section: The following were NOT visible in the provided mockup or could not be determined from it. Verify these before handoff:
Error state: What fires if form validation fails? Loading state: Is there a spinner or skeleton? Should it be tracked? Empty state: What fires if the list/section is empty on load? [Any cascading inputs flagged as unclear] [Any conditional logic that depends on user state or permissions]
If the designer provides flow context, use it to sharpen the Purpose column. Common KPIs by product type to map to:
SaaS / internal tools:
E-commerce:
Consumer apps:
If no context is provided, use generic KPI language and note in the output that Purpose column accuracy will improve with flow context.
Before finalizing output, verify:
nounVerb pattern~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.