vibe-check Post-Migration Baseline Audit
Commit: bc11f75 | Date: 2026-03-29 | Overall: F (38/100)
Run by Sage using vibe-check v0.1 (Docker, 10 tools). This captures the repo state AFTER the Responses API migration (#47, PRs #55-58), HTML entity fix (#62), and parameter fix (#64).
Summary
| Dimension |
Score |
Grade |
| Linting |
70 issues |
D |
| Type Safety |
308 errors, 3 warnings |
F |
| Complexity |
avg CC 2.7, max CC 24, avg MI 68.3 |
C |
| Maintainability |
avg MI 68.3 |
A |
| Health |
0/100 |
F |
| Duplication |
258 clone groups |
F |
| Hygiene |
100/100 |
A |
Three F dimensions: Type Safety, Health (pyscn), Duplication.
Complexity Hotspots (top 5)
| File |
Function |
CC |
MI |
responses_streaming.py |
_handle_event |
24 |
41.8 |
test_e2e_live.py |
test_streaming_event_sequence |
21 |
40.6 |
test_responses_streaming.py |
test_function_call_streaming |
17 |
33.8 |
test_e2e_no_key.py |
test_manifest_json_structure_complete |
16 |
21.1 |
smoke.py |
check_translation_mock |
15 |
39.2 |
_handle_event (CC=24) remains the top hotspot — exceeds refactor threshold of 15.
Duplication (258 clone groups)
The enricher pattern is heavily duplicated — all structurally identical:
what_enricher.py ≈ when_enricher.py ≈ why_enricher.py ≈ anti_patterns.py ≈ self_describing.py ≈ errors.py ≈ quality_gates.py ≈ hateoas.py ≈ manifest.py
Strong candidate for base class extraction.
What's Good
- Hygiene: A — License, tests, README, .gitignore all present, no secrets
- Maintainability: A — avg MI 68.3
- Average complexity is low (CC 2.7) — concentrated in a few hotspots
- 713 tests passing — strong test coverage
Remediation Tracks
- Duplication (biggest win): Extract enricher base class — 258 clone groups is the largest F contributor
- Type Safety: 308 pyright errors — needs type stubs or annotation pass
- Complexity: Refactor
_handle_event (CC=24) — split streaming event dispatch into sub-handlers
- Health: pyscn score 0 — likely needs dead code cleanup, cohesion improvements
Previous Audit
Issue #60 (now closed) captured the pre-fix state. Delta:
- Linting: 60 → 70 issues (+10)
- Type errors: 279 → 308 (+29)
- Clone groups: 240 → 258 (+18)
- Complexity: unchanged (CC=24 max)
- Overall grade: unchanged (F, 38/100)
The migration added capability without reducing debt. Next phase should focus on quality remediation.
Generated by vibe-check v0.1
vibe-check Post-Migration Baseline Audit
Commit: bc11f75 | Date: 2026-03-29 | Overall: F (38/100)
Run by Sage using
vibe-checkv0.1 (Docker, 10 tools). This captures the repo state AFTER the Responses API migration (#47, PRs #55-58), HTML entity fix (#62), and parameter fix (#64).Summary
Three F dimensions: Type Safety, Health (pyscn), Duplication.
Complexity Hotspots (top 5)
responses_streaming.py_handle_eventtest_e2e_live.pytest_streaming_event_sequencetest_responses_streaming.pytest_function_call_streamingtest_e2e_no_key.pytest_manifest_json_structure_completesmoke.pycheck_translation_mock_handle_event(CC=24) remains the top hotspot — exceeds refactor threshold of 15.Duplication (258 clone groups)
The enricher pattern is heavily duplicated — all structurally identical:
what_enricher.py≈when_enricher.py≈why_enricher.py≈anti_patterns.py≈self_describing.py≈errors.py≈quality_gates.py≈hateoas.py≈manifest.pyStrong candidate for base class extraction.
What's Good
Remediation Tracks
_handle_event(CC=24) — split streaming event dispatch into sub-handlersPrevious Audit
Issue #60 (now closed) captured the pre-fix state. Delta:
The migration added capability without reducing debt. Next phase should focus on quality remediation.
Generated by vibe-check v0.1