Problem
cli/python/base_github_projects/engine.py is currently about 994 lines and owns project doctor, project configure, and issue field update behavior in one module. These operations share GitHub Project infrastructure, but they have different command paths, error contracts, and output expectations.
Desired outcome
Refactor the GitHub Projects Python implementation into clearer command-boundary modules without changing user-visible behavior.
Scope
- Identify stable shared Project V2 helpers that should remain common.
- Move doctor-specific behavior into a focused module.
- Move configure-specific behavior into a focused module.
- Move issue field update behavior into a focused module.
- Preserve CLI behavior, text output, JSON/structured behavior if any, and exception handling.
- Keep tests focused on behavior rather than module internals.
Non-goals
- Do not redesign the GitHub Project schema.
- Do not change issue/project field semantics.
- Do not add new GitHub workflow features as part of the refactor.
Acceptance criteria
base_github_projects command paths remain behaviorally compatible.
- The main engine module no longer owns all doctor, configure, and issue field update logic directly.
- Existing tests pass, with focused coverage added if extraction exposes missing command-boundary cases.
- Documentation or developer notes are updated only if the public or contributor-facing structure changes.
Problem
cli/python/base_github_projects/engine.pyis currently about 994 lines and owns project doctor, project configure, and issue field update behavior in one module. These operations share GitHub Project infrastructure, but they have different command paths, error contracts, and output expectations.Desired outcome
Refactor the GitHub Projects Python implementation into clearer command-boundary modules without changing user-visible behavior.
Scope
Non-goals
Acceptance criteria
base_github_projectscommand paths remain behaviorally compatible.