plugins/github-copilot-modernization/skills/project-recon/SKILL.md
Zero-dependency shell recon for any code repository — detect languages, count LOC, and report project scale. Pure POSIX find/wc or PowerShell, no Python or third-party tools required. Triggers: "how big is this project", "what languages", "project sizing", "repo recon", "LOC count", "scope check".
npx skillsauth add microsoft/github-copilot-modernization project-reconInstall 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.
Quickly answers: how big is this repo and what's in it. Shell-only (POSIX find + wc or PowerShell), runs anywhere, no install needed.
Emit exactly this JSON structure — no additional fields:
{
"total_loc": <int>,
"languages": { "<lang>": <loc>, ... },
"top_level_dirs": <int>,
"primary_language": "<lang with highest LOC>",
"git": <bool>
}
total_loc: sum of non-blank lines across all detected source fileslanguages: per-language LOC breakdown (only languages actually found)top_level_dirs: count of immediate subdirectories under repo root (excluding hidden dirs)primary_language: the language key with the highest LOCgit: whether the project root is a git repository (git rev-parse --git-dir succeeds)Do NOT add fields beyond this schema. No descriptions, no module lists, no domain analysis.
| File | Purpose |
|------|---------|
| references/language-extensions.yaml | Language → file extension mapping + generated-file suffixes to skip |
| references/exclude-patterns.yaml | Directory exclude rules (global + per-language) |
| references/loc-shell.md | bash + PowerShell counting templates |
language-extensions.yaml for the canonical extension list.exclude-patterns.yaml::global.dirs with per_language.<lang>.dirs for each detected language.references/loc-shell.md. Run once per detected language, sum for total.wc -l), comment-inclusive. This is intentional — speed and simplicity over precision.testing
Generate and run post-migration tests from the frozen baseline specification.
devops
How team members request infrastructure connection info and handle secrets in team mode
testing
Create a test baseline for the project to be modernized. The baseline will be used for later verification of modernization tasks.
tools
Convert an arbitrary CSV report (e.g. a Black Duck export or a custom migration-issue inventory) into a schema-valid assessment `report.json` the modernization pipeline can consume — so it appears in the assessment UI and migration solutions resolve automatically. This skill is LLM-driven: you read and interpret the CSV yourself and author `report.json` by hand against the schema. A small helper script only does deterministic lookups (migration solutions, the ruleId for a solution) and validates the finished report. There is NO "convert everything" script and NO assumed column layout. Triggers: "convert csv to assessment report", "import csv report", "turn this spreadsheet into a report.json", "Black Duck csv to report", "build report.json from csv", "migrate a third-party assessment export". NOT for: AppCAT-style analysis from source (use `assessment`), generating a modernization plan (use `create-modernization-plan`), or editing a report.json the pipeline already produced.