deterministic-metric-design
Inventing deterministic metrics — turning a fuzzy property like 'maintainability', 'risk', or 'how reducible this code is' into a deterministic, computable…
Skill by pproenca
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pproenca-deterministic-metric-design
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/deterministic-metric-design
What's inside
- Skill name
deterministic-metric-design- Description
- Inventing deterministic metrics — turning a fuzzy property like 'maintainability', 'risk', or 'how reducible this code is' into a deterministic, computable number an agent can trust and optimize. Covers the path from construct to adoption — operationalizing the construct, confronting computability limits (Kolmogorov, Rice) with sound proxies, picking the right measurement scale, proving properties (monotonicity, invariance, the Weyuker/Briand axioms), guaranteeing determinism, establishing construct validity (not just LOC in disguise), and hardening against Goodhart-style gaming when an agent optimizes the metric. Trigger when designing, reviewing, or validating a quantitative metric, score, measure, or index — and even when the user doesn't say 'metric' but wants to quantify, score, rank, or measure code/behavior, build a deterministic optimization target, or invent a measure for something previously unquantified (e.g., behavior-preserving codebase-size reduction).
- License
- MIT
- Instructions
- 142 lines in SKILL.md · view on GitHub
Files (50)
- AGENTS.md
- README.md
- SKILL.md
- _template.md · assets/templates/
- metadata.json
- _sections.md · references/
- agg-report-uncertainty-not-false-precision.md · references/
- agg-respect-scale-in-aggregation.md · references/
- agg-ship-reference-impl-and-test-vectors.md · references/
- agg-version-the-metric-publicly.md · references/
- comp-bound-approximation-error-explicitly.md · references/
- comp-choose-a-decidable-observational-equivalence.md · references/
- comp-design-a-proxy-with-a-proven-error-direction.md · references/
- comp-do-not-define-metric-as-uncomputable-ideal.md · references/
- comp-keep-the-metric-tractable.md · references/
- comp-prefer-monotone-confluent-transformations.md · references/
- comp-respect-rices-theorem-for-semantic-properties.md · references/
- def-anchor-to-the-decision.md · references/
- def-fix-unit-of-analysis.md · references/
- def-name-the-latent-construct.md · references/
- def-operationalize-behavior-and-size.md · references/
- def-separate-construct-from-proxy.md · references/
- def-write-falsifiable-operational-definition.md · references/
- det-control-floating-point-and-accumulation.md · references/
- det-make-the-metric-a-pure-function.md · references/
- det-pin-iteration-and-tie-break-order.md · references/
- det-pin-the-input-representation.md · references/
- det-version-and-record-the-toolchain.md · references/
- game-detect-reward-hacking-with-audits.md · references/
- game-hard-block-construct-violating-wins.md · references/
- game-make-cheapest-improvement-the-right-one.md · references/
- game-pair-with-guardrail-metrics.md · references/
- game-recognize-goodhart-variants.md · references/
- meas-avoid-ad-hoc-weighted-sums.md · references/
- meas-declare-the-scale-type.md · references/
- meas-establish-meaningful-zero-and-unit.md · references/
- meas-only-admissible-statistics.md · references/
- meas-preserve-the-empirical-relation.md · references/
- prop-check-weyuker-briand-axioms.md · references/
- prop-ensure-sensitivity-to-relevant-change.md · references/
- prop-prove-boundedness-and-handle-empty.md · references/
- prop-prove-invariance-under-irrelevant-transforms.md · references/
- prop-prove-monotonicity.md · references/
- prop-prove-or-disclaim-composability.md · references/
- valid-beat-the-trivial-baseline.md · references/
- valid-calibrate-thresholds-to-ground-truth.md · references/
- valid-converge-with-accepted-measure.md · references/
- valid-discriminant-not-just-loc.md · references/
- valid-predictive-validity-against-outcome.md · references/
- valid-validate-out-of-sample.md · references/
SKILL.md (first lines)
# dot-skills Deterministic Metric Design Best Practices
Design metrics that are deterministic, computable, provable, and valid — measures an agent can trust and *optimize against* without gaming them. The 44 rules across 8 categories take a metric from a fuzzy construct to an adoptable, machine-checkable number: define the construct, confront computability limits with sound proxies, ground it in measurement theory, prove its properties, pin its determinism, validate it empirically, harden it against optimization pressure, and package it for adoption.
A running example threads through every category — **a deterministic measure of behavior-preserving codebase-size reduction** (shrink code without changing how the app works). It is the ideal stress test because its ideal form is provably out of reach (Kolmogorov complexity is uncomputable; program equivalence is undecidable by Rice's theorem), so the whole craft is building a deterministic, tractable proxy with a proven guarantee.
This is the measurement-design layer that the `*-algorithms` skills *apply* (Big-O, NDCG, cyclomatic, MoJoFM) but never *teach*.
## When to Apply
Use this skill when:
- Designing a new metric, score, or index — or reviewing someone's proposed metric for rigor
- Asked to "quantify", "measure", "score", or "rank" a property that has no agreed measure yet
- Building a deterministic optimization target an agent will push on (e.g., reduce code size without changing behavior)
- Auditing an existing metric that "feels off" — it suspiciously tracks LOC, jumps between runs, or gets gamed
- Turning a research idea or formula into something computable, reproducible, and adoptable
## Workflow: Define → Make Computable → Prove → Validate → Harden
The categories are ordered by cascade severity — an upstream mistake poisons everything below it. Work top-down, and jump straight to a category using this table:
| If you are… | Start in | First rule |
|-------------|----------|------------|
| Starting from a fuzzy property | `def-` | [def-name-the-latent-construct](references/def-name-the-latent-construct.md) |
| Worried the ideal is uncomputable / undecidable | `comp-` | [comp-do-not-define-metric-as-uncomputable-ideal](references/comp-do-not-define-metric-as-uncomputable-ideal.md) |
| Unsure whether you can average or take ratios | `meas-` | [meas-declare-the-scale-type](references/meas-declare-the-scale-type.md) |
| Claiming the metric behaves a certain way | `prop-` | [prop-prove-monotonicity](references/prop-prove-monotonicity.md) |
| Getting different numbers between runs | `det-` | [det-pin-iteration-and-tie-break-order](references/det-pin-iteration-and-tie-break-order.md) |
| Unsure it measures the real thing | `valid-` | [valid-discriminant-not-just-loc](references/valid-discriminant-not-just-loc.md) |
| Letting an agent optimize the metric | `game-` | [game-hard-block-construct-violating-wins](references/game-hard-block-construct-violating-wins.md) |
| Publishing the metric for others | `agg-` | [agg-ship-reference-impl-and-test-vectors](references/agg-ship-reference-impl-and-test-vectors.md) |
Each reference file is a `{category}-{slug}.md` containing: WHY it matters, an **Incorrect** example with the failure annotated, a **Correct** example with the minimal fix, and a reference. The incorrect/correct examples are metric *definitions and procedures*, not application code — the contrast is a badly-designed measure versus the fixed one.
## Rule Categories by Priority
| # | Category | Prefix | Impact | Rules |
|---|----------|--------|--------|-------|
| 1 | Construct Definition & Operationalization | `def-` | CRITICAL | 6 |
| 2 | Computability & Tractability | `comp-` | CRITICAL | 7 |
| 3 | Measurement-Theoretic Foundations | `meas-` | HIGH | 5 |
| 4 | Proof of Metric Properties | `prop-` | HIGH | 6 |
| 5 | Determinism & Reproducibility | `det-` | HIGH | 5 |
| 6 | Construct Validity & Calibration | `valid-` | MEDIUM-HIGH | 6 |
| 7 | Optimization Safety & Anti-Gaming | `game-` | MEDIUM | 5 |
| 8 | Aggregation, Reporting & Adoption | `agg-` | LOW-MEDIUM | 4 |
See [`references/_sections.md`](references/_sections.md) for the full ordering rationale.
## Quick Reference
### 1. Construct Definition & Operationalization (CRITICAL)
- [`def-name-the-latent-construct`](references/def-name-the-latent-construct.md) — Name the unobservable property before writing any formula
- [`def-separate-construct-from-proxy`](references/def-separate-construct-from-proxy.md) — Keep construct, proxy, and their assumed link distinct
- [`def-write-falsifiable-operational-definition`](references/def-write-falsifiable-operational-definition.md) — Specify the exact procedure that yields the number
- [`def-fix-unit-of-analysis`](references/def-fix-unit-of-analysis.md) — Pin the unit of analysis and the measurement boundary
- [`def-anchor-to-the-decision`](references/def-anchor-to-the-decision.md) — Attach the decision and action threshold the metric drives
- [`def-operationalize-behavior-and-size`](references/def-operationalize-behavior-and-size.md) — Define "behavior" (≈) and "size" so a formatter can't move them
### 2. Computability & Tractability (CRITICAL)
- [`comp-do-not-define-metric-as-uncomputable-ideal`](references/comp-do-not-define-metric-as-uncomputable-ideal.md) — Don't define the metric as Kolmogorov complexity
- [`comp-respect-rices-theorem-for-semantic-properties`](references/comp-respect-rices-theorem-for-semantic-properties.md) — Use sound approximations for undecidable semantic facts
- [`comp-choose-a-decidable-observational-equivalence`](references/comp-choose-a-decidable-observational-equivalence.md) — Replace undecidable equivalence with a checkable ≈
- [`comp-design-a-proxy-with-a-proven-error-direction`](references/comp-design-a-proxy-with-a-proven-error-direction.md) — Give the proxy a sound bound that never over-states
- [`comp-keep-the-metric-tractable`](references/comp-keep-the-metric-tractable.md) — Pick a near-linear proxy, not an NP-hard optimum
- [`comp-bound-approximation-error-explicitly`](references/comp-bound-approximation-error-explicitly.md) — Quantify and report the proxy↔ideal gap
- [`comp-prefer-monotone-confluent-transformations`](references/comp-prefer-monotone-confluent-transformations.md) — Confluent, terminating rewrites give a unique fixed point
### 3. Measurement-Theoretic Foundations (HIGH)
- [`meas-declare-the-scale-type`](references/meas-declare-the-scale-type.md) — Declare nominal/ordinal/interval/ratio before any statistic
- [`meas-only-admissible-statistics`](references/meas-only-admissible-statistics.md) — Use only statistics invariant under the scale's transforms
- [`meas-establish-meaningful-zero-and-unit`](references/meas-establish-meaningful-zero-and-unit.md) — Give a true zero and a named unit for ratio claims
- [`meas-preserve-the-empirical-relation`](references/meas-preserve-the-empirical-relation.md) — Verify the metric orders known anchor cases correctly
- [`meas-avoid-ad-hoc-weighted-sums`](references/meas-avoid-ad-hoc-weighted-sums.md) — Don't sum incommensurable scales with arbitrary weights
### 4. Proof of Metric Properties (HIGH)
- [`prop-prove-monotonicity`](references/prop-prove-monotonicity.md) — Prove the score moves the right way when the construct does
- [`prop-prove-invariance-under-irrelevant-transforms`](references/prop-prove-invariance-under-irrelevant-transforms.md) — Prove invariance to renaming and formatting
- [`prop-ensure-sensitivity-to-relevant-change`](references/prop-ensure-sensitivity-to-relevant-change.md) — Ensure it still discriminates (no saturation)
- [`prop-check-weyuker-briand-axioms`](references/prop-check-weyuker-briand-axioms.md) — Check the published axioms for your measure type
- [`prop-prove-boundedness-and-handle-empty`](references/prop-prove-boundedness-and-handle-empty.md) — Prove the range; define the empty / zero-denominator case
- [`prop-prove-or-disclaim-composability`](references/prop-prove-or-disclaim-composability.md) — Prove additivity before aggregating, or refuse to sum
### 5. Determinism & Reproducibility (HIGH)
- [`det-make-the-metric-a-pure-function`](references/det-make-the-metric-a-pure-function.md) — No hidden time, network, or global state
- [`det-pin-iteration-and-tie-break-order`](references/det-pin-iteration-and-tie-break-order.md) — Sort by a total key; seed any randomness
- [`det-pin-the-input-representation`](references/det-pin-the-input-representation.md) — Fix exactly which representation (AST stage) you measure
- [`det-control-floating-point-and-accumulation`](references/det-control-floating-point-and-accumulation.md) — Fix summation order and rounding precision
- [`det-version-and-record-the-toolchain`](references/det-version-and-record-the-toolchain.md) — Emit metric version, tool versions, and input hash
### 6. Construct Validity & Calibration (MEDIUM-HIGH)
- [`valid-converge-with-accepted-measure`](references/valid-converge-with-accepted-measure.md) — Show convergence with a trusted measure of the construct
- [`valid-discriminant-not-just-loc`](references/valid-discriminant-not-just-loc.md) — Prove incremental signal beyond LOC / size
- [`valid-predictive-validity-against-outcome`](references/valid-predictive-validity-against-outcome.md) — Show it predicts the real outcome out-of-sample
- [`valid-beat-the-trivial-baseline`](references/valid-beat-the-trivial-baseline.md) — Quote the lift over a dumb baseline
- [`valid-calibrate-thresholds-to-ground-truth`](references/valid-calibrate-thresholds-to-ground-truth.md) — Derive thresholds from data, not round numbers
- [`valid-validate-out-of-sample`](references/valid-validate-out-of-sample.md) — Use a holdout / temporal split to avoid overfitting the corpus
### 7. Optimization Safety & Anti-Gaming (MEDIUM)
- [`game-make-cheapest-improvement-the-right-one`](references/game-make-cheapest-improvement-the-right-one.md) — Make the cheapest score gain the genuine one
- [`game-recognize-goodhart-variants`](references/game-recognize-goodhart-variants.md) — Anticipate regressional / extremal / causal Goodhart
- [`game-pair-with-guardrail-metrics`](references/game-pair-with-guardrail-metrics.md) — Add counter-metrics that veto a regressing "win"
- [`game-hard-block-construct-violating-wins`](references/game-hard-block-construct-violating-wins.md) — Gate on invariants; never use a tradable soft penalty
- [`game-detect-reward-hacking-with-audits`](references/game-detect-reward-hacking-with-audits.md) — Spot-audit top scores; watch proxy↔outcome drift
### 8. Aggregation, Reporting & Adoption (LOW-MEDIUM)
- [`agg-respect-scale-in-aggregation`](references/agg-respect-scale-in-aggregation.md) — Aggregate the way the scale permits (no mean of ordinal)
- [`agg-report-uncertainty-not-false-precision`](references/agg-report-uncertainty-not-false-precision.md) — Report intervals / bounds, not false precision
- [`agg-version-the-metric-publicly`](references/agg-version-the-metric-publicly.md) — Semver + changelog so consumers stay comparable
- [`agg-ship-reference-impl-and-test-vectors`](references/agg-ship-reference-impl-and-test-vectors.md) — Publish test vectors so implementations agreeFrom pproenca/dot-skills, MIT.
More from pproenca/dot-skills
- 0.694score
tanstack-query
community
TanStack Query v5 performance optimization for data fetching, caching, mutations, and query patterns.
SkillCFreshness: C★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
feature-arch
pproenca
React feature-based architecture guidelines for scalable applications.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
expo-ui
pproenca
Library reference for @expo/ui SwiftUI components on iOS — covers Host boundaries, modifier composition, iOS 26 Liquid Glass and Human Interface Guidelines…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
expo
pproenca
Expo React Native performance optimization guidelines.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
ios-taste
pproenca
Designs iOS 18+ SwiftUI experiences with real taste — starting from user goals, not pixels.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
mui-base
pproenca
MUI Base UI style guidelines for building headless React component libraries (formerly headless-ui-style).
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
code-simplifier
pproenca
Code simplification skill for improving clarity, consistency, and maintainability while preserving exact behavior.
SkillCFreshness: C★ 218Claude Code +9
Signals
- Stars
- 218
- Forks
- 19
- Open issues
- 3
- Last commit (this folder)
- Jul 5, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pproenca/dot-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pproenca
- 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
expo-ui
pproenca
Library reference for @expo/ui SwiftUI components on iOS — covers Host boundaries, modifier composition, iOS 26 Liquid Glass and Human Interface Guidelines…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9
Cite this page
deterministic-metric-design skill. Agent Mart. https://agentmart.dev/skills/pproenca-deterministic-metric-design (last updated 2026-10-24)