.claude/skills/gap-detection/SKILL.md
Detect missing docs, undocumented files, project health issues, and coverage gaps on session start or on-demand. Scans for README gaps, TODO/FIXME counts, and test coverage holes.
npx skillsauth add oimiragieo/agent-studio gap-detectionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill performs a structured health-check scan on session start (or on-demand) to surface:
Use this skill before beginning any significant work in an unfamiliar codebase, or as a recurring quality gate.
NO HEALTH REPORT WITHOUT EVIDENCE — EVERY FINDING MUST CITE FILE AND LINE
Never report a gap without a concrete file path and (when applicable) line number. Vague summaries are not actionable.
Command:
# Find source files without a README at their directory level
find . -type f \( -name "*.ts" -o -name "*.js" -o -name "*.cjs" -o -name "*.mjs" -o -name "*.py" \) \
! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" ! -path "*/build/*" \
-print | while read f; do
dir=$(dirname "$f")
if [ ! -f "$dir/README.md" ] && [ ! -f "$dir/index.md" ]; then
echo "NO_README: $f"
fi
done | sort -u
Expected output: Lines of form NO_README: ./src/utils/helper.ts
Verify: Exit code 0; non-empty output means gaps exist.
Command:
# Find source files that have no matching test file
find . -type f \( -name "*.ts" -o -name "*.js" -o -name "*.cjs" \) \
! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" \
! -path "*/tests/*" ! -path "*/__tests__/*" ! -path "*.test.*" ! -path "*.spec.*" \
-print | while read src; do
base=$(basename "$src" | sed 's/\.[^.]*$//')
dir=$(dirname "$src")
if ! find . -path "*/tests/*" -name "${base}.test.*" 2>/dev/null | grep -q .; then
if ! find . -name "${base}.test.*" 2>/dev/null | grep -q .; then
echo "NO_TEST: $src"
fi
fi
done
Expected output: Lines of form NO_TEST: ./src/auth/jwt.ts
Verify: Exit code 0; any NO_TEST lines are coverage gaps.
Command:
grep -rn --include="*.ts" --include="*.js" --include="*.cjs" --include="*.mjs" --include="*.py" \
-E "(TODO|FIXME|HACK|XXX):" \
--exclude-dir=node_modules --exclude-dir=.git --exclude-dir=dist \
. 2>/dev/null | sort
Expected output: ./src/auth/jwt.ts:42: // TODO: add token rotation
Verify: Total count printed via | wc -l appended to output.
Command:
# Find exported functions/classes without JSDoc or inline comment above them
grep -rn --include="*.ts" --include="*.js" -E "^export (function|class|const|async function)" \
--exclude-dir=node_modules --exclude-dir=dist --exclude-dir=.git \
. 2>/dev/null | while IFS=: read file line content; do
prevline=$((line - 1))
comment=$(sed -n "${prevline}p" "$file" 2>/dev/null | grep -E "(/\*|\*/|//)" || true)
if [ -z "$comment" ]; then
echo "NO_DOC: $file:$line $content"
fi
done
Expected output: NO_DOC: ./src/api/router.ts:15 export function handleRequest
Verify: Exit code 0.
After running Steps 1–4, produce a structured report with:
src/auth/, add tests for jwt.ts")Report format:
## Gap Detection Report — {{date}}
| Category | Count |
| ---------- | ----- |
| NO_README | {{n}} |
| NO_TEST | {{n}} |
| TODO/FIXME | {{n}} |
| NO_DOC | {{n}} |
### Priority Gaps
1. {{file:line}} — {{reason}}
...
### Recommended Actions
- [ ] {{action}}
...
Verify: Report written to .claude/context/tmp/gap-detection-report-{{date}}.md.
Input validated against schemas/input.schema.json before execution.
Output contract defined in schemas/output.schema.json.
Before starting:
Read .claude/context/memory/learnings.md for prior gap scans and known chronic issues.
After completing:
.claude/context/memory/learnings.md with date and repo path.claude/context/memory/issues.mdnode_modules/, dist/, .git/ directoriesproactive-audit — broader audit including hook syntax and agent consistencytdd — use after gap-detection to address test coverage gapsdebugging — follow-up for runtime gaps identified during scancontext-compressor — compress large gap reports before handing offdeveloper (primary — runs on feature work)qa (primary — runs before test strategy)architect (supporting — runs before architecture reviews)planner (supporting — runs before planning sessions)tools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.