Enforce canonical multiline XML documentation - #20
Merged
Conversation
Convert signed range results through their exact i64 bit pattern and use checked narrowing for unsigned results. This removes host casts that Clippy identified as potentially truncating while preserving the accepted fixed-width range semantics. Cover signed-minimum and unsigned-maximum iteration through the native ABI.
Make separate opening, content, and closing documentation lines the only canonical form for non-empty XML elements. Add the authorizing ADR, teach the formatter to perform safe token-aware rewrites, preserve code whitespace and CRLF, migrate repository examples and fixtures, and reject regressions. Resolve duplicate ADR identities exposed by the architecture audit so every accepted decision has one unambiguous number. Keep the Pop agent guidance in the separately maintained skills repository synchronized with this contract.
kleeedolinux
self-requested a review
July 14, 2026 05:22
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.
Summary
Make multiline XML documentation the only canonical source form for every non-empty element. The formatter now expands valid inline elements safely, preserves malformed input, code whitespace, indentation, and line endings, and inserts canonical separators between top-level contract elements.
This PR also migrates all repository documentation and fixtures, prevents inline regressions, restores unique ADR identities after the recent merge, and replaces potentially truncating native range conversions with checked conversions.
Architecture traceability
---lines. Sibling top-level elements use one empty---separator. Self-closing syntax remains available only for genuinely empty elements.Verification
cargo fmt --all -- --checkcargo check --workspace --all-targetscargo test --workspace --all-targetscargo clippy --workspace --all-targets -- -D warningsIf a check was not run, explain why:
The full Clippy command was run. It remains unsuccessful because the current
pop-typesbaseline reports 59 pre-existing warnings promoted to errors, primarily complexity, wildcard-import, documentation, and repeated-match-arm lints from the recent generic/iteration work. Clippy passes with-D warnings --no-depsfor the formatter, documentation, architecture-test, and native-runtime components changed here. Three range conversion lints and one documentation lint discovered during this review were fixed.Additional successful validation:
quick_validate.pyvalidation;Review notes
The formatter library implements the XML documentation rule. The complete user-facing
pop formatcommand remains roadmap work and is not claimed by this PR.