docs(decision): D1/D4 sub-2 scores are derived — no independent fix#376
Merged
Conversation
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>
There was a problem hiding this comment.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.open()— the D3-inherent fact ("D1=1 and D3=1 share one root cause").@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.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-cigreen.🤖 Generated with Claude Code