{"id":"d9e095ad-2b0b-4429-8fbf-d97db89c9c0a","shortId":"tWKAA5","kind":"skill","title":"measure-instrumentation-spec","tagline":"Specifies event tracking and analytics instrumentation requirements for a feature. Use when defining what data to collect, ensuring consistent tracking implementation, or documenting analytics requirements for engineering.","description":"<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->\n# Instrumentation Spec\n\nAn instrumentation spec defines what analytics events to track, when to fire them, and what properties to include. It serves as a contract between product and engineering, ensuring consistent data collection that enables accurate measurement. Good instrumentation specs prevent the \"we can't answer that question because we didn't track it\" problem.\n\n## When to Use\n\n- Before engineering implements a new feature\n- When defining analytics requirements for experiments\n- When auditing existing tracking for gaps or inconsistencies\n- When onboarding a new analytics tool\n- Before launch to ensure measurement is in place\n\n## Instructions\n\nWhen asked to create an instrumentation spec, follow these steps:\n\n1. **Define Analytics Goals**\n   Start with the questions you need to answer. What will you measure? What decisions will this data inform? This prevents over-instrumentation while ensuring nothing important is missed.\n\n2. **Identify Events to Track**\n   List each user action or system event that should be tracked. Follow consistent naming conventions (typically `noun_verb` or `verb_noun` in snake_case). Each event should represent a distinct, meaningful action.\n\n3. **Specify Event Triggers**\n   For each event, describe exactly when it fires. Be precise: \"When user clicks Submit button\" vs. \"When form is submitted successfully.\" These are different events with different meanings.\n\n4. **Define Event Properties**\n   List the properties (attributes) attached to each event. Include property name, data type, description, and example values. Properties provide context that makes events useful.\n\n5. **Document User Properties**\n   Identify persistent user-level attributes that should be associated with all events (e.g., subscription tier, account creation date). These enable segmentation in analysis.\n\n6. **Address PII and Privacy**\n   Flag any properties that contain personally identifiable information. Document how PII should be handled . hashing, encryption, or exclusion.\n\n7. **Create Testing Checklist**\n   Define how QA should verify that tracking is implemented correctly. Include steps to validate events fire at the right times with correct properties.\n\n## Output Format\n\nUse the template in `references/TEMPLATE.md` to structure the output.\n\n## Quality Checklist\n\nBefore finalizing, verify:\n\n- [ ] Event names follow consistent naming convention\n- [ ] Each event has a clear, unambiguous trigger\n- [ ] Properties include data types and example values\n- [ ] PII is identified and handling is documented\n- [ ] Events map to the analytics questions you need to answer\n- [ ] Testing checklist enables QA verification\n\n## Examples\n\nSee `references/EXAMPLE.md` for a completed example.","tags":["measure","instrumentation","spec","skills","product-on-purpose","agent-skills","ai-skills","claude-code","claude-desktop","openskills","product-management","skill-families"],"capabilities":["skill","source-product-on-purpose","skill-measure-instrumentation-spec","topic-agent-skills","topic-ai-skills","topic-claude-code","topic-claude-desktop","topic-openskills","topic-product-management","topic-skill-families","topic-triple-diamond"],"categories":["pm-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/product-on-purpose/pm-skills/measure-instrumentation-spec","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add product-on-purpose/pm-skills","source_repo":"https://github.com/product-on-purpose/pm-skills","install_from":"skills.sh"}},"qualityScore":"0.538","qualityRationale":"deterministic score 0.54 from registry signals: · indexed on github topic:agent-skills · 176 github stars · SKILL.md body (2,809 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:54:13.246Z","embedding":null,"createdAt":"2026-04-18T22:09:29.447Z","updatedAt":"2026-05-02T12:54:13.246Z","lastSeenAt":"2026-05-02T12:54:13.246Z","tsv":"'1':135 '2':168 '3':205 '4':237 '5':265 '6':293 '7':316 'account':285 'accur':67 'action':176,204 'address':294 'analysi':292 'analyt':9,28,39,98,114,137,390 'answer':77,146,395 'ask':126 'associ':278 'attach':245 'attribut':244,274 'audit':103 'button':223 'case':196 'checklist':319,355,397 'clear':369 'click':221 'collect':21,64 'complet':406 'consist':23,62,185,362 'contain':302 'context':260 'contract':56 'convent':187,364 'correct':329,341 'creat':128,317 'creation':286 'data':19,63,155,252,374 'date':287 'decis':152 'defin':17,37,97,136,238,320 'describ':212 'descript':254 'didn':82 'differ':232,235 'distinct':202 'document':27,266,306,385 'e.g':282 'enabl':66,289,398 'encrypt':313 'engin':31,60,91 'ensur':22,61,119,163 'event':6,40,170,179,198,207,211,233,239,248,263,281,334,359,366,386 'exact':213 'exampl':256,377,401,407 'exclus':315 'exist':104 'experi':101 'featur':14,95 'final':357 'fire':45,216,335 'flag':298 'follow':132,184,361 'form':226 'format':344 'gap':107 'goal':138 'good':69 'handl':311,383 'hash':312 'identifi':169,269,304,381 'implement':25,92,328 'import':165 'includ':51,249,330,373 'inconsist':109 'inform':156,305 'instruct':124 'instrument':3,10,32,35,70,130,161 'launch':117 'level':273 'list':173,241 'make':262 'map':387 'mean':236 'meaning':203 'measur':2,68,120,150 'measure-instrumentation-spec':1 'miss':167 'name':186,251,360,363 'need':144,393 'new':94,113 'noth':164 'noun':189,193 'onboard':111 'output':343,353 'over-instrument':159 'persist':270 'person':303 'pii':295,308,379 'place':123 'precis':218 'prevent':72,158 'privaci':297 'problem':86 'product':58 'properti':49,240,243,250,258,268,300,342,372 'provid':259 'qa':322,399 'qualiti':354 'question':79,142,391 'references/example.md':403 'references/template.md':349 'repres':200 'requir':11,29,99 'right':338 'see':402 'segment':290 'serv':53 'skill' 'skill-measure-instrumentation-spec' 'snake':195 'source-product-on-purpose' 'spec':4,33,36,71,131 'specifi':5,206 'start':139 'step':134,331 'structur':351 'submit':222,228 'subscript':283 'success':229 'system':178 'templat':347 'test':318,396 'tier':284 'time':339 'tool':115 'topic-agent-skills' 'topic-ai-skills' 'topic-claude-code' 'topic-claude-desktop' 'topic-openskills' 'topic-product-management' 'topic-skill-families' 'topic-triple-diamond' 'track':7,24,42,84,105,172,183,326 'trigger':208,371 'type':253,375 'typic':188 'unambigu':370 'use':15,89,264,345 'user':175,220,267,272 'user-level':271 'valid':333 'valu':257,378 'verb':190,192 'verif':400 'verifi':324,358 'vs':224","prices":[{"id":"7cf4f7d9-4fa1-40f2-9a19-4650a921932f","listingId":"d9e095ad-2b0b-4429-8fbf-d97db89c9c0a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"product-on-purpose","category":"pm-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:09:29.447Z"}],"sources":[{"listingId":"d9e095ad-2b0b-4429-8fbf-d97db89c9c0a","source":"github","sourceId":"product-on-purpose/pm-skills/measure-instrumentation-spec","sourceUrl":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/measure-instrumentation-spec","isPrimary":false,"firstSeenAt":"2026-04-18T22:09:29.447Z","lastSeenAt":"2026-05-02T12:54:13.246Z"}],"details":{"listingId":"d9e095ad-2b0b-4429-8fbf-d97db89c9c0a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"product-on-purpose","slug":"measure-instrumentation-spec","github":{"repo":"product-on-purpose/pm-skills","stars":176,"topics":["agent-skills","ai-skills","claude-code","claude-desktop","openskills","product-management","skill-families","triple-diamond"],"license":"apache-2.0","html_url":"https://github.com/product-on-purpose/pm-skills","pushed_at":"2026-04-24T22:54:13Z","description":"Curated, plug-and-play product management skills for AI agents. 38 skills across Triple Diamond phases plus foundation (lean canvas, persona, meeting lifecycle family) and utility (create, validate, iterate). Templates, workflows, thread-aligned samples, CI-enforced skill-family contracts. Apache 2.0.","skill_md_sha":"42c99f2f6d5add1c78d1d323550c834be6d7c99a","skill_md_path":"skills/measure-instrumentation-spec/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/measure-instrumentation-spec"},"layout":"multi","source":"github","category":"pm-skills","frontmatter":{"name":"measure-instrumentation-spec","license":"Apache-2.0","description":"Specifies event tracking and analytics instrumentation requirements for a feature. Use when defining what data to collect, ensuring consistent tracking implementation, or documenting analytics requirements for engineering."},"skills_sh_url":"https://skills.sh/product-on-purpose/pm-skills/measure-instrumentation-spec"},"updatedAt":"2026-05-02T12:54:13.246Z"}}