chore: test value audit (deletion-candidate evidence base) (#1776)
## What A **test value audit**: a heuristic that scores every test file under `packages/*/src/**/__tests__/**` and `packages/dashboard/app/**/__tests__/**` by how much real regression signal it has encoded over its git history, then ranks **slow AND low-value** files first as deletion candidates. This is the **evidence base** for a human/follow-up deletion decision — **the script deletes nothing**. Motivated by AGENTS.md "Do Not Add Slow Tests" (FN-5048) + the quarantine deletion ratchet: we want data on which slow tests are also low-signal so they can be cut without losing coverage. ## How it scores (HEURISTIC, not ground truth) Single whole-history `git log --name-status` pass; per-commit classification (renames followed backward): - **Positive** — `fix(...)`/`fix:` with sibling source change (+3), fix alone (+2), `## Symptom Verification` regression marker (+3, FN-5893), test added-with-source (+2)/alone (+1), plain test+source co-change (+1.5). - **Negative** — subject/body churn keywords `flake/flaky/deflake/quarantine/stabiliz/appease/timeout/retry` (−3), test-only modify with no source (−1), quarantine-ledger membership current+historical (−5). `valueScore` = sum of weights. `deletionPriority = durationMs / (1 + max(0, valueScore))` (+ small net-negative boost), joined with `scripts/test-timings.json` so slow + low-value surfaces first. Recommendation: `delete` (≤0) / `review` (≤3) / `keep` (>3). A `safeDelete` flag marks files meeting the ratchet's churn/quarantine bar. ## Deliverables - `scripts/test-value-audit.mjs` — runner (git IO + report generation) - `scripts/lib/test-value-audit-lib.mjs` — pure, unit-tested scoring logic - `scripts/__tests__/test-value-audit.test.mjs` — 15 synthetic-record unit tests - `docs/test-value-audit.json` + `docs/test-value-audit.md` — generated artifacts (top 40 + methodology + honest caveats: heuristic limits, git-follow/squash-merge blind spots, lying subjects, timing snapshot) ## Verification - `node scripts/test-value-audit.mjs` runs end-to-end (~1s), 2051 files analyzed, writes both artifacts. - `node --test scripts/__tests__/test-value-audit.test.mjs` → 15/15 pass. - `eslint` clean on all three new source files. No changeset (scripts + docs only; `@runfusion/fusion` runtime unaffected). 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- stage-review-badge-begin --> --- <a href="https://stagereview.app/Runfusion/Fusion/pull/1776"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg"> <img src="https://stagereview.app/assets/gh-open-in-stage-light.svg" alt="Open in Stage"> </picture> </a> <!-- stage-review-badge-end -->
This commit is contained in:
129726
docs/test-value-audit.json
Normal file
129726
docs/test-value-audit.json
Normal file
File diff suppressed because it is too large
Load Diff
144
docs/test-value-audit.md
Normal file
144
docs/test-value-audit.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# 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)
|
||||
|
||||
Reference in New Issue
Block a user