@mknrt/autotests-overkill 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,563 +0,0 @@
1
- # Audit Iteration 2
2
-
3
- Date: 2026-04-20
4
-
5
- ## Goal
6
-
7
- Continue the first audit with a broader question:
8
-
9
- > If I had to work with this MCP server every day as a real assistant for test design, test drafting, coverage review, and failure debugging, what would I improve next?
10
-
11
- This iteration focuses on:
12
-
13
- - product capability coverage
14
- - trustworthiness of recommendations
15
- - engineering execution quality
16
- - operability and packaging quality
17
- - what to add next for maximum daily usefulness
18
-
19
- ## Audit Method
20
-
21
- This iteration combined:
22
-
23
- - direct repository review
24
- - targeted code reading of domain, indexer, connector, MCP, CLI, and docs layers
25
- - verified command execution
26
- - parallel subagent audits for:
27
- - product capabilities
28
- - engineering quality and reliability
29
- - operability, packaging, and onboarding
30
-
31
- ## Commands Run
32
-
33
- The following commands were run during this iteration:
34
-
35
- ```bash
36
- npm run verify
37
- npm run mcp:smoke
38
- npm run acceptance:coverage
39
- npm run acceptance:blueprint
40
- npm run acceptance:failure
41
- npm run acceptance:impact
42
- npm pack --dry-run
43
- ```
44
-
45
- Observed outcomes:
46
-
47
- - baseline TypeScript, Vitest, and build checks passed
48
- - MCP smoke passed
49
- - acceptance commands passed
50
- - npm dry-run package creation succeeded
51
-
52
- Important note:
53
-
54
- Passing acceptance here does not mean all outputs are equally trustworthy. Some acceptance outputs already reveal heuristic overreach and explainability gaps, which are documented below.
55
-
56
- ## Executive Summary
57
-
58
- The project already has the shape of a genuinely useful testing-intelligence MCP server.
59
-
60
- Its strongest qualities today are:
61
-
62
- - coherent end-to-end workflow coverage
63
- - evidence-first response structure
64
- - safe read-only posture toward consumer repositories
65
- - useful backend bridging through indexed API knowledge
66
-
67
- If I had to use it daily, I would trust it for:
68
-
69
- - discovering reusable tests and setup patterns
70
- - drafting initial test skeletons
71
- - identifying likely frontend/runtime coverage gaps
72
- - collecting triage context faster than manual grepping
73
-
74
- I would not yet fully trust it for:
75
-
76
- - authoritative rerun routing
77
- - precise impact mapping
78
- - long-lived server freshness
79
- - packaging and onboarding portability
80
- - “review this draft and tell me whether it fits project conventions” workflows
81
-
82
- The next major gains will come less from adding another narrow helper and more from strengthening:
83
-
84
- 1. trust in output quality
85
- 2. daily authoring ergonomics
86
- 3. operability and release integrity
87
-
88
- ## What Is Already Strong
89
-
90
- ### 1. The workflow coverage is coherent
91
-
92
- This is not a random set of MCP tools. The current registry covers a real daily loop:
93
-
94
- - find existing assets
95
- - inspect frontend contract
96
- - inspect runtime logic
97
- - map current coverage
98
- - detect likely gaps
99
- - generate a blueprint
100
- - recommend selectors
101
- - propose setup/teardown
102
- - triage failures
103
- - build rerun scope
104
- - analyze diff impact
105
-
106
- Relevant files:
107
-
108
- - `src/mcp/registerTools.ts`
109
- - `README.md`
110
- - `docs/tool-catalog.md`
111
-
112
- ### 2. The normalized output contract is a major strength
113
-
114
- The shared result envelope makes the server much more LLM-friendly than most internal helper tools:
115
-
116
- - `summary`
117
- - `evidence`
118
- - `recommended_actions`
119
- - `repo_paths`
120
- - `confidence`
121
- - `warnings`
122
-
123
- This is one of the strongest architectural choices in the repository.
124
-
125
- Relevant files:
126
-
127
- - `src/contracts/toolOutput.ts`
128
- - `src/contracts/confidence.ts`
129
- - `src/domain/shared.ts`
130
-
131
- ### 3. The product boundary is correct
132
-
133
- The server is intentionally local-first and analysis-first:
134
-
135
- - it reads consumer repos
136
- - it indexes knowledge
137
- - it drafts and recommends
138
- - it does not silently edit consumer repositories
139
-
140
- That is the right safety boundary for a testing-intelligence assistant.
141
-
142
- Relevant files:
143
-
144
- - `README.md`
145
- - `docs/architecture/overview.md`
146
- - `skills/overkill-generate-test/SKILL.md`
147
-
148
- ### 4. Backend-aware test assistance is stronger than average
149
-
150
- The `ApiDiscoveryCatalog` + `api-interaction` + `backend-endpoint` model is one of the best differentiators in the current product.
151
-
152
- It gives the server a meaningful way to reason about:
153
-
154
- - request flows
155
- - backend params
156
- - contract hints
157
- - API-heavy debugging
158
-
159
- without hardcoding a giant endpoint map.
160
-
161
- Relevant files:
162
-
163
- - `src/indexer/extractors/apiDiscoveryExtractor.ts`
164
- - `src/indexer/extractors/apiInteractionExtractor.ts`
165
- - `README.md`
166
- - `docs/tool-catalog.md`
167
-
168
- ## What Would Frustrate Me As A Daily User
169
-
170
- ### 1. There is no MCP tool for reviewing a draft test
171
-
172
- The server can help me generate a draft, but it cannot yet close the loop by answering:
173
-
174
- - does this draft really reuse project patterns?
175
- - is the setup correct for the area?
176
- - are the selectors stable?
177
- - where is the likely flake risk?
178
- - what in the draft duplicates existing project code?
179
-
180
- There is a bundled skill for this idea, but not a first-class MCP tool.
181
-
182
- Why this matters:
183
-
184
- - daily authoring is not only about generation
185
- - review quality is usually more valuable than first-draft generation
186
- - a “draft reviewer” would directly reduce flaky and off-style tests
187
-
188
- Relevant files:
189
-
190
- - `skills/overkill-review-test-draft/SKILL.md`
191
- - `src/mcp/registerTools.ts`
192
-
193
- ### 2. Failure debugging is still too shallow
194
-
195
- Today the server can summarize CI context and extract artifact-backed hypotheses, which is useful.
196
-
197
- But if I were using this every day, I would also want:
198
-
199
- - log search
200
- - artifact clustering
201
- - screenshot comparison
202
- - API capture diffing
203
- - flaky fingerprint grouping
204
- - historical failure trend summaries
205
-
206
- Current coverage is helpful, but still feels like “triage starter” rather than “deep failure debugging assistant”.
207
-
208
- Relevant files:
209
-
210
- - `src/domain/triageFailedRun.ts`
211
- - `src/domain/buildRerunScope.ts`
212
- - `docs/tool-catalog.md`
213
-
214
- ### 3. Batch and portfolio workflows are missing
215
-
216
- Current tools are mostly single-input and single-feature oriented.
217
-
218
- That is good for v1, but a daily operator will eventually want:
219
-
220
- - review coverage across a widget family
221
- - compare two snapshots or two revisions
222
- - generate a batch gap report for a feature area
223
- - track risk concentration across changed files
224
- - identify coverage drift over time
225
-
226
- This is one of the most promising expansion areas.
227
-
228
- ### 4. The server sometimes looks more certain than it should
229
-
230
- The most important trust issue in the current product is not “it crashes”.
231
- It is “it can produce plausible-looking but over-broad results”.
232
-
233
- Two real examples from verified command output:
234
-
235
- 1. `npm run acceptance:impact`
236
-
237
- For a diff on:
238
-
239
- - `C:/gitrep/caseplatform-web/vcm/jqVCM/widget/caption/CaptionSingleton.ts`
240
-
241
- the output includes clearly plausible caption-related specs, but also unrelated-looking items such as:
242
-
243
- - translation tests
244
- - constructor context tests
245
-
246
- That means the current impact logic can over-select because it is still strongly name/token based.
247
-
248
- 2. `npm run acceptance:failure`
249
-
250
- The captured API evidence includes:
251
-
252
- - `DELETE /platform/rs/udmmessagequeue/...`
253
-
254
- but the linked high-confidence API/backend evidence in the same output includes:
255
-
256
- - `api interaction: sec`
257
- - multiple `sec` backend endpoints
258
-
259
- That mismatch is a strong signal that current failure-bridge heuristics can connect the user to the wrong backend context while still looking evidence-backed.
260
-
261
- This does not make the server useless.
262
- It does mean the product should become better at saying:
263
-
264
- - “this is exploratory”
265
- - “this is weakly matched”
266
- - “this is only name-based”
267
- - “do not treat this as rerun-routing truth”
268
-
269
- ## Quality and Reliability Risks
270
-
271
- ### 1. Knowledge freshness is too weak for long-lived MCP sessions
272
-
273
- `ensureIndexed()` currently treats “database is non-empty” as enough to stop refreshing for the lifetime of the current app context.
274
-
275
- That creates a real risk:
276
-
277
- - repo changes
278
- - branch switches
279
- - moved files
280
- - deleted repositories
281
- - updated artifacts
282
-
283
- may not be reflected during long-lived usage unless the process is restarted or indexing is explicitly rerun.
284
-
285
- Relevant files:
286
-
287
- - `src/domain/shared.ts`
288
- - `src/indexer/refreshPipeline.ts`
289
- - `src/knowledge/repositories.ts`
290
-
291
- What I would add:
292
-
293
- - refresh fingerprints per repo
294
- - TTL or file-hash invalidation
295
- - explicit refresh status reporting
296
- - purge behavior when configured repos disappear
297
-
298
- ### 2. Extraction quality is still mostly heuristic
299
-
300
- This is already documented as a v1 limitation, and the code confirms it.
301
-
302
- The highest-risk parts are still based on:
303
-
304
- - regex extraction
305
- - line-based scanning
306
- - token overlap
307
- - basename/path heuristics
308
-
309
- That is acceptable for v1 exploration, but it becomes the main ceiling for:
310
-
311
- - contract accuracy
312
- - runtime branch accuracy
313
- - backend bridge accuracy
314
- - diff impact trustworthiness
315
-
316
- Relevant files:
317
-
318
- - `src/indexer/extractors/frontendContractExtractor.ts`
319
- - `src/indexer/extractors/frontendRuntimeExtractor.ts`
320
- - `src/indexer/extractors/apiDiscoveryExtractor.ts`
321
- - `src/domain/analyzeDiffImpact.ts`
322
-
323
- What I would add:
324
-
325
- - AST-aware parsing where impact is highest
326
- - clearer provenance for every extracted signal
327
- - stronger dedupe
328
- - more “fail closed” behavior on ambiguous matches
329
-
330
- ### 3. The current test strategy under-protects the riskiest edges
331
-
332
- The test suite is good and broad for this stage, but it is still mostly stronger on positive-path coverage than on “trust erosion” cases.
333
-
334
- The highest-value missing tests are around:
335
-
336
- - stale cache behavior
337
- - repo disappearance
338
- - malformed API capture shapes
339
- - false-positive suppression
340
- - confidence downgrades for weak matches
341
- - path normalization consistency
342
-
343
- Relevant files:
344
-
345
- - `tests/domain/analyzeDiffImpact.test.ts`
346
- - `tests/domain/triageFailedRun.test.ts`
347
- - `tests/indexer/refreshPipeline.caseplatformIndex.test.ts`
348
-
349
- ### 4. Scaling will likely hit refresh/indexing first
350
-
351
- The current refresh model still depends on broad globs and whole-file rescans.
352
-
353
- This is fine in small-to-medium local use, but if the target repos grow or the operator refreshes often, the cost will scale with repository size instead of changed surface.
354
-
355
- Relevant files:
356
-
357
- - `src/connectors/autotests2Connector.ts`
358
- - `src/connectors/caseplatformConnector.ts`
359
- - `src/indexer/refreshPipeline.ts`
360
-
361
- What I would add:
362
-
363
- - incremental indexing
364
- - file-hash caching
365
- - changed-file-only refresh modes
366
- - refresh timing metrics
367
-
368
- ## Operability and Packaging Gaps
369
-
370
- ### 1. Metadata drift is real
371
-
372
- Verified mismatch:
373
-
374
- - `package.json` version is `1.1.5`
375
- - `.codex-plugin/plugin.json` version is `1.1.0`
376
- - `src/mcp/server.ts` version is `1.1.0`
377
-
378
- The plugin manifest also still contains placeholder OpenAI identity fields instead of the actual project identity.
379
-
380
- Relevant files:
381
-
382
- - `package.json`
383
- - `.codex-plugin/plugin.json`
384
- - `src/mcp/server.ts`
385
-
386
- ### 2. Published package shape and plugin story are not fully aligned
387
-
388
- Verified through `npm pack --dry-run`:
389
-
390
- - npm tarball includes `dist/`, `bin/`, `skills/`, `docs/`, templates, assets, and config example
391
- - npm tarball does **not** include `.codex-plugin/plugin.json`
392
- - npm tarball does **not** include `.mcp.json`
393
-
394
- That means the published package is useful as a CLI/MCP library artifact, but not as a fully bundled Codex plugin package in the same way the repository layout suggests.
395
-
396
- Relevant files:
397
-
398
- - `package.json`
399
- - `README.md`
400
- - `docs/plugin-packaging.md`
401
-
402
- ### 3. Portability is still too machine-shaped
403
-
404
- The checked-in `.mcp.json`, multiple docs, and some tests still embed workstation-specific absolute paths.
405
-
406
- This makes the installation story look greener than it really is for a new environment.
407
-
408
- Relevant files:
409
-
410
- - `.mcp.json`
411
- - `docs/plugin-packaging.md`
412
- - `tests/docs/pluginManifest.test.ts`
413
- - `tests/helpers/testContext.ts`
414
-
415
- ### 4. Verification gates should match the product promise better
416
-
417
- `verify` is currently useful, but it does not cover all the product-level trust surfaces highlighted by the docs.
418
-
419
- If this were my daily tool, I would want a release-oriented verification layer that checks:
420
-
421
- - metadata consistency
422
- - packaging expectations
423
- - MCP handshake
424
- - at least one acceptance-level usage scenario
425
-
426
- Relevant files:
427
-
428
- - `package.json`
429
- - `README.md`
430
- - `docs/operator-cookbook.md`
431
-
432
- ## What I Would Add Next
433
-
434
- ### Highest-impact additions
435
-
436
- 1. `review_test_draft`
437
-
438
- Proposed MCP tool purpose:
439
-
440
- - accept a draft spec or draft snippet
441
- - compare it against existing project assets and conventions
442
- - flag duplication, flake risk, selector weakness, setup mistakes, and missed reuse
443
-
444
- Why it matters:
445
-
446
- - it closes the generation-to-review loop
447
- - it is immediately useful in daily authoring
448
- - it directly improves test quality, not only test speed
449
-
450
- 2. richer artifact forensics
451
-
452
- Examples:
453
-
454
- - `compare_api_captures`
455
- - `cluster_failure_signatures`
456
- - `summarize_artifact_history`
457
- - `search_failure_logs`
458
-
459
- Why it matters:
460
-
461
- - failure debugging is where operators spend real time
462
- - this would upgrade the server from “context helper” to “debugging partner”
463
-
464
- 3. batch coverage and drift tools
465
-
466
- Examples:
467
-
468
- - `summarize_area_coverage`
469
- - `compare_coverage_snapshots`
470
- - `find_riskiest_feature_clusters`
471
-
472
- Why it matters:
473
-
474
- - teams do not work on one widget forever
475
- - portfolio-level visibility is the next maturity step
476
-
477
- 4. operator diagnostics
478
-
479
- Examples:
480
-
481
- - `doctor_installation`
482
- - `show_refresh_status`
483
- - `explain_confidence`
484
-
485
- Why it matters:
486
-
487
- - better onboarding
488
- - better trust
489
- - easier debugging of the server itself
490
-
491
- ## Recommended Improvement Tracks
492
-
493
- ### Track A: Trustworthiness First
494
-
495
- Goal:
496
-
497
- Make current output safer to rely on before adding many new tools.
498
-
499
- Priority work:
500
-
501
- 1. Add refresh invalidation / freshness tracking
502
- 2. Downgrade confidence more aggressively for name-only or weak matches
503
- 3. Normalize all returned paths consistently
504
- 4. Add tests for false-positive suppression
505
- 5. Mark exploratory matches more explicitly in summaries and warnings
506
-
507
- ### Track B: Daily Authoring Value
508
-
509
- Goal:
510
-
511
- Make the server meaningfully more useful during real test-writing sessions.
512
-
513
- Priority work:
514
-
515
- 1. Add `review_test_draft`
516
- 2. Enrich blueprint generation with stronger anti-flake checks
517
- 3. Improve setup/reuse reasoning with better evidence links
518
- 4. Add batch gap and batch coverage tools
519
-
520
- ### Track C: Operability and Release Integrity
521
-
522
- Goal:
523
-
524
- Make the server easier to install, trust, publish, and maintain.
525
-
526
- Priority work:
527
-
528
- 1. Remove metadata drift
529
- 2. Make plugin/package story explicit and consistent
530
- 3. Reduce machine-specific assumptions
531
- 4. Add release verification for MCP/package/install surfaces
532
-
533
- ## Recommended Order
534
-
535
- If the goal is “improve on all fronts, but in a way that compounds value”, I would do the next work in this order:
536
-
537
- 1. `Track A: Trustworthiness First`
538
- 2. `Track C: Operability and Release Integrity`
539
- 3. `Track B: Daily Authoring Value`
540
- 4. deeper semantic extraction and portfolio analytics after the above
541
-
542
- Why this order:
543
-
544
- - better trust increases the value of every existing tool
545
- - better operability makes the product easier to adopt and maintain
546
- - then new capabilities land on top of a stronger base
547
-
548
- ## Short Conclusion
549
-
550
- Iteration 2 verdict:
551
-
552
- - the server is already useful
553
- - the architecture is stronger than the current outer shell
554
- - the product has real differentiation
555
- - the most important next step is not “more helpers”
556
- - the most important next step is making current intelligence more trustworthy and more operable
557
-
558
- If I had to work with this server every day, the first improvements I would personally want are:
559
-
560
- 1. a real draft-review tool
561
- 2. stronger confidence and freshness guarantees
562
- 3. less heuristic overreach in impact and failure routing
563
- 4. a cleaner installation and release story