Context
The factory CLI currently exposes ~70 top-level subcommands. After removing dead modes (#1346 ) and dead infrastructure modules (#1348 ), ~30 subcommands have no remaining backing implementation.
CLI subcommands to remove
Experiment lifecycle (improve/research-only)
begin, finalize — experiment lifecycle
history, diff, explain — experiment analysis (read .factory/results.tsv)
Research/meta-only
baseline — eval baseline for improve/research score-delta flow
adversarial-state — GAN-style adversarial loop inspection
insights, report-update — cross-project reporting
eval — not invoked by design/create
leakage-check, validate-research — research-mode ground-truth isolation checks
Backlog/refinement (improve-only)
backlog-add, backlog-list, backlog-remove — backlog management
refine-status, refine-begin, refine-complete — refinement loop
message — CEO messaging
Reporting/analysis
status, summary, export — reporting/analysis
research (citation index)
review — structured PR review for keep/revert loop
clean-pr — Clean PR Mode (keep module per Akash, but evaluate if CLI verb is needed)
Infrastructure management
registry-list — cross-project registry listing
dead-code — zero documentation, unclear purpose
plugins — generic plugin discovery listing
runners — runner management (only claude left)
usage — per-agent token breakdown across runners
self-update — CLI self-upgrade
home — trivial, prints install root
profile — user profile management
Migration/one-time tools
backfill-citations, backfill-archive — migration tools
Consider keeping as internal (not user-facing)
log, emit — keep as internal functions, remove CLI verbs
checkpoint, resume — keep module per Akash, remove CLI verbs if not needed by design/create
Implementation
Remove subcommand registrations from factory/cli/_main.py handler dispatch table
Remove parser definitions from factory/cli/_parser_groups.py
Remove cmd_* functions from factory/cli/ modules where they exist solely for removed commands
Keep all modules that Akash's PR Dead-code pruning report — comprehensive analysis of ~7,800 removable lines #1302 marks as "actively used" — only remove the CLI verb, not the underlying module
Related
Context
The factory CLI currently exposes ~70 top-level subcommands. After removing dead modes (#1346) and dead infrastructure modules (#1348), ~30 subcommands have no remaining backing implementation.
CLI subcommands to remove
Experiment lifecycle (improve/research-only)
begin,finalize— experiment lifecyclehistory,diff,explain— experiment analysis (read .factory/results.tsv)Research/meta-only
baseline— eval baseline for improve/research score-delta flowadversarial-state— GAN-style adversarial loop inspectioninsights,report-update— cross-project reportingeval— not invoked by design/createleakage-check,validate-research— research-mode ground-truth isolation checksBacklog/refinement (improve-only)
backlog-add,backlog-list,backlog-remove— backlog managementrefine-status,refine-begin,refine-complete— refinement loopmessage— CEO messagingReporting/analysis
status,summary,export— reporting/analysisresearch(citation index)review— structured PR review for keep/revert loopclean-pr— Clean PR Mode (keep module per Akash, but evaluate if CLI verb is needed)Infrastructure management
registry-list— cross-project registry listingdead-code— zero documentation, unclear purposeplugins— generic plugin discovery listingrunners— runner management (only claude left)usage— per-agent token breakdown across runnersself-update— CLI self-upgradehome— trivial, prints install rootprofile— user profile managementMigration/one-time tools
backfill-citations,backfill-archive— migration toolsConsider keeping as internal (not user-facing)
log,emit— keep as internal functions, remove CLI verbscheckpoint,resume— keep module per Akash, remove CLI verbs if not needed by design/createImplementation
factory/cli/_main.pyhandler dispatch tablefactory/cli/_parser_groups.pycmd_*functions fromfactory/cli/modules where they exist solely for removed commandsRelated