AGENTS.md
daf7406
采集规则(schemaVersion 2)目前可配置的文案只有四项:collector.dimensionAliases.color、collector.dimensionAliases.size、currentPageIdentity.shareAliases、currentPageIdentity.copyLinkAliases。
collector.dimensionAliases.color
collector.dimensionAliases.size
currentPageIdentity.shareAliases
currentPageIdentity.copyLinkAliases
其余识别文案全部硬编码在 android/app/src/main/java/cn/ilapage/goauto/agent/automation/PddProductDetailCollector.kt,含简繁两套,按用途分布如下:
android/app/src/main/java/cn/ilapage/goauto/agent/automation/PddProductDetailCollector.kt
:171
确认款式/確認款式
关闭/關閉
:183-184
减少数量/增加数量
:186
微信支付/先用后付/支付方式
:341-349
颜色/款式/尺码/尺寸/规格/型号/套餐/容量/类型/版本/口味
:151
:284
:339
已选/请选择/已選/請選擇
:120-121
:129
商品评价/全部评价/评价详情/评论/晒单/问答
:415-421
:103
相似商品
:113
进店/单独购买/发起拼单/立即购买
:373
buyWords
:374
dangerousWords
其中 :353-355 存在双事实源缺陷:
:353-355
config.colorAliases.any { label.contains(it) } || label.contains("颜色") || label.contains("款式") -> "color" config.sizeAliases.any { label.contains(it) } || label.contains("尺码") || label.contains("尺寸") -> "size"
规则别名与代码字面量是 || 关系,规则只能放宽行为、永远无法收窄;管理员改小 dimensionAliases 不会生效。
||
dimensionAliases
代价:PDD 侧任何识别文案变化都必须重新编译发布 APK,采集规则的热更新能力对这部分失效。
PddProductDetailCollector.kt:374
提交订单/确认订单/支付/付款
collector
textAliases
specPanel
titleAliases
closeAliases
quantityAliases
paymentAreaAliases
dimension
colorSuffixes
sizeSuffixes
exactNames
selection
selectedPrefixes
review
entryAliases
soldOut
fallbackTopText
mainProductEvidenceAliases
purchase
parseAliases
server/app/goauto/rulecontract
rejectUnknown
PddProductDetailCollector
PddCollectorConfig
dimensionAliases.color
cd android && .\gradlew.bat :app:testDebugUnitTest
go test ./app/goauto/rulecontract/... ./app/goauto/task/...
Android-Agent-API-Contract
docs/08-agent-api-contract.md
collector.textAliases
Business-Rules-and-Glossary
docs/03-business-rules-and-glossary.md
Architecture-and-Code-Map
docs/02-architecture-and-code-map.md
sync
sync --check
待实施(前置 #110 验收通过)。
建单时未读取 #111~#113(本会话创建 #115 后才发现编号已推进)。补充关联与依赖调整:
ORDER_CONFIRMATION
dimensionAliases.size
正文其余范围、非目标、安全边界与验收标准不变。
本工单正文「实施方案 → 规则契约扩展」第 4 条与「安全边界」写有:服务端拒绝在 B 类只读识别字段中出现 提交订单/确认订单/支付/付款。
该条与 #113 已证实的真机事实冲突:PDD 订单确认面板必须依靠「提交订单 ¥9.82」「支付方式」等文字作为只读识别信号才能判定形态,这些词是判断依据、不是点击目标。若按原条款校验,订单确认面板的识别文案将永远无法下发,本工单「靠改规则兼容不同页面形态」的目标也无法达成。
修正为(详见 #116):
支付
付款
提交订单
订单号
修改地址
收货地址
依赖调整:#116 先行落地,本工单按 #116 的校验口径实施,两者不并行。相应地,验收标准中「服务端拒绝在 B 类字段中写入 提交订单/确认订单/支付/付款」一条作废,替换为「B 类字段接受上述识别文案,且把它们写入动作点击目标时仍被拒绝」。
pageRecovery.transientSoldOut.exactText/fallbackTopText
修改地址/收货地址
pdd_app采集
["尺码","尺寸","套餐","参考分类"]
["尺码","尺寸","套餐"]
.\scripts\verify.ps1 -Component server
go test ./...
.\scripts\verify.ps1 -Component android
python dev_scripts/harness.py check --strict
git diff --check
0bbe3f1041a0795a156dcd1205dbe85474e80f8c
b208729957c26801012279a8e89fc18b350f3a87
53B7F881CC0E0AA9F61F313C13832CC69E101D1BC47C7A3BECBD92AF98CA1874
e117fd2a00f6e3c3da6f5fe59ffcf48b6a05148e — feat(#115): move PDD recognition aliases into rules
e117fd2a00f6e3c3da6f5fe59ffcf48b6a05148e
feat(#115): move PDD recognition aliases into rules
PKG110 当前未出现在 adb devices -l,所以未安装 Agent 0.9.11,也未执行真实 PDD 页面采集。请连接 PKG110 后覆盖安装并从当前商品页复采,重点确认规则能识别订单确认面板、颜色与“参考分类”尺码,且全程不触发提交订单或支付。工单保持打开、待用户验收。
adb devices -l
更正上一条“提交”中的完整哈希:e117fd222dd0698fc6a2b0ddbae025ddc318d42d。短哈希与提交说明不变。
e117fd222dd0698fc6a2b0ddbae025ddc318d42d
用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。
No dependencies set.
The note is not visible to the blocked user.
所属与来源
AGENTS.md「Gitea 交互与工单最小读取」记录回退原因。当前事实(提交
daf7406复核)采集规则(schemaVersion 2)目前可配置的文案只有四项:
collector.dimensionAliases.color、collector.dimensionAliases.size、currentPageIdentity.shareAliases、currentPageIdentity.copyLinkAliases。其余识别文案全部硬编码在
android/app/src/main/java/cn/ilapage/goauto/agent/automation/PddProductDetailCollector.kt,含简繁两套,按用途分布如下::171面板标题确认款式/確認款式、关闭关闭/關閉;:183-184数量控件减少数量/增加数量;:186支付区域微信支付/先用后付/支付方式。:341-349颜色/款式/尺码/尺寸/规格/型号/套餐/容量/类型/版本/口味等后缀与精确名。:151、:284、:339的已选/请选择/已選/請選擇前缀。:120-121正则、:129商品评价/全部评价/评价详情/评论/晒单/问答、:415-421。:103相似商品、:113进店/单独购买/发起拼单/立即购买。:373buyWords、:374dangerousWords。其中
:353-355存在双事实源缺陷:规则别名与代码字面量是
||关系,规则只能放宽行为、永远无法收窄;管理员改小dimensionAliases不会生效。代价:PDD 侧任何识别文案变化都必须重新编译发布 APK,采集规则的热更新能力对这部分失效。
目标
:353-355的||兜底,使规则可以收窄而不仅能放宽。非目标
文案分类(本工单的设计前提)
PddProductDetailCollector.kt:374的dangerousWords(提交订单/确认订单/支付/付款)。作用是禁止采集流程点击,保留在 Agent 代码内,且规则不得覆盖。本工单同时把它从「与识别文案混杂」改为独立命名的拒绝清单,并加注释说明其安全属性。实施方案
规则契约扩展
collector下新增textAliases配置块,承载 B 类文案,建议结构:specPanel:titleAliases/closeAliases/quantityAliases/paymentAreaAliasesdimension:colorSuffixes/sizeSuffixes/exactNames(与既有dimensionAliases合并去重,不新增第二套维度事实源)selection:selectedPrefixesreview:entryAliasessoldOut:fallbackTopText/mainProductEvidenceAliasespurchase:buyWordsparseAliases的 1..20 项、单项 ≤30 字符口径),缺省时使用当前代码中的字面量作为默认值,保证存量规则快照不失效。server/app/goauto/rulecontract同步新增校验,字段名、上限与 Android 解析保持一致;rejectUnknown白名单同步更新。Agent 改造
PddProductDetailCollector中 B 类字面量全部改为从PddCollectorConfig读取;删除:353-355的||兜底,改为只依据规则下发的别名判定。dangerousWords提取为独立常量并标注为安全清单,不接受配置注入。Admin 界面(需先补设计证据,本工单不直接实施)
AGENTS.md「工单与设计证据双门禁」不适用纯文案豁免。实施顺序为:先提供可审阅原型或明确复用的现有规范并经用户确认,再编写生产代码。安全边界
||兜底后,Agent 判定只依据服务端下发内容,方向上更符合该约束。验收标准
dimensionAliases.color收窄为单一别名后,行为确实收窄(此前因||兜底不生效)。textAliases的存量规则快照仍可正常采集,结果与本工单实施前一致。提交订单/确认订单/支付/付款。dangerousWords仍在代码内生效,任何规则内容都无法使采集流程点击这些控件。验证方式
cd android && .\gradlew.bat :app:testDebugUnitTestgo test ./app/goauto/rulecontract/... ./app/goauto/task/...依赖、并行与风险
PddProductDetailCollector或采集规则契约的工单并行。||兜底后,若线上默认规则的别名不全,会出现此前被兜底掩盖的维度识别失败。缓解:默认值取自现有代码字面量,且验收含存量快照回归。文档影响
Android-Agent-API-Contract(docs/08-agent-api-contract.md):采集规则新增collector.textAliases字段说明与默认值来源,并说明安全禁止词不可配置。Business-Rules-and-Glossary(docs/03-business-rules-and-glossary.md):识别文案由服务端下发、安全禁止词留在 Agent 的边界描述。Architecture-and-Code-Map(docs/02-architecture-and-code-map.md)按实际调用路径变化决定是否更新。sync与一轮sync --check,把页面与 revision 写回本工单。状态
待实施(前置 #110 验收通过)。
建单后的关联修正
建单时未读取 #111~#113(本会话创建 #115 后才发现编号已推进)。补充关联与依赖调整:
ORDER_CONFIRMATION形态识别。因此本会话原计划的「规格面板分类与处置」工单不再新建,避免与 #113 重复冲突。本工单只负责识别文案的下发方式,不涉及面板处置逻辑。dimensionAliases.size(新增精确别名「参考分类」),与本工单的规则契约扩展改动同一区域。本工单不得与 #113 并行,须在 #113 落地后实施,并在实施时确认「参考分类」已包含在迁移后的默认值中。正文其余范围、非目标、安全边界与验收标准不变。
校验口径修正(以 #116 为准)
本工单正文「实施方案 → 规则契约扩展」第 4 条与「安全边界」写有:服务端拒绝在 B 类只读识别字段中出现
提交订单/确认订单/支付/付款。该条与 #113 已证实的真机事实冲突:PDD 订单确认面板必须依靠「提交订单 ¥9.82」「支付方式」等文字作为只读识别信号才能判定形态,这些词是判断依据、不是点击目标。若按原条款校验,订单确认面板的识别文案将永远无法下发,本工单「靠改规则兼容不同页面形态」的目标也无法达成。
修正为(详见 #116):
支付、付款、提交订单、订单号等词;textAliases校验与 Agent 侧不可配置的拒绝清单(PddProductDetailCollector.kt:374)共同保证,本工单不削弱这两道防线;修改地址/收货地址在任何字段中均保持禁止。依赖调整:#116 先行落地,本工单按 #116 的校验口径实施,两者不并行。相应地,验收标准中「服务端拒绝在 B 类字段中写入
提交订单/确认订单/支付/付款」一条作废,替换为「B 类字段接受上述识别文案,且把它们写入动作点击目标时仍被拒绝」。实施完成,待验收
实现
collector下新增可选的textAliases,按specPanel、dimension、selection、review、soldOut、purchase六组下发只读识别文案。textAliases的历史规则快照继续使用 Agent 0.9.10 之前的内置默认文案;提供配置时两端严格校验未知字段、1~20 项、单项最多 30 个 Unicode 字符、首尾空白、重复项与地址禁词。pageRecovery.transientSoldOut.exactText/fallbackTopText改为可配置只读证据;缺省fallbackTopText仍兼容“相似商品”。||兜底;测试证明只收窄dimensionAliases.color后旧“颜色分类”不再被归为 color。修改地址/收货地址在两端仍拒绝。默认规则与兼容
pdd_app采集)只注入collector.textAliases,保留原有其他配置;JSON_VALID=1,六个配置组完整,size 仍为["尺码","尺寸","套餐","参考分类"]。collector.textAliases的数量仍为 0;任务 #82 的 size 快照仍为["尺码","尺寸","套餐"],未被改写。验证
go test ./app/goauto/rulecontract/... ./app/goauto/task/...:通过。.\scripts\verify.ps1 -Component server:通过(go test ./...、build)。.\scripts\verify.ps1 -Component android:通过(Debug/Release 单元测试、Debug APK)。textAliases、dimensionAliases.size一致。python dev_scripts/harness.py check --strict、git diff --check:通过。0bbe3f1041a0795a156dcd1205dbe85474e80f8cb208729957c26801012279a8e89fc18b350f3a87sync与一轮sync --check,镜像 revision 与线上一致。53B7F881CC0E0AA9F61F313C13832CC69E101D1BC47C7A3BECBD92AF98CA1874。提交
e117fd2a00f6e3c3da6f5fe59ffcf48b6a05148e—feat(#115): move PDD recognition aliases into rules未验证与验收建议
PKG110 当前未出现在
adb devices -l,所以未安装 Agent 0.9.11,也未执行真实 PDD 页面采集。请连接 PKG110 后覆盖安装并从当前商品页复采,重点确认规则能识别订单确认面板、颜色与“参考分类”尺码,且全程不触发提交订单或支付。工单保持打开、待用户验收。更正上一条“提交”中的完整哈希:
e117fd222dd0698fc6a2b0ddbae025ddc318d42d。短哈希与提交说明不变。用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。