context-retrieval-loop · diff
git:20260503.7a137bf to git:20260606.f64a316
8 added, 1 removed. Audit A to A.
---
name: context-retrieval-loop
- description: Deterministic 3-cycle loop for gathering codebase context before refactoring or maintenance work. Broad search → exact source and tests → config and build setup.
+ description: Use when about to refactor, rename, or remove code, assessing dead code before deletion, or unsure of the blast radius of a change.
---
# Context Retrieval Loop (Codebase Maintenance)
Gather context before any refactor or maintenance task. Prevents breaking undetected callers or missing test coverage.
## When to Use
- About to refactor, rename, or remove code
- Assessing dead code before deletion
- Unsure of the blast radius of a change
## The 3-Cycle Loop
### Cycle 1 — Broad Search
```bash
# Find callers and references
rg "<symbol-name>" --type ts --type js -l
rg "<symbol-name>" --glob "*.py" -l
```
Stop here if you can confirm the symbol is unused (no results).
### Cycle 2 — Exact Source and Tests
Read the target file and its tests. Find all callers:
```bash
rg "import.*<module>" -l
rg "<function-name>" --glob "*.test.*" -l
```
Stop here if you understand the change scope and existing test coverage.
### Cycle 3 — Config and Build
```bash
# Check if symbol appears in build or config
rg "<symbol-name>" *.config.* tsconfig.json Makefile -l 2>/dev/null
```
Check for re-exports, barrel files, and public API surfaces.
## Output
```
Context gathered:
<file-path> — <reason>
Blast radius:
<N> callers in <N> files
Tests covering this code: <yes/no/partial>
Missing context (if any):
<what is still unclear>
```
Do not start a refactor without knowing the blast radius. If callers are unclear after Cycle 3, stop and report.
+
+ ## Verification
+
+ - [ ] Cycles ran in order and stopped at the first satisfied condition — never past 3
+ - [ ] Blast radius is reported: caller count, files affected, test coverage status
+ - [ ] Re-exports, barrel files, and public API surfaces were checked before concluding
+ - [ ] No refactor started while callers remained unclear — stopped and reported instead