docs(adr): compress to 2 records in the domain-modeling format - #180
Merged
Merged
Conversation
Both records pass the admission test, so nothing was dropped and nothing was merged; numbering and filenames are unchanged. Each record is now a single paragraph: the **Decision:** lead, the rejected-alternative bullet lists, and the revisit trigger are folded into prose, with the free-threading revisit trigger reduced to the scope boundary it actually states.
Benchmark gate✅ gate passed
Gated (fails the build): |
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 2 records (535 words) to 2 (306 words), one paragraph each, in the shape the domain-modeling ADR format asks for. Both records pass the admission test, so nothing is dropped and nothing is merged; numbering and filenames are unchanged. What goes is the format: the**Decision:**lead, the rejected-alternative bullet lists, and the**Revisit trigger:**block. Same treatment as modern-python/compose2pod#102.Evaluation
Each record was tested against the admission test: hard to reverse, surprising without context, the result of a real trade-off.
(kind, name, label set)table was weighed and rejected).0002's revisit trigger is folded in rather than kept as a block:
DISABLE_SQLALCHEMY_CEXT_RUNTIME=1is the real boundary of the guarantee, not a scheduling note, so it is stated as the scope of the decision with #160 as the issue link. 0001's parity-contract-test bullet survives as a clause, since the rejection is the non-obvious half of the decision.Citations
None move. The only ADR reference in the repo is the
ADR-0001example indocs/agents/domain.md, which still names record 0001 and the same subject; the file-structure listing in the same file is unchanged. The repo-wide sweep foradr/NNNNandADR-NNNNacross*.py,*.md,*.tomland*.ymlfinds no old or dropped number.Stale claims
None. Every concrete claim was re-checked against the tree and holds: the two
__call__switches infaststream_outbox/metrics/{prometheus,opentelemetry}.pywith no shared table;dispatchedas three Prometheus operations (_received_total.inc,_received_size.observe,_in_process.inc) and an explicit OpenTelemetry no-op; no parity contract test intests/; thefreethreadedCI job in.github/workflows/_checks.ymlwith itsDISABLE_SQLALCHEMY_CEXT_RUNTIME=1env andsys._is_gil_enabled()assertion, pinned to 3.14t; theProgramming Language :: Python :: Free Threading :: 2 - Betaclassifier inpyproject.toml; the docs note indocs/introduction/installation.md; and #160 still open. One wording change, not a correction: the classifier is now named explicitly instead of called "a classifier".Gates
pytest -q tests/test_adr_citations.pypytest -q(full suite)tests/test_integration.py/tests/test_client_contract.pyreporting Postgres unreachable on the local DSNruff format --checkruff check --no-fixeof-fixer . --checklychee --offline --no-progressover both ADRs,CONTEXT.md,AGENTS.mdNo Python was touched, so the ruff gates are informational here.