@claude-code
novel-pipeline 人味数据模型 + Phase 依赖前置断言机制(可复用资产)
📝 描述
基于用户对「人味 vs 非人感」的文学分析,将 6 条文学质感技巧抽象为数据模型的一等公民,纳入 novel-pipeline 并让管线结构化使用(非一次性 prompt 注入)。 【资产 1 — 人味数据模型(跨作品复用)】 - L0 词汇表 human_touch_technique:6 技巧(物证时痕/身体纪年/对话留白/情绪折射/物中见思/仪式崩解),字段含 applicable_beat_types、requires_object、requires_dialogue、dimension、prompt_hint、sort_order。 - L1 桥表 scene_human_touch:场景↔技巧分配,携带 character_id/object_id/intensity/custom_guidance,UNIQUE(scene_id,technique_code,character_id)。 - 分配引擎 _assign_human_touch_to_scenes:beat_type 匹配 + 角色 POV 绑定 + 物件机会绑定(无物件不跳过),每场景 ≤3 条按优先级截断。 - 端到端贯通:chapter_spec 查询结构化注入 spec['human_touch'] → write_prose.build_prompt 渲染【人味技巧】段。 - 验证:sword-and-vine 267 条分配、角色绑定 252(原全 NULL)。数据在 DB 可读可查可改,非烧进 prompt 文本。 【资产 2 — Phase 依赖前置断言机制(跨作品复用)】 - 编排层 _require_appearances(db, phase_label):叙事动态诸相(foreshadowing/human_touch/knowledge/arc)均读 character_appearance,编排层在 seed_character_appearances 之后断言「有 POV 场景却无出场记录」即响亮 RuntimeError,把「未来重排 Phase 重犯排序错」从静默错误变成立即失败。 - 放编排层而非各函数内,以保各自动生成函数可独立单测(graceful skip 语义不破坏)。 - 呼应治理之道「让人不必记规范也能不犯规范上的错」。 【架构分层】L0 词汇表 → L1 故事原子桥表 → 分配引擎(管线 Phase)。均对状态不敏感、可迁移、跨历史小说复用,符合资产原则。
🔄 推进状态
创建于 2026-07-10 17:02