Files
english/.opencode/skills/code-review/references/edge-case-scouting.md
2026-04-12 01:06:31 +07:00

120 lines
2.9 KiB
Markdown

---
name: edge-case-scouting
description: Use after implementation, before code review to proactively find edge cases, side effects, and potential issues via scout skill - catches problems code-reviewer might miss
---
# Edge Case Scouting
Proactive detection of edge cases, side effects, and potential issues before code review.
## Purpose
Code reviews catch obvious issues but miss subtle side effects. Scout detects:
- Files affected by changes reviewer might not check
- Data flow paths that could break
- Boundary conditions and error paths
- Integration issues across modules
## When to Use
**Mandatory:** Multi-file features, shared utility refactors, complex bug fixes
**Optional:** Single-file changes, docs, config
## Process
### 1. Identify Changed Files
```bash
git diff --name-only HEAD~1
```
### 2. Invoke Scout
```
/ck:scout edge cases for recent changes.
Changed: {files from git diff}
Find:
1. Files importing/depending on changed modules
2. Data flow paths through modified functions
3. Error handling paths not tested
4. Boundary conditions (null, empty, max)
5. Race conditions in async code
6. State management side effects
```
### 3. Analyze & Act
| Finding | Action |
|---------|--------|
| Affected file not in scope | Add to review |
| Data flow risk | Verify or add test |
| Edge case | Add test or verify |
| Missing test | Add before review |
### 4. Document for Review
```
Scout findings:
- {issues found}
- Verified: {what checked}
- Addressed: {what fixed}
- Needs review: {remaining}
```
## Scout Prompts
**Feature:**
```
Scout edge cases for {feature}.
Changed: {files}
Find: consumers, error states, untested inputs, performance, compatibility
```
**Bug fix:**
```
Scout side effects of fix in {file}.
Bug: {description}, Fix: {approach}
Find: other paths using logic, dependent features, similar bugs
```
**Refactor:**
```
Scout breaking changes in {module}.
Before: {old}, After: {new}
Find: importers, behavior diffs, removed functionality
```
## What Scout Catches
| Issue | Why Missed | Scout Detects |
|-------|------------|---------------|
| Indirect deps | Not in diff | Traces imports |
| Race conditions | Hard static review | Analyzes flow |
| State mutations | Hidden side effects | Tracks data |
| Missing null checks | Assumed safe | Boundary analysis |
| Integration breaks | Out of scope | Cross-module search |
## Red Flags
- Shared utility changed but only one caller tested
- Error path leads to unhandled rejection
- State modified in place without notification
- Breaking change without migration
## Example
```
1. Done: Add cache to UserService.getUser()
2. Diff: src/services/user-service.ts
3. Scout: "edge cases for caching in getUser()"
4. Report:
- ProfileComponent expects fresh data on edit
- AdminPanel loops getUser() (memory risk)
- No cache clear on updateUser()
5. Fix: Add invalidation, maxSize
6. Document for code-reviewer
```
## Bottom Line
Scout before review. Don't trust "simple changes" - scout them anyway.