← TinyGPT · docs · devlog · roadmap · speedup
source: docs/prds/STATUS.md · view on GitHub ↗

PRD status — code-verified audit (2026-06-20)

Current prioritization lives in docs/prds/PRIORITY.md. This file is the historical code-verified audit; use it for implementation evidence, not for deciding what to build next.

Historical, code-cross-checked status of every active PRD in docs/prds/. Each verdict was verified against native-mac/Sources/, scripts/, evals/, and browser/src/not the PRD’s own status: frontmatter, which is unreliable (many were stale; several said not-started while the feature had partly shipped). When a PRD’s frontmatter disagrees with this table, treat this as the stronger implementation-evidence snapshot, then apply the current priority/archive map in docs/prds/PRIORITY.md.

Why this exists: a 2026-06-20 audit found frontmatter understated progress and docs/PLAN.md’s markers overstated it (it marks features “shipped” that miss their PRD’s acceptance criteria). This doc is the reconciled truth.

Summary (after the 2026-06-20 implementation session)

VerdictCountMeaning
✅ Done15all acceptance criteria met + verified (some V1, V2 noted)
🟡 Partial28core/scaffolding ships, named gaps remain
⬜ Not-started11no deliverables found in code
📄 Non-task6decision / positioning / tracking / upstream-blocked doc
Total60

B31 → done (#45/#46/#47): browser kind discriminator (aligned to the Swift GalleryModelKind raw values — fixed a mismatch), pin-aware pull (resolves the base pin from tinygpt.project.json), and validate-project (structural + --gallery resolve). Leftovers are the R2 download (needs credentials) and B6’s GUI picker (B6’s scope), not B31 code.

sudo/network round (2026-06-20, after sudo+network unblocked)

Still pending sudo (run sudo bash scripts/setup_powermetrics_sudoers.sh): C5 die-temp + B9 J/token. Everything else needs a training GPU / M5 / weeks of model-building (see GPU-RESEARCH-BACKLOG.md).

Finished in the 2026-06-20 implementation session

157 model tests pass (0 failures, +27 this session); 12 CPU smokes + 2 harness self-tests (C5/B9) green.

Self-contained eval-scorer tier built for the whole specialist/agent family — each scores a predictions/results file (pure + unit-tested + smoke), so the GPU training step has a ready, verified gate: eval-bfcl --lora (A1), eval-sql (B1), eval-router bake-off (B2–B7), eval-milu per-language (B8), eval-review (B35), compress/eval-scaledown (B25/E6), eval-escalate (B5). Plus interp-replay timeline orchestrator (B13, --dry-run) and validate-project pin validation (B31). For all of these, only the model-generation/training step needs a GPU; the verifiable code is done.

Every sandbox-verifiable code slice across the 60-PRD backlog is now built. The remaining 11 not-started + the deep partials are 100% gated on GPU training, special hardware (M5 / sudo powermetrics), network installs (ScaleBench/sae_lens), a cloud API, or are multi-week from-scratch model builds (Tier 5 5.1–5.7).

All verified by swift test / smoke scripts. Build note: Xcode-27’s default build system has a broken incremental relink; use swift build --build-system native --product tinygpt.

PRDWhat shippedVerification
B15 llrd--llrd γ on sft/dpo/finetune via scaleLayerwiseLRLLRDTests (2)
B11 wsd--decay-shape {1-sqrt,cosine,linear}TrainSchedHelpersTests
B18 depth--depth derives lr/batch/steps + --regime; DepthDerivation module + training_guide tableDepthDerivationTests (6)
B10 quality--score {doc_id,score} sidecar modequality-filter-smoke.sh (science 0.77 > spam 0.02)
B12 spike--auto-rollback off|warn|on adaptive LR-cut controllerSpikeRecoveryTests (4)
C9 determinismevals/determinism-smoke.sh harness + corrected docsmoke (step-0 exact, ~2.7e-5 same-seed)
B21 automixerDirichlet MixSampler + quadratic SurrogateFit + automix orchestrator (--dry-run)AutoMixTests (5) + automix-smoke.sh (converges to optimum)
B25 compress (V1)lexical compress (BM25-lite LexicalRelevance)LexicalRelevanceTests (6) + compress-smoke.sh; learned head V2 (GPU)
E6 eval-scaledown (V1)self-contained compression eval (ratio + answer-retention) + install-scalebench.shscaledown-smoke.sh (ratio 0.58, retention 1.0); ScaleBench wrapper V2
B5 escalate (data+eval)EscalationLabeling + build-escalate-data + eval-escalateEscalationLabelingTests (3) + escalate-smoke.sh; SFT run/cloud teacher pending
A1 tool-callereval-bfcl --lora + recipe + acceptance + briefbuilds; 4B train + BFCL run need GPU
B17 saelensexporter writes README + docs sectionbuilds; py round-trip needs sae_lens

C9 finding: MLX/Metal training is reproducible to ~1e-5 but not bit-exact past step 0 (nondeterministic GPU reductions) — full step-N replay isn’t achievable on this backend. B17 remains partial (sparsity = analysis-time).

Harnesses written (core logic --self-test-verified; full runs need hardware):

PRDHarnessRun needs
C5 thermalscripts/bench_decode_thermal.py (degradation self-test)running serve + ~30 min + sudo powermetrics
B9 energyscripts/bench_energy.py + setup_powermetrics_sudoers.sh (J/token self-test)running serve + sudo powermetrics

~41 PRDs still carry remaining work (26 partial + 15 not-started). The partials are mostly V1-shipped-here with a V2/training gap; the not-started and the deeper partials are gated on GPU training runs, special hardware (M5 / sudo powermetrics), network installs (ScaleBench, sae_lens), a cloud API, or are multi-week from-scratch model builds (Tier 5) — not finishable in a CPU sandbox.


Legacy pre-implementation snapshot

The section below is the earlier 2026-06-20 audit snapshot kept for detail. It is superseded by the implementation-session summary above when counts or PRD status disagree. For active work, start from PROJECT_STATUS.md and docs/NEXT.md.

✅ Done (4) — acceptance met; candidates for removal

🟡 Partial (26) — shipped core, real gaps

Training quality / optimizer

Interpretability

Inference

Agent protocol / eval discipline

RL / trace-improvement loop

Factory / Pace / vision

Long-horizon

⬜ Not-started (24) — no deliverables in code

📄 Non-task (6) — not buildable “to-do” work