Skip to content

docs(decision): D1/D4 sub-2 scores are derived — no independent fix#376

Merged
lesnik512 merged 1 commit into
mainfrom
d1-d4-derived-decision
Jul 25, 2026
Merged

docs(decision): D1/D4 sub-2 scores are derived — no independent fix#376
lesnik512 merged 1 commit into
mainfrom
d1-d4-derived-decision

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Closes the blessed-ready audit's remaining backlog (D1/D4) by ruling those sub-2 scores derived from the already-inherent D3 (caller-owned root lifecycle) and D5 (@inject), not independent gaps. Record: planning/decisions/2026-07-25-d1-d4-derived-inherent.md.

  • D1<2 (flask/grpc/typer) = the manual root open() — the D3-inherent fact ("D1=1 and D3=1 share one root cause").
  • D4<2 = the decorator-free floor (L=7) + @inject (D5-inherent) + manual lifecycle (D3-inherent), verified line-by-line against the merged examples. The audit's §4 item-5 "one-line trim" does not hold — the only line over the bar is @inject.
  • Blessed-ready is now 4 (litestar + aiogram/aiohttp/arq) — the canonical-example rollout flipped three, since D4=1/D5=1 don't block the verdict; the ceiling under the inherent rulings.

Also rewrites the audit's §4 resolution note to cover all six item groups. Consistent with the D3/D5/exec records. Docs-only; check-planning + lint-ci green.

🤖 Generated with Claude Code

D1<2 is the D3-inherent manual root open; D4<2 is the decorator-free
floor + inherent @Inject (D5) + inherent lifecycle (D3). Corrects the
audit's item-5 one-line-trim claim and records the post-rollout
blessed-ready count of 4 (the ceiling under the inherent rulings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@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: d35257e Previous: 87157d1 Ratio
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 26521.950203829732 iter/sec (stddev: 0.00015953322613429668) 19356.956089196658 iter/sec (stddev: 0.00022431740620577488) 0.73
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 552.6594756183164 iter/sec (stddev: 0.00007796987312809001) 293.5455500457864 iter/sec (stddev: 0.00006717773553619963) 0.53
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 510.17899896363747 iter/sec (stddev: 0.00006494097119154678) 287.1056309664252 iter/sec (stddev: 0.000030107008933329806) 0.56
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 470.32287278994085 iter/sec (stddev: 0.00005410149745603376) 235.46097324944432 iter/sec (stddev: 0.00021136113991693177) 0.50
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 2206.817167184464 iter/sec (stddev: 0.0003186975428414443) 1568.0602026398008 iter/sec (stddev: 0.0004737476113312738) 0.71
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 1459.2815750083482 iter/sec (stddev: 0.001203965441703459) 1098.2939394820933 iter/sec (stddev: 0.0012442322511504334) 0.75
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 1186.3261907859448 iter/sec (stddev: 0.00036022461473317563) 888.2354831291833 iter/sec (stddev: 0.0006023780959264702) 0.75
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 533554.9164704854 iter/sec (stddev: 0.00006985349284435046) 437960.6041278133 iter/sec (stddev: 0.00005147773828637973) 0.82
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 660162.4654279607 iter/sec (stddev: 0.000008048365010704592) 444779.26340188086 iter/sec (stddev: 0.000010283269230646327) 0.67
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle 100899.77843156243 iter/sec (stddev: 0.000010121801814808968) 67103.75271506881 iter/sec (stddev: 0.000015016675728535633) 0.67
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 59087.78432206044 iter/sec (stddev: 0.000016035803935741727) 39654.2844205545 iter/sec (stddev: 0.000024054506193571113) 0.67
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 1988031.3237514663 iter/sec (stddev: 3.155383234835281e-7) 1143950.5475492363 iter/sec (stddev: 4.781833104442962e-7) 0.58
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 4187366.3060708484 iter/sec (stddev: 3.393565943307596e-8) 2414129.122302522 iter/sec (stddev: 9.597305356026703e-8) 0.58
benchmarks/test_guard_resolve.py::test_g3_deep_chain 794702.9583442286 iter/sec (stddev: 4.660683683454335e-7) 480702.11264679674 iter/sec (stddev: 7.00064738404265e-7) 0.60
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 483608.6935209209 iter/sec (stddev: 4.2607883047635434e-7) 303397.5392417584 iter/sec (stddev: 6.575302600424515e-7) 0.63
benchmarks/test_guard_resolve.py::test_g5_cross_scope 1616753.792415749 iter/sec (stddev: 2.6010566692485036e-7) 1049343.4232729932 iter/sec (stddev: 3.6778195309060406e-7) 0.65
benchmarks/test_guard_resolve.py::test_g9_context_resolve 803421.3069174933 iter/sec (stddev: 5.224613729968116e-7) 552164.0317055121 iter/sec (stddev: 5.314696792208776e-7) 0.69
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 636609.6939754426 iter/sec (stddev: 4.581743421024652e-7) 367747.69070216914 iter/sec (stddev: 6.149457686408099e-7) 0.58
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 35682.73750142972 iter/sec (stddev: 0.00005993632675263942) 25528.750632175237 iter/sec (stddev: 0.000046613751789323966) 0.72
benchmarks/test_guard_validate.py::test_g11_validate_wide 25074.62102740368 iter/sec (stddev: 0.000006499888311193361) 17142.14167880646 iter/sec (stddev: 0.000012125688211685897) 0.68

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

@lesnik512
lesnik512 merged commit 59c67a6 into main Jul 25, 2026
9 checks passed
@lesnik512
lesnik512 deleted the d1-d4-derived-decision branch July 25, 2026 06:22
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