hidden-io-detector
Purpose
Detect file, network, database, environment, process, clock, and framework I/O that is hidden inside units and harms testability.
Trigger this skill when
- The current artifact is difficult to test directly or reliably.
- You suspect hidden dependencies, side effects, non-determinism, or awkward setup are harming test quality.
- You want design changes that improve testability before adding more tests.
Expected inputs
- code snippets
- module boundaries
- framework usage
- runtime dependencies
Deliverables
- hidden I/O findings
- risk list
- abstraction opportunities
- test isolation recommendations
Operating procedure
- Read the code or design with a testability lens rather than a feature lens.
- Identify collaborators, side effects, state transitions, environment assumptions, and setup cost.
- Separate core logic from orchestration, effects, and framework concerns.
- Surface the concrete causes of poor testability, not just the symptoms.
- Recommend low-risk refactors or abstractions that improve controllability and observability.
- Prioritize changes that reduce flakiness, setup burden, and mocking complexity.
Quality gates
- Findings are specific to the artifact, not generic testing advice.
- Recommendations reduce coupling or non-determinism in a concrete way.
- Hidden I/O, time, randomness, or state dependencies are called out when present.
- Output separates findings, refactor options, tradeoffs, and next actions.
Handoff targets
- time-randomness-abstraction-advisor
- dependency-injection-advisor
- side-effect-isolation-reviewer
Output style
- Be explicit about uncertainty.
- Prefer concrete examples over abstract advice.
- Separate facts, risks, refactor options, and recommended next step.
- Flag where a simpler design change beats a heavier testing workaround.
Failure modes to avoid
- Do not prescribe mocks as the first answer to every problem.
- Do not hide framework coupling or hidden I/O behind euphemistic wording.
- Do not recommend invasive redesign when a small seam or abstraction is enough.
- Do not confuse code coverage with testability.
Minimum output skeleton
## Summary
## Findings
## Structured outputs
## Risks
## Refactor options
## Recommended next skill
1---2name: hidden-io-detector3description: hidden-io-detector4---5# hidden-io-detector67## Purpose8Detect file, network, database, environment, process, clock, and framework I/O that is hidden inside units and harms testability.910## Trigger this skill when11- The current artifact is difficult to test directly or reliably.12- You suspect hidden dependencies, side effects, non-determinism, or awkward setup are harming test quality.13- You want design changes that improve testability before adding more tests.1415## Expected inputs16- code snippets17- module boundaries18- framework usage19- runtime dependencies2021## Deliverables22- hidden I/O findings23- risk list24- abstraction opportunities25- test isolation recommendations2627## Operating procedure281. Read the code or design with a testability lens rather than a feature lens.292. Identify collaborators, side effects, state transitions, environment assumptions, and setup cost.303. Separate core logic from orchestration, effects, and framework concerns.314. Surface the concrete causes of poor testability, not just the symptoms.325. Recommend low-risk refactors or abstractions that improve controllability and observability.336. Prioritize changes that reduce flakiness, setup burden, and mocking complexity.3435## Quality gates36- Findings are specific to the artifact, not generic testing advice.37- Recommendations reduce coupling or non-determinism in a concrete way.38- Hidden I/O, time, randomness, or state dependencies are called out when present.39- Output separates findings, refactor options, tradeoffs, and next actions.4041## Handoff targets42- time-randomness-abstraction-advisor43- dependency-injection-advisor44- side-effect-isolation-reviewer4546## Output style47- Be explicit about uncertainty.48- Prefer concrete examples over abstract advice.49- Separate facts, risks, refactor options, and recommended next step.50- Flag where a simpler design change beats a heavier testing workaround.5152## Failure modes to avoid53- Do not prescribe mocks as the first answer to every problem.54- Do not hide framework coupling or hidden I/O behind euphemistic wording.55- Do not recommend invasive redesign when a small seam or abstraction is enough.56- Do not confuse code coverage with testability.5758## Minimum output skeleton59```md60## Summary61## Findings62## Structured outputs63## Risks64## Refactor options65## Recommended next skill66```