docs(pipeline): 决议O卡片墓园聚合语义——C方案(全死才埋+人工判卡死活因子陪葬+部分死角标/死因tooltip修404/终态卡分解前置422+卡片promoted空白挂账);修D5一卡多因子语境错位 [nas]
CI/CD / test (push) Successful in 44s
CI/CD / nas-deploy (push) Successful in 32s
CI/CD / nas-verify (push) Successful in 7s

This commit is contained in:
2026-10-10 18:33:48 +08:00
parent e1336ad2d6
commit 0093c0c154
@@ -50,6 +50,14 @@ F 环是「管道」与「飞轮」的分界:归因发现→可能=衰减触
- 假设输入即**持久工件**:来源(研报/调研/直觉)、逻辑、预期方向、数据需求;落 Gitea issue 卡片,与 session 会话寿命解耦。
- **墓园只收「评过且判死」**的负结果,可检索防重复造轮;未长成熟的因子不进墓园(§4.2-E)。
- **卡片墓园聚合语义(决议 O,2026-10-10 拍板 C 方案;修 D5 一卡多因子语境错位)**:卡片(想法)与因子(实现)是两层生命周期,卡片死活=卡下因子**聚合**而非任一因子绑定——
- **自动规则=全死才埋**:D5 死亡回写从「任一因子入墓园→整卡 graveyard」改为「反查卡下全部因子状态,**全部 graveyard 才回写卡片**」;death_reason=「全灭:触发因子 {name} 入墓园:{cause}」。部分死(如 8 死 2)不改卡片状态、卡片留活跃池,只影响卡上展示。历史动机=D5 落地时一卡一因子联动语义成立;10-09 分解 job 化后一卡出多因子(生产首批 8 条),任一死埋整卡=最早死的实现绑架想法+误伤活因子+终态不可迁出。
- **人工判卡片死(新增入口)**:假设池卡片加「判死卡片」危险区按钮(对齐因子详情页危险区交互:死因必填+确认档分级)——确认弹窗**列出将陪葬的因子清单**;执行=卡片 graveyard+卡下所有活因子逐一 transition graveyard(cause 统一=卡片死因+「(随卡判死)」后缀;incubating→graveyard 状态机合法)。语义=人工判卡死是强断言「想法死了」,实现陪葬;0 因子卡=纯想法毙掉无陪葬。**此前卡片无任何人工判死入口**(唯一路径=因子死自动回写)。
- **部分死的卡片展示**:卡上因子清单死因子=划线+☠+死因 tooltip(registry cause 透传进 `hypotheses` 端点 factors[])+**不可点**(修现状坑:卡上死因子点击跳 factor_detail 404);卡角标「☠n/N」(n=死因子数,0 不显示)。
- **终态卡防线**:graveyard 卡禁止再发起分解(decompose 入口前置 422,非 graveyard→building 的非法迁移 ValueError 逃成 500;现状=LLM 白跑后 update 才炸)。
- **不变项**:graveyard 卡不可迁出(重推想法=开新卡,D3 同构);因子人工判死不杀卡(除非触发全死聚合);因子墓园唯一视图仍在假设池墓园 tab 判死因子区。
- **挂账**:卡片 promoted 触发点空白(evaluating→promoted 无调用方——「想法毕业」语义=有因子晋级即毕业?后续班次定,本决议只动墓园语义)。
- **改动面**:`version_registry.writeback_card_death` 聚合改造 / `POST /pipeline/hypotheses/{id}/verdict`(新,graveyard+陪葬)/ decompose 终态前置校验 / `hypotheses` 端点 factors[] 透传 cause;前端卡角标+死因子行态+判死卡片按钮+陪葬确认弹窗。
### §4.2 因子工厂(P1)