plugins/github-copilot-modernization/skills/analyzing-architecture/SKILL.md
Runs deep codebase analysis: architecture patterns, tech stack, data models, integration points, and migration risks. Produces research artifacts consumed by creating-implementation-plan and feature-inventory. Triggers: "analyze architecture", "analyze existing application", "analyze the codebase", "codebase architecture analysis", "discover dependencies", "assess migration risks", "run codebase discovery", "document module boundaries", "map action mappings". NOT for: knowledge graph generation (use building-java-knowledge-graph), spec writing (use feature-inventory).
npx skillsauth add microsoft/github-copilot-modernization analyzing-architectureInstall 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.
All outputs are written under your task's Artifact path: (from task metadata). File names:
project-structure.md
tech-stack.md
data-model.md
architecture-summary.md
migration-risks.md
infrastructure.md
test-coverage.md
deployment.md
(Only relevant files are generated based on selected tasks.)
Provides a pool of research tasks for deep codebase analysis during the analysis phase.
Each task's full prompt is in references/<task-name>.md.
Do NOT run tasks in phases. Select all applicable tasks upfront and dispatch them in a single parallel batch using the task tool (agent_type: "explore").
Use the task description and a quick scan of the project root (README, build file, package.json) to classify the project, then select ALL tasks for that type:
| Project Type | Tasks |
|---|---|
| Java backend migration/upgrade | project-structure, tech-stack, data-model, migration-risks, architecture-summary, api-surface, infrastructure, test-coverage, deployment (if Dockerfile exists) |
| Java backend (new feature) | project-structure, tech-stack, data-model, architecture-summary, api-surface |
| Frontend SPA | project-structure, tech-stack, ui-components, state-routing, build-bundle, test-coverage |
| Fullstack | ALL applicable from both backend and frontend |
| Library/SDK | project-structure, tech-stack, api-surface, test-coverage |
When in doubt, include the task — extra analysis is cheap; missing analysis causes bad specs.
For each selected task, load references/<task-name>.md to get the full prompt, then dispatch:
task(agent_type: "explore", name: "<task-name>", prompt: "<full prompt from reference file>")
Issue ALL task() calls in a single assistant turn so they run in parallel.
After all explore agents complete, synthesize their findings into the output files.
| Task | Reference | Output |
|------|-----------|--------|
| project-structure | references/project-structure.md | Functional domains, layers, project type |
| tech-stack | references/tech-stack.md | Frameworks, deps, migration blockers |
| Task | When Relevant | Reference | Output |
|------|---------------|-----------|--------|
| data-model | Project has ORM / entity classes / DB access | references/data-model.md | Entity inventory, schema |
| migration-risks | Any migration/upgrade task | references/migration-risks.md | Risk by module, patterns |
| architecture-summary | Knowledge graph exists, or complex inter-module deps | references/architecture-summary.md | Arch patterns, coupling |
| api-surface | Project exposes REST/GraphQL/gRPC endpoints | references/api-surface.md | Endpoint inventory, DTOs |
| integration-points | Project calls external services, MQ, cache, 3rd-party APIs | references/integration-points.md | External deps, service boundaries |
| infrastructure | Always for migration/upgrade | references/infrastructure.md | DB/MQ/cache deps, test infra |
| test-coverage | Always for migration/upgrade | references/test-coverage.md | Test inventory, portability, gaps |
| deployment | Project has Dockerfile/K8s/CI configs | references/deployment.md | Container, CI/CD, IaC |
| ui-components | Frontend with component-based framework | references/ui-components.md | Component tree, design system |
| state-routing | Frontend SPA with state management | references/state-routing.md | State, routes, data fetching |
| build-bundle | Frontend or Node.js with custom build config | references/build-bundle.md | Build tool, bundling, optimization |
development
Evaluates whether a user's modernization/rewrite request provides enough scenario context to proceed (e.g., target component library, screenshots, design system for frontend; API contract policy, data migration strategy for backend). Produces a deterministic clarity score, asks the user for missing required fields via a structured form, and writes a canonical `clarification.md` artifact consumed by all downstream agents. Triggers: "clarification gate", "scenario clarification", "elicit missing context", "evaluate prompt completeness", "ask user for screenshots / target library / design system". NOT for: feature specification (use feature-inventory), planning (use creating-implementation-plan), implementation (use implementing-code), or resolving spec-time `[NEEDS CLARIFICATION]` markers (those remain owned by feature-inventory).
tools
Lifecycle hooks for the modernize-rearchitecture coordinator. Defines hook points, registered actions, and execution rules.
development
Provides role charters (mission, ownership, core principles, quality bar) for a multi-agent coding team. Each charter defines the role's mission, ownership scope, core principle (boundary constraints), and quality bar. Most roles also include communication rules. Consumed by the coordinator during task decomposition to assign work to the correct role. Triggers: "look up role charter", "what does the architect own", "check role boundaries", "find team roles", "which role handles X", "list agent charters", "role responsibilities". NOT for: task decomposition (use breaking-down-tasks), implementation (use implementing-code), architecture analysis (use analyzing-architecture).
tools
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".