mcpField
W
winui-session-report

winui-session-report

github.com/microsoftAgent 工作流490139 次安装3 周前更新
代码仓库

关于 winui-session-report

此技能通过 Analyze-Session.ps1 分析 GitHub Copilot CLI 或 Claude Code 会话,并生成包含使用、构建和工具问题的诊断报告。适合需要检查会话过程的用户;报告附有隐私提示。

主要功能

  1. 01自动识别 Copilot CLI 和 Claude Code
  2. 02分析会话轮次、时长与令牌用量
  3. 03检查技能调用、构建尝试和工具错误
  4. 04生成包含逐轮详情的 Markdown 报告
  5. 05提示会话记录中的隐私风险

适用场景

  1. 01排查构建失败和反复尝试
  2. 02查看技能调用及子 Agent 工作
  3. 03分析会话中的工具问题与卡住模式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/win-dev-skills --skill winui-session-report

安装后在 Claude Code 中输入/winui-session-report确认已加载。

附带文件Analyze-Session.ps1

详细介绍

会话分析报告

运行此技能随附的 Analyze-Session.ps1 脚本,为 Agent 会话生成诊断报告。该脚本会根据环境变量和磁盘上的文件格式,自动检测当前会话是由 GitHub Copilot CLI 还是 Claude Code 生成,并调用相应的解析器。如果无法检测到这两种运行环境中的任何一种,脚本会退出并显示明确的错误。

重要

仅当用户明确要求进行会话分析或生成报告时,才运行此技能。如果加载此技能时用户未明确提出请求,请勿检查会话数据;说明报告包含哪些内容,并等待用户确认。

隐私与敏感信息 — 请向用户说明以下内容

Analyze-Session.ps1 始终会:

  1. 在生成的 session-report.md 顶部(Overview 表格正上方)嵌入“隐私与敏感信息”部分,并且
  2. 写入文件后,在控制台打印黄色的 PRIVACY NOTICE 横幅。

你(Agent)必须在回复中向用户说明这些内容——不要让这项提醒埋没在用户可能没读过的脚本输出中。 运行脚本并报告结果后,请用通俗的第二人称措辞,在回复中简短提醒用户隐私事项。可使用以下模板,并根据需要调整措辞:

⚠️ 分享 session-report.md 前请注意——此文件包含未经删减的会话记录:Agent 读取或编辑过的文件内容和路径、你的原始提示词(包括你可能粘贴的任何机密信息)、工具输出、环境变量值,以及 C:\Users\<you>\… 下的本地路径。你需要自行负责分享内容;在将文件附加到公开问题、发布到聊天中或发送到组织外部之前,请先在编辑器中打开文件并从头到尾仔细阅读。请删去任何敏感信息。如果你只需分享概览指标,请让我总结文件内容,而不是附上文件。

如果用户只需要概览指标(轮数、技能使用情况、构建成功率),而不需要逐轮详情,请总结报告并分享摘要,而不是文件;同时告诉用户你会这样处理,这样他们就不必亲自阅读文件来确认。

步骤
  1. 运行分析脚本以生成报告:
# Analyze the most recent session (auto-detects harness) and save report
.\Analyze-Session.ps1 -OutputFile session-report.md

# Or analyze a specific session by ID (searched in both harness locations)
.\Analyze-Session.ps1 -SessionId "<session-id>" -OutputFile session-report.md

# Or analyze a transcript file directly (format sniffed from content)
.\Analyze-Session.ps1 -EventsFile '.\transcript.jsonl' -OutputFile session-report.md

# Force a specific format if auto-detection picks the wrong harness
.\Analyze-Session.ps1 -Format ClaudeCode -OutputFile session-report.md

# Skip subagent transcripts (Claude Code only) for a parent-only view
.\Analyze-Session.ps1 -SkipSubagents -OutputFile session-report.md

检测规则:

  • 如果有明确的 ID,则优先使用当前会话:COPILOT_AGENT_SESSION_ID(Copilot CLI)或 CLAUDE_SESSION_ID(Claude Code)的优先级高于“最近修改的会话”,以免其他终端中的并行会话取代调用此技能的会话。
  • 优先检查环境:CLAUDECODE=1 或 CLAUDE_CODE_ENTRYPOINT -> Claude Code;COPILOT_* 环境变量 -> Copilot。
  • 对于 Claude Code,优先选择 cwd 与当前工作目录匹配且最近的 JSONL 文件。
  • 如果明确指定了 -EventsFile,则根据最初的事件判断其格式。
  • 如果未检测到任何一种运行环境,脚本将以非零状态退出,并显示一条指出两个受支持位置的消息。
  1. 查看生成的报告——阅读 session-report.md,并向用户总结关键发现:

    • 轮数、耗时和令牌用量
    • 加载了哪些技能,以及加载时间
    • 构建/运行工作流和命令失败模式
    • 检测到的任何卡住模式或工具问题
  2. 补充你自己的观察——在报告中追加一个章节,补充其他背景信息:

    • 最终应用是否可用?还有什么缺失?
    • 对生成代码的质量评估
    • 针对出错之处的改进建议
  3. 根据分析结果,提出工具改进建议。

    • 是否需要向 Roslyn 分析器添加规则,以避免会话中发现的常见错误?
    • winapp new、项目模式下的 winapp run/winapp package、dotnet build/dotnet publish 或 winapp find-ui 是否存在错误或问题?(BuildAndRun.ps1 仅出现在历史记录中。)
    • 查看报告的 构建分析 和 沙箱执行 部分,检查主机/来宾范围、输入就绪情况和证据问题。
    • 是否可以添加某些功能,以减少完成任务所需的轮数?
报告涵盖内容
部分详情
概览运行环境、会话 ID、模型、耗时、轮数、令牌数(Claude Code 还包括缓存令牌)
提示词用户的原始请求
轮次细分按类别统计的轮数和令牌数(构建、编码、探索、子 Agent 调度等)
技能调用了哪些技能及调用时间,包括子 Agent 记录中的调用
子 Agent仅限 Claude Code:对已调度子 Agent 及其工作的逐个 Agent 细分
构建分析构建/发布尝试和命令错误(dotnet、项目模式下的 winapp run/package、历史记录中的 BuildAndRun.ps1)
沙箱执行如有:沙箱命令的使用/错误次数,以及针对主机/来宾范围、输入就绪情况、工作流协调和证据提交的专项检查
卡住模式构建循环、重复读取文件、obj/ 清理循环
工具问题自动检测到的改进机会
轮次详情每一轮所用的工具和标记出的错误;父级与子 Agent 的记录分别展示

评论

支持 Markdown