1.6 KiB
1.6 KiB
08. Deep-modules check
meta: id: pygienium-08 feature: pygienium priority: P2 depends_on: [pygienium-06] tags: [check]
objective:
- Implement the "deep modules, not shallow ones" check: detect modules with shallow abstractions (thin pass-throughs, single-call wrappers, unnecessary indirection) and recommend/apply consolidation.
deliverables:
src/checks/deep-modules.ts:CheckDefinitionwith scan + fix tasks- Rubric: a module should provide a meaningful abstraction over its implementation; flag pass-through wrappers, one-line re-export modules, shallow classes with trivial getters, unnecessary adapter layers
/pygienium-deep-modulesruns E2E
steps:
- Author
buildScanTask: agent identifies shallow modules from recon candidates, writes findings topygienium/checks/deep-modules/findings.md - Author
buildFixTask: consolidate/inline where safe; flag risky consolidations for human review; write changes.md - Register the check
tests:
- Integration: temp module that wraps a single lib call as a pass-through; run with
--fix; assert it's flagged/removed and changes.md explains the consolidation
acceptance_criteria:
/pygienium-deep-modulesflags shallow modules in findings.md- With
--fix, safe consolidations are applied; risky ones are listed for review, not auto-applied
validation:
- Inspect
pygienium/checks/deep-modules/{findings.md,changes.md}
notes:
- "Deep modules" = John Ousterhout's A Philosophy of Software Design; encode that definition in the rubric
- Prefer conservative fixes: never auto-delete a module with external importers without confirmation