BryanTheLai / BryanTheLai/fraud-v2

Feature registry and online/offline parity report

Open
#4 0 comments 0 reactions 0 assignees View on GitHub
area:features area:mlops feasible:local priority:p0 spec-ready truth-first
Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Rank
P0. Feasible locally.

## Goal
Create a versioned feature registry and online/offline parity report.

## Why
The article calls out training-serving skew. Shared feature definitions must exist before stream freshness, ML benchmarks, drift gates, or hybrid scoring can be trusted.

## Current Assets
- `src/fraud_v2/features/builder.py`
- `src/fraud_v2/domain/decisions.py`
- `FeatureFreshnessStatus`
- Evaluation/report patterns in `src/fraud_v2/evaluation/`

## Build
- Add `FeatureDefinition`: name, version, entity types, source events, window, value type, freshness SLO, description.
- Add `FeatureValue`: definition, entity ref, as_of, value, source event IDs, computed_at, freshness.
- Add `FeatureParityRow` and `FeatureParityReport`.
- Add parity command/report.
- Add skew fixture for rounded training value vs live precision value.

## Missing
- Versioned feature definitions.
- Per-feature source event IDs/windows for all features.
- Online/offline parity report.

## Acceptance
- Feature report shows pass/fail per feature.
- At least one skew fixture proves the bug and the fix.
- HTML or cockpit report renders parity status.
- Docs state Feast/Tecton are deferred until real scale/platform access exists.

## Out Of Scope
- Feast.
- Tecton.
## Truth Boundary
- No real PII.
- No real KYC/KYB/liveness/sanctions/consortium calls.
- No real money movement.
- No real customer messages.
- No real SAR or adverse-action filing.
- If blocked, simulate locally and label it as simulated.
## Links
- Target article: https://www.bryanslab.com/blogs/fraud-2/
- Master spec: https://github.com/BryanTheLai/fraud-v2/blob/feature/full-profile-adapters/docs/target-goal-gap-and-issue-spec.md
- Ranked issue map: https://github.com/BryanTheLai/fraud-v2/blob/feature/full-profile-adapters/docs/issue-evaluation-ranking.md
- Production readiness: https://github.com/BryanTheLai/fraud-v2/blob/feature/full-profile-adapters/docs/production-readiness.md
- Agent rules: https://github.com/BryanTheLai/fraud-v2/blob/feature/full-profile-adapters/AGENTS.md
## Required Proof
- `uv run ruff format --check .`
- `uv run ruff check .`
- `uv run mypy src`
- `uv run pytest -q`

If Docker/full profile changes:
- `docker compose -f infra\docker-compose.yml --profile full config --quiet`
- `docker build -t fraud-v2:local .`

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading src/fraud_v2/features/builder.py, src/fraud_v2/domain/decisions.py, FeatureFreshnessStatus, and the evaluation/report patterns in src/fraud_v2/evaluation/. Define the requested versioned feature and parity artifacts, then add the parity command and rounded-training versus live-precision skew fixture. Done means per-feature pass/fail output, rendered HTML or cockpit parity status, deferred-platform documentation, and passing the required format, lint, type, and test commands.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.