5.3 KiB
全项目通用提示文案实施计划
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 清除全项目输入提示、示例和辅助说明中的具体人物或家族名称,同时完整保留页面模拟数据。
Architecture: 新增一个只扫描用户提示上下文的 PowerShell 合同,作为规则唯一验证入口。生产改动限定在 G03、G08 与共享 TreeMemberForm 的六处提示文案,不触碰任何 fixture、卡片或详情数据。
Tech Stack: uni-app、Vue 3、PowerShell 静态合同、现有页面合同、MuMu、ADB。
Global Constraints
- 只检查
placeholder、带“例如/比如/如:”的示例和输入框附近辅助说明。 - 模拟数据、成员目录、详情卡、申请记录和测试输入值保持不变。
- G08 使用“某某某堂侄”表达关系格式;其他字段优先使用动作型提示。
- 不执行 Git 操作,不启用多代理。
- 最终视觉结论只依据 MuMu 原生画面。
Task 1: 建立提示文案全项目合同
Files:
- Create:
tests/generic-guidance-copy-contract.ps1
Interfaces:
-
Consumes:
pages/**/*.vue与components/**/*.vue中的用户提示文案。 -
Produces: 只针对提示上下文禁止具体姓名的项目级合同。
-
Step 1: 写入失败合同
创建 tests/generic-guidance-copy-contract.ps1:
$ErrorActionPreference = 'Stop'
$root = Split-Path -Parent $PSScriptRoot
$vueFiles = @(
Get-ChildItem -LiteralPath (Join-Path $root 'pages') -Recurse -Filter '*.vue'
Get-ChildItem -LiteralPath (Join-Path $root 'components') -Recurse -Filter '*.vue'
)
$specificCopy = @('汤正华', '汤正国', '汤文远', '汤氏家谱', '如:汤')
foreach ($file in $vueFiles) {
$lineNumber = 0
foreach ($line in Get-Content -LiteralPath $file.FullName -Encoding utf8) {
$lineNumber += 1
if ($line -notmatch 'placeholder|例如|比如|如:') { continue }
foreach ($token in $specificCopy) {
if ($line.Contains($token)) {
throw "User guidance must not contain specific copy '$token': $($file.FullName):$lineNumber"
}
}
}
}
$g08 = Get-Content -LiteralPath (Join-Path $root 'pages/genealogy/g08-join-application.vue') -Raw -Encoding utf8
foreach ($required in @('placeholder="例如:某某某堂侄"', '请以家谱中一位已知长辈为参照,例如:某某某堂侄')) {
if (-not $g08.Contains($required)) { throw "G08 generic relationship guidance missing: $required" }
}
Write-Output 'GENERIC-GUIDANCE-COPY-CONTRACT PASS'
- Step 2: 运行合同并确认 RED
& powershell -ExecutionPolicy Bypass -File tests/generic-guidance-copy-contract.ps1
Expected: FAIL,首先报告 G03、G08 或 TreeMemberForm 仍含具体提示文案。
Task 2: 替换六处提示并回归
Files:
- Modify:
pages/genealogy/g03-create-genealogy.vue - Modify:
pages/genealogy/g08-join-application.vue - Modify:
components/tree/TreeMemberForm.vue
Interfaces:
-
Consumes: Task 1 的提示文案合同。
-
Produces: 不含具体姓名的动作型提示与通用关系示例。
-
Step 1: 做六处精确替换
pages/genealogy/g03-create-genealogy.vue:
placeholder="请输入姓氏"
placeholder="请输入家谱名称"
pages/genealogy/g08-join-application.vue:
placeholder="例如:某某某堂侄"
请以家谱中一位已知长辈为参照,例如:某某某堂侄
components/tree/TreeMemberForm.vue:
{ key: "name", label: "姓名", placeholder: "请输入首位成员姓名" },
{ key: "source", label: "当前成员", placeholder: "请选择当前成员" },
- Step 2: 运行静态合同
$tests = @(
'tests/generic-guidance-copy-contract.ps1',
'tests/g03-create-flow-contract.ps1',
'tests/g03-visual-states-contract.ps1',
'tests/g08-g10-application-flow-contract.ps1',
'tests/g08-document-flow-contract.ps1',
'tests/tree-member-form-document-flow-contract.ps1'
)
foreach ($test in $tests) { & powershell -ExecutionPolicy Bypass -File $test }
Expected: 六项全部输出各自 PASS。
- Step 3: 运行 G08 流程回归
node tests/g08-g10-application-flow-runtime-smoke.js http://localhost:5173
Expected: 输出 G08-G10-APPLICATION-FLOW-RUNTIME-SMOKE PASS。若 H5 服务未运行,记录为环境阻塞,不用浏览器截图代替 MuMu 视觉验收。
Task 3: MuMu 原生复核
Files:
- Create:
tmp/G08-generic-guidance-native.png
Interfaces:
-
Consumes: 已同步到 MuMu 的 G08 最新页面。
-
Produces: 通用关系提示的原生证据。
-
Step 1: 捕获 G08 当前画面
$adb = 'C:\Users\Administrator\Desktop\HBuilderX\plugins\launcher-tools\tools\adbs\adb.exe'
& $adb -s emulator-5554 shell screencap -p /sdcard/G08-generic-guidance-native.png
& $adb -s emulator-5554 pull /sdcard/G08-generic-guidance-native.png tmp/G08-generic-guidance-native.png
- Step 2: 检查并交给用户确认
使用 view_image 原图确认关系输入和下方辅助说明都显示“某某某堂侄”,页面不再出现具体人物姓名。只报告当前默认状态,不把未查看的校验或提交结果状态标记为通过。