Goal
Plan Python package structure so code stays reusable and imports stay clean.
When to Use
- A Python codebase is growing into packages.
- Reusable modules need extraction from scripts or apps.
- The repo may be published or reused across entrypoints.
Instructions
- Identify the reusable library surface versus app-specific code.
- Define package names, module boundaries, and public interfaces.
- Plan tests, versioning, and entrypoints around the package shape.
- Clarify import rules and shared utility placement.
Constraints
- Avoid dumping unrelated helpers into one utils module.
- Keep public package surfaces deliberate.
- Do not overpackage throwaway code.
Output Format
- package map
- public versus internal modules
- import and naming notes
- packaging guidance
Examples
- "Plan the package structure for this Python repo."
- "How should we extract a reusable Python library from this service?"