# scientistproject/Scientist.net

A .NET library for carefully refactoring critical paths. It's a port of GitHub's Ruby Scientist library

Repository: https://github.com/scientistproject/Scientist.net
Canonical: https://ross.abutalabs.com/products/scientistnet
Language: C#
License: MIT
License Family: permissive
Last push: 2025-11-26T11:19:23+00:00

## Health v2 (maintenance only)
Score: 60/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 54, release rhythm 46, longevity 100
- inputs: {"age_days": 3863, "days_push": 280, "days_rel": 280, "gap_med": 57, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1488, forks 91 (observed 2026-08-28T04:04:52.118326+00:00)

## What it is
Scientist.net is a .NET library for carefully refactoring critical code paths by running old and new implementations side by side in production. It is a port of GitHub's Ruby Scientist library, measuring and comparing results while always returning the control behavior's value.

## Use cases
- refactor a critical code path safely by comparing old and new behavior under real load
- run an experiment comparing a legacy permission check with a new implementation
- measure and log duration and result mismatches between control and candidate code
- gradually roll out refactored logic while swallowing candidate exceptions
- publish experiment results to a custom sink like a database or logger

## When to choose
- you are refactoring high-risk production code and want to verify behavioral equivalence before switching over
- you want a battle-tested port of GitHub's Scientist pattern for .NET
- you need timing and mismatch data for old vs new implementations without affecting returned results

## When to avoid
- you need feature flags or gradual rollout without behavior comparison - use a feature flag library instead
- your code path is cheap to test with unit tests alone and doesn't need production comparison
- you are not on the .NET platform

## Facets
- artifact type: library
- maturity: active
- function: testing, benchmarking, middleware
- domain: developer-tools, apis
- platform: dotnet, cross-platform
- tags: refactoring, experimentation, behavior-comparison, a-b-testing, scientist-port, csharp

## Member repositories
- scientistproject/Scientist.net (main) score 60

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:52.118326+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:33:45.745369+00:00, confidence not recorded.
  - readme: https://github.com/scientistproject/Scientist.net (fetched 2026-08-28T04:04:52.118326+00:00, sha 4cd7dce566cf)
- Data as of 2026-08-30T08:39:29.467469+00:00.
