按真实返回屏幕继续处理,别猜原图是否被覆盖
本页展示随包原生输入和验收参考。目标产品运行状态:未运行。表格与图片不代表产品已经生成的结果。
input.csv / practice-data.json
本课实际输入字段
| region | before | requested | text |
|---|---|---|---|
| date | one column | two columns | |
| name | preserve | 姓名 | |
| submit | preserve | 确认预约 |
调用edit并保存返回
reference.csv:作者验收映射,不是目标API回包
| check | expected |
|---|---|
| date layout | two columns |
| name/submit text | unchanged |
| artifact identity | actual returned Screen |
规则与输入文件原文
{
"inputRows": [
{
"region": "date",
"before": "one column",
"requested": "two columns"
},
{
"region": "name",
"text": "姓名",
"requested": "preserve"
},
{
"region": "submit",
"text": "确认预约",
"requested": "preserve"
}
],
"referenceRows": [
{
"check": "date layout",
"expected": "two columns"
},
{
"check": "name/submit text",
"expected": "unchanged"
},
{
"check": "artifact identity",
"expected": "actual returned Screen"
}
],
"invalidRows": [
{
"afterSource": "old screen screenshot",
"error": "not evidence of edit"
},
{
"assumption": "screenId always increases",
"error": "undocumented identity behavior"
}
],
"notes": [
"全部输入为作者自制教学资料,不含真实客户或账号。",
"referenceRows是校验基准,不是目标模型预测或识别结果;targetProduct=not_run。"
],
"files": {
"input.json": "[\n {\n \"region\": \"date\",\n \"before\": \"one column\",\n \"requested\": \"two columns\"\n },\n {\n \"region\": \"name\",\n \"text\": \"姓名\",\n \"requested\": \"preserve\"\n },\n {\n \"region\": \"submit\",\n \"text\": \"确认预约\",\n \"requested\": \"preserve\"\n }\n]\n",
"reference.json": "{\n \"identity\": \"作者验收参考,非模型返回\",\n \"rows\": [\n {\n \"check\": \"date layout\",\n \"expected\": \"two columns\"\n },\n {\n \"check\": \"name/submit text\",\n \"expected\": \"unchanged\"\n },\n {\n \"check\": \"artifact identity\",\n \"expected\": \"actual returned Screen\"\n }\n ]\n}\n",
"invalid.json": "{\n \"identity\": \"作者构造负例,非实际错误回包\",\n \"rows\": [\n {\n \"afterSource\": \"old screen screenshot\",\n \"error\": \"not evidence of edit\"\n },\n {\n \"assumption\": \"screenId always increases\",\n \"error\": \"undocumented identity behavior\"\n }\n ]\n}\n",
"case.md": "# Stitch SDK编辑页面:按真实返回屏幕继续处理,别猜原图是否被覆盖\n\nStitch SDK编辑页面把一次限定修改与返回身份关联。修改后读取返回Screen并对比保留区,不假设原屏幕必定被覆盖,也不假设每次都自动生成新ID。\n\n## 建立修改基线\n\n读取预约页并保存标题、表单字段和原screenId。\n\n本课只改日期区域的排版,其他内容设为保留区。\n\n## 写限定修改提示\n\n要求日期选项改为两列,并明确姓名、电话和提交按钮不变。\n\n不要加入“顺便重新设计整页”等扩大范围的话。\n\n## 调用edit并保存返回\n\n对目标screen调用edit(prompt),保留实际返回对象。\n\n使用返回Screen继续取图,不凭原ID或递增规则猜结果位置。\n\n## 比较身份关系\n\n记录原screenId与返回screenId,按实际值判断是否相同。\n\n教程不承诺后端一定覆盖或新建,具体行为以本次返回为准。\n\n## 复查保留区\n\n核对姓名、电话、按钮文字和位置,逐项标注是否发生旁带变化。\n\n未授权变化回到本次修改提示或副本处理,不直接接受。\n\n## 读取修改后的资源\n\n用返回Screen的getHtml/getImage取得成对资产。\n\n如果编辑调用失败,不把旧截图命名为after。\n\n## 交付编辑谱系\n\n保存before、请求、实际返回身份和after,形成可追踪链。\n\n生成完成和业务提交功能可用要分开验收。\n\n身份:输入与参考为作者材料;localCli有实测记录时仅证明对应CLI运行,目标云端与模型推理未执行。\n"
}
}应当保留的约束
| check | expected |
|---|---|
| date layout | two columns |
| name/submit text | unchanged |
| artifact identity | actual returned Screen |
故意构造的错误样例
| afterSource | error | assumption |
|---|---|---|
| old screen screenshot | not evidence of edit | |
| undocumented identity behavior | screenId always increases |
先保存真实产品输出,再逐项对照。actualOutput / actualResult 在未执行时保持 not_run,不能把这里的期望值复制成已测结果。