119 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# muse-example 表 ↔ 主仓迁移来源映射(A2 审查面)
> 口径(创始人拍板③ 2026-07-10):主仓表**原样不改列**;实验私货全进 `example_*` 前缀。
> 建表方式:`muse/authority/db/ddl/` 下文件经 `访问数据库` skill `apply`,主仓部分为 `muse-cloud/sql/muse/` 原文拷贝或逐字摘录。
> 已应用顺序:V1 → V3 → V5 → 90-ALTER摘录 → V26 → 91-example(2026-07-13)→ 97/98(2026-07-30)→ 104 AI 味案例(2026-08-14)→ 105/106/107/108/109 先审后入与复利闭环(2026-08-14)→ 110 声音账(2026-08-15)-> 112 角色模型策略(2026-08-21)-> 113 代理事件账本(2026-08-22)。库内表现状以 `访问数据库` skill `tables` 实时输出为准。
> 96 不启用:`96-example参考作品授权快照.sql` 已实现但**决定不 apply**(单用户本地不做多租户授权机制,2026-07-30 拍板,见领域索引 §9);库内无该表。
## 主仓一致表(20 张)
| 表 | 来源迁移 | 叠加的 ALTER | 实验角色 |
|---|---|---|---|
| muse_content_work | V1 | — | 参考书/未来新作的作品行(B1 导入) |
| muse_content_chapter | V1 | V26(order 唯一键改 partial) | 分章行(B1 导入) |
| muse_content_block | V1 | V26(同上) | 章正文载体(一章一 block,content_text) |
| muse_content_block_source_attribution | V1 | V30(authorization_snapshot_id→varchar(128)) | 暂空置;C 线来源归因 |
| muse_content_import_task | V1 | — | B1 导入任务审计 |
| muse_content_export_task | V1 | V9(+4 列) | 暂空置;C9 导出 |
| muse_content_command_log | V1 | — | 写命令幂等审计(导入书稿/决定正文候选去留 用) |
| muse_meta_schema | V3 | — | 23 型结构本体行(A3 入库) |
| muse_meta_schema_version | V3 | V10(active 唯一索引) | 型版本(A3:每型 v1 active) |
| muse_meta_field | V3 | — | 逐型字段合同行(A3 入库) |
| muse_meta_visibility_policy | V3 | — | aiContext 控制项落点(A3 入库) |
| muse_meta_protection_node | V3 | V10(+6 列) | 保护节点登记(准备任务上下文/决定正文候选去留/judge) |
| muse_meta_function_chain | V3 | — | 功能链登记(meta/chains 的库内影子,随需入库) |
| muse_knowledge_base | V5 | — | 私有参考书库 + 公共范式库(kb 行) |
| muse_knowledge_document | V5 | — | 参考书原文档案指针(storage_ref 指仓内路径) |
| muse_knowledge_document_version | V5 | — | 暂空置 |
| muse_knowledge_entity | V5 | — | **已确认**知识行(B5 确认后落此) |
| muse_knowledge_relation | V5 | — | 知识行间关系(二轮再启用) |
| muse_knowledge_draft | V5 | V14(两快照列→varchar(128)) | **草稿**知识行(B2 拆书产出落此) |
| muse_knowledge_binding | V5 | V14(同上) | 作品↔库绑定(C3 起用) |
## 实验私货表(`muse/authority/db/ddl/91` + 92 + 93 + 97 + 98 + 104 + 110;94/95 见库内现状)
| 表 | 用途 |
|---|---|
| example_reference_work | 参考书档案(reference_work 型的库内实例载体):作者/章数对账/拆书范围与状态 |
| example_parse_task | 拆书任务状态机(一章一行,scaffold/pattern 两阶段状态)——workflow 断点续跑与幂等 |
| example_parse_scaffold | 逐章脚手架:逆推细纲(3–5%)+ 实体清单 JSONB |
| example_knowledge_embedding | 知识行嵌入边表:vector(1024)+HNSW(余弦),content_hash 幂等,挂 draft 或 entity |
| example_clean_log | 清洗审计(92):每次删除一行(原文/理由/模型/批次),源 txt 不动可回放 |
| example_parse_outline | 窗级大纲聚合(93):5–10万字窗(细纲+正文)→阶段大纲;终检=细纲对账+跨段纵览 |
| example_llm_call | 逐次模型调用明细(97):模型/token/成本/提示词哈希/raw 指针;运行态设施、append-only,不带业务公共列 |
| example_run | 运行注册(98):一次运行一行(run_id 自然键 + 作品/触发/终态),运行级子表挂它 |
| example_run_receipt | 运行身份回执(98):字段平移 runtime ExecutionReceipt ⊕ CAS 身份;append-only;唯一键 (run_id, sample_id, revision) |
| example_quality_result | 质量评判账本(98):检测/评分/审核/实验,绑候选哈希 + 量表版本;append-only;有评判就记录就可见 |
| example_ai_flavor_case | AI 味案例卡当前投影(104):检测命中与创作反馈自动入库;shadow/canonical/rejected/archived 状态;研究限定来源只存 hash/位置/观察 |
| example_ai_flavor_revalidation_batch | AI 味来源重验证批次(104):一次检测/重验证运行的报告哈希、日期、汇总与可用性;append-only |
| example_ai_flavor_revalidation | AI 味逐卡重验证回执(104):verified/stale/unavailable/card_mismatch;append-only,按批次和卡片幂等 |
| example_candidate(105 加列) | 候选表补 `semantic_status`/`semantic_report_sha256`:语义审查结果固化,接受通道 DB 兜底复检(先审后入) |
| example_fact_delta | 事实增量提案(106):六型闭集 DeltaProposal,绑候选哈希 + 正文证据引文;proposed/accepted/rejected/superseded;抽取结果不自动升格 |
| example_fact_ledger | 正典事实账本(106):已批准增量随正文同事务入账,绑正文块 revision 与 command_id;append-only |
| example_projection_run | 投影登记(107):摘要/抽取/embedding 等派生物绑 source_revision+文本哈希;pending/completed/failed/stale;幂等键防重放,失败不冒充完成 |
| example_lesson | 经验升格登记(108):lesson/win 证据绑 run_id+候选哈希;proposed→reviewing→promoted/rejected,DB 触发器禁止跳过评审的自动升格 |
| example_candidate_cas | 候选 CAS 状态链(109):一次运行一条链(DRAFT/CHECKING/PASSED/REJECTED),revision 单调 +1,触发器锁方向闭集与身份不可变 |
| example_voice_baseline | 声音账(110):技能 1 定基线产物,一作品一版本 append + supersede;grounding 门由 建立作品声音档案 脚本强制;修订门禁与前置预防机械消费 |
| example_agent_event | 代理事件账本(113):框架适配器归一后的子代理执行事件流(run/agent/model/tool 九类闭集),append-only;prompt/正文原文在 raw 表 |
## 暂缓建表登记(主仓有、实验现阶段未建;需要时按原样加建)
| 迁移 | 表 | 暂缓原因 |
|---|---|---|
| V9 | muse_content_planning_section / governance_action | C2 规划确认时加建 planning_section |
| V10 | meta 治理 8 表(command/audit/validation/impact/gray/chain_version/chain_slot/chain_node) | 治理命令流实验不镜像;装配入库随阶段二 |
| V14 | knowledge RAGFlow/治理 14 表 | 实验用 pgvector 自持嵌入,不接 RAGFlow |
| V18/V21 | 两张 event_publish_outbox | 事件出箱不镜像 |
| V25/V28/V32/V36/V37 | field_snapshot / asset_use_precheck / block_revision_snapshot / ai_generated_fulltext / task 批次列 | 对应场景(用量投影/市场/版本快照/SSE 瞬态)不在实验闭环内 |
## 实验写入约定
- `tenant_id=1`、`creator='1'`、`owner_user_id=1`(系统主账号)——写入层统一给值;列默认仍照主仓(0/''),不改列。
- 公共范式的全局知识行:`work_id=0` + `scope='global'` + 挂 `kb_type='global'` 的库;参考书私有库 `kb_type='user'`。
- 软删照主仓:`deleted=TRUE`,不物理删。**例外**:meta 种子行(`muse_meta_field`)幂等重跑=删旧插新(种子演练场景,豁免软删)。
- meta 字段行 sort_order 段位约定:1–9 基础字段,11 起特有字段。
- 双轨对应:B2 产出全落 `muse_knowledge_draft(status='pending')`;B5 管理员确认(仅创始人触发)= draft 翻 `confirmed` + 落 `muse_knowledge_entity(status='active')`;丢弃= draft 翻 `ignored`。
## 知识卡查询速查(实际数据约定)
> 本节是「现在库里实际长什么样、怎么查」,与上节「应该怎么建」互补。数字快照 2026-07-27。
1. **查公共范式卡,型藏在中文键里。** 公共范式的型不在 `draft_type` 列,而在 `draft_payload->>'型'`(中文键「型」)。查某型:
```sql
SELECT count(*) FROM muse_knowledge_draft
WHERE work_id=0 AND deleted=false AND draft_payload->>'型'='craft';
```
五型分布(共 9269 张):trope 2300 / scene_pattern 2217 / craft 1892 / emotion 1549 / combat 1311。
2. **`draft_type` 列无区分力。** 全部活卡(19291 张)`draft_type` 恒为 `entity`,不能拿它筛型、也不能筛公共/作品。
3. **公共 vs 作品,看 `work_id` + payload「目标库」。** `work_id=0` + `目标库="公共范式库"` = 公共;`work_id=具体书`(深空之影=8)+ `目标库="本书作品库"` = 作品级。注意 `work_id=0` 是数字 0,不是 NULL。
4. **payload 型键有两套约定(坑)。** 公共范式卡用中文键 `型`(trope/craft…);作品级卡用英文键 `type`(character/item/faction…)。查作品卡型分布要用 `draft_payload->>'type'`。深空之影 991 张作品卡:character 527 / item 181 / character_relation 145 / location 89 / faction 42 / event 5 / power_system 2。
5. **style(文风画像)/pacing(节奏画像)已注册但 0 张卡。** 23 型 schema 全部入库且有激活版本,但拆书只抽五型(`拆解书稿` 的 `PATTERN_TYPES` 写死)。style/pacing 是**书级画像**(整本书出一张),不属窗级范式五型管线,接入需另做书级画像抽取步骤,不要在五型枚举里硬加。
- **作品级画像存储约定(创始人 2026-07-27 拍板)**:`work_id=8` + `目标库="本书作品库"` + 型键用**英文 `type`**(与作品卡一致,不用公共卡的中文 `型`),借此与 `work_id=0` 公共范式库隔离,并把两套键约定往统一靠。
6. **双轨后半段未跑:entity 表、binding 表当前都是空的。** `muse_knowledge_entity`、`muse_knowledge_binding` 均 0 行,所有卡 `status='pending'`。因此检索的「作品面」(仅已确认+已绑定)当前召不回东西,只有「管理面 admin」(含草稿)可用。公共卡与深空作品卡均已 100% 嵌入(9269/9269、991/991),嵌入不是瓶颈。
## 待应用实验表
| DDL | 表 | 用途 | 当前状态 |
|---|---|---|---|
| 96 | example_reference_authorization_snapshot | 参考作品原文件版本对应的不可变用途授权快照;同作品快照版本唯一,禁止 UPDATE/DELETE | **不启用**(单用户本地不做多租户授权,2026-07-30 拍板,见领域索引 §9);DDL 留存不 apply |
## 本地运行态账本(data/muse.db,SQLite)
2026-08-28 存储裁决起,默认派发与单机工作面的运行态数据落本地单文件 SQLite(`data/muse.db`,gitignore)。它不产生 Canonical,与 PG 正式权威冲突时以 PG 为准(权威层级见 [08-数据权威与可视化领域](../../sot/domains/08-数据权威与可视化领域.md) §2)。schema 变更必须走 `data/migrations/` 版量化新迁移文件;连接统一走 `muse.store.connect`,本仓工作面写函数内聚事务。
| 表 | 迁移来源 | 用途 |
|---|---|---|
| runs | 0001_init | 默认派发运行留痕(kind/input_json/output_text/meta_json/skill_set_hash);回放取单条同输入重跑 diff;`kind='user_decision'` 行是 PG 决策回填的锚点 |
| events | 0001_init | 运行事件流(run_id+seq,kind/role/tool/payload),append-only |
| reviews | 0001_init | 本地人审动作(adopt/revise/reject,含 reviewer 与理由);web 工作台写面闭集之一 |
| revisions | 0001_init | 人审改写修订 diff(before/after 文本留痕) |
| cards | 0001_init | 卡片与向量镜像(kind/title/payload_json/embedding blob/work_id/source_path/content_hash);`kind='embedding'` 行是 PG 嵌入边表指针迁移(draft_id/entity_id),不带正文内容 |
| lessons | 0002_lessons | lesson 本地状态机(proposed→promoted/rejected;source_run_ids/source_review_ids 双证据绑定,DB CHECK 强制非空) |
| snapshots | 0003_snapshots | 冻结快照(kind/payload_json),回放整取 |
| schema_migrations | 迁移框架 | 已应用迁移版本登记 |