From c121349dead325624e4c01fb01191b04df4b5b39 Mon Sep 17 00:00:00 2001 From: xcs Date: Thu, 27 Aug 2026 02:54:09 +0800 Subject: [PATCH] =?UTF-8?q?ACT-WORK-05:P-08=20=E4=BA=A4=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=E5=85=88=20finish=20=E5=86=8D=E5=8F=91=20P-10=20=E5=8D=A1,?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E5=86=99=E6=AD=BB=E8=BF=9B=20guide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实测逮到:人交回 P-08 那张卡(表1+表2)后,模型下一拍直接发了 P-10 的卡,却没先 finish S0d_p08_master——引擎挑工作区画面按"当下还没干完 的第一步"取 view,S0d_p08_master 还 Active 时画面就停在 p08-master-create 不动,人拿到 P-10 的卡却看不见资料表一格,提交闸必然拦死。 两处 guide 补齐先后顺序:S0d_p08_master 交回段落写死"finish 在先、 发卡在后"两步动作串,并点出不收步的后果(画面停在哪);S0d_p10_document 开头加兜底句,若进来时上一项还开着,先补 finish 再发卡。 包内测试钉死这段顺序表述不会被静默删掉或改软。版本号 1.2.0 → 1.2.1。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01FJcX8A6TWp4GRs41TYryEh --- .../__tests__/steps.test.ts | 10 ++++++++++ .../part-substitution-assessment/src/case-model.ts | 10 ++++++++-- .../part-substitution-assessment/src/manifest.ts | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/activities/part-substitution-assessment/__tests__/steps.test.ts b/activities/part-substitution-assessment/__tests__/steps.test.ts index e50ab49..39d2ec8 100644 --- a/activities/part-substitution-assessment/__tests__/steps.test.ts +++ b/activities/part-substitution-assessment/__tests__/steps.test.ts @@ -201,6 +201,16 @@ describe('说明书与剧本的骨架', () => { expect(s0d).toContain('至少留一颗候选'); }); + it('P-08 交回之后先 finish 再发 P-10 卡,顺序写死进两段 guide(2026-08-27 实测:漏收步会让工作区画面停在 P-08 那两张表,P-10 卡发出后人却看不见资料表、提交闸拦死)', () => { + const s0d = ASSESSMENT_STEPS.find((s) => s.item === 'S0d_p08_master')?.guide ?? ''; + expect(s0d).toContain('finish S0d_p08_master'); + expect(s0d).toMatch(/顺序不能反/); + expect(s0d).toContain('p08-master-create'); + const s0d10 = ASSESSMENT_STEPS.find((s) => s.item === 'S0d_p10_document')?.guide ?? ''; + expect(s0d10).toContain('finish S0d_p08_master'); + expect(s0d10).toMatch(/若它还开着|先.*finish/); + }); + it('五段进度,每段名 ≤10 字;除放行外每项恰属一段', () => { expect(ASSESSMENT_PHASES).toHaveLength(5); for (const p of ASSESSMENT_PHASES) expect(p.name.length, p.name).toBeLessThanOrEqual(10); diff --git a/activities/part-substitution-assessment/src/case-model.ts b/activities/part-substitution-assessment/src/case-model.ts index 1c7b176..bc095c0 100644 --- a/activities/part-substitution-assessment/src/case-model.ts +++ b/activities/part-substitution-assessment/src/case-model.ts @@ -342,7 +342,12 @@ current_stage = "assessing"。application_scenario / bom_position **这一步不 brand_name 有就写}(这一行是骨架,下一项 S0d_p10_document 会把它填成正式记录)。 4. 同一拍发说明书③那张 P-08 数据工单(title 里列全料号),发完这一拍结束(挂起)。 -【P-08 那张确认回来了】finish 这一项 —— 下一项是 S0d_p10_document,同一批料号接着补资料记录。 +【P-08 那张确认回来了】这一拍的动作串**恰好两个,顺序不能反**: +① 先 \`finish S0d_p08_master\` —— **必须先把这一项收掉**。不收掉,引擎挑工作区画面时按 +「当下还没干完的第一步」取 view,S0d_p08_master 只要还 Active,画面就一直停在 +\`p08-master-create\`(P-08 那两张表);下一拍就算发出了 P-10 的卡,人的工作区也看不见 +P-10 的资料表,一格都填不了,提交闸必然拦死。 +② 再照说明书④发 P-10 数据工单 —— 下一项是 S0d_p10_document,同一批料号接着补资料记录。 【这张卡一单只发一次】人交回来之后不许再发;答复里没有值(空 values)也算答过 —— 人在件上填的东西已经落草稿层。`, }, @@ -355,7 +360,8 @@ current_stage = "assessing"。application_scenario / bom_position **这一步不 tools: [], /* 触达人,不给 doneWhen;人工激活:发卡就算启动 */ guide: `这一项只在 \`${D}.pn_check\` 里有 absent 行时走(要走到这一步,S0d_p08_master 必然已经收完);都在库时入场前提本就不成立, -这一项与 S0d_p08_master 都不会进你的「当下可为」。 +这一项与 S0d_p08_master 都不会进你的「当下可为」。**进到这一项时,S0d_p08_master 应当已经收掉了;若它还开着(Active), +先 \`finish S0d_p08_master\` 再发这张卡** —— 它没收掉,画面会一直停在 P-08 那两张表,人拿到 P-10 的卡也看不见资料表。 【发 P-10 数据工单】「建」的名单就是 \`${D}.pn_check\` 里仍是 exists_status = "absent" 的那几行(候选总数 ≥2 时被放弃的那些, S0d_p08_master 那一步已经把它们改成 "abandoned",不在这份名单里)。同一拍照说明书④发那张 P-10 数据工单(title 里列全料号,只发一次), diff --git a/activities/part-substitution-assessment/src/manifest.ts b/activities/part-substitution-assessment/src/manifest.ts index 83000e0..5346f86 100644 --- a/activities/part-substitution-assessment/src/manifest.ts +++ b/activities/part-substitution-assessment/src/manifest.ts @@ -89,7 +89,7 @@ export const manifest: ActivityManifest = { identity: { activityId: ACTIVITY_ID, name: 'ACT-WORK-05 · 差异评估', - packageVersion: '1.2.0', + packageVersion: '1.2.1', category: '需求分析与方案匹配', sdkVersion: '0.1.0-m5', checksum: 'dev-checksum-part-substitution-assessment',