Skip to content

docs(audit): blessed-ready on-ramp audit — 12 integrations scored#371

Merged
lesnik512 merged 6 commits into
mainfrom
audit-blessed-ready-onramp
Jul 23, 2026
Merged

docs(audit): blessed-ready on-ramp audit — 12 integrations scored#371
lesnik512 merged 6 commits into
mainfrom
audit-blessed-ready-onramp

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Read-only audit scoring all 12 framework integrations against an explicit blessed-ready on-ramp rubric, delivering the ground truth the adoption research's A2 item named but never produced. Rationale, locked rubric bars, and verdict rule live in the spec — this PR does not restate them:

  • Spec: planning/changes/2026-07-22.01-blessed-ready-onramp-audit.md
  • Deliverable: planning/audits/2026-07-22-blessed-ready-onramp-report.md

Result

  • 1 blessed-ready (litestar), 11 not yet. fastapi is the closest miss — its only gap is D3=1 (the mounted-sub-app / disabled-lifespan root-open caveat).
  • The @inject asymmetry is inherent, not an adapter gap. All 8 @inject-requiring integrations score D5=1: no host framework exposes an unused per-parameter injection seam. So the downstream @inject thread is "document the rationale," not "unify."
  • Top cross-cutting fix = canonical starters. 10 of 12 lack a dedicated Usage example: template (only fastapi, litestar have one); no integration ships an examples/ dir. §4 ranks the fixes and tags each with its downstream thread.

Method is a source + docs read-through; every score cites a file:line in a named repo so each finding is refutable. Fresh greps in §5 re-confirm the scorecard (4-vs-8 @inject split, 2 starters, 0 examples/ dirs).

Scope

Read-only: the only files touched are the report and the change-file. No sibling repo, architecture/, or docs/ edit; pytest excluded; no template built. just check-planning and just lint-ci green.

🤖 Generated with Claude Code

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: 45058f1 Previous: 80bf88e Ratio
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 19410.927283242043 iter/sec (stddev: 0.0001504578648712752) 20256.926372696715 iter/sec (stddev: 0.0001304204047017757) 1.04
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 291.72317026573165 iter/sec (stddev: 0.00018694366917680895) 296.603921847961 iter/sec (stddev: 0.000032698898954631875) 1.02
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 282.6799002387832 iter/sec (stddev: 0.000053646861758720794) 283.41849330902903 iter/sec (stddev: 0.00003491356925393316) 1.00
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 263.96436587878793 iter/sec (stddev: 0.00007178295234535097) 263.3191074519536 iter/sec (stddev: 0.000040343518982356706) 1.00
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 1314.990415145326 iter/sec (stddev: 0.001178023582427194) 1440.252579976112 iter/sec (stddev: 0.001025837313037008) 1.10
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 1199.874109208515 iter/sec (stddev: 0.000598396023872191) 1280.795951498207 iter/sec (stddev: 0.0005300995347842032) 1.07
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 903.4007776972837 iter/sec (stddev: 0.0005641408416050403) 855.1432573398669 iter/sec (stddev: 0.0011806701617275998) 0.95
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 446153.7867139154 iter/sec (stddev: 0.000039412783130317954) 472880.7168246724 iter/sec (stddev: 0.00001014309348814919) 1.06
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 446737.8528528472 iter/sec (stddev: 0.000010134131634989384) 448191.31268467766 iter/sec (stddev: 0.000010274743985046669) 1.00
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle 67289.22341666269 iter/sec (stddev: 0.000013624292925495824) 65435.93297949987 iter/sec (stddev: 0.000014444759748291136) 0.97
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 39945.48084764985 iter/sec (stddev: 0.00002089479366346823) 41984.05781986114 iter/sec (stddev: 0.00002101682504742904) 1.05
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 936136.87001647 iter/sec (stddev: 6.600774343644136e-7) 1215429.0941499644 iter/sec (stddev: 3.13080195718243e-7) 1.30
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 2390436.363622198 iter/sec (stddev: 9.32222953303413e-8) 2469301.007045247 iter/sec (stddev: 6.059463394489887e-8) 1.03
benchmarks/test_guard_resolve.py::test_g3_deep_chain 478797.11097386957 iter/sec (stddev: 5.211631714499704e-7) 480003.52024945786 iter/sec (stddev: 7.890961159912292e-7) 1.00
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 302913.98999550525 iter/sec (stddev: 7.714095260621502e-7) 304831.29517988005 iter/sec (stddev: 6.151240942338982e-7) 1.01
benchmarks/test_guard_resolve.py::test_g5_cross_scope 1049494.5709888204 iter/sec (stddev: 5.444039333097466e-7) 1061724.1552037315 iter/sec (stddev: 3.81843176250558e-7) 1.01
benchmarks/test_guard_resolve.py::test_g9_context_resolve 547198.9229896809 iter/sec (stddev: 5.631863497660184e-7) 538605.4537135221 iter/sec (stddev: 5.846973803542685e-7) 0.98
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 373846.1357967765 iter/sec (stddev: 4.3927593839386104e-7) 368201.3534438208 iter/sec (stddev: 4.871001622823267e-7) 0.98
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 24878.503341108713 iter/sec (stddev: 0.00006762677172467947) 25462.032989681524 iter/sec (stddev: 0.00005840245882042677) 1.02
benchmarks/test_guard_validate.py::test_g11_validate_wide 17077.576010489585 iter/sec (stddev: 0.000008723599801977079) 17303.306252365397 iter/sec (stddev: 0.000011235075692512139) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@lesnik512
lesnik512 force-pushed the audit-blessed-ready-onramp branch from 2c97d3f to f00fdfb Compare July 23, 2026 19:47
@lesnik512
lesnik512 force-pushed the audit-blessed-ready-onramp branch from f00fdfb to 45058f1 Compare July 23, 2026 19:49
@lesnik512
lesnik512 merged commit 606f3a4 into main Jul 23, 2026
9 checks passed
@lesnik512
lesnik512 deleted the audit-blessed-ready-onramp branch July 23, 2026 19:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant