Measure Instrumentation Spec logo

Measure Instrumentation Spec

Organization
product-on-purpose
measure-instrumentation-spec

Specifies what analytics events to track, when they fire, and what properties to include, as a contract between product and engineering that prevents undertracked features. Use before engineering builds a feature or when auditing existing tracking for gaps. For the dashboard built on top of these events, use measure-dashboard-requirements instead.

Overview

Publisherproduct-on-purpose
Repositorypm-skills
Skill namemeasure-instrumentation-spec
Stars
717
Forks
92
Bundled files
4
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by product-on-purpose on GitHub. Read the source before you install it.

Installation

Install the Measure Instrumentation Spec AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/product-on-purpose/pm-skills/tree/main/skills/measure-instrumentation-spec
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git /tmp/pm-skills
mkdir -p .claude/skills
cp -r /tmp/pm-skills/skills/measure-instrumentation-spec .claude/skills/measure-instrumentation-spec
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Measure Instrumentation Spec in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Measure Instrumentation Spec on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Measure Instrumentation Spec is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Instrumentation Spec

An 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.

When to Use

  • Before engineering implements a new feature
  • When defining analytics requirements for experiments
  • When auditing existing tracking for gaps or inconsistencies
  • When onboarding a new analytics tool
  • Before launch to ensure measurement is in place

When NOT to Use

  • You are specifying the dashboard built on top of the events -> use measure-dashboard-requirements
  • You need experiment-specific metrics and variants, not product-wide tracking -> use measure-experiment-design
  • The feature itself is not yet specified (no flows to instrument) -> use deliver-prd first
  • You are analyzing data you already collect -> use measure-experiment-results or measure-survey-analysis

Instructions

When asked to create an instrumentation spec, follow these steps:

  1. Define Analytics Goals 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.

  2. Identify Events to Track 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.

  3. Specify Event Triggers 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.

  4. Define Event Properties List the properties (attributes) attached to each event. Include property name, data type, description, and example values. Properties provide context that makes events useful.

  5. Document User Properties Identify persistent user-level attributes that should be associated with all events (e.g., subscription tier, account creation date). These enable segmentation in analysis.

  6. Address PII and Privacy Flag any properties that contain personally identifiable information. Document how PII should be handled - hashing, encryption, or exclusion.

    When any model input, output, retrieval context, or tool call is captured, extend this section to cover the trace as well. The trigger is capture, not authorship: it fires whether the sensitive text was typed by a user, retrieved from a tenant's documents, carried in a system prompt, passed to or returned from a tool, read out of an uploaded file or a batch job, or generated by the model itself. A feature with no direct user input can still write a customer's contract text into a trace store.

    A trace is not an event: an event carries properties you chose in advance, while a trace carries free text that can contain anything, including data no property schema anticipated. Decide and record:

    • Data classes captured. Name them (user text, retrieved documents, system prompt, tool arguments and results, file contents, model output). "The trace" is not an answer.
    • Minimization, at both boundaries. What is dropped or redacted before the trace leaves the process, and separately what is dropped before it is stored. A redactor that runs only at the storage layer has already sent the raw text over the wire.
    • Access. Who can read traces, and whether reads are logged. Trace stores are routinely the least-governed copy of the most sensitive data a feature handles.
    • Retention and deletion. How long, what deletes them, and how a deletion request reaches a trace that was copied into an evaluation set.
    • Consent and opt-out. Whether the subject agreed, and what the feature does when they decline.
    • Sampling. What fraction is captured and how that sample is chosen. A uniform sample is the wrong instrument for finding rare failures; if traces exist to diagnose bad output, oversample the flagged cases and say so.
  7. Create Testing Checklist Define how QA should verify that tracking is implemented correctly. Include steps to validate events fire at the right times with correct properties.

Output Format

Use the template in references/TEMPLATE.md to structure the output. A complete spec fills every template section: Overview; Event Inventory; User Properties; PII & Privacy Considerations; Implementation Notes; and Testing Checklist.

Quality Checklist

Before finalizing, verify:

  • Event names follow consistent naming convention
  • Each event has a clear, unambiguous trigger
  • Properties include data types and example values
  • PII is identified and handling is documented
  • Events map to the analytics questions you need to answer
  • Testing checklist enables QA verification
  • If any model input, output, retrieval context, or tool call is captured: the data classes are named, minimization is decided at both the egress and the storage boundary, access and read-logging, retention and deletion, consent, and sampling are all decided, not deferred

Examples

See references/EXAMPLE.md for a completed example.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Measure Instrumentation Spec AI skill do?

Specifies what analytics events to track, when they fire, and what properties to include, as a contract between product and engineering that prevents undertracked features. Use before engineering builds a feature or when auditing existing tracking for gaps. For the dashboard built on top of these events, use measure-dashboard-requirements instead.

Why use Measure Instrumentation Spec on TypingMind?

Because you install it once and use it with any model. Measure Instrumentation Spec is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Measure Instrumentation Spec in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/product-on-purpose/pm-skills/tree/main/skills/measure-instrumentation-spec. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Measure Instrumentation Spec?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Measure Instrumentation Spec?

As many as you like. As long as a model supports skills, you can use Measure Instrumentation Spec with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Measure Instrumentation Spec AI skill free?

Yes. It is published on GitHub by product-on-purpose under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇