assessment

bởi microsoft

Chạy đánh giá ứng dụng cho một kho lưu trữ duy nhất

npx skills add https://github.com/microsoft/github-copilot-modernization --skill assessment

Application Assessment

This skill performs application assessment for a single repository. It supports Java, .NET, and JavaScript/TypeScript projects.

Input Parameters

  • workspace-path (optional): Path to the project to assess. Defaults to the current directory (repository root) when not specified. All assessment outputs are written relative to this path (e.g. {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json). For a repository with multiple sub-projects, pass the sub-project directory path so that each sub-project's outputs are isolated.

When to Use This Skill

Use this skill when you need to:

  • Assess a Java or .NET application for cloud readiness and migration issues
  • Assess a JavaScript/TypeScript project for outdated dependencies and available updates
  • Generate detailed assessment reports with issue analysis and recommendations
  • Understand application dependencies, frameworks, and potential migration blockers

What This Skill Does

This skill performs a simplified assessment workflow:

  1. Check Project Type and Prerequisites:

    • For Java projects: Check MCP tool availability in this order:
      1. Primary: Check if 'appmod-run-assessment-action' MCP tool is available
        • If available, use ONLY this tool. It handles everything (prerequisite checks, installation, and assessment execution) in a single call.
        • Do NOT call any other assessment MCP tools when this tool is available.
      2. Fallback: If 'appmod-run-assessment-action' is NOT available, check if 'appmod-precheck-assessment' MCP tool is available
        • If available, use the legacy workflow: call 'appmod-precheck-assessment' first, then follow its guidance for 'appmod-install-appcat' and 'appmod-run-assessment'.
      3. If neither tool is configured, return immediately with setup instructions.
    • For .NET projects: Check if .NET SDK is available
      • No MCP tools required for .NET assessment
    • For JavaScript/TypeScript projects: Check if Node.js and npm are available
      • No MCP tools required for JS/TS assessment
  2. Run Assessment:

    • For Java projects: Trigger AppCAT analysis via Assessment MCP server
      • If 'appmod-run-assessment-action' is available (primary path):
        • Call 'appmod-run-assessment-action' MCP tool only
        • The MCP tool automatically saves the report to the versioned directory
      • If falling back to 'appmod-precheck-assessment' (legacy path):
        • Call 'appmod-precheck-assessment' to check prerequisites
        • Call 'appmod-install-appcat' to install AppCAT if needed
        • Call 'appmod-run-assessment' to run the assessment
    • For .NET projects: Install and run AppCAT directly
      • Install: dotnet tool update dotnet-appcat
      • Find all .csproj files under {workspace-path}
      • Join project paths with semicolons: projectPaths="project1.csproj;project2.csproj"
      • Run: appcat analyze $projectPaths --source Solution --target Any --serializer APPMODJSON --code --privacyMode Restricted --non-interactive --report {workspace-path}\.github\modernize\appcat\result\report.json
    • For JavaScript/TypeScript projects: Install and run npm-check-updates
      • Install: npm install -g npm-check-updates@19.6.3 --prefix {tool-install-dir}
      • Run: ncu --format group --packageFile {workspace-path}/package.json
      • Generate the reportId as a UTC timestamp formatted as yyyyMMddHHmmss (e.g. 2024-06-15T14:30:52Z becomes 20240615143052)
      • Create the versioned directory: mkdir -p {workspace-path}/.github/modernize/assessment/reports/report-{reportId}
      • Save the output to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md
      • Do NOT save a copy to the top-level assessment directory
    • Analyzes code for cloud migration issues or dependency updates
    • Generates structured assessment data
  3. Save Report to Versioned Directory (All languages):

    • For Java projects (primary path — 'appmod-run-assessment-action'): The MCP tool automatically saves the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json — no manual saving needed
    • For Java projects (legacy fallback path — 'appmod-precheck-assessment'):
      1. Find report.json under {workspace-path}/.github/modernize/appcat/result/
      2. Read the report and extract metadata.analysisStartTime
      3. Format the timestamp as yyyyMMddHHmmss to produce the reportId (e.g. 2024-06-15T14:30:52Z becomes 20240615143052)
      4. Create the versioned directory: mkdir -p {workspace-path}/.github/modernize/assessment/reports/report-{reportId}
      5. Move the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
    • For .NET projects:
      1. Find report.json at {workspace-path}/.github/modernize/appcat/result/report.json
      2. Read the report and extract metadata.analysisStartTime
      3. Format the timestamp as yyyyMMddHHmmss to produce the reportId (e.g. 2024-06-15T14:30:52Z becomes 20240615143052)
      4. Create the versioned directory: mkdir -p {workspace-path}/.github/modernize/assessment/reports/report-{reportId}
      5. Move the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
    • This versioned report should be included in the pull request

How to Use

Prerequisites

For Java projects:

  • Primary: MCP tool 'appmod-run-assessment-action' — preferred, handles everything in one call
  • Fallback: If primary tool is not available, use 'appmod-precheck-assessment' → 'appmod-install-appcat' → 'appmod-run-assessment' workflow
  • If neither tool is configured, the skill will return instructions for setup

For .NET projects:

  • .NET SDK must be installed
  • No MCP tools required - appcat will be installed and run directly via .NET CLI
  • The assessment will automatically install dotnet-appcat tool if not already present

For JavaScript/TypeScript projects:

  • Node.js and npm must be installed
  • No MCP tools required - npm-check-updates will be installed and run directly via npm
  • The assessment will automatically install npm-check-updates if not already present

Triggering Assessment

Simply express the intent to assess the application. Example prompts:

  • "Assess the application"
  • "Run assessment for this project"

The assessment process automatically:

  • Detects project language and framework within {workspace-path}
  • For Java: Uses MCP tool to run AppCAT and automatically save report to versioned directory
  • For .NET: Installs dotnet-appcat tool and runs analysis directly
  • For JavaScript/TypeScript: Installs npm-check-updates and runs dependency analysis
  • Executes comprehensive analysis
  • For Java (primary): Report is automatically saved to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
  • For Java (legacy fallback): Generates report at {workspace-path}/.github/modernize/appcat/result/, then moved to versioned directory
  • For .NET: Generates report at {workspace-path}/.github/modernize/appcat/result/report.json
  • For JavaScript/TypeScript: Generates report at {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md

Report Saving

For Java projects:

  1. If using 'appmod-run-assessment-action' (primary path): The MCP tool automatically saves the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json — no manual report moving is needed
  2. If using legacy fallback path ('appmod-precheck-assessment'):
    • Find report.json under {workspace-path}/.github/modernize/appcat/result/
    • Read the report and extract metadata.analysisStartTime, format as yyyyMMddHHmmss to get reportId
    • Move the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
  3. Include this versioned report in the pull request

For .NET projects:

  1. Report is initially generated at {workspace-path}/.github/modernize/appcat/result/report.json
  2. Read the report and extract metadata.analysisStartTime, format as yyyyMMddHHmmss to get reportId
  3. Move the report to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
  4. Include this versioned report in the pull request

For JavaScript/TypeScript projects:

  1. Generate the reportId as a UTC timestamp formatted as yyyyMMddHHmmss (e.g. 2024-06-15T14:30:52Z becomes 20240615143052)
  2. Create the versioned directory: mkdir -p {workspace-path}/.github/modernize/assessment/reports/report-{reportId}
  3. Save the ncu output to {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md
  4. Include this versioned report in the pull request

Report Output Location

Report location depends on project type:

For Java projects (via MCP server):

  • Primary path ('appmod-run-assessment-action'): Automatically saved to: {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
  • Legacy fallback path ('appmod-precheck-assessment'): Initially stored under {workspace-path}/.github/modernize/appcat/result/, then moved to versioned directory: {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json

For .NET projects (direct execution):

  • Initially generated at: {workspace-path}/.github/modernize/appcat/result/report.json
  • Moved to versioned directory: {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json

For JavaScript/TypeScript projects (direct execution):

  • Saved to versioned directory: {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md

Success Criteria

Assessment is complete when:

  • For Java: MCP server is available (or clear instructions provided if not)
  • For .NET: .NET SDK is available and dotnet-appcat tool is installed
  • For JavaScript/TypeScript: Node.js and npm are available and npm-check-updates is installed
  • ✅ AppCAT analysis executes without errors (Java/.NET) or ncu analysis executes without errors (JS/TS)
  • For Java and .NET: Report generated at {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/report.json
  • For JavaScript/TypeScript: Report generated at {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md
  • ✅ Report metadata includes assessment tool version, timestamp, and configuration

Troubleshooting

Prerequisites Not Met:

  • For Java: First check for 'appmod-run-assessment-action', then fall back to 'appmod-precheck-assessment'
    • Return immediately with setup instructions if neither tool is available
    • Do not attempt to run assessment without MCP
  • For .NET: Verify .NET SDK is installed
    • Check with dotnet --version command
    • Provide installation instructions if .NET SDK is missing
  • For JavaScript/TypeScript: Verify Node.js and npm are installed
    • Check with npm --version command
    • Provide installation instructions if npm is missing

Assessment Failures:

  • Unsupported project type (only Java, .NET, and JavaScript/TypeScript supported)
  • For Java: MCP server communication errors
  • For .NET:
    • dotnet-appcat tool installation failure
    • appcat command execution errors
  • For JavaScript/TypeScript:
    • npm-check-updates installation failure
    • ncu command execution errors
    • No package.json found at {workspace-path}/package.json
  • Invalid project structure or build configuration

Report Generation Issues:

  • For Java (primary): No report.json found under {workspace-path}/.github/modernize/assessment/reports/report-*/report.json after MCP execution
  • For Java (legacy fallback): No report.json found under {workspace-path}/.github/modernize/appcat/result/ after MCP execution
  • For .NET: Report not generated at {workspace-path}/.github/modernize/appcat/result/report.json, or metadata.analysisStartTime missing from report
  • For JavaScript/TypeScript: Report not generated at {workspace-path}/.github/modernize/assessment/reports/report-{reportId}/js-assessment-report.md
  • Report file is corrupted or invalid JSON (Java/.NET only)

For any failure, provide clear error messages and troubleshooting steps.

Thêm skills từ microsoft

oss-growth
microsoft
Cá tính tăng trưởng OSS
official
accessibility-aria-expert
microsoft
Phát hiện và sửa các vấn đề về khả năng tiếp cận trong giao diện web React/Fluent UI. Sử dụng khi xem xét mã để đảm bảo tương thích với trình đọc màn hình, sửa nhãn ARIA, đảm bảo…
official
generate-canvas-app
microsoft
[DEPRECATED — sử dụng canvas-app thay thế] Tạo một ứng dụng canvas Power Apps hoàn chỉnh.
official
django
microsoft
Các phương pháp tốt nhất cho phát triển web Django bao gồm models, views, templates và testing.
official
github-issue-creator
microsoft
Chuyển đổi ghi chú thô, nhật ký lỗi, ghi âm giọng nói hoặc ảnh chụp màn hình thành báo cáo vấn đề markdown sắc nét theo phong cách GitHub. Sử dụng khi người dùng dán thông tin lỗi, lỗi…
official
python-package-management
microsoft
Sử dụng uv để quản lý phụ thuộc và poethepoet để tự động hóa tác vụ.
official
runtime-validation
microsoft
Xác thực thời gian chạy cho các ứng dụng đã di chuyển — bao gồm chiến lược kiểm thử (giai đoạn lập kế hoạch) và thực thi kiểm thử (giai đoạn xác thực): xác minh khởi động,…
official
azure-postgres-ts
microsoft
Kết nối đến Azure Database for PostgreSQL Flexible Server bằng gói pg (node-postgres) với hỗ trợ xác thực mật khẩu và Microsoft Entra ID (không mật khẩu).
official