| R1 | A finer graph (method level, mocks, env keys, routes) misses a real dependency and a failing test is skipped | 3 | 5 | Every edge type ships with a fixture in the regression harness; unresolved relationships are uncertainty and select the test; Shadow Mode and history replays on real repositories | Mitigated so far: 9 harness fixtures, LeadsIt and four public repositories at 0 missed failures. Two misses were found by new fixtures (fluent this, node --test directory globs) and fixed before release |
| R2 | Type-aware analysis is too slow for a pre-commit hook | 3 | 4 | Local inference instead of a type checker; class-level fallback | Avoided: type-checker resolution moved after 1.0.0 |
| R3 | Runtime tracing slows test runs | 3 | 3 | Traces collected on demand (smarttest trace, --stale), not on hook runs | Mitigated: LeadsIt traces all 100 files in 23 s |
| R4 | Framework conventions (Next.js, Wasp, NestJS) change between versions | 3 | 3 | Conventions in one place each (routes.ts, Wasp spec reader); unmatched visits are uncertainty | Open |
| R5 | No hosted CI, so Windows and macOS regressions go unnoticed | 3 | 3 | Run pnpm verify on all three systems before a release; POSIX-normalised paths | Open: only Linux validated; carried to 1.0.0 |
| R6 | The npm name smarttest is not available (happened: published as @tkmremi/smarttest) | 2 | 3 | Decide (ADR-0007); assets are generated, a rename is mechanical | Open: decision pending, blocks npm publication |
| R7 | The result cache returns a stale result | 2 | 5 | Content-addressed keys over all inputs; uncacheable tests excluded; cached results always labelled; benchmark checks every cached pass against a full run | Mitigated: 0 integrity violations on LeadsIt (ADR-0009) |
| R8 | Studio exposes the file system to other local processes | 2 | 4 | Loopback only, session token, origin checks, restricted project root | Mitigated by loopback/token/origin/method tests and realpath containment; broader review remains for 1.0.0 |
| R9 | Analysis overhead exceeds the time saved on small repositories | 3 | 3 | Adaptive policy; benchmarks per release | Confirmed on ufo and defu (−6% to −11% in benchmark); adaptive policy covers run |
| R10 | TypeScript 7 removes the API the analyzer uses | 4 | 3 | Analyzer isolated in language-typescript; TypeScript 6 pinned | Happened: TypeScript 7 has no parser API usable from Node; staying on 6, watch item |
| R11 | Parallel runner groups compete for a shared resource (port, database) | 2 | 3 | End-to-end groups run alone; parallelGroups: 1 | Open, no case seen yet |
| R12 | Observed execution rules out a test whose path depends on data | 2 | 4 | Only in FAST/BALANCED; SAFE only adds; traces dropped when any loaded file changes; Shadow Mode (ADR-0008) | Mitigated so far |