Context
cli/python/base_github_projects/engine.py is smaller after recent helper extraction, but it still mixes CLI command dispatch with GraphQL project operations. It also passes sys.modules[__name__] as an operations object for command helpers, which keeps implementation seams implicit.
Scope
- Extract a GitHub Project operations/client layer used by command helpers.
- Replace implicit module-as-ops coupling with an explicit operations object or protocol.
- Preserve existing
basectl gh project behavior.
Validation
- Focused GitHub Projects command tests with fake operations.
- Existing
base_github_projects tests.
git diff --check.
Context
cli/python/base_github_projects/engine.pyis smaller after recent helper extraction, but it still mixes CLI command dispatch with GraphQL project operations. It also passessys.modules[__name__]as an operations object for command helpers, which keeps implementation seams implicit.Scope
basectl gh projectbehavior.Validation
base_github_projectstests.git diff --check.