Why
The modular command registry exists, but command implementations still live in src/specfact_cli/commands/. Module packages are mostly re-export shells, which keeps command ownership centralized and increases merge conflict risk.
What Changes
- Move command implementations into module-local
src/commands.py files under src/specfact_cli/modules/<name>/src/.
- Update each module
src/app.py to import app from local commands.
- Keep backward-compatible re-export shims in
src/specfact_cli/commands/.
- Execute migration in tiers (small to heavyweight) with verification gates.
- Update architecture and contributor docs that reference old command implementation locations.
Acceptance Criteria
- Each migrated module has local command implementation and local app wiring.
- Legacy imports from
specfact_cli.commands.* continue to work via shims.
- Tier-by-tier tests, contract checks, and representative CLI help checks pass.
- Documentation reflects module-local command implementation model.
OpenSpec Change Proposal: arch-02-module-package-separation
Why
The modular command registry exists, but command implementations still live in
src/specfact_cli/commands/. Module packages are mostly re-export shells, which keeps command ownership centralized and increases merge conflict risk.What Changes
src/commands.pyfiles undersrc/specfact_cli/modules/<name>/src/.src/app.pyto importappfrom localcommands.src/specfact_cli/commands/.Acceptance Criteria
specfact_cli.commands.*continue to work via shims.OpenSpec Change Proposal: arch-02-module-package-separation