.github/skills/generate-snapshot/SKILL.md
Generate a codebase health snapshot for technical debt tracking and planning. Analyzes git history, code complexity, debt markers, and dependencies to identify hotspots and refactoring priorities.
npx skillsauth add microsoft/vscode-python-environments generate-snapshotInstall 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 generates a comprehensive code health snapshot using the analysis modules in analysis/.
# From repository root
python -m analysis.snapshot --output analysis-snapshot.json
Add --pretty flag to also print the JSON to stdout.
Note: The snapshot is written to the repository root (analysis-snapshot.json). This path is ignored by .gitignore.
The snapshot contains these sections:
summary - High-level metrics dashboardfiles_with_changes: Number of files with git changestotal_churn: Total lines added + deletedhigh_complexity_files: Count of files with high complexitytodo_count, fixme_count: Debt marker countscircular_dependency_count: Architectural issuessingle_author_file_ratio: Bus factor indicatorpriority_hotspots - Top 20 refactoring candidatesFiles sorted by priority_score = change_count × max_complexity
{
"path": "src/features/terminal/terminalManager.ts",
"change_count": 45,
"churn": 1200,
"max_complexity": 18,
"priority_score": 810
}
High priority_score = frequently changed AND complex = prime refactoring target.
git_analysis - Change patternshotspots: Most frequently changed filestemporal_coupling: Files that change together (hidden dependencies)bus_factor: Knowledge concentration riskscomplexity - Code complexity metricsby_language.typescript: TypeScript file metrics (max_complexity, avg_complexity, function_count)high_complexity_functions: Functions with cyclomatic complexity > 10debt_indicators - Technical debt markersdebt_markers.by_type: TODO, FIXME, HACK comments by typelarge_files: Files exceeding 500 lines of codelong_functions: Functions exceeding 50 linesdependencies - Module coupling analysiscircular_dependencies: Cycles in import graphhighly_coupled_modules: Modules with fan-out > 10hub_modules: Modules with fan-in > 10layer_violations: Lower layers importing from higher layerspriority_score descendingFiles with coupling_ratio > 0.8 changing together indicate:
Files with author_count = 1 and change_count >= 3:
Any cycles in the import graph:
User: What should we work on next?
Agent: Let me generate a snapshot and analyze it...
[generates snapshot]
Based on the snapshot:
Top 3 priority items:
1. **src/features/terminal/terminalManager.ts** (priority: 810)
- 45 changes, complexity 18
- High churn indicates active development area
- Recommend: Split terminal concerns into separate modules
2. **src/managers/common/nativePythonFinder.ts** (priority: 540)
- 30 changes, complexity 18
- Multiple FIXME markers found
- Recommend: Address type guards and cache issues
3. **src/features/interpreterSelection.ts** (priority: 360)
- 24 changes, complexity 15
- Temporal coupling with settings files
- Recommend: Reduce coupling with settings module
development
VS Code settings precedence rules and common pitfalls. Essential for any code that reads or writes settings. Covers getConfiguration scope, inspect() vs get(), and multi-workspace handling.
tools
Run smoke tests to verify extension functionality in a real VS Code environment. Use this when checking if basic features work after changes.
development
Run the mandatory pre-commit checks before committing code. Includes lint, type checking, and unit tests. MUST be run before every commit.
tools
Run integration tests to verify that extension components work together correctly. Use this after modifying component interactions or event handling.