AGENT SKILLBY LAUNCHDARKLY
Launchdarkly metric instrument
AT A GLANCE
Launchdarkly metric instrument is an agent skill for growth. You're using a skill that will guide you through adding a track() call to a codebase so a LaunchDarkly metric can measure it. The launchdarkly/agent-skills repository on GitHub, maintained by launchdarkly, has 18 stars and the Apache-2.0 license. To add it, run npx skills add launchdarkly/agent-skills --skill launchdarkly-metric-instrument
- SOURCE REPOSITORY
- launchdarkly/agent-skills (opens GitHub in a new tab)
- REPO STARS
- SOURCE REPOSITORY
- LICENSE
- Apache-2.0
- CATEGORIES
- SKILL.MD SIZE
- 7.7 KB143 LINES
QUICK ANSWER
- WHAT IT IS01
- You're using a skill that will guide you through adding a track() call to a codebase so a LaunchDarkly metric can measure it. Its edge is a particular angle on growth marketing, giving the agent tighter constraints than a plain launchdarkly metric instrument request.
- INPUTS02
- Context for growth marketing: your goals, audience, constraints, and any source material the skill asks for.
- OUTPUT03
- A ready-to-use result for growth marketing: the analysis, copy, or recommendations the agent produces.
INSTALL
One command adds this skill from its source repository.
npx skills add launchdarkly/agent-skills --skill launchdarkly-metric-instrumentREAD THE SKILL.MD BELOW BEFORE YOU RUN IT. SKILLS INSTRUCT YOUR AGENT.
SKILL.MD
The full file, as published in the source repository. Copy it, download it or open it on GitHub.
ON THIS PAGE · 9
LaunchDarkly Metric Instrument#
You're using a skill that will guide you through adding a track() call to a codebase so a LaunchDarkly metric can measure it. Your job is to detect the SDK in use, find the right place in code to add the call, write it correctly, and verify that events are reaching LaunchDarkly.
Prerequisites#
This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.
Required MCP tools:
list-metric-events— verify events are flowing after instrumentation
Optional MCP tools (enhance workflow):
get-project— retrieve the SDK key for the right environment when SDK initialization is needed
Workflow#
Step 1: Detect the SDK#
Before writing any code, understand the LaunchDarkly setup already in this codebase.
-
Search for existing
track()calls. This is the fastest signal:- Look for
ldClient.track(,.track(,ld.track( - If any exist, they tell you the SDK type, call signature, and context pattern in one shot — mirror those exactly.
- Look for
-
Search for SDK imports and initialization if no
track()calls exist:- Check
package.json,requirements.txt,go.mod,Gemfile,*.csprojfor an LD SDK dependency - Look for
LDClient,ldclient,launchdarkly-server-sdk,launchdarkly-node-server-sdk,launchdarkly-react-client-sdk, etc. - Find the initialization block to understand how the client is accessed across the codebase
- Check
-
Determine client-side or server-side. This is the most critical distinction — it determines the
track()signature:SDK type track()signatureNotes Server-side (Node, Python, Go, Java, Ruby, .NET) ldClient.track(eventKey, context, data?, metricValue?)Context required per call Client-side (React, browser JS) ldClient.track(eventKey, data?, metricValue?)Context set at init, not per call See SDK Track Patterns (opens in a new tab) for full examples by language.
Step 2: Install & Initialize (if SDK not present)#
Skip this step if the SDK is already in the codebase.
-
Detect the package manager from lockfiles:
package-lock.json/yarn.lock/pnpm-lock.yaml→ npm/yarn/pnpm;Pipfile.lock/poetry.lock→ pip/poetry;go.sum→ go modules;Gemfile.lock→ bundler. -
Install the appropriate SDK using the detected package manager. See SDK Track Patterns (opens in a new tab) for the right package name per language.
-
Get the SDK key using
get-project— fetch the project and choose the key for the environment the user wants to instrument (typicallyproductionorstagingfor initial testing). -
Add SDK initialization following the patterns already in this codebase. If there's a central config or service layer, add the LD client there. See SDK Track Patterns (opens in a new tab) for initialization examples.
Step 3: Find the Right Placement#
Locate where in the code the user action or event occurs.
-
Ask if you're not sure where the action happens. Don't guess at placement — a
track()call in the wrong location (e.g. a render method instead of a submit handler) produces misleading data. -
Look for signals of the right location:
- Form submissions, button click handlers, API route completions, mutation hooks
- Existing analytics calls (
segment.track(),mixpanel.track(),gtag()) — these are often co-located with where LD track calls should go - Comments like
// TODO: track this
-
Show the candidate location to the user before writing anything:
TEXT · 2 LINES I'll add the track() call here, in the checkout submit handler (src/checkout/CheckoutForm.tsx, line 47). Does that look right? -
Proceed once confirmed (or if you're confident enough from codebase signals).
Step 4: Write the track() Call#
Write the call following the patterns found in Step 1.
Server-side SDKs — context is required:
ldClient.track('checkout-completed', context);Client-side SDKs — context is implicit:
ldClient.track('checkout-completed');For value metrics — include metricValue with the numeric measurement:
// Server-side: latency metric (ms)
ldClient.track('api-response-time', context, null, responseTimeMs);
// Client-side: revenue metric
ldClient.track('purchase-completed', { orderId }, purchaseAmountUSD);Key rules:
- Match the existing context. Don't construct a new context inline. Find where the codebase already builds its context/user object (used for
variation()calls) and use the same one. This is how LD correlates the event to the right experiment participant. metricValueonly forvaluemetrics. Forcountandoccurrencemetrics, omitmetricValueentirely.- Respect wrapper patterns. If the codebase wraps LD calls behind a utility (
featureFlags.track(),analytics.ldTrack()), add the new call through that wrapper — not by callingldClientdirectly. - Match the event key exactly.
track()event keys are case-sensitive. Use the exact string that the metric was created with.
See SDK Track Patterns (opens in a new tab) for full per-language examples.
Step 5: Verify#
Guide the user to trigger the action in their local or staging environment. Then use list-metric-events to confirm the event key appears:
list-metric-events(projectKey, environmentKey)If the event key appears: confirm success and show a summary.
If the event key is absent after triggering, work through this checklist:
| Problem | Check |
|---|---|
| Wrong event key casing | Does the track() call match the metric's event key exactly? |
| SDK not initialized | Is ldClient initialized before the track() call runs? |
| Server-side: wrong context | Is the context passed to track() the same context used for variation() calls? |
| Client-side: no flag evaluation first | Has the SDK initialized and identified the user before track() is called? |
| Wrong environment | Is list-metric-events querying the same environment where the action was triggered? |
| Data delay | list-metric-events shows the last 90 days with up to ~5 min delay — try again in a moment |
Surface a summary once verified:
✓ Event flowing: checkout-completed
Seen in: production
Next: this event is now ready to back a metric. Use the metric-create skill to set one up,
or attach an existing metric to your experiment.Important Context#
track()calls only count in experiments when a flag is evaluated first. The event is correlated to an experiment participant because LD saw avariation()call from that context. If the user triggers the action without evaluating any flag, the event may still be ingested but won't appear in experiment results.- Client-side SDKs flush events on an interval (default ~30 seconds) or on page unload. In tests, you may need to call
ldClient.flush()explicitly to see events appear immediately. - Server-side SDKs also buffer events. Calling
ldClient.flush()aftertrack()in development ensures the event is sent before the process exits or the test ends. metricValueunits must match the metric definition. If the metric was created with unitms, pass milliseconds. Passing seconds into a milliseconds metric will produce silently wrong results.- The
dataparameter is for custom metadata, not the metric value. Pass extra context (order ID, category, etc.) indata. Pass the numeric measurement inmetricValue.
References#
- SDK Track Patterns (opens in a new tab) —
track()call syntax, initialization, and package names for every supported SDK
FAQ
07 QUESTIONS
01What is the Launchdarkly metric instrument agent skill?
You're using a skill that will guide you through adding a track() call to a codebase so a LaunchDarkly metric can measure it. It is listed under growth in the 100xLab agent skills directory.
02How do I install Launchdarkly metric instrument in Cursor, Claude Code, or Codex?
Run npx skills add launchdarkly/agent-skills --skill launchdarkly-metric-instrument in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only Launchdarkly metric instrument, not every skill in the repository.
03What does the Launchdarkly metric instrument SKILL.md cover?
The SKILL.md includes sections on Prerequisites, Workflow, Step 1: Detect the SDK, Step 2: Install & Initialize (if SDK not present), Step 3: Find the Right Placement and Step 4: Write the track() Call. Read the full text on this page or in plain markdown at /resources/agent-skills/launchdarkly-agent-skills--launchdarkly-metric-instrument--1lcr3rf/raw.
04Which agents can use Launchdarkly metric instrument?
Launchdarkly metric instrument installs with the cross-agent skills installer (npx skills add), which sets it up for agents such as Claude Code, Cursor and Codex. Each agent loads the SKILL.md when you ask for the skill by name.
05What license is Launchdarkly metric instrument under?
The launchdarkly/agent-skills repository declares the Apache-2.0 license. Read the license file in the repository before you copy or redistribute the skill.
06Is Launchdarkly metric instrument free to use?
Reading, copying and installing Launchdarkly metric instrument costs nothing: it is published in a public GitHub repository under the Apache-2.0 license. Reuse and redistribution follow that license.
07Where is the source of Launchdarkly metric instrument?
Launchdarkly metric instrument comes from https://github.com/launchdarkly/agent-skills, which has 18 GitHub stars. The SKILL.md is at https://github.com/launchdarkly/agent-skills/blob/HEAD/skills/metrics/launchdarkly-metric-instrument/SKILL.md. The author is launchdarkly.
Need an agent workflow built around your stack?
Tell us the workflow you want automated. We reply within 4 working hours (IST).
ATTRIBUTION
Launchdarkly metric instrument was written by its original authors and is published in launchdarkly/agent-skills (opens GitHub in a new tab) under the Apache-2.0 license. All rights stay with the original authors.
100xLab did not write, maintain or endorse this skill. This page lists it for discovery. Repo stars belong to the source repository, not to the skill. Review any skill before you install it.