Files
ycode/docs/高级项目经理-关德豪-拆解-20261016.md

133 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> 最新迁移状态:主上下文已将本包安装到用户 YCode,原文/技能/头像资源与激活及原生鼠标召唤验证通过。四包共356项资源验收,详见[四位专家迁入记录](四位专家迁入YCode-2026-10-16.md)。本文“未安装/只读”描述保留为恢复子任务阶段范围。
# 高级项目经理|关德豪:REA 包恢复与迁移拆解
日期:2026-10-16。本任务只恢复到独立 `.tmp` 目录与编写审计工具/本文;未安装、启用专家,未修改生产代码、用户 YCode 配置或原 WorkBuddy 目录,未执行原包脚本。
## 原版身份与证据
原路径由既有 REA plugins inventory 定位:`C:/Users/Administrator/.workbuddy/plugins/marketplaces/experts/plugins/senior-project-manager`。对该目录的所有读取均使用正式隔离 REA CLI;本地脚本只读取返回 Evidence 和已恢复文件。
完整目录 inventory:`.tmp/rea-project-manager-inventory-20261016.json`,Evidence `ev_522a113c56cbba2471a47337ef72fa16e99acd0b358aced4fe1d7b38ec38ebd5`。
- `rootSha256`:`304805c85b87e8266294fb3aaf283d45fc71d7977af064fcb1eed1199e9389e6`。
- inventory graph SHA:`dc2c760e5b5600a46b76217f67de7c204863aa1f916d5a88f8bd968b811a068c`。
- REA coverage:`container-entries / complete`,82 个文件、1,879,348 字节。
- 宿主 `.downloaded_at` 占 24 字节,只保留 inventory 的哈希记录,不写入恢复包。81 个功能/许可证文件应为 1,879,324 字节。
配置 `.codebuddy-plugin/plugin.json`:SHA `c1626ce77b1fcd8372c8e86a1ae5a52615784cc9f61d2fca4f1780b9c4aa606e`,首批文本 Evidence `ev_afef644349eb07952a4b663c0aaed031c1f206c228fa51a7ee6e8df88ea204b1`。
| 字段 | 原包准确值 |
| --- | --- |
| name / agentName | `senior-project-manager` |
| version | `1.0.1` |
| expertType | `agent`;原包没有 `agentType` 字段 |
| displayName | zh `关德豪`,en `Dylan` |
| profession | zh `高级项目经理`,en `Senior Project Manager` |
| displayDescription.zh | `10年以上项目管理经验,精通瀑布和敏捷,是复杂项目定海神针` |
| categoryId | `10-ProjectQuality` |
| agents | `./agents/senior-project-manager.md` |
| skills | 唯一 `./skills/minimax-docx` |
| avatar | `avatars/expert.png`;310,105 字节;SHA `d343e8581bf6d902b56e544b3f201cd836c8cc92cf883faff96fc71e0a393fd2` |
保留原中英文 defaultInitPrompt、3 个 tags 和 3 个 quickPrompts。中文第一条 quickPrompt 与 defaultInitPrompt 相同;另外两条是风险识别/应对、多团队沟通协作。
## 角色与工作流
Agent 文件:`agents/senior-project-manager.md`,5,696 字节,SHA `d9187e37363679e5bb56879d35cdbdb73b319c0344ca157619d1f602db3c5bec`,与 plugin 同批 Evidence。
原角色正文以 web 项目规格拆任务为核心:读取实际规格、引用准确需求、辨别歧义、控制范围,拆成开发者约 30–60 分钟可实施的任务;每项包含验收标准、修改文件、规格章节引用,再整理技术栈和质量要求。原 prompt 提及 Laravel、Livewire、FluxUI、Alpine.js 和截图验收;它们属于任务模板/用户项目上下文,并不是 plugin 声明的强制安装依赖。
以下三项是原 prompt 的使用者工作区输入/工具前提,完整包 inventory 内没有这些文件:
- 输入规格 `ai/memory-bank/site-setup.md`。
- 详细参考 `ai/agents/pm.md`。
- 项目截图工具 `./qa-playwright-capture.sh`。
输出任务表路径为 `ai/memory-bank/tasks/[project-slug]-tasklist.md`,应由真实任务产生,不要求预先存在。这三项缺失不能靠伪造空文件补齐。迁入 YCode 后,模型需要读取当前项目真实规格;引用文件不存在时应说明并由用户需求补充。原文声称 persistent memory/learn from projects,但包内未提供独立记忆实现;只能证明角色指令,不足以证明原宿主记忆等价。
README 介绍瀑布/敏捷、规划/风险管理等能力;Agent 实际指令更具体地面向 web 规格分析与任务拆解。迁移应原样保留两者,不能把介绍文案扩展成包中没有的 Jira/云端自动化。
## 内置 Word 技能
`skills/minimax-docx/SKILL.md`:version `1.0.0`,MIT,SHA `446bc0c8a42d349f8da21766ca942ce10592f124d41ff747a0e2d474f2b903d1`;首批技能文档 Evidence `ev_de18a677e89d57b4255e66eab9811a327cdb870b01f20f2bbd325ffaf693e1a7`。
| 包内范围 | 文件数 | 字节 |
| --- | ---: | ---: |
| minimax-docx 全部 | 75 | 1,558,489 |
| scripts/ | 47 | 899,457 |
| scripts/dotnet/ | 42 | 862,964 |
| references/ | 18 | 549,381 |
| assets/ | 7 | 92,325 |
技能三条流水线:A 创建新文档;B 编辑/填充现有内容;C 应用样式或模板(overlay / base-replace)。通过场景指南、C# SDK 示例和排版参考选择实现;写后运行 merge-runs、XSD、business 校验,失败可 fix-order 后重验;模板流程要求 gate-check、diff 和最终预览。
源使用入口是 `dotnet run --project scripts/dotnet/MiniMaxAIDocx.Cli --`。首次环境准备为 `bash scripts/setup.sh` 或 Windows `powershell scripts/setup.ps1`,每个 session 首次操作运行 `scripts/env_check.sh`。C# scaffold 引用 `DocumentFormat.OpenXml, 3.2.0`。这些是源文件说明,不代表当前机器已安装或已实际生成 Word。
素材并非现成 `.docx` 模板:包含 3 份样式 XML、4 份 XSD、18 份参考文档及 C# 示例。用户需要提供的输入 Word/模板不在包内。
## 恢复工具与覆盖
- `scripts/rea/project-manager-recover.mjs`:固定 root SHA;每批不超过 16 个精确路径;严格验证 REA 返回 SHA、字节数、落盘 SHA 和 retained export。
- `scripts/rea/project-manager-audit.mjs`:只分析已恢复文本,解析 JSON/YAML、项目依赖和环境脚本行,输出 `.tmp/rea-project-manager-analysis-20261016.json`。
- 输出目录 `.tmp/rea-project-manager-recovered-20261016/`。
- 输出 `evidence-manifest.json` 每项包含 `{path,bytes,sha256,evidenceId,retainedExport}`;额外记录 inventory pin、覆盖与排除的宿主标记。此 manifest 是迁移审计资料,不属于原专家包功能文件。
原 text 白名单后缀限制已由主上下文通过正式 provider 扩展,旧文本 13/13、新资源 16/16 自有 fixture 验证通过后再采集。本次完成 **80 个文本 + 1 个 PNG = 81/81 功能/许可证文件,1,879,324 字节,pending 0**。每个恢复文件与 inventory、REA export、落盘字节三方 SHA/size 一致。覆盖 82 个原文件中的全部功能文件;唯一排除 `.downloaded_at` 已单列,不混入用户会话标记。
最终 6 批导出 Evidence ID(所有原路径/逐文件哈希均见 manifest):
- `ev_7faf6a7a38f49bf647382424d3e814639dfddd232458326090df4c2729b438fe`
- `ev_0b805314c687a8cead2822d89391003759cd9ba9a06a064e335d74913ef3e1b5`
- `ev_0212698678293b356f8a44a590507f8068a32edb2e603933824bd2c739424008`
- `ev_8a4ef08d08b8b94b12bd116a53563dfc81e352eac44111f8480770e3af0820f7`
- `ev_dc796646e432d60228236a48ead7eb406aa4488af2c97f740bda8686fcf0569a`
- `ev_cb670443f47df8c0ee2b955e21b1838072d06fc1f8e0e1c85de5e10ea95440fc`(PNG)
## YCode 兼容边界
当前 YCode `src/main/capabilities/experts.ts` 已识别 `.codebuddy-plugin/plugin.json`、Agent YAML、expertType agent、相对 skills 路径、真实包 prompt,并将内置 SKILL 指令与 `ycode_expert_resource` 资源读取接入当前专家回合。此包没有 plugin 声明的 MCP/connector 依赖,也不是需团队调度的 team 包。
当前完整包 82 文件/约 1.88MB,低于 YCode 256 文件/4MiB 包限制;头像 310,105 字节也低于 500KiB 本地 data URL 阈值。原 description.zh 可能产生长度建议警告,属于原文,应保留。根上下文正在扩展 C#/XML/XSD/脚本等文本资源读取范围;只有 JSON/MD 可见不足以支撑 Word 技能。
运行时另需:真实 .NET SDK/OpenXML 依赖、转换/预览环境、当前项目可读写目录以及工具审批。当前 shell PATH 只发现 Python,未发现 dotnet/bash/pandoc/soffice;这是本机只读 PATH 探测,不是全盘安装检测。此任务未安装任何环境。包恢复、专家被列出和 prompt 生效均不等于 Word 三条流水线已验收。
## 精确运行依赖与原包内部差异
以下结论来自已恢复文件的静态源码,不是执行成功结论。
| 依赖/行为 | 原文件证据与实际值 |
| --- | --- |
| .NET SDK | `scripts/env_check.sh` 第 34–67 行检查 `dotnet` 与 major >=8;项目 `TargetFramework=net8.0` |
| Core 依赖 | `MiniMaxAIDocx.Core.csproj`:`DocumentFormat.OpenXml 3.5.1`、`System.CommandLine 2.0.5` |
| CLI 依赖 | `MiniMaxAIDocx.Cli.csproj`:`System.CommandLine 2.0.5` 与 Core project reference |
| 首次还原/编译 | env_check 第 79–96 行会执行 `dotnet restore/build`,可能访问 NuGet;它不是纯只读检查 |
| Bash | env_check/docx_preview/doc_to_docx 均为 Bash;Windows setup.ps1 不等于已解决所有 Bash 入口 |
| Word 文本预览 | docx_preview 第 26–38 行:pandoc 输出 plain text;没有 pandoc 时 unzip XML 前 100 行,**没有截图/PDF 渲染** |
| 老 .doc 转换 | doc_to_docx 第 25–38 行要求 `soffice` 并调用 LibreOffice headless conversion |
| 可选工具 | env_check 第 115–185 行把 pandoc/soffice/zip/unzip 标为 optional;缺少时对应能力下降 |
| 环境 | env_check 第 12 行 `DOTNET_CLI_UI_LANGUAGE=en`,后段检查 UTF-8 LANG 和 .sh 可执行权限 |
| 初始安装 | setup.ps1 / setup.sh 会调用 winget/choco/scoop 或系统包管理器、SDK 下载与 NuGet;原样保留但本任务未执行 |
| 外部 API | plugin 没有 API key、MCP 或 connector 声明;所恢复 C#/shell/PowerShell 中未发现 HttpClient/Bearer/API_KEY 运行链,不能因此推断所有文档链接无需网络 |
上述 Core/CLI 项目、Program.cs、docx_preview/doc_to_docx 对应 Evidence `ev_0b805314c687a8cead2822d89391003759cd9ba9a06a064e335d74913ef3e1b5`;env_check/setup 对应 `ev_dc796646e432d60228236a48ead7eb406aa4488af2c97f740bda8686fcf0569a`。精确 SHA/路径/脚本行见 `.tmp/rea-project-manager-analysis-20261016.json` 和 evidence manifest。
需要保留并如实说明的原包差异:
- SKILL scaffold 指定 OpenXml **3.2.0**,实际项目固定 **3.5.1**,不能混称同版本。
- SKILL scaffold 注释给出 `run-script`,但 Program.cs 只注册 create/edit/apply-template/validate/merge-runs/fix-order/analyze/diff 八条命令,没有 run-script 注册。直接 C# 项目路径与实际 CLI 路径需区别使用,不能声称那条示例已能运行。
- 源引用的 `scripts/...`、`references/...`、`assets/...` 相对于技能根 `expertRootDir/skills/minimax-docx`,不是用户会话 cwd。迁移宿主需要明确真实安装路径,执行时仍走既有工具审批。
- `.slnx` 在包内,但本机 SDK/解决方案加载/编译未执行;不把 env_check 的 >=8 条件当作完整构建兼容性证明。
## 验证结果与交接
```powershell
node scripts/rea/project-manager-recover.mjs
node scripts/rea/project-manager-recover.mjs --check
node scripts/rea/project-manager-audit.mjs
```
三个命令均 **PASS**。恢复与离线核验断言:81 文件、1,879,324 字节、相同 root pin、逐文件大小与 SHA、对应 retained Evidence、没有 `.downloaded_at`、没有 pending。静态 audit 解析完整元数据、YAML、3 个 .NET 项目/solution 文件与 5 个环境/转换脚本。
主上下文已获完整恢复目录与 manifest,可开展真实安装、专家身份激活和资源读取验收;本子任务没有写用户 YCode。当前已验证的是原包完整恢复与静态依赖,不是 .NET 编译、Word 生成、模板套用或原宿主记忆等价。