Skip to main content

total-pipe-deck

从论文 PDF 到研究汇报 PPTX 的证据—故事—规划—编译—原生验收流水线。保留 PaperWorkflow、Story Planner、pwf2rpa 与 RPA 的科研职责,Deck IR 之后统一进入 Deck Compiler v3。

Ir para a instalação

Informações da origem

Repositório
simcrq/Total-pipe-v2-release
Última atividade na origem
29 de setembro de 2026 às 12:39
Idioma detectado do SKILL.md
chinês
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
total-pipe-deck
description
从论文 PDF 到研究汇报 PPTX 的证据—故事—规划—编译—原生验收流水线。保留 PaperWorkflow、Story Planner、pwf2rpa 与 RPA 的科研职责,Deck IR 之后统一进入 Deck Compiler v3。
# Total-pipe Deck Compiler v3 主链固定为: ```text PDF → PaperWorkflow → Story Planner subagent → [DesignIntentPlanner] → pwf2rpa → RPA planning → canonical deck_ir.json → v26 layout proposals + compiler fallback → OfficeCLI → candidate.pptx → staging.pptx → structural QA + PowerPoint native PDF → qa_report.json → final.pptx ``` 从 `deck_ir.json` 开始只有一个页面事实来源。`deck_plan.json`、 `visual_manifest.json`、`plan_to_layout.json` 与 QA expectation 只能由编译器派生, 下游不得回写或改变语义。禁止新增逐论文 adapter。 ## 1. PaperWorkflow 对论文生成 schema v4 的 `workflow.json`、`document.manifest.json` 和 `evidence.md`。下游优先引用 `EV####`;当 `synthesis_readiness` 为 `review` 或 `blocked` 时,保留门禁原因,不能用摘要覆盖。 首轮运行前先按论文主题写检索 `queries`,有定制问题时省略 `include_default_queries` 即只用定制问题;需要混用通用问题才显式设为 `true`。 主文提到补充材料而文件名无法自动配对时,在 PaperWorkflow 调用中传 `supplementary_paths` 的实际 PDF/Markdown 路径。此配对只证明来源在本地, 补充材料门禁仍为 `review`。先将其 OCR/Markdown 内容合并到分析输入,再设置 `supplementary_content_included=true`;不能只因文件存在就宣称完整证据审查通过。 分别检查 `quality_audit` 与 `synthesis_readiness` 六项门禁:前者表示 OCR/文本捕获, 不能用 `quality_audit.ready` 代替科学综合的 `synthesis_readiness.ready`。 ## 2. Story Planner 硬门禁 拿到 `workflow.json` 后,必须先问用户选择当前可用的高能力模型。不得默认选择, 不得由主代理自行写 Story。用户选择后,用该模型的独立 subagent,reasoning 至少 `high`,生成 5–8 个节点的 `story_plan.json`。 先调用 `pwf2rpa_story_prompt` 生成证据约束的提示包。未传 `out_path` 时,工具在 `workflow.json` 旁写出 `workflow.story_prompt.json`;也可用绝对路径 `out_path` 指定本次输出目录。工具始终只返回小回执;子代理须读取 该文件中的完整 `instructions`、`evidence_store` 和 `output_shape`。调用时原样传入 用户选定的 `model`、`reasoning_effort` 与 `selected_by_user=true`。若当前 MCP 服务调用超时,则在 `pwf2rpa` 目录直接运行同一确定性生成器: ```bash python -m pwf2rpa <workflow.json> \ --make-story-prompt <story_prompt.json> \ --story-model <用户选择> --story-reasoning <用户选择的强度> \ --model-selected-by-user ``` 提示包生成不调用模型;模型只在独立 Story Planner 子代理中使用。生成器代码位于本 工作区的 `pwf2rpa`,插件 MCP 若已启动,需重启该服务才能读取新的工具 schema。 每个节点保留以下四个必需字段: ```json {"question":"...","answer":"...","evidence":["EV0001"],"next":"..."} ``` 仅在一句 `answer` 会丢失必须保留的连续内容时,可选加 `key_points` 字符串数组; 不要求每个节点都有,也不限制条数。`answer` 是摘要,`key_points` 是要传给 RPA 的细节。 顶层必须记录: ```json {"planner":{"mode":"subagent","model":"<用户选择>", "reasoning_effort":"high","selected_by_user":true}} ``` 若确定性校验失败,把错误和原证据退回同一个 subagent 修订;主代理不能静默改写 科学故事。 ## 2a. DesignIntentPlanner(可选) 若四条 Story `key_points` 具有明确的步骤关系,让独立的 DesignIntentPlanner 在 Story 完成后写 `design_intent.json`: ```json {"slides":[{"story_node_index":2,"relation":"process","orientation":"vertical","emphasis":4}]} ``` 索引从 1 开始;`emphasis` 可省略。首版只支持恰好四条要点的纵向 `process`。只声明关系和强调,不写 bbox、`x/y/w/h`、Layout 或 Slot, 也不改写 Story 的 `question/answer/evidence/next`。没有明确流程关系时 省略该文件,保留旧流程。不要新增整套 deck 风格 pass。 ## 3. pwf2rpa 与 RPA 规划 用严格模式把 Story 转为 RPA 输入: ```bash cd Total-pipe/pwf2rpa PYTHONPATH=. python -m pwf2rpa <workflow.json> \ --story <story_plan.json> \ --design-intent <design_intent.json> \ --story-model <用户选择> --story-reasoning high \ --model-selected-by-user --strict --out <rpa_input.json> ``` 只有提供设计意图时才传 `--design-intent`;它必须与 `--story` 同用。 `pwf2rpa_check` / `pwf2rpa_convert` 的同名 MCP 输入为可选 `design_intent_path`,且必须同时给 `story_path`。转换器保留四条原文, 在 Brief metadata 写关系,并设 `allow_auto_split=false`。 随后运行 RPA: ```bash node research-ppt-assistant/server/cli.mjs normalize-content \ --file <rpa_input.json> --detail-level full > <normalized_content.json> node research-ppt-assistant/server/cli.mjs plan --file <rpa_input.json> \ --presentation-type group_meeting --slide-count <N> --detail-level standard > <deck_plan.json> node research-ppt-assistant/server/cli.mjs validate-deck --file <validation_input.json> \ --detail-level compact ``` 门禁分别要求 `normalize-content status=valid`、`pipeline_status=plan_complete`、 `plan status=success/adapted` 且 `unplanned_slide_briefs` 为空,以及 `validate-deck status=valid`。`adapted` 时逐条检查 `adaptation_log`,正文、 `key_points`、结论和限制不得出现 `truncate_text`。RPA 负责 Layout、Slot、容量和 `layout_contract`;DesignIntentPlanner 只负责显式信息关系。RPA 不输出最终 bbox。 `validation_input.json` 必须包含本轮计划的 `slides` 和未被修订覆盖的 `normalized_content.json`(作为 `content_model`)。`KEY_POINTS_LOST` 是错误, 需要恢复原文及顺序,不能通过修改或删去源 `content_model` 来消除。MCP 精简返回 会保留完整 `slides[].key_points`,但其摘要、截短的 slot 文本和设计意图不能代替 `rpa_input.json` 或完整的内容模型。每次 RPA 修订都从这些原始文件重新核对。 转换后先核对整套 Brief 标题的展示语言。pwf2rpa 会根据 Story 主体语言生成默认 结尾标题:英文 Story 用 `Conclusions and scope`,中文 Story 用 `结论与边界`; `title_chars` 自动按实际标题计算。若语言仍不符合演示要求,先修订 Story 并重跑转换, 不要只手改 `rpa_input.json` 的标题而留下旧字符数。 有流程意图时还要核对 `slide.design_ir.visual_topology` 和 `slide.layout_contract`:后者记录实际 `layout_id`、绑定四条原文的 `slot_id`、顺序与可选强调索引。`VISUAL_INTENT_NOT_BOUND` 和 `VISUAL_INTENT_GROUP_SPLIT` 表示硬关系未满足,须重规划;不能删改 要点或自动拆散流程组。 `SOURCE_TEXT_NOT_BOUND` 表示原始 `body` 或要点未完整进入 Slot Binding,是硬错误。 总结页仍须使用 summary 版式;容量不足时应保持 `needs_replan`,由 Story/RPA 拆页或调整内容结构,不能回退到 literature 等错误类别来凑齐页数。 `max_chars` 与总 `text_chars` 只是按码点计算的粗筛,不区分英文单词、字宽和真实 换行。RPA 会按槽宽、字号及中英文字符宽度估计换行并报告 `SLOT_WRAP_RISK`; 该估计也不能代替实际渲染检查。`ROLE_MISMATCH` 只比较版式展示角色, 不把 Evidence 的 `primary_claim / primary_evidence` 当作版式角色。 长多段正文应在 Slide Brief 中保留为 `key_points` / `secondary_messages`,或在 `body` 中保留明确换行。`evidence_texts` 保持为原始证据,不自动充当正文。 RPA 的 Design Compiler 会在无主视觉、显示长度合适时输出 `design_ir.text_flow.mode=distributed_arrow_list`,并优先选择 `structured_text / distributed_list_panel`。Story Planner 不决定该版式。 ## 4. Canonical Deck IR 把通过的 Story/RPA 规划映射到 `schemas/deck-ir.schema.json`。Deck IR 分为: - `semantic`:title、purpose、takeaway、evidence_refs、caveats、speaker_notes。 - `composition`:archetype、blocks、figure_refs。 - `presentation`:theme tokens 与稳定组件变体。 整套先选择同一 frame:可在 Deck IR 顶层写 `presentation.frame_variant` 为 `default` 或 `spacious`。若省略,只要某页请求 spacious,编译器整套采用 spacious;不要让短中文 内容触发逐页随意切换。将 RPA 的同级步骤按阅读顺序放入 `figure-parameters` 的 3–4 个 blocks,并配一张 figure;这一 archetype 与顺序就是轻量的节奏契约,不需要模型写 bbox。 v26 会将组内间距校正为 24 px,容量允许时等高;若文字较长则保持等距并分配足够高度。 图注置于图像下方 12 px,所有校正后重新执行容量与碰撞检查。实际 frame 与逐页 `MODEL_PROPOSAL / PACKING_FALLBACK / COMPILER_FALLBACK` 在 `layout.json`、 `layout_provider.json` 和 `derived/plan_to_layout.json` 中查看。 若 RPA 给出流程 `layout_contract`,先将四条完整原文按顺序落入四个 实际 block,再写 `composition.visual_intent`: ```json {"relation":"process","members":["b1","b2","b3","b4"], "orientation":"vertical","preserve_order":true,"emphasis":"b4"} ``` `members` 必须与 `composition.blocks[].id` 的实际顺序一致;`emphasis` 可省略,存在时由 RPA `emphasis_index` 映射为真实 block ID。编译器只接受 四个无独立 label 的 block:有一张图时用 `figure-parameters`,无图时用 `process-flow`;其他形态以 `VISUAL_INTENT_INVALID` 阻断。v26 只建议几何;编译器决定文字适配、 等距、编号连线和最终合法性。容量不足回到 Story/RPA 重规划,硬流程组不可 自动拆页。 没有显式意图时,如果 RPA 规划的是单图四步加工路径,保留四个无独立 `label` 的有序 block:首项 `method`、中间包含 `process-step`、末项 `result`。编译器会在文本列增加 1–4 编号和 纵向连线,让步骤关系可见;编号所需的 56 px 已计入容量检查。不要为触发样式而改写 科研内容或强行把非流程页标为 `method/result`。 从 RPA 映射到 Deck IR 时,保留这些段落边界,并把 `design_ir.text_flow.mode` 复制到对应 block 的 `text_flow`。block 也可使用 `auto`: 编译器只把 3–5 个明确段落、总显示长度不少于 72 单位且单段不超过 120 单位的正文 排为浅色矩形容器中的等高 `➢` 条目(汉字按 2 单位计)。单个长段落、公式、表格、 图注和参考文献保持原样;用 `plain` 禁止转换,用 `distributed_arrow_list` 显式请求。 实际触发结果写入编译后 slide 的 `adaptation_log`。 映射前逐条核对 `rpa_input.json` 中的 `key_points`。对应科学内容必须按原顺序 进入 Deck IR 的 `composition.blocks[].text` 或 `semantic.speaker_notes`,不能只留下 `takeaway`、缩写后的 slot 文本或 `design_ir.message.secondary`。如果普通页面容量不足,拆页并保留全部细节;硬流程组先重规划,不能静默拆散;改写科学内容需先明确修订 Story/Brief,再重新运行 RPA。 禁止在 IR 中写最终 `x/y/w/h`。首代目录只使用 `deck_compiler/catalog.py` 中的稳定 archetype/component;内容超出容量时由编译器返回 `SPLIT_REQUIRED`,再回 Story/RPA 拆页。不得无限缩字号。 ## 5. Agent 直接调用 v3 在本实验目录运行;MCP 入口为 `deck_compiler/mcp_server.py`,配置见根目录 `.mcp.json`。 该服务复用 pwf2rpa 协议和原有工具,同时新增: - `totalpipe_compile(ir, out, layout_provider="v26")`:编译布局,默认 v26;返回布局与 QA,不生成 PPTX。 - `totalpipe_build(ir, out, layout_provider="v26", officecli="officecli")`:通过 OfficeCLI 生成 PPTX 候选和 QA。 - `totalpipe_review(out, officecli="officecli")`:按需检查现有构建并导出逐页截图、schema 与 issues。 `ir` 和 `out` 使用绝对路径。默认使用 v26;模型不支持或候选不通过时由现有布局逻辑回退,详情见 `layout_provider.json`。模型只提议 bbox,不改写科研内容。 MCP 未加载时,使用 `.mcp.json` 中的 Python,工作目录为本项目根目录: ```powershell python -m deck_compiler build --ir <absolute-deck_ir.json> --out <absolute-build-dir> --layout-provider v26 --officecli <officecli-path> --skip-native ``` 一般生成任务完成于候选 PPTX 与 QA;返回 artifact 路径、FAIL/WARNING/REVIEW 和模型回退情况。FAIL 必须处理;不能把候选称作 final。不要默认反复渲染或制作额外验收报告。 用户要求正式 final 时,再按 `docs/deck-compiler-v2.md` 中原有原生验收与 promote 流程执行。OfficeCLI 截图不伪装为 PowerPoint UI 眼检。自动 issues 保留,不因截图观感而清零。 OfficeCLI `view issues` 的 `Text overflow` 判断不准确,可能误报或漏报。看到此项时 保留原始 issue,并查看实际 PPTX 页面或按需用 `totalpipe_review` 定位;正式验收 仍以 PowerPoint 逐页眼检为准。不要为了消除该提示而压缩、删改 `key_points`。 确认真实溢出后调整布局或拆页,再重新生成和检查。
Ver no GitHub