docs(adr): compress to 3 records in the domain-modeling format - #26
Merged
Merged
Conversation
Rewrite docs/adr/ from 4 records (1106 words) to 3 (452 words), one paragraph each. - dropped 0002 (no functools.wraps on the inject wrapper): fails the admission test on its own, its rule is folded into the surviving variadics record as one sentence - 0003 reject variadics alongside FromDI -> 0002 - 0004 connect both worker signal pairs -> 0003
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.
Rewrites
docs/adr/from 4 records (1,106 words) to 3 (452 words), one paragraph each, in the shape the domain-modeling ADR format asks for. Survivors are renumbered 0001-0003 in their original order and every citation moves with them.Evaluation
Each record was tested against the admission test: hard to reverse, surprising without context, the result of a real trade-off. A record that fails it on its own but states a rule a survivor relies on was folded into that survivor as a sentence.
bind=Trueeverywhere, the thread-local current task) were real.functools.wrapson the inject wrapper__wrapped__would pointinspect.signatureback at the un-rewritten signature, is now the last sentence of the variadics record it was already declared "related" to.FromDIargs/kwargs).setup_diconnects both worker signal pairsThe three
**Revisit trigger:**blocks were dropped as sections. None of them was the real boundary of its decision: each restated "revisit when the constraint that forced this stops holding".Citations
Only two existed, and both are Markdown:
docs/agents/domain.mdfile-structure example listed0002-no-functools-wraps-on-the-inject-wrapper.md, now0002-reject-variadics-alongside-fromdi.md.0002's**Related:** [ADR-0003](0003-reject-variadics-alongside-fromdi.md)link disappears with the record it lived in.docs/agents/domain.md'sADR-0001mention is unchanged: 0001 keeps its number, slug and subject. No Python, TOML or YAML file cites an ADR. The repo-wide sweep finds no reference to an old or dropped number.Stale claims
None. Every concrete claim was checked against the current code:
_ROOT_CONTAINER_KEY, the no-contextbuild_child_container(scope=Scope.REQUEST), the by-name callfunc(**bound.arguments, **resolved), the earlyreturn funcfor a task with noFromDIparameter, the fourweak=Falsesignal connections and the hand-copied__name__/__qualname__/__doc__/__module__plus__signature__all matchmodern_di_celery/main.py.worker_init/worker_shutdownpair.modern-di-typercross-reference in 0001 is real (modern-di-typerdocs/adr/0002-no-connection-binding-for-a-cli.md).One wording change rather than a correction: old 0001 described only the
@injectroute. TheDITaskbase class also injects, by wrappingself.run, and it likewise builds the child with no context, so the record now states the rule without leaning on decorator ordering alone.Gates
pytest -q tests/test_adr_citations.pypytest -q(full suite)ruff format --checkruff check --no-fixeof-fixer . --checklychee --offline --no-progressover the touched Markdown plusCONTEXT.mdandAGENTS.mdNo Python was touched, so the lint gates are informational. Nothing was skipped: this repo's suite needs no external services, and
ty checkwas not part of the requested gate list.