netanelcyber / netanelcyber/AdPentestAI-Python
[Discussion] Split core.py into focused submodules?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5
- Forks
- 2
- Avg merge
- 22h 25m
- Merged PRs (30d)
- 7
Description
Question
adpentest/core.py is now ~11,200 lines. Should we split it into submodules, or is single-file the intentional design?
Current single-file rationale (per CLAUDE.md)
- No circular imports
- Centralized tool registry, error handling, profiler
- One file to modify for tool changes
- Easy grep/read for LLM tools
Cost as of today
- Slow IDE navigation, jump-to-def latency
- Merge conflicts concentrate on one file
- Cognitive load for new contributors
- Hard to unit-test in isolation
Options to weigh
- Keep single-file — status quo, invest in section banners +
# regionmarkers instead - Light split — extract long-standing self-contained blocks (email protocols, SPN enum, DC detection) into 3-4 submodules, keep
core.pyas the coordinator - Full package split —
dc/,enum/,email/,kerberos/,tools/,parallel/— matches the CLAUDE.md architecture headings
Note: the adpentest_onefile.py single-file distribution can be regenerated automatically (see #40), so a package split does not lose the single-file consumption path.
Non-goals
- Behaviour change
- Public API rename
Cast opinions in the thread.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading adpentest/core.py and the current rationale in CLAUDE.md, then review issue #40 for the single-file regeneration path. Compare the keep, light-split, and full-package options against the stated costs and non-goals. Done means the thread reaches and records a clear architectural decision.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- security
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100