Files
fusion/docs/test-value-audit.md
gsxdsm 4426a9ae75 chore: add test value audit (deletion-candidate evidence base)
Add scripts/test-value-audit.mjs + scripts/lib/test-value-audit-lib.mjs:
a heuristic that scores every test file under packages/*/src/**/__tests__/**
and packages/dashboard/app/**/__tests__/** from git history, classifying
commits as positive (fix+source co-change, Symptom Verification regressions,
added-with-source) vs negative (flake/quarantine/timeout churn, test-only
modifies, quarantine-ledger membership). Joins per-file durations from
scripts/test-timings.json so SLOW + LOW-VALUE files rank first as deletion
candidates. Emits docs/test-value-audit.json + docs/test-value-audit.md
(top 40 + methodology + caveats). Pure scoring logic is unit-tested with
synthetic commit records. The script never deletes tests — evidence only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:04:30 -07:00

145 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Test Value Audit
> Generated by `scripts/test-value-audit.mjs` on 2026-06-26T00:03:00.110Z.
>
> **This is a HEURISTIC, not ground truth.** It is an evidence base for a human
> deletion decision. The script does **not** delete any tests. See Methodology + Caveats.
## Summary
- Files analyzed: **2051**
- With timing data: **1979**
- `delete` candidates (valueScore ≤ 0 or quarantined): **288**
- `review` candidates (0 < valueScore ≤ 3): **839**
- `keep` (valueScore > 3): **924**
- "Safe delete" under the deletion-ratchet (zero positive evidence + churn/quarantine): **54**
- In quarantine ledger (current or historical): **59**
## Methodology
For every audited test file we run a single whole-history `git log --name-status`
pass and classify each commit that touched the file (renames followed backward):
**Positive signal** (encoded/caught a real bug):
- `fix(...)`/`fix:` subject **with** a sibling source change in the same package (+3)
- `fix(...)`/`fix:` subject alone (+2)
- `## Symptom Verification` regression marker in the commit body (+3, FN-5893)
- test file first **added** together with source (+2), or added alone (+1)
- a plain test+source co-change modify (+1.5)
**Negative signal** (low value / churn):
- subject/body mentions `flake`, `flaky`, `deflake`, `quarantine`, `stabiliz`, `appease`, `timeout`, `retry` (−3)
- a modify that touched **only** the test file, no source (−1)
- appears in `scripts/lib/test-quarantine.json` history (−5)
The per-file **valueScore** is the sum of commit weights (plus the quarantine penalty).
**deletionPriority** = `durationMs / (1 + max(0, valueScore))` with a small boost for
net-negative files — so the ranking surfaces **slow AND low-value** files first
(most CI time saved per unit of lost signal). Recommendation: `delete` (≤0), `review`
(≤3), else `keep`.
## Caveats (read before deleting anything)
- **Heuristic, not truth.** A quiet, never-modified test can still be load-bearing;
a high-churn test can still be valuable. Use this to *prioritize human review*.
- **`git log --follow` / rename limits.** Renames are followed only through linear
`R`/`C` name-status chains; squash-merges collapse multi-commit history into one
subject, so per-commit signal is lost for squashed work (this repo defaults to
squash merges — a major reason to treat scores as lower bounds on value).
- **Subjects lie.** `fix(...)` is trusted as a positive even if the test was unrelated;
conversely a real bug fixed under a `feat(...)`/`FN-` subject without source co-change
may be undercounted.
- **Timing is a snapshot** from `scripts/test-timings.json`; files with no entry show
`n/a` duration and get deletionPriority 0 (cost unknown, not necessarily cheap).
- **Not a green light.** Deleting a gate test still requires the gate-eviction process
(AGENTS.md). "Safe delete" only flags files that meet the ratchet's churn/quarantine bar.
## Top 40 deletion candidates
| # | File | Tests | Duration | Value | Priority | Rec | Why (recent commits) |
|---|------|------:|---------:|------:|---------:|-----|----------------------|
| 1 | `packages/engine/src/__tests__/workspace-merger-idempotency.test.ts` | 8 | 12.7s | -1 | 13335 | delete (safe-delete) | `754434632` feat(workspace): Phase C U2 — per-repo landed pr _(churn-keyword,added-with-source)_<br>`627bdcfb0` fix(review): Phase C merge-loop hardening — doub _(churn-keyword,fix+source)_<br>`3a7123762` fix(review): address PR #1717 Phase C merge-loop _(churn-keyword,fix+source)_ |
| 2 | `packages/dashboard/src/__tests__/github-tracking-delete.test.ts` | 9 | 8.7s | -7.5 | 11962.5 | delete | `d0c9e47f6` feat(FN-4253): close linked GitHub issues on tas _(added-with-source)_<br>`9dfefc551` feat(FN-4941): close or delete GitHub issues whe _(test+source)_<br>`46fb3f0ef` feat(FN-5305): fix async synchronization in gith _(test-only-churn)_ |
| 3 | `packages/engine/src/__tests__/reliability-interactions/merge-runner-spawn-enoent-prevention.test.ts` | 5 | 7.9s | -2 | 8690 | delete (safe-delete) | `7763ba5fa` FN-6278: preflight reusable merge worktree cwd _(churn-keyword,added-with-source)_<br>`a768d36da` FN-6817: root reliability fixtures under worker _(test-only-churn)_ |
| 4 | `packages/dashboard/src/__tests__/session-reconnect.test.ts` | 4 | 6.1s | -6.5 | 8082.5 | delete (quarantined) | `bf141c47d` test(FN-1156): add AI session lifecycle and reco _(added)_<br>`84ed84313` feat(FN-2123): merge fusion/fn-2123 _(test-only-churn)_<br>`6714f7654` refactor(FN-2161): standardize on createFnAgent _(test+source)_ |
| 5 | `packages/engine/src/__tests__/self-healing-already-merged.real-git.test.ts` | 7 | 4.6s | -12 | 7360 | delete (quarantined) | `602a7da51` feat(FN-3865): complete Steps 3-6 — recover alre _(added-with-source)_<br>`39e0b3c6a` fix(FN-3865): align merge recovery types and rea _(fix+source)_<br>`6fc804483` feat(FN-3940): expose github tracking controls i _(test-only-churn)_ |
| 6 | `packages/core/src/__tests__/run-audit.integration.test.ts` | 24 | 5.8s | -2 | 6380 | delete (quarantined) | `c2d0ac572` test(FN-1414): add run-audit integration tests f _(churn-keyword,added)_<br>`84ed84313` feat(FN-2123): merge fusion/fn-2123 _(test+source)_<br>`a269f4829` refactor: remove legacy kb compatibility _(test+source)_ |
| 7 | `packages/engine/src/__tests__/workspace-merger-lease.test.ts` | 4 | 5.8s | -1 | 6090 | delete (safe-delete) | `64e87f9a1` feat(workspace): Phase C U3 — per-repo land leas _(churn-keyword,added-with-source)_<br>`627bdcfb0` fix(review): Phase C merge-loop hardening — doub _(churn-keyword,fix+source)_ |
| 8 | `packages/engine/src/__tests__/workspace-merger.test.ts` | 7 | 8.0s | 0.5 | 5333.3 | review | `744ed098a` feat(workspace): Phase C U1 — per-repo merge loo _(churn-keyword,added-with-source)_<br>`754434632` feat(workspace): Phase C U2 — per-repo landed pr _(churn-keyword,test+source)_<br>`3a7123762` fix(review): address PR #1717 Phase C merge-loop _(churn-keyword,fix+source)_ |
| 9 | `packages/cli/src/__tests__/extension-task-tools.test.ts` | 4 | 3.8s | -7 | 5130 | delete (quarantined) | `47eaf089b` feat(FN-4904): complete Step 3 — align engine an _(added-with-source)_<br>`0dc4c9c6a` test(FN-4904): cover worktree-root lookup in ext _(test-only-churn)_<br>`b80b517a4` test(FN-4927): cover no-task fallback for task t _(test-only-churn)_ |
| 10 | `packages/engine/src/__tests__/worktree-db-hydrate.test.ts` | 12 | 7.1s | 0.5 | 4733.3 | review | `e59a740d0` feat(FN-3841): add worktree database hydration t _(added-with-source)_<br>`6acc51cf0` feat(FN-4039): recover worktree db scratch boots _(test+source)_<br>`93dc5a727` feat(FN-4083): add WAL enforcement, immediate wr _(test+source)_ |
| 11 | `packages/core/src/__tests__/activity-analytics.test.ts` | 25 | 4.6s | 0 | 4600 | delete (quarantined) | `53bb1d8f3` feat(analytics): U2 — core date-range aggregator _(added-with-source)_<br>`5bc8901f0` feat(command-center): U7 — SDLC funnel + through _(test+source)_<br>`f5bd86214` feat(monitor): U13 — monitor stage (deployments, _(test+source)_ |
| 12 | `packages/dashboard/src/routes/__tests__/board-workflows-route.test.ts` | 4 | 3.6s | -5.5 | 4590 | delete | `010976cee` test: promote/board-workflows routes, concurrent _(added-with-source)_<br>`f77aa073c` FN-6025: fix builtin coding auto-merge review fl _(test-only-churn)_<br>`edde74d56` FN-6146: harden dashboard test mocks and request _(churn-keyword,test+source)_ |
| 13 | `packages/dashboard/app/components/__tests__/TaskDetailModal.responsive-and-dependencies.test.tsx` | 44 | 6.6s | 0.5 | 4400 | review | `ed52c3dff` test(FN-3591): split TaskDetailModal coverage in _(added)_<br>`ecbf1f829` feat(FN-3276): add task review tab with metadata _(test+source)_<br>`309e3f91a` feat(FN-3897): add blocker fan-out hook, badge, _(test+source)_ |
| 14 | `packages/core/src/__tests__/todo-store.test.ts` | 17 | 3.8s | -3 | 4370 | delete (quarantined) | `6f4b42a89` feat(FN-2575): merge fusion/fn-2575 _(added-with-source)_ |
| 15 | `packages/engine/src/__tests__/reliability-interactions/soft-blocker-auto-finalize-interactions.real-git.test.ts` | 7 | 3.4s | -4 | 4080 | delete | `208753fb8` test(FN-4653): complete Step 1 — add merge-path _(added)_<br>`875b32266` test(FN-4653): complete Step 2 — cover mixed blo _(test-only-churn)_<br>`5548b6f4a` test(FN-4653): complete Step 3 — add scheduler s _(test-only-churn)_ |
| 16 | `packages/core/src/__tests__/move-task-characterization.test.ts` | 10 | 8.1s | 1 | 4050 | review | `4e1b0fab0` feat(core): workflow-resolved transitions behind _(added-with-source)_<br>`0b7549a53` FN-6126: enable workflow experimental flags by d _(test+source)_<br>`9a7881441` FN-6245: keep default auto-merge tasks on live s _(test+source)_ |
| 17 | `packages/engine/src/__tests__/pr-response-run.test.ts` | 23 | 11.6s | 2 | 3866.7 | review | `31d4b5335` feat(pr): security-hardened review-response run _(added-with-source)_ |
| 18 | `packages/engine/src/__tests__/merger-autostash-orphan-surface.test.ts` | 6 | 3.7s | 0 | 3700 | delete | `d604d090a` feat(FN-3863): add stash recovery dashboard surf _(added-with-source)_<br>`bcb4107a1` feat(FN-3932): add orphaned finalize-reset autos _(test+source)_<br>`1cf987208` feat(FN-4018): isolate split merger temp workspa _(test-only-churn)_ |
| 19 | `packages/engine/src/__tests__/merger-empty-cherry-pick-fallback.test.ts` | 2 | 3.0s | -1.5 | 3225 | delete | `653500959` test(FN-4475): add fallback empty cherry-pick re _(added)_<br>`ebd79d21b` feat(FN-4475): remove unstable merger empty cher _(churn-keyword,test-only-churn)_<br>`22d59b5f9` feat(FN-5279): add merge integration worktree fe _(test+source)_ |
| 20 | `packages/engine/src/__tests__/merger-ai-cleanup.test.ts` | 15 | 2.8s | -3 | 3220 | delete (quarantined) | `4032a35a2` FN-6188: harden AI merge temp worktree cleanup _(added-with-source)_<br>`d75f861f2` FN-6199: harden AI merge worktree cleanup _(test+source)_<br>`3e69d3990` FN-6244: protect active AI merge worktrees _(churn-keyword,test+source)_ |
| 21 | `packages/dashboard/src/__tests__/routes-secrets-sync.test.ts` | 17 | 2.7s | -3 | 3105 | delete | `cca96a760` test(FN-4913): complete Step 7 — add secrets syn _(added-with-source)_<br>`b5e674059` test(FN-4980): cover sync-export auth rejection _(test-only-churn)_<br>`47775e942` test(FN-4981): complete Step 2 — add push missin _(test-only-churn)_ |
| 22 | `packages/core/src/__tests__/store-concurrent-writes.test.ts` | 6 | 2.8s | -1.5 | 3010 | delete (quarantined) | `93dc5a727` feat(FN-4083): add WAL enforcement, immediate wr _(added-with-source)_<br>`67c680c8d` fix(FN-4122): use unique tmp filename for task.j _(fix+source)_<br>`a38752c6b` FN-6486: rescue quarantined flaky tests _(churn-keyword,test+source)_ |
| 23 | `packages/core/src/__tests__/store-archive-search.test.ts` | 63 | 3.0s | 0 | 3000 | delete | `ac6aaca2c` feat(FN-3982): split monolithic store.test.ts in _(added)_<br>`139e25fcf` feat(FN-4837): complete Step 2 — migrate store t _(test-only-churn)_<br>`294209f64` FN-5943: maintain tasks FTS5 indexes automatical _(test+source)_ |
| 24 | `packages/engine/src/__tests__/reliability-interactions/in-review-branch-rebind.test.ts` | 10 | 7.4s | 1.5 | 2960 | review | `5c3096c7d` feat(FN-5083): complete Steps 5-7 rebind UI and _(added)_<br>`b3ac0beaa` test(FN-5083): tighten rebind reliability and qu _(test-only-churn)_<br>`3566cf8a1` FN-6695: block unsafe in-review branch rebinds _(test+source)_ |
| 25 | `packages/core/src/__tests__/store-activity.test.ts` | 49 | 5.9s | 1 | 2950 | review | `36e130937` refactor(FN-4021): split core store tests into d _(added)_<br>`287ebaf10` feat(FN-4053): unify task ID allocation with sto _(test+source)_<br>`a0f2bc530` feat(FN-4429): complete Step 1 — plumb moveSourc _(test+source)_ |
| 26 | `packages/dashboard/app/components/__tests__/AgentDetailView.mobile-scroll.test.tsx` | 4 | 2.5s | -3 | 2875 | delete | `3a4397215` feat(FN-4231): restore mobile scroll in AgentDet _(added)_<br>`d68fe3e9f` FN-6209: fix tablet tab overflow in agent detail _(test-only-churn)_<br>`b7c23c09c` FN-6450: enable touch scrolling for agent detail _(test-only-churn)_ |
| 27 | `packages/dashboard/src/__tests__/insights-routes.test.ts` | 24 | 26.5s | 8.5 | 2789.5 | keep | `629398483` fix(FN-1909): reorder insights routes to prevent _(fix+source,added-with-source)_<br>`8de7feeb1` feat(FN-1974): merge fusion/fn-1974 _(test+source)_<br>`6714f7654` refactor(FN-2161): standardize on createFnAgent _(test+source)_ |
| 28 | `packages/engine/src/__tests__/branch-conflicts-ghost-references.test.ts` | 5 | 2.5s | -2 | 2750 | delete | `663e5d2cd` feat(FN-4508): complete Step 1 — harden inspectB _(added-with-source)_<br>`5cd0e6665` feat(FN-4839): harden real-git test timeouts acr _(churn-keyword,test-only-churn)_ |
| 29 | `packages/core/src/__tests__/soft-delete-lineage-children.test.ts` | 11 | 2.6s | 0 | 2600 | delete | `e0c0745c0` test(FN-5129): add lineage soft-delete and archi _(added-with-source)_<br>`2c7ae1c1a` feat(FN-5131): add lineage-unlink flag to triage _(test-only-churn)_<br>`4955ccf6e` feat(FN-5132): align soft-delete-lineage-childre _(test-only-churn)_ |
| 30 | `packages/core/src/__tests__/store-handoff-to-review.test.ts` | 8 | 2.6s | 0 | 2600 | delete (quarantined) | `93b11c6c0` feat(FN-5241): add atomic in-review handoff seam _(added-with-source)_<br>`2d425b1e2` fix: scrub queued/blockedBy/overlapBlockedBy on _(fix+source)_ |
| 31 | `packages/engine/src/__tests__/branch-conflicts-zero-unique.test.ts` | 4 | 2.2s | -2.5 | 2475 | delete | `bcb0035d1` feat(FN-4500): complete Step 2 — harden zero-uni _(added-with-source)_<br>`14ef1041a` feat(FN-4500): complete Step 3 — add live zero-c _(test+source)_<br>`5ce377afe` feat(FN-4508): complete Step 7 — docs and compat _(test-only-churn)_ |
| 32 | `packages/engine/src/__tests__/workspace-e2e.test.ts` | 2 | 4.8s | 1 | 2400 | review | `78d7a28f1` test(workspace): Phase D U2 — e2e merge + recove _(added)_ |
| 33 | `packages/cli/src/__tests__/research-extension-tools.test.ts` | 10 | 2.1s | -2.5 | 2362.5 | delete (quarantined) | `6670837b7` feat(FN-2996): add research agent tools with ext _(added-with-source)_<br>`f2fa44e27` feat(FN-2999): harden research lifecycle with id _(churn-keyword,test+source)_<br>`f1ee69e59` feat(FN-3014): document research recovery semant _(test+source)_ |
| 34 | `packages/cli/src/__tests__/extension-mission-goal-tools.test.ts` | 4 | 1.7s | -7 | 2295 | delete (quarantined) | `93e8bd994` FN-5899: add mission-goal linking commands and t _(added-with-source)_<br>`26bc80a0a` FN-5958: add mission goal linking to create and _(test+source)_<br>`259cdfb53` FN-6734: stabilize CLI extension test cleanup _(churn-keyword,test-only-churn)_ |
| 35 | `packages/engine/src/__tests__/worktree-acquisition-workspace.test.ts` | 8 | 6.6s | 2 | 2200 | review | `12d33c512` feat(workspace): Phase A U2 — per-repo acquisiti _(added-with-source)_<br>`d5fa8654f` fix(review): Phase A workspace hardening — tool _(churn-keyword,fix+source)_ |
| 36 | `packages/dashboard/src/routes/__tests__/workflow-import-export.test.ts` | 10 | 6.5s | 2 | 2166.7 | review | `407ce03bf` feat(dashboard): workflow and template JSON impo _(added-with-source)_ |
| 37 | `packages/cli/src/__tests__/extension-goal-tools.test.ts` | 7 | 1.6s | -7 | 2160 | delete (quarantined) | `b335f3d7c` FN-5652: add goal retrieval tool for agent execu _(added-with-source)_<br>`fab8a62b5` FN-5977: expose goal retrieval tools across engi _(test+source)_<br>`259cdfb53` FN-6734: stabilize CLI extension test cleanup _(churn-keyword,test-only-churn)_ |
| 38 | `packages/dashboard/app/components/__tests__/AgentDetailView.settings.test.tsx` | 25 | 10.7s | 4 | 2140 | keep | `d98c053ed` feat(FN-4088): split AgentDetailView tests into _(added)_<br>`91931bd5d` feat(FN-4394): complete Step 5 — add dashboard s _(test+source)_<br>`6b2607dae` feat(FN-4400): complete Step 7 — add prompt-size _(test+source)_ |
| 39 | `packages/engine/src/cli-agent/__tests__/session-manager.test.ts` | 19 | 4.2s | 1 | 2100 | review | `4fc1a9dd4` feat(engine): add CliAgentAdapter interface and _(added-with-source)_<br>`773ba7620` test(engine): self-skip real-PTY e2e when PTY I/ _(test-only-churn)_ |
| 40 | `packages/engine/src/__tests__/reliability-interactions/ai-merge-worktree-cleanup.test.ts` | 7 | 6.3s | 2 | 2100 | review | `ac342f501` FN-6220: harden AI merge worktree cleanup _(churn-keyword,added-with-source)_<br>`2085610e9` FN-6246: move AI merge clean rooms into repo sto _(test+source)_<br>`dc4c2b220` FN-6453: clean up AI-merge worktrees after setup _(test+source)_ |
### One-line recommendations
1. `packages/engine/src/__tests__/workspace-merger-idempotency.test.ts` — **delete**: no positive (bug-encoding) signal in history; pure churn — strong delete candidate (slow: 12.7s — high CI time payoff)
2. `packages/dashboard/src/__tests__/github-tracking-delete.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 8.7s — high CI time payoff)
3. `packages/engine/src/__tests__/reliability-interactions/merge-runner-spawn-enoent-prevention.test.ts` — **delete**: no positive (bug-encoding) signal in history; pure churn — strong delete candidate (slow: 7.9s — high CI time payoff)
4. `packages/dashboard/src/__tests__/session-reconnect.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 6.1s — high CI time payoff)
5. `packages/engine/src/__tests__/self-healing-already-merged.real-git.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 4.6s — high CI time payoff)
6. `packages/core/src/__tests__/run-audit.integration.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 5.8s — high CI time payoff)
7. `packages/engine/src/__tests__/workspace-merger-lease.test.ts` — **delete**: no positive (bug-encoding) signal in history; pure churn — strong delete candidate (slow: 5.8s — high CI time payoff)
8. `packages/engine/src/__tests__/workspace-merger.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 8.0s — high CI time payoff)
9. `packages/cli/src/__tests__/extension-task-tools.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 3.8s — high CI time payoff)
10. `packages/engine/src/__tests__/worktree-db-hydrate.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 7.1s — high CI time payoff)
11. `packages/core/src/__tests__/activity-analytics.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 4.6s — high CI time payoff)
12. `packages/dashboard/src/routes/__tests__/board-workflows-route.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 3.6s — high CI time payoff)
13. `packages/dashboard/app/components/__tests__/TaskDetailModal.responsive-and-dependencies.test.tsx` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 6.6s — high CI time payoff)
14. `packages/core/src/__tests__/todo-store.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 3.8s — high CI time payoff)
15. `packages/engine/src/__tests__/reliability-interactions/soft-blocker-auto-finalize-interactions.real-git.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 3.4s — high CI time payoff)
16. `packages/core/src/__tests__/move-task-characterization.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 8.1s — high CI time payoff)
17. `packages/engine/src/__tests__/pr-response-run.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 11.6s — high CI time payoff)
18. `packages/engine/src/__tests__/merger-autostash-orphan-surface.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 3.7s — high CI time payoff)
19. `packages/engine/src/__tests__/merger-empty-cherry-pick-fallback.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 3.0s — high CI time payoff)
20. `packages/engine/src/__tests__/merger-ai-cleanup.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 2.8s — high CI time payoff)
21. `packages/dashboard/src/__tests__/routes-secrets-sync.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 2.7s — high CI time payoff)
22. `packages/core/src/__tests__/store-concurrent-writes.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 2.8s — high CI time payoff)
23. `packages/core/src/__tests__/store-archive-search.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 3.0s — high CI time payoff)
24. `packages/engine/src/__tests__/reliability-interactions/in-review-branch-rebind.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 7.4s — high CI time payoff)
25. `packages/core/src/__tests__/store-activity.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 5.9s — high CI time payoff)
26. `packages/dashboard/app/components/__tests__/AgentDetailView.mobile-scroll.test.tsx` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 2.5s — high CI time payoff)
27. `packages/dashboard/src/__tests__/insights-routes.test.ts` — **keep**: carries real bug-fix / source-coupled signal — keep
28. `packages/engine/src/__tests__/branch-conflicts-ghost-references.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 2.5s — high CI time payoff)
29. `packages/core/src/__tests__/soft-delete-lineage-children.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 2.6s — high CI time payoff)
30. `packages/core/src/__tests__/store-handoff-to-review.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 2.6s — high CI time payoff)
31. `packages/engine/src/__tests__/branch-conflicts-zero-unique.test.ts` — **delete**: net-negative value (churn outweighs signal) — delete candidate (slow: 2.2s — high CI time payoff)
32. `packages/engine/src/__tests__/workspace-e2e.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 4.8s — high CI time payoff)
33. `packages/cli/src/__tests__/research-extension-tools.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 2.1s — high CI time payoff)
34. `packages/cli/src/__tests__/extension-mission-goal-tools.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 1.7s — high CI time payoff)
35. `packages/engine/src/__tests__/worktree-acquisition-workspace.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 6.6s — high CI time payoff)
36. `packages/dashboard/src/routes/__tests__/workflow-import-export.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 6.5s — high CI time payoff)
37. `packages/cli/src/__tests__/extension-goal-tools.test.ts` — **delete**: in quarantine ledger — delete per ratchet once expiry passes (slow: 1.6s — high CI time payoff)
38. `packages/dashboard/app/components/__tests__/AgentDetailView.settings.test.tsx` — **keep**: carries real bug-fix / source-coupled signal — keep
39. `packages/engine/src/cli-agent/__tests__/session-manager.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 4.2s — high CI time payoff)
40. `packages/engine/src/__tests__/reliability-interactions/ai-merge-worktree-cleanup.test.ts` — **review**: thin positive signal; confirm it asserts a real invariant before trimming (slow: 6.3s — high CI time payoff)