analysis: httpie/cli static recon β 956-line god file, 17% doc coverage, 84 tier violations#1825
Open
atomadictech wants to merge 1 commit intohttpie:masterfrom
Open
Conversation
Automated static analysis of the httpie/cli module using ASS-ADE (no LLM, pure static analysis < 2s). Key findings: - definition.py at 956 lines spans 3 responsibility tiers (constants, argument groups, spec composition) β split candidate - 17% docstring coverage across 1,107 public callables - 2 circular import cycles detected in output/ module - 66 untested modules across the repo Rebuild of httpie/cli (reference only, not replacing source): - 101 components classified into 3 tiers - 84 violating import edges resolved - Fully acyclic output, 100% audit pass See docs/assade_analysis.md for the proposed improvements. Full reports: RECON_REPORT.md, REBUILD_REPORT.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
Automated static analysis of
httpie/cliusing ASS-ADE (no LLM, pure static analysis in < 2 seconds). Sharing the findings in case they're useful for a future refactor β not proposing to merge any structural changes here without maintainer discussion.What was found
httpie/cli module
definition.pyargtypes.pyoptions.pyconstants.pydefinition.pyat 956 lines is the primary concern. It mixes three layers that are independently testable and independently stable.Full repo
output/What the rebuild showed
Running a tier-partitioned rebuild on
httpie/cli(reference only β not replacing source):a0_qk_constants(pure constants)a1_at_functions(pure functions)a2_mo_composites(composites)Proposed action (if maintainers agree)
Split
definition.pyinto three files:constants.pyadditions,groups.py(argument group builders),definition.py(spec composition only, < 200 lines). No public API change.Resolve circular imports in
output/β introduce lazy imports or a thin interface module.Docstring pass on
argtypes.pyandoptions.pyβ highest external call surface, lowest documentation.Files added
RECON_REPORT.mdβ full static analysis outputREBUILD_REPORT.mdβ tier rebuild metricsdocs/assade_analysis.mdβ structured summaryTool
ASS-ADE β
pip install ass-ade-rebuild. Local, no LLM for recon. Happy to runrebuild --premiumfor LLM-assisted docstring generation if maintainers want a draft.If this analysis is off-base or the repo has different conventions, feel free to close. Just sharing what the tooling found.