diff --git a/AGENTS.md b/AGENTS.md index e75edf2..e410627 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,8 @@ ## 施工和交接 +- 白栖知于主卡评论 `01a163a5-e2a7-7ac8-afdb-991868e721bc` 明确:本项目整体视觉由视觉总监接手设计与实际落地,职责不止审核把关。施工员无法实现对应效果时,由视觉总监直接编写相关代码。本轮对话及沉浸界面交由视觉总监亲自负责;总管负责协调、核对需求和交付,不再以自己的视觉原型替代它接手。此项是CyberGril项目分工,不修改队员在其他项目的全局职责、模型或认证。 + - 使用 `docs/requirements/task-handoff-template.md`,写出本次交付及完整需求的关联;完整当前需求始终有效。阶段不做的内容列明承接,不删除需求。 - 需求、技术方案、阶段范围、实现状态、用户验收分开记录。不得把智能体建议、技术困难、模型登录失败或某阶段通过当作修改需求的授权。 - 不用“当前一两句”以外的长消息滚动主界面替代已确认的交流体验。长回复需完整可读,具体分句等方案先通过动态小样验证。 diff --git a/docs/requirements/README.md b/docs/requirements/README.md index b2aaf5e..1af375d 100644 --- a/docs/requirements/README.md +++ b/docs/requirements/README.md @@ -1,12 +1,12 @@ # CyberGril 需求入口 -当前完整基准:**v1.7**。批准需求继承办法的主卡评论:`01a1635b-b47c-79ed-ac66-9408c7905af9`。 +当前完整基准:**v1.8**。批准需求继承办法的主卡评论:`01a1635b-b47c-79ed-ac66-9408c7905af9`。 所有新任务、续办、设计、施工、审核先读完整当前需求,再读本次相关来源。只有白栖知明确修改的要求才可变更,阶段范围不能覆盖产品要求。 | 文件 | 用途 | | --- | --- | -| [current.md](current.md) | 58条完整有效要求:原31条产品决定、13条视觉、3条补充、6条用户整改、4条执行约束、1条交付边界;另列未定项 | +| [current.md](current.md) | 59条完整有效要求:原31条产品决定、13条视觉、3条补充、6条用户整改、5条执行约束、1条交付边界;另列未定项 | | [baseline.json](baseline.json) | 同一份要求的结构化编号、边界和来源 | | [coverage.md](coverage.md) / [coverage.json](coverage.json) | 实现与验收状态,未完成项目继续保留 | | [changes.md](changes.md) / [changes.json](changes.json) | 后续修改的用户授权及影响 | @@ -15,7 +15,7 @@ | [source-manifest.json](source-manifest.json) | 来源文件校验值,防止历史来源被静默改写 | | [implementation-verification.md](implementation-verification.md) | 本次实际写入、旧卡迁移与正反向验证记录 | -`sources/comment-evidence.json` 保存125条来源评论的身份、时间、原话和父评论;正文中的编号可追溯回主卡。原始初轮访谈与完整视觉访谈均用分页取齐,后续材料按关联决定保存。其余来源文档保留原样;其中旧进度、技术推荐、旧待定项不能自动成为当前事实。已经被后续明确决定覆盖的内容,见 current.md 和 changes.md。 +`sources/comment-evidence.json` 保存初版125条来源评论(保留原样)的身份、时间、原话和父评论;正文中的编号可追溯回主卡。原始初轮访谈与完整视觉访谈均用分页取齐,后续材料按关联决定保存。其余来源文档保留原样;其中旧进度、技术推荐、旧待定项不能自动成为当前事实。已经被后续明确决定覆盖的内容,见 current.md 和 changes.md。 原仓库 `docs/SPEC.md` 是初始构想,不能盖过后续逐项确认:例如旧VRM路线、允许经历改写出生核心等,均不能用于覆盖当前要求。 @@ -31,4 +31,6 @@ 当前没有配置仓库自动CI合并门禁;上述命令作为交付和独立审核的必做项,不声称平台已强制拦截所有修改。 +v1.8新增来源见 `sources/comment-evidence-visual-role-20261022.json`,最新分工见GOV-005。 + 后续以该入口所记录的最新版本为准,不把v1.7永久钉死为永不可新增的文档。每次新版本必须记录用户明确裁定,保留旧版来源与覆盖关系。 diff --git a/docs/requirements/baseline.json b/docs/requirements/baseline.json index 071b5a8..af150e8 100644 --- a/docs/requirements/baseline.json +++ b/docs/requirements/baseline.json @@ -1,9 +1,9 @@ { "schema_version": 1, - "version": "1.7", - "approval_comment_id": "01a1635b-b47c-79ed-ac66-9408c7905af9", + "version": "1.8", + "approval_comment_id": "01a163a5-e2a7-7ac8-afdb-991868e721bc", "owner_id": "e5c6c938-db48-4ff9-954f-4fb8b063a132", - "scope": "完整要求;版本1.7整合已确认内容并新增用户批准的需求继承约束,不证明已实现或已验收。", + "scope": "完整要求;v1.8按用户明确指令新增视觉总监接手及必要代码职责,原58项和已批准边界继续有效,不证明功能已实现或已验收。", "requirements": [ { "id": "CG-001", @@ -683,6 +683,16 @@ "01a1629c-732f-7559-8417-6f2ea05c7151" ], "source_document": "sources/integration-plan-v1.md" + }, + { + "id": "GOV-005", + "category": "执行分工", + "topic": "视觉总监接手整体视觉及必要代码", + "conclusion": "CyberGril整体视觉由视觉总监接手设计与实际落地,职责不止审核把关;施工员无法写出对应代码时,直接由视觉总监编写。本轮对话与沉浸界面交由视觉总监亲自负责。", + "boundary": "总管负责协调、完整需求核对与交付;不再用总管制作替代视觉总监接手。分工限本项目,不修改队员其他项目的全局模型、职责或认证;原产品需求与小样先验收再替换正式界面的边界继续有效。", + "source_comment_ids": [ + "01a163a5-e2a7-7ac8-afdb-991868e721bc" + ] } ], "open_items": [ diff --git a/docs/requirements/changes.json b/docs/requirements/changes.json index ba59ca3..20c3814 100644 --- a/docs/requirements/changes.json +++ b/docs/requirements/changes.json @@ -67,6 +67,16 @@ "VIS-013" ], "impact": "约束新旧卡及独立界面小样;不改产品数据、模型与现有服务。" + }, + { + "version": "1.8", + "approval_comment_id": "01a163a5-e2a7-7ac8-afdb-991868e721bc", + "approved_by": "e5c6c938-db48-4ff9-954f-4fb8b063a132", + "summary": "新增GOV-005:整体视觉交给视觉总监接手,不止把关;施工员不能实现时由视觉总监直接写代码。", + "affected_ids": [ + "GOV-005" + ], + "impact": "本项目本轮视觉设计、动效与相应代码责任转给视觉总监;不改现网、数据、全局模型或认证。" } ] } diff --git a/docs/requirements/changes.md b/docs/requirements/changes.md index bd58829..25e7bf9 100644 --- a/docs/requirements/changes.md +++ b/docs/requirements/changes.md @@ -5,3 +5,9 @@ v1.7:把原始31项、已确认视觉和后续用户裁定整理到同一入 原始 v1.6 原样保留。后续生活披露、初始关系和名字的覆盖见 current.md 的 AM-001–003 及对应来源,不回写历史。旧文档中的历史进度不作为现在的事实。 以后每次改需求,记录:原要求、新要求、白栖知明确原话及评论编号、涉及编号、影响范围。智能体建议、实现困难、阶段通过均不能替代用户授权。检查脚本只能检查材料完整性,审核者仍必须核对原话。 + +## v1.8:视觉总监接手 + +白栖知明确裁定:整体视觉交给视觉总监接手,而不是把关,甚至若施工员无法写出相应代码,直接让视觉总监写代码 + +来源评论:`01a163a5-e2a7-7ac8-afdb-991868e721bc`。旧分工为总管因环境失败接手制作、后续视觉总监只把关;现按GOV-005交视觉总监亲自设计与落地,必要时直接写代码。本次不改变产品功能与原验收边界。 diff --git a/docs/requirements/coverage.json b/docs/requirements/coverage.json index 3cf6ff1..b5059a5 100644 --- a/docs/requirements/coverage.json +++ b/docs/requirements/coverage.json @@ -1,5 +1,5 @@ { - "baseline_version": "1.7", + "baseline_version": "1.8", "items": [ { "requirement_id": "CG-001", @@ -348,6 +348,16 @@ "status": "未完成或未整体验收;不得据旧样机或测试数字声称已满足", "evidence": [], "next_step": "按完整需求与接入批次落实,交付时补真实证据" + }, + { + "requirement_id": "GOV-005", + "status": "用户恢复原运行时后,视觉总监已在HEL-793真实运行;设计与代码由其亲自负责", + "evidence": [ + "01a163a5-e2a7-7ac8-afdb-991868e721bc", + "01a163be-0bbc-7a74-8dc1-a3bcee89cc58", + "running:01a163bc-9134-75e4-aa28-71c6371ff692" + ], + "next_step": "视觉总监交实际样图和动态代码;总管按完整需求核对后交用户验收,保持用户设定的运行时" } ] } diff --git a/docs/requirements/coverage.md b/docs/requirements/coverage.md index ded1dab..2148fb1 100644 --- a/docs/requirements/coverage.md +++ b/docs/requirements/coverage.md @@ -62,5 +62,6 @@ | GOV-003 | 本版本已写入规则和检查;主分支合入及后续实际执行仍需核验 | 独立审核文档、检查脚本与旧卡迁移;后续卡逐张执行 | | GOV-004 | 用户不满意当前对话与整体沉浸体验,独立小样待制作及验收 | 本轮批准的界面动态小样 | | DEL-001 | 未完成或未整体验收;不得据旧样机或测试数字声称已满足 | 按完整需求与接入批次落实,交付时补真实证据 | +| GOV-005 | 用户恢复原运行时,视觉总监已在HEL-793真实运行 | 由其交实际设计与代码,保持用户配置 | 详细证据位于 `coverage.json`;空证据表示尚无本基准下整项合格证据,不表示需求取消。 diff --git a/docs/requirements/current.md b/docs/requirements/current.md index 95f99b6..b27b8ca 100644 --- a/docs/requirements/current.md +++ b/docs/requirements/current.md @@ -1,6 +1,6 @@ -# CyberGril 完整当前需求 · v1.7 +# CyberGril 完整当前需求 · v1.8 -完整要求;版本1.7整合已确认内容并新增用户批准的需求继承约束,不证明已实现或已验收。 +完整要求;版本1.8保留原完整要求并新增用户明确的视觉总监接手分工,不证明已实现或已验收。 ## 阅读与效力 @@ -502,6 +502,14 @@ 关联全文:`sources/integration-plan-v1.md`。 +## GOV-005 · 视觉总监接手整体视觉及必要代码 + +CyberGril整体视觉由视觉总监接手设计与实际落地,职责不止审核把关;施工员无法写出对应代码时,直接由视觉总监编写。本轮对话与沉浸界面交由视觉总监亲自负责。 + +边界:总管负责协调、完整需求核对与交付;不再用总管制作替代视觉总监接手。分工限本项目,不修改队员其他项目的全局模型、职责或认证;原产品需求与小样先验收再替换正式界面的边界继续有效。 + +来源评论:`01a163a5-e2a7-7ac8-afdb-991868e721bc`。 + ## 尚未确定或尚未验证 ### T-01 · 八字映射细则 diff --git a/docs/requirements/handoff-HEL-697.json b/docs/requirements/handoff-HEL-697.json index 22b817c..1ac2516 100644 --- a/docs/requirements/handoff-HEL-697.json +++ b/docs/requirements/handoff-HEL-697.json @@ -1,67 +1,14 @@ { - "baseline_version": "1.7", - "read_commit": "498429399812a0776dadd4b56662d31b455a9ea5", + "baseline_version": "1.8", + "read_commit": "4242f8377e350e5f17e836d275c15b0f099bf109", "requirement_ids": [ - "CG-001", - "CG-002", - "CG-003", - "CG-004", - "CG-005", - "CG-006", - "CG-007", - "CG-008", - "CG-009", - "CG-010", - "CG-011", - "CG-012", - "CG-013", - "CG-014", - "CG-015", - "CG-016", - "CG-017", - "CG-018", - "CG-019", - "CG-020", - "CG-021", - "CG-022", - "CG-023", - "CG-024", - "CG-025", - "CG-026", - "CG-027", - "CG-028", - "CG-029", - "CG-030", - "CG-031", - "VIS-001", - "VIS-002", - "VIS-003", - "VIS-004", - "VIS-005", - "VIS-006", - "VIS-007", - "VIS-008", - "VIS-009", - "VIS-010", - "VIS-011", - "VIS-012", - "VIS-013", - "AM-001", - "AM-002", - "AM-003", - "UX-001", - "UX-002", - "UX-003", - "UX-004", - "UX-005", - "UX-006", "GOV-001", "GOV-002", "GOV-003", "GOV-004", - "DEL-001" + "GOV-005" ], - "deliverable": "完整需求、来源档案、执行约束和检查命令,项目与旧卡统一入口;不是产品功能交付", + "deliverable": "按用户明确指令记录视觉总监接手设计与相应代码职责,并交接本轮返工", "acceptance": [ "58项原意、边界、来源完整;初轮及视觉对话取齐", "版本变更、来源、覆盖、交接缺项检查可运行", @@ -72,11 +19,17 @@ "R1修正与R2–R7真实接入继续保留", "CI自动合并门禁尚未配置,当前检查由交付与审核执行" ], - "requirement_changes": [], + "requirement_changes": [ + { + "approval_comment_id": "01a163a5-e2a7-7ac8-afdb-991868e721bc", + "requirement_id": "GOV-005" + } + ], "verification": [ - "58项正向结构与交接检查通过", - "4项反向检查均拦截:覆盖漏项、历史来源改动、改需求不升版、过期交接", - "项目说明和仓库资源回读一致;39张未关闭子卡和主卡入口逐张回读,原状态和负责人未改", - "独立审核待总工执行,仓库主分支尚未合入;此处不声称CI门禁已配置" + "59项需求及交接检查通过;原始来源和变更历史保留", + "项目规则、主卡与返工卡已明确视觉总监亲自接手设计与相应代码", + "用户手动恢复原运行时后,HEL-793运行01a163bc-9134-75e4-aa28-71c6371ff692真实开始;已读旧稿与样图并检查浏览器;没有重复派工", + "追溯确认此前2026-10-22T09:31:24Z的运行时变更来自总管执行01a162f2-61a5-7c6a-9704-44c8e15219ff,未经用户事先批准;已向用户如实说明", + "主卡恢复in_progress;用户设定的运行时、模型与认证未再更改,正式界面及用户数据保持原状" ] } diff --git a/docs/requirements/source-manifest.json b/docs/requirements/source-manifest.json index 15f6818..e304070 100644 --- a/docs/requirements/source-manifest.json +++ b/docs/requirements/source-manifest.json @@ -6,5 +6,6 @@ "frontend-architecture-v1.md": "eb05f1707a932014d613072e8c5d95bc8d6a0281390dc93c000d63851ecbbc86", "product-decisions-v1.6.json": "ccc5c50c5604385208eb054caac01e27fc63367dac7731e1be9775a1e5cf46ab", "visual-confirmation-v2.md": "6e0229aaf693f215cc9dcc647be694aeafb3770683b21bb7e3e30291af60255a", - "integration-plan-v1.md": "454af1d4a3b0360d33aea9c0e97f738b320968ba7be68e012a5fcec6f6ed0169" + "integration-plan-v1.md": "454af1d4a3b0360d33aea9c0e97f738b320968ba7be68e012a5fcec6f6ed0169", + "comment-evidence-visual-role-20261022.json": "ecf30eb323129dca2a0d9c2ff2e0163884ee94d3fc7828b0540cd45f03103797" } diff --git a/docs/requirements/sources/comment-evidence-visual-role-20261022.json b/docs/requirements/sources/comment-evidence-visual-role-20261022.json new file mode 100644 index 0000000..3c41a33 --- /dev/null +++ b/docs/requirements/sources/comment-evidence-visual-role-20261022.json @@ -0,0 +1,10 @@ +[ + { + "id": "01a163a5-e2a7-7ac8-afdb-991868e721bc", + "author_type": "member", + "author_id": "e5c6c938-db48-4ff9-954f-4fb8b063a132", + "content": "整体视觉交给视觉总监接手,而不是把关,甚至若施工员无法写出相应代码,直接让视觉总监写代码", + "created_at": "2026-10-22T12:46:18Z", + "parent_id": "01a1639b-8416-7b0b-8dbf-0de16c257cb5" + } +] diff --git a/scripts/check_requirements.py b/scripts/check_requirements.py index ffbe758..a91ad3a 100644 --- a/scripts/check_requirements.py +++ b/scripts/check_requirements.py @@ -21,7 +21,13 @@ def check(handoff=None, base_ref=None): rows = baseline['requirements'] ids = [r['id'] for r in rows] known = set(ids) - evidence = {c['id']: c for c in read(DOCS / 'sources/comment-evidence.json')} + evidence = {} + for path in sorted((DOCS / 'sources').glob('comment-evidence*.json')): + for comment in read(path): + old = evidence.get(comment['id']) + if old and old != comment: + errors.append(f'同一来源评论出现不同记录:{comment["id"]}') + evidence[comment['id']] = comment if len(ids) != len(known): errors.append('重复的需求编号') text = (DOCS / 'current.md').read_text(encoding='utf-8')