BryanTheLai / BryanTheLai/fraud-v2

Synthetic identity surveillance and novelty ledger

Open
#3 0 comments 0 reactions 0 assignees View on GitHub
area:data area:mlops blocked:production 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. Production realism blocked.

## Goal
Add synthetic identity timeline scenarios and an LLM novelty ledger. No real PII.

## Why
The target article centers synthetic identity fraud. Current data covers typologies, but not explicit impossible timeline gaps or duplicate-prevention for generated cases.

## Current Assets
- `src/fraud_v2/synthetic/generator.py`
- `src/fraud_v2/llm_lab/provider.py`
- `docs/llm-synthetic-data-lab.md`
- `docs/data-strategy.md`

## Build
- Add `SyntheticIdentityProfile` with identity age, credit age, document age, timeline gap code, typology, no-real-PII flag.
- Add `NoveltyLedgerEntry` with signature, scenario type, source, created_at, prompt hash, no-real-PII flag, event IDs.
- Add `data/synthetic/novelty-ledger.jsonl` or documented generated artifact path.
- Add `LlmSyntheticCaseConverter` for schema-validated LLM JSON.
- Add CLI to append generated cases and ledger entries.

## Missing
- Impossible birth-to-credit timeline cases.
- Duplicate scenario rejection.
- PII-like input rejection.

## Acceptance
- Synthetic identity cases include impossible or suspicious identity/credit/document age timelines.
- Ledger rejects duplicate normalized signatures before writing events.
- LLM path is optional/offline-safe.
- Tests prove no real PII fields are accepted.
- LLM is not used for final fraud scoring.

## Out Of Scope
- Real SSNs.
- Real bureau data.
- Real documents.
## 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/synthetic/generator.py, src/fraud_v2/llm_lab/provider.py, and the two linked lab and strategy documents to understand the existing schemas and entry points. Trace how a CLI could append validated cases and ledger entries, then add tests for impossible timelines, duplicate signatures, PII-like input rejection, and offline-safe LLM behavior. Done means the acceptance criteria pass and all required ruff, mypy, and pytest commands succeed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
ai, data, security
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.