tomzio/kthis-migration-skills

kthis-migration-plan

为遗留系统功能生成新一代系统(WebHIS:React + antd 前端 / Spring Boot + MyBatis 后端)的迁移设计文档。当用户要求「写 / 生成 / 补充 / 整理 / 修订 迁移文档、迁移设计文档、功能迁移计划、实施计划、界面(UI)设计文档、详细设计、分册文档、开发前设计」,或提到迁移文档目录 docs/migration、按界面 / 页签拆分文档、把遗留功能整理成设计文档、参照既有迁移文档的写法、生成迁移计划 / 阶段门禁 / 手测清单,或要对已有迁移文档做多轮修改优化时,都应…

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/tomzio/kthis-migration-skills --skill kthis-migration-plan

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

迁移文档生成(kthis-migration-plan)

把遗留系统(Eclipse RCP + SWT,Java 6 / GBK)的某个功能,整理为目标系统可直接照着实现的迁移设计文档,输出到迁移文档根目录(默认 docs/migration/,可用脚本 --root / --docs-dir 覆盖)。

产物形态:按界面聚合、弹窗的每个页签单独一册、共享内容单独一册,配合模板与脚本搭建骨架,再逐册多轮与被指派人对话确认、迭代修订。

本技能只规定「通用形态与流程」:目录结构、册划分原则、模板、脚本、多轮对话协议。具体模块名、编号、遗留入口、截图、源码路径一律由使用者在每轮对话中提供,不写死在技能里。 用法:本文件只给「何时用 + 协作流程 + 脚本命令」;目录结构、册划分、写作口径等细节都在 references/*,按需读取,不要一次全读。

何时使用 / 不使用

  • 用:「把 XX 功能写成迁移文档 / 设计文档 / 详细设计」「参照已有迁移文档的格式整理 XX」;「补充 / 修订迁移文档里的某册」「新增一个页签册」「把 XX 弹窗拆成册」;「生成迁移计划 / 实施计划 / 阶段门禁 / 手测清单」「整理界面截图并按功能命名」;任何「开发前先出设计文档」的诉求。
  • 不用:直接写代码(本技能只产文档;动代码用 kthis-migration 技能);后端接口文档(本技能只引用后端接口清单作为权威,不在此生成)。

与其他技能的关系(迁移分两段)

迁移按「先设计文档,后编码实现」两段推进;本技能负责第一段:设计文档,第二段(编码实现)用 kthis-migration 技能。

  • 分工口径:说「写 / 生成 / 整理迁移文档、详细设计、分册、实施计划」→ 用本技能;说「实现 / 迁移 / 还原这个功能、写页面 / 弹窗 / 接口」→ 用 kthis-migration。
  • 本技能产出的文档是实现的首要依据(优先级 遗留源码 > 设计文档 > 截图):文档定稿后再交给实现;实现中发现与遗留源码不符,以源码为准并回本技能修订对应册。
  • 本技能只做文档,不读改业务代码(读遗留源码取业务事实除外)。
本技能只描述「要重实现成什么样」;*代码层面一切以 `webhis-front` 技能 + 仓库 `.agents/rules/` 为准(本技能与编码技能都只是可选**加速器)。

三条硬约束

  1. 一切以遗留源码为准。截图只作核对参照、可能不完整;文档之间冲突时以源码为准。发现不一致 → 先修订文档。
  2. 遗留 GBK / 文档 UTF-8:不要直接复制字节,中文需转码或重录(遗留中文可用 iconv -f GB18030)。
  3. 单一维护:共用页签 / 共享分区只在一册维护,其它册只引用(复用矩阵册);本册索引 / 册名 / 链接一处定义、他处引用。

路径与仓库

本机三仓库(遗留 / 前端 / 后端)的绝对路径见项目根 .agents/paths.env(每个开发者不同;缺失时运行 kthis-migration 技能的 scripts/setup-paths.sh,或直接询问用户);技能内不写死任何绝对路径。

产物形态

text
<迁移文档根目录>/            # 默认 docs/migration/
├── README.md                # 全局索引(多模块按模块分节)
├── 00-前端布局规范.md        # 跨模块只一份(可选)
├── images/                  # 共享截图,命名 <功能序号>-<模块代号>-<界面英文名>.png
└── <NN>-<模块名>/            # 每个功能模块一个目录
    ├── _进度台账.md          # 多轮协作台账(非正式册,不进索引)
    └── 00-总览与通用约定.md → 01-主页面.md → 02-<X>编辑弹窗外壳.md → 03..N-<X>页签.md → 独立/辅助弹窗、数据流程与接口、迁移实施计划、共享分区与复用矩阵(按需)

每册固定:H1 # <册号> · <册名> → 导航行 > 返回索引:[README](../README.md) | 上一册:[..](..) | 下一册:[..](..) → 范围说明 blockquote → 正文章节。册集按档位裁剪(轻量 / 标准 / 完整):overview/main/shell/tab 是核心,dialog/aux/data/plan/matrix 按需,没有内容就不建(matrix 仅当确有跨界面共用内容;aux 仅当有辅助弹窗 / 码表;简单功能 00 + 01 两册即可)。目录 / 册划分 / 命名 / 索引 / 导航 / 截图约定 → [references/doc-structure.md](references/doc-structure.md)(档位判定见其 §2.1)。

写文档前先读(UI 相关)

分册里的骨架 / 栅格 / 分区顺序 / 控件选型 / 按钮都要和实现规则对得上 —— 否则实现阶段只能二选一(照文档写违背规范,或照规范写偏离文档)。动笔前先读这三份:

  1. 仓库 `.agents/rules/**(页面 / 样式 / 组件 / 表格)与 docs/FrontNormalize.md` —— 文档里写的做法不得与它们冲突。
  2. 迁移文档的 `00-前端布局规范.md`(已存在就读;没有则用本技能 templates/00-前端布局规范.md.tpl 先落一版)—— 骨架 / 栅格 / 分区 / 尺寸的数值口径以它为准;各分册只引用、不复述。
  3. 本技能 references/writing-rules.md —— 线框 / 字段表 / 事件表怎么写、栅格密度怎么表述。

多轮协作流程(核心)

迁移文档是反复迭代出来的,不是一次写完。任何一轮都不许把「我猜的」当「确认的」;未确认处留 <!-- TODO --> 并在台账登记。
轮次做什么产出 / 确认点
R0 · 定界确认模块(新侧代号)、范围、遗留入口、界面单元数量,并定档位(轻量 / 标准 / 完整,见 doc-structure §2.1)范围、遗留入口与档位(问用户)
R1 · 册规划按档位盘点界面单元 → 排出「册规划表」(宁少勿多,没有对应内容的册不建)先给册规划表,等用户确认再动手
R2 · 搭骨架用脚本生成骨架,写 _进度台账.md目录 + 空册 + 台账
R3+ · 逐册起草 / 修订一次一册:读遗留源码 → 按模板填 → 交付 → 收批注后修订(必要时用 new-volume.sh 插入 / 重排册)每册后请用户批注;更新台账「修订记录」
Rn · 横向册数据流程与接口 / 复用矩阵 / 实施计划交叉校对前后册
Rn · 索引与截图README 索引、截图表与命名链接可达
Rn · 收口跑审计脚本,清零错误audit-docs.sh 通过

提问纪律:每轮只问真正阻塞的问题(≤3 个),能自己从源码查证的不要问;把「已定 / 待定」在台账里显式区分。用户在任一轮给出的新约束,要回填到受影响的所有册。逐册提问模板、确认话术、台账格式 → 读 [references/dialogue-workflow.md](references/dialogue-workflow.md)。

册类型与模板

类型与模板一一对应(都在 templates/):overview 总览与通用约定(自动置于首册)、main 主列表页 / WPB 页、shell 编辑弹窗外壳(页签挂载点)、tab 某个页签(共用页签只写一册)、dialog 独立弹窗、aux 辅助弹窗 + 码表总表、data 数据流程与接口、plan 迁移实施计划 / 阶段门禁、matrix 共享分区与复用矩阵。

对应模板(按上述类型顺序):00-总览与通用约定.md.tpl、01-主页面.md.tpl、02-编辑弹窗外壳.md.tpl、03-页签.md.tpl、04-独立弹窗.md.tpl、05-辅助弹窗与码表.md.tpl、06-数据流程与接口.md.tpl、07-迁移实施计划.md.tpl、08-共享分区与复用矩阵.md.tpl。

写作口径(以「功能行为」而非遗留实现为准:字段表 / 线框 / 事件表写法)→ [references/writing-rules.md](references/writing-rules.md)。

脚本

sh
S=<本技能目录>/scripts          # 即 .agents/skills/kthis-migration-plan/scripts

# 1) 搭建模块骨架(册序 = --volume 顺序;--no/--name/--code/--volume 由 R1 结论填入)
$S/scaffold-docs.sh --no <NN> --name <模块名> --code <模块代号> [--legacy-ui <遗留入口>] \
  --volume "<主页面>:main" --volume "<弹窗外壳>:shell" --volume "<页签>:tab" …
#   轻量档(简单功能)加 --lite:只生成 00-总览与通用约定.md + 01-功能说明.md,后续用 new-volume.sh 增册;
#   首次可加 --global-layout 生成跨模块的 00-前端布局规范.md

# 2) 迭代中插入一册(自动重排册号 + 重写导航与引用)
$S/new-volume.sh --module-dir <迁移文档根目录>/<NN>-<模块名> --title "<册名>" --type tab --at 3

# 3) 体检(册号连续性 / 导航链 / 索引 / 链接 / 截图命名 / 占位符 / 跨册重复 / 篇幅预算)
$S/audit-docs.sh                                         # 全量(跨册重复仅提示);可加 --module <NN>-<模块名>
$S/audit-docs.sh --strict --dup-strict --max-lines 450    # 收口前严格一遍

# 4) 截图整理(截图丢进 images/ 后:识别 → 按功能改名 → 同步引用)
$S/rename-screenshots.sh --audit <迁移文档根目录>/images <迁移文档根目录>           # 审计:不合规命名 / 失效引用 / 未引用
$S/rename-screenshots.sh <迁移文档根目录>/images <迁移文档根目录> "<旧名>=<新名>" …  # 机械改名 + 改全部文档引用(加 --dry-run 只打印)
脚本只做机械搭建与校验;内容由你必须逐册从遗留源码核实后填写。截图改名只做机械部分,「看图识别是哪个页面 / 页签 / 弹窗」由模型完成,流程见 references/screenshots.md。

遗留侧盘点(写文档前)

定位 Editor/Page → 枚举 CTabItem/分区/弹窗 → 事件与 I*Service → server impl → iBATIS map → 表;界面文案在遗留工程的 i18n/messages.properties(GBK)。方法与命令(含 GBK 检索)→ 读 [references/legacy-recon.md](references/legacy-recon.md)。

验收

收口前逐项过 [references/quality-gates.md](references/quality-gates.md),并确保 audit-docs.sh 零错误、零占位符残留(--strict 通过)。

参考文件

跨工具(OpenCode / Claude Code / Trae IDE):本技能是项目级技能,唯一原始目录 .agents/skills/kthis-migration-plan/,其它工具目录均为指向它的软链接(勿另存副本);接入方式与 Windows 软链接注意事项见仓库 .agents/README.md。

Related by task

from this repository

More skills

All skills