# QA Verification Log — SarcoMyokinEngine

Date: 2026-04-25

## Verification checklist

| # | Check | Result |
|---|-------|--------|
| 1 | Python syntax (`ast.parse(main.py)`) | OK — "SYNTAX OK" |
| 2 | `python3 main.py --help` shows 4 subcommands | OK — init / rank-triplets / panel / stats |
| 3 | `python3 main.py init` builds DB | OK — 22 myokines, 65 pathway links, 33 co-occurrence pairs |
| 4 | `python3 main.py rank-triplets --top 5` produces ranked output | OK — top: BDNF + FGF21 + MIF (composite=0.9996); 300/1540 sampled |
| 5 | `python3 main.py panel myostatin FGF21 GDF15` produces full report | OK — cost $1,540 list / $1,925 reagents; 1.0 mL whole blood; power table 7x4; mechanism non-overlap=1.000 |
| 6 | `python3 main.py stats` produces corpus stats | OK — 1,468 synthetic SO papers; top: IGF-1, leptin, IL-6 |

## Disclaimer presence

- README.md top: present
- CLI output every subcommand: present (printed at start)

## Constraint compliance

- Stdlib only: confirmed (only sqlite3, json, csv, argparse, math, itertools, os, sys, random imported)
- No network calls: confirmed (no urllib, no requests)
- No package installs: confirmed
- Triplets sampled (300) instead of full enumeration (1,540): confirmed (`_sample_triplets`)

## Notes

- Synthetic data only; co-occurrence matrix is sparse (33 pairs out of C(22,2)=231), causing many triplets to score 1.0 on unexplored bonus — this is expected for an offline mock.
- Power calculation uses normal approximation (Phi(d*sqrt(n/2) - 1.96)), which slightly overestimates t-test power for small n. Adequate for grant-stage power planning.
- DB is regenerated cleanly on every `init` (file is removed first).

## All checks passed
