plugins/pm/skills/feature-metrics/SKILL.md
Define success metrics using the STEDII framework for trustworthy experiment metrics.
npx skillsauth add coalesce-labs/catalyst feature-metricsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Select trustworthy metrics using the STEDII framework.
Automatic Context Checks: When this skill is invoked, immediately check:
| Source | Files/Folders | Search Terms | What to Extract |
| --------------- | ---------------------------------------------- | ------------------------------------- | ------------------------------------------ |
| Current PRD | thoughts/shared/pm/prds/*.md | feature name from chat | Hypothesis, problem statement, user impact |
| Business Info | thoughts/shared/pm/context/business-info-template.md | business model, growth stage, metrics | Product strategy, current North Star |
| Metrics Context | thoughts/shared/pm/metrics/*.md | baseline numbers, historical data | Current metric baselines, ranges |
| Strategy | thoughts/shared/pm/frameworks/*.md | feature related to strategic pillar | Strategic fit and expected outcomes |
| Meetings | thoughts/shared/product/meeting-notes/*.md | feature name, "success metrics" | Stakeholder expectations, past decisions |
Context Priority:
Cross-Skill Links:
/write-prod-strategy/experiment-decision and /experiment-metrics/define-north-star/impact-sizing for usage estimates/retention-analysis for cohort analysisBefore we define metrics, let me check what context already exists...
Checking:
thoughts/shared/pm/prds/ for any existing PRD for this featurethoughts/shared/pm/context/business-info-template.md for your product modelthoughts/shared/pm/metrics/ for historical baseline datathoughts/shared/pm/frameworks/ for strategic contextthoughts/shared/product/meeting-notes/ for stakeholder expectations[If feature PRD exists]: "I found your [Feature Name] PRD from [date]. It mentions [hypothesis/goal]. Let me use that as context."
[If metrics exist]: "I found historical data: [Metric] baselines are currently [values]. I'll use this as reference."
Based on what I find, I'll show you:
Strategic Context:
Current Baselines:
Success Expectations:
Every good metric should pass these 6 criteria:
Can the metric detect changes from your feature?
How quickly does the metric respond?
Can stakeholders interpret it?
Is improvement clear?
Can you actually track it?
Does it avoid external factors?
When PM types /feature-metrics, respond:
Let's define metrics for your feature. I'll use the STEDII framework.
Tell me:
1. What feature are we measuring?
2. What user behavior does it change?
3. What business outcome do we expect?
I'll help you select primary metrics, guardrails, and kill criteria.
The one metric that defines success.
Metrics that must NOT get worse.
When to stop the experiment early.
# Feature Metrics: [Feature Name]
## Primary Metric
**Metric:** [Name]
**Definition:** [Exactly how it's calculated]
**Current baseline:** [X]
**Target:** [Y] ([+/- Z%])
**Timeline:** [When we expect to see impact]
**STEDII Check:**
- [x] Sensitive - [why]
- [x] Timely - [why]
- [x] Easy to understand - [why]
- [x] Directional - [up/down = good]
- [x] Implementable - [data source]
- [x] Independent - [controls for]
## Guardrail Metrics
| Metric | Acceptable Range | Why It Matters |
| ---------- | ---------------- | ------------------ |
| [Metric 1] | [range] | [protects against] |
| [Metric 2] | [range] | [protects against] |
## Kill Criteria
If any of these occur, immediately rollback:
- [Metric] drops below [threshold]
- [Metric] increases above [threshold]
- [Qualitative signal] occurs
## Measurement Plan
- **Data source:** [where data comes from]
- **Tracking:** [how it's implemented]
- **Dashboard:** [where to monitor]
- **Review cadence:** [how often to check]
| Feature Type | Primary Metric | Common Guardrails | | ------------ | ------------------- | -------------------- | | Growth | Signups, Activation | Retention, Quality | | Engagement | DAU, Sessions | Load time, Errors | | Revenue | Conversion, ARPU | Refunds, Churn | | Retention | D7/D30 retention | NPS, Support tickets | | Efficiency | Task completion | Time on task, Errors |
Feature metrics definitions:
Strategic Fit section/experiment-decision for A/B testing approachthoughts/shared/pm/metrics/[feature-name]-baseline.md for historical referenceAfter defining metrics:
/experiment-decision/retention-analysisFeeds into:
/experiment-decision - Primary metric determines test design and duration/feature-results - Use these metrics to measure actual impact post-launch/impact-sizing - Use guardrails to validate usage estimates/metrics-framework - This metric may become a leading indicator for North StarPulls from:
/define-north-star - Ensure primary metric ladders up to North Star/impact-sizing - Usage estimates inform what metrics can detect changesBefore presenting output to the PM, verify:
thoughts/shared/pm/metrics/feature-metrics-[feature-name]-[date].mdthoughts/shared/pm/prds/ for feature context, thoughts/shared/pm/context/business-info-template.md for North Star metric, and thoughts/shared/pm/metrics/ for existing dashboards and baselinestesting
Phase-agent that fixes a failing verify verdict so the pipeline self-heals instead of stalling to needs-human (CTL-653). Reads `${ORCH_DIR}/workers/<ticket>/verify.json`, fixes the `findings[]` (every severity:"high" plus the regression_risk drivers) directly via Edit/Write, commits the remediation, and emits `phase.remediate.complete.<ticket>`. The scheduler's router then re-dispatches `verify` to re-check (the verify⇄remediate cycle, cap 3). Dispatched as a `claude --bg` job by `phase-agent-dispatch`, which invokes it via slash command — hence `user-invocable: true`.
development
Phase agent for the verify step of the 9-phase orchestrator pipeline (CTL-450). NEW skill — has no canonical wrapper. Runs read-only adversarial verification against the implement-phase diff: tsc, tests, lint, security scan, reward-hacking scan, code review, test coverage, silent-failure hunt. Writes ${ORCH_DIR}/workers/<TICKET>/verify.json then emits phase.verify.complete.<ticket>. Reads phase-implement.json as its prior-phase artifact. NEVER writes application code — only test files allowed. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.
tools
--- name: phase-triage description: Phase agent that triages a Linear ticket — expands acronyms, classifies (feature/bug/docs/refactor/chore), identifies dependencies, estimates scope, writes triage.json, and posts a triage analysis comment to Linear. Triage completion is signaled by that comment plus the local triage.json — there is no `triaged` label. Emits phase.triage.complete.<TICKET> on success and phase.triage.failed.<TICKET> on error. Dispatched by the phase-agent orchestrator (CTL-452)
testing
Phase agent for the review step of the 9-phase orchestrator pipeline (CTL-450). Wraps the /review skill (gstack) — explicitly skips /ultrareview per user decision. Reads verify.json from the prior phase, runs /review against the diff, writes ${ORCH_DIR}/workers/<TICKET>/review.json, and creates a remediation commit for any HIGH-severity finding that has a deterministic fix. Emits phase.review.complete.<ticket>. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.