[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69ANT39TYG676Q12DAWM182":3,"skill-same:01M69ANT39TYG676Q12DAWM182":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M69ANT39TYG676Q12DAWM182","generate-snapshot",null,"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.","microsoft\u002Fvscode-python-environments","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69ANKH8QP6PYCYYVP4340EX",147,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgenerate-snapshot\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"generate","generate snapshot","snapshot","codebase","for","output","markers","technical debt","dependencies","priorities","code complexity","complexity","codebase health","technical","history","refactoring","health","git","planning","code","2026-11-10 10:12:30",false,"---\nname: generate-snapshot\ndescription: 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.\nargument-hint: '--output path --pretty'\n---\n\n# Generate Codebase Snapshot\n\nThis skill generates a comprehensive code health snapshot using the analysis modules in `analysis\u002F`.\n\n## When to Use\n\n- During planning phase to identify work items\n- To find refactoring hotspots (high churn + high complexity)\n- To track technical debt over time\n- Before major releases to assess code health\n- To identify knowledge silos (bus factor risks)\n\n## How to Generate\n\n```powershell\n# From repository root\npython -m analysis.snapshot --output analysis-snapshot.json\n```\n\nAdd `--pretty` flag to also print the JSON to stdout.\n\n**Note:** The snapshot is written to the repository root (`analysis-snapshot.json`). This path is ignored by `.gitignore`.\n\n## Snapshot Structure\n\nThe snapshot contains these sections:\n\n### `summary` - High-level metrics dashboard\n\n- `files_with_changes`: Number of files with git changes\n- `total_churn`: Total lines added + deleted\n- `high_complexity_files`: Count of files with high complexity\n- `todo_count`, `fixme_count`: Debt marker counts\n- `circular_dependency_count`: Architectural issues\n- `single_author_file_ratio`: Bus factor indicator\n\n### `priority_hotspots` - Top 20 refactoring candidates\n\nFiles sorted by `priority_score = change_count × max_complexity`\n\n```json\n{\n    \"path\": \"src\u002Ffeatures\u002Fterminal\u002FterminalManager.ts\",\n    \"change_count\": 45,\n    \"churn\": 1200,\n    \"max_complexity\": 18,\n    \"priority_score\": 810\n}\n```\n\nHigh priority_score = frequently changed AND complex = prime refactoring target.\n\n### `git_analysis` - Change patterns\n\n- `hotspots`: Most frequently changed files\n- `temporal_coupling`: Files that change together (hidden dependencies)\n- `bus_factor`: Knowledge concentration risks\n\n### `complexity` - Code complexity metrics\n\n- `by_language.typescript`: TypeScript file metrics (max_complexity, avg_complexity, function_count)\n- `high_complexity_functions`: Functions with cyclomatic complexity > 10\n\n### `debt_indicators` - Technical debt markers\n\n- `debt_markers.by_type`: TODO, FIXME, HACK comments by type\n- `large_files`: Files exceeding 500 lines of code\n- `long_functions`: Functions exceeding 50 lines\n\n### `dependencies` - Module coupling analysis\n\n- `circular_dependencies`: Cycles in import graph\n- `highly_coupled_modules`: Modules with fan-out > 10\n- `hub_modules`: Modules with fan-in > 10\n- `layer_violations`: Lower layers importing from higher layers\n\n## Interpreting Results\n\n### Priority Hotspots\n\n1. Sort by `priority_score` descending\n2. Top items = files that change often AND are complex\n3. These are prime candidates for:\n    - Breaking into smaller modules\n    - Adding tests before changes\n    - Simplifying complex functions\n\n### Temporal Coupling\n\nFiles with `coupling_ratio > 0.8` changing together indicate:\n\n- Hidden dependencies not visible in imports\n- Copy-paste code that should be shared\n- Features spread across unrelated files\n\n### Knowledge Silos\n\nFiles with `author_count = 1` and `change_count >= 3`:\n\n- Single point of failure for knowledge\n- Consider documentation or pair programming\n- Higher risk for bugs during that author's absence\n\n### Circular Dependencies\n\nAny cycles in the import graph:\n\n- Indicates tight coupling\n- Makes testing difficult\n- Consider introducing interfaces or restructuring\n\n## Example Usage in Planning\n\n```\nUser: What should we work on next?\n\nAgent: Let me generate a snapshot and analyze it...\n[generates snapshot]\n\nBased on the snapshot:\n\nTop 3 priority items:\n1. **src\u002Ffeatures\u002Fterminal\u002FterminalManager.ts** (priority: 810)\n   - 45 changes, complexity 18\n   - High churn indicates active development area\n   - Recommend: Split terminal concerns into separate modules\n\n2. **src\u002Fmanagers\u002Fcommon\u002FnativePythonFinder.ts** (priority: 540)\n   - 30 changes, complexity 18\n   - Multiple FIXME markers found\n   - Recommend: Address type guards and cache issues\n\n3. **src\u002Ffeatures\u002FinterpreterSelection.ts** (priority: 360)\n   - 24 changes, complexity 15\n   - Temporal coupling with settings files\n   - Recommend: Reduce coupling with settings module\n```\n","# Generate Codebase Snapshot\n\nThis skill generates a comprehensive code health snapshot using the analysis modules in `analysis\u002F`.\n\n## When to Use\n\n- During planning phase to identify work items\n- To find refactoring hotspots (high churn + high complexity)\n- To track technical debt over time\n- Before major releases to assess code health\n- To identify knowledge silos (bus factor risks)\n\n## How to Generate\n\n```powershell\n# From repository root\npython -m analysis.snapshot --output analysis-snapshot.json\n```\n\nAdd `--pretty` flag to also print the JSON to stdout.\n\n**Note:** The snapshot is written to the repository root (`analysis-snapshot.json`). This path is ignored by `.gitignore`.\n\n## Snapshot Structure\n\nThe snapshot contains these sections:\n\n### `summary` - High-level metrics dashboard\n\n- `files_with_changes`: Number of files with git changes\n- `total_churn`: Total lines added + deleted\n- `high_complexity_files`: Count of files with high complexity\n- `todo_count`, `fixme_count`: Debt marker counts\n- `circular_dependency_count`: Architectural issues\n- `single_author_file_ratio`: Bus factor indicator\n\n### `priority_hotspots` - Top 20 refactoring candidates\n\nFiles sorted by `priority_score = change_count × max_complexity`\n\n```json\n{\n    \"path\": \"src\u002Ffeatures\u002Fterminal\u002FterminalManager.ts\",\n    \"change_count\": 45,\n    \"churn\": 1200,\n    \"max_complexity\": 18,\n    \"priority_score\": 810\n}\n```\n\nHigh priority_score = frequently changed AND complex = prime refactoring target.\n\n### `git_analysis` - Change patterns\n\n- `hotspots`: Most frequently changed files\n- `temporal_coupling`: Files that change together (hidden dependencies)\n- `bus_factor`: Knowledge concentration risks\n\n### `complexity` - Code complexity metrics\n\n- `by_language.typescript`: TypeScript file metrics (max_complexity, avg_complexity, function_count)\n- `high_complexity_functions`: Functions with cyclomatic complexity > 10\n\n### `debt_indicators` - Technical debt markers\n\n- `debt_markers.by_type`: TODO, FIXME, HACK comments by type\n- `large_files`: Files exceeding 500 lines of code\n- `long_functions`: Functions exceeding 50 lines\n\n### `dependencies` - Module coupling analysis\n\n- `circular_dependencies`: Cycles in import graph\n- `highly_coupled_modules`: Modules with fan-out > 10\n- `hub_modules`: Modules with fan-in > 10\n- `layer_violations`: Lower layers importing from higher layers\n\n## Interpreting Results\n\n### Priority Hotspots\n\n1. Sort by `priority_score` descending\n2. Top items = files that change often AND are complex\n3. These are prime candidates for:\n    - Breaking into smaller modules\n    - Adding tests before changes\n    - Simplifying complex functions\n\n### Temporal Coupling\n\nFiles with `coupling_ratio > 0.8` changing together indicate:\n\n- Hidden dependencies not visible in imports\n- Copy-paste code that should be shared\n- Features spread across unrelated files\n\n### Knowledge Silos\n\nFiles with `author_count = 1` and `change_count >= 3`:\n\n- Single point of failure for knowledge\n- Consider documentation or pair programming\n- Higher risk for bugs during that author's absence\n\n### Circular Dependencies\n\nAny cycles in the import graph:\n\n- Indicates tight coupling\n- Makes testing difficult\n- Consider introducing interfaces or restructuring\n\n## Example Usage in Planning\n\n```\nUser: What should we work on next?\n\nAgent: Let me generate a snapshot and analyze it...\n[generates snapshot]\n\nBased on the snapshot:\n\nTop 3 priority items:\n1. **src\u002Ffeatures\u002Fterminal\u002FterminalManager.ts** (priority: 810)\n   - 45 changes, complexity 18\n   - High churn indicates active development area\n   - Recommend: Split terminal concerns into separate modules\n\n2. **src\u002Fmanagers\u002Fcommon\u002FnativePythonFinder.ts** (priority: 540)\n   - 30 changes, complexity 18\n   - Multiple FIXME markers found\n   - Recommend: Address type guards and cache issues\n\n3. **src\u002Ffeatures\u002FinterpreterSelection.ts** (priority: 360)\n   - 24 changes, complexity 15\n   - Temporal coupling with settings files\n   - Recommend: Reduce coupling with settings module\n```\n",{"name":5,"description":7,"argument-hint":44},"--output path --pretty","main","92c13e7942499b7608a22bf1cb86b881a90afc98",".github\u002Fskills\u002Fgenerate-snapshot",82,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-python.vscode-python-envs","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 07:16:10",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add microsoft\u002Fvscode-python-environments --skill generate-snapshot",{"tool":61,"command":62},"bunx","bunx skills add microsoft\u002Fvscode-python-environments --skill generate-snapshot",{"tool":64,"command":65},"pnpm","pnpm dlx skills add microsoft\u002Fvscode-python-environments --skill generate-snapshot","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgenerate-snapshot\u002FSKILL.md",true,[],[70,93,114,139,151,173],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":39},"01M69AP5C8W366N8TDNBZA2YQ4","settings-precedence","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.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsettings-precedence\u002FSKILL.md",[],[77,78,79,80,81,82,83,84,85,23,38,86,87,88,89,90,91,92],"settings precedence","settings","inspect","pitfalls","common pitfalls","multi","scope","false","essential","file","component","review","get","workspace","common","Rules",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":39},"01M69AP3CMT4CYDAZ6GQXCJN1D","run-smoke-tests","Run smoke tests to verify extension functionality in a real VS Code environment. Use this when checking if basic features work after changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-smoke-tests\u002FSKILL.md",[],[100,101,102,103,104,38,105,106,107,108,109,110,111,112,113],"tests","smoke","run","run smoke tests","smoke tests","basic","when","features","changes","extension","use","environment","work","verify",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":125,"publishedAt":39},"01M69AP1H7465VYNYGZA7RSAMW","run-pre-commit-checks","Run the mandatory pre-commit checks before committing code. Includes lint, type checking, and unit tests. MUST be run before every commit.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-pre-commit-checks\u002FSKILL.md",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[126,127,102,128,129,100,130,131,132,133,134,135,38,136,137,138],"commit","run pre commit checks","pre commit","pre commit checks","type","auto","unit","auto-fix","pre-commit","issues","lint","unit tests","fix",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":39},"01M69ANZK45PDMWHSTKZKZTS2V","run-integration-tests","Run integration tests to verify that extension components work together correctly. Use this after modifying component interactions or event handling.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-integration-tests\u002FSKILL.md",[],[146,147,148,102,100,113,149,109,110,112,87,150],"integration","integration tests","run integration tests","event","components",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":160,"publishedAt":39},"01M69ANXP7SBRDK7TK3C54V695","run-e2e-tests","Run E2E tests to verify complete user workflows like environment discovery, creation, and selection. Use this before releases or after major changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-e2e-tests\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000008","测试与质量",[161,102,162,163,100,164,165,113,166,167,111,168,108,169,170,171,172,110],"e2e tests","run e2e","e2e","run e2e tests","user","discovery","workflows","environment discovery","complete","creation","selection","releases",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":39},"01M69ANVY2ABDQCXJBQNBV587M","python-manager-discovery","Environment manager-specific discovery patterns and known issues. Use when working on or reviewing environment discovery code for conda, poetry, pipenv, pyenv, or venv.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpython-manager-discovery\u002FSKILL.md",[],[180,181,166,182,183,168,106,23,184,185,186,84,187,188,189,110,111,135,38],"python manager discovery","manager","python","pipenv","venv","pyenv","name","conda","patterns","Poetry"]