{"id":"be926ab5-4c7d-45f2-9de2-7ca0e08790ac","entityType":"agent","slug":"clawhub-taogeo-taohtml","name":"TaoHtml","canonicalUrl":"https://www.xpersona.co/agent/clawhub-taogeo-taohtml","canonicalPath":"/agent/clawhub-taogeo-taohtml","generatedAt":"2026-10-11T14:14:58.758Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":null},"description":"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套 Skill: TaoHtml Owner: taogeo Summary: 把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套 Tags: latest:0.6.0 Version history: v0.6.0 | 2026-08-21T14:17:08.716Z | user v0.6","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17f0a449ddqjj951wsgnfdzch884faf:taohtml","sourceUrl":"https://clawhub.ai/taogeo/taohtml","homepage":"https://clawhub.ai/taogeo/skills/taohtml","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/taogeo/taohtml","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/taogeo/skills/taohtml","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":null},"stars":null,"forks":null,"downloads":1083,"packageName":null,"latestVersion":"0.6.0","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:50:42.303Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T10:50:42.368Z","lastCrawledAt":"2026-10-11T10:50:42.303Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T10:50:42.303Z","lastVerifiedAt":null,"highlights":[{"version":"0.6.0","createdAt":"2026-08-21T14:17:08.716Z","changelog":"## v0.6.0 变更说明 ### 新增 新增 4 套内置视觉系统： - 深色数据面板 - 暖色品牌叙事 - 极简产品留白 - 正式政企蓝白 内置视觉系统由原来的 4 套扩展为 8 套，覆盖路演、咨询、企业汇报、数据分析、产品发布、品牌叙事和政企报告等不同画面方向。 ### 同步更新 - Report IR 主题配置同步至 8 套视觉系统 - Compiler、主题路由和授权检查同步更新 - 项目交接与主题校验规则同步更新 - 更新 README、工作流说明和版本记录 - 新增 8 套视觉系统对比样张 - 更新 Skill Hub 与 Marketplace 打包脚本 ### 质量验证 - 141 项自动化测试全部通过 - Skill 结构校验通过 - 8 套主题均完成离线浏览器渲染检查 - 每套主题包含 5 页固定内容样张 - 未引入远程资源依赖 本版本不改变原有报告流程、企业模板保真、VI 标准图和 HTML Runtime 能力。","fileCount":97,"zipByteSize":474808},{"version":"0.5.3","createdAt":"2026-08-10T04:30:42.300Z","changelog":"Prioritizes template or reference-image intake, centers and localizes runtime controls, and synchronizes the supported Report IR and Compiler route.","fileCount":100,"zipByteSize":820838},{"version":"0.5.1","createdAt":"2026-08-03T08:03:59.071Z","changelog":"Prioritizes template and image references before built-in visual systems. A supplied reference now leads to a VI standards board and project theme; built-in themes remain the fallback.","fileCount":80,"zipByteSize":442114},{"version":"0.5.0","createdAt":"2026-07-21T10:39:07.403Z","changelog":"TaoHtml v0.5.0 Public Beta: nine workflow contracts, portable handoff, layered presentation navigation, fullscreen control visibility, safer source binding and packaging. Direct HTML remains default; nine real Agent runs and human visual acceptance remain incomplete; Report IR/Compiler remain experimental_pilot_only.","fileCount":80,"zipByteSize":440858},{"version":"0.4.0","createdAt":"2026-07-17T08:00:58.204Z","changelog":"Add the lightweight offline content editor for report text, image replacement, crop focus, undo/redo, refresh recovery, and new-HTML export.","fileCount":54,"zipByteSize":242546},{"version":"0.3.3","createdAt":"2026-07-17T05:27:22.314Z","changelog":"Add reusable enterprise template profiles with exact matching, temporary override, permanent upgrade, rollback, and complete transfer.","fileCount":50,"zipByteSize":221471},{"version":"0.3.2","createdAt":"2026-07-17T02:50:48.061Z","changelog":"Initial ClawHub release aligned with TaoHtml v0.3.2. Includes the complete references, runtime scripts, four built-in visual systems, and reference-based VI/theme workflows.","fileCount":48,"zipByteSize":193977},{"version":"0.1.0","createdAt":"2026-07-17T02:40:53.891Z","changelog":"- Initial release of TaoHtml skill. - Converts initial ideas, Word/PDF files, or existing slides/HTML into polished 16:9 offline HTML reports and presentation-ready decks. - Offers four visual systems or customizable reference-based themes for high-design output. - Provides structured intake workflow with clear entry routes for ideas, documents, or slides, and guides users through content, structure, and visual decisions. - Produces portable HTML with integrated QA and a verification handoff process.","fileCount":48,"zipByteSize":193974}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f0a449ddqjj951wsgnfdzch884faf:taohtml","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:14:58.753Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-taogeo-taohtml/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":null},"readme":"Skill: TaoHtml\n\nOwner: taogeo\n\nSummary: 把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套\n\nTags: latest:0.6.0\n\nVersion history:\n\nv0.6.0 | 2026-08-21T14:17:08.716Z | user\n\n## v0.6.0 变更说明\n\n### 新增\n\n新增 4 套内置视觉系统：\n\n- 深色数据面板\n- 暖色品牌叙事\n- 极简产品留白\n- 正式政企蓝白\n\n内置视觉系统由原来的 4 套扩展为 8 套，覆盖路演、咨询、企业汇报、数据分析、产品发布、品牌叙事和政企报告等不同画面方向。\n\n### 同步更新\n\n- Report IR 主题配置同步至 8 套视觉系统\n- Compiler、主题路由和授权检查同步更新\n- 项目交接与主题校验规则同步更新\n- 更新 README、工作流说明和版本记录\n- 新增 8 套视觉系统对比样张\n- 更新 Skill Hub 与 Marketplace 打包脚本\n\n### 质量验证\n\n- 141 项自动化测试全部通过\n- Skill 结构校验通过\n- 8 套主题均完成离线浏览器渲染检查\n- 每套主题包含 5 页固定内容样张\n- 未引入远程资源依赖\n\n本版本不改变原有报告流程、企业模板保真、VI 标准图和 HTML Runtime 能力。\n\nv0.5.3 | 2026-08-10T04:30:42.300Z | user\n\nPrioritizes template or reference-image intake, centers and localizes runtime controls, and synchronizes the supported Report IR and Compiler route.\n\nv0.5.1 | 2026-08-03T08:03:59.071Z | user\n\nPrioritizes template and image references before built-in visual systems. A supplied reference now leads to a VI standards board and project theme; built-in themes remain the fallback.\n\nv0.5.0 | 2026-07-21T10:39:07.403Z | user\n\nTaoHtml v0.5.0 Public Beta: nine workflow contracts, portable handoff, layered presentation navigation, fullscreen control visibility, safer source binding and packaging. Direct HTML remains default; nine real Agent runs and human visual acceptance remain incomplete; Report IR/Compiler remain experimental_pilot_only.\n\nv0.4.0 | 2026-07-17T08:00:58.204Z | user\n\nAdd the lightweight offline content editor for report text, image replacement, crop focus, undo/redo, refresh recovery, and new-HTML export.\n\nv0.3.3 | 2026-07-17T05:27:22.314Z | user\n\nAdd reusable enterprise template profiles with exact matching, temporary override, permanent upgrade, rollback, and complete transfer.\n\nv0.3.2 | 2026-07-17T02:50:48.061Z | user\n\nInitial ClawHub release aligned with TaoHtml v0.3.2. Includes the complete references, runtime scripts, four built-in visual systems, and reference-based VI/theme workflows.\n\nv0.1.0 | 2026-07-17T02:40:53.891Z | auto\n\n- Initial release of TaoHtml skill.\n- Converts initial ideas, Word/PDF files, or existing slides/HTML into polished 16:9 offline HTML reports and presentation-ready decks.\n- Offers four visual systems or customizable reference-based themes for high-design output.\n- Provides structured intake workflow with clear entry routes for ideas, documents, or slides, and guides users through content, structure, and visual decisions.\n- Produces portable HTML with integrated QA and a verification handoff process.\n\nArchive index:\n\nArchive v0.6.0: 97 files, 474808 bytes\n\nFiles: agents/openai.yaml (437b), assets/html-deck-template/assets/runtime/taohtml-editor.css (3545b), assets/html-deck-template/assets/runtime/taohtml-editor.js (30011b), assets/html-deck-template/assets/source-pages/page-01.svg (2314b), assets/html-deck-template/index.html (25572b), assets/reference-vi-board/template.html (28496b), assets/report-ir/report-ir.css (19601b), assets/report-ir/theme-profiles.json (3303b), assets/visual-systems/black-white-fluorescent-cards/preview.svg (1740b), assets/visual-systems/black-white-fluorescent-cards/templates.html (4229b), assets/visual-systems/black-white-fluorescent-cards/theme.css (6420b), assets/visual-systems/black-white-fluorescent-cards/theme.json (3136b), assets/visual-systems/corporate-annual-report/preview.svg (1844b), assets/visual-systems/corporate-annual-report/templates.html (4322b), assets/visual-systems/corporate-annual-report/theme.css (7683b), assets/visual-systems/corporate-annual-report/theme.json (3377b), assets/visual-systems/deep-data-dashboard/preview.svg (1290b), assets/visual-systems/deep-data-dashboard/templates.html (3941b), assets/visual-systems/deep-data-dashboard/theme.css (5871b), assets/visual-systems/deep-data-dashboard/theme.json (3259b), assets/visual-systems/editorial-collage/preview.svg (1939b), assets/visual-systems/editorial-collage/templates.html (4395b), assets/visual-systems/editorial-collage/theme.css (8714b), assets/visual-systems/editorial-collage/theme.json (3515b), assets/visual-systems/formal-government-bluewhite/preview.svg (1288b), assets/visual-systems/formal-government-bluewhite/templates.html (3943b), assets/visual-systems/formal-government-bluewhite/theme.css (5834b), assets/visual-systems/formal-government-bluewhite/theme.json (3227b), assets/visual-systems/minimal-product-whitespace/preview.svg (1196b), assets/visual-systems/minimal-product-whitespace/templates.html (3932b), assets/visual-systems/minimal-product-whitespace/theme.css (5814b), assets/visual-systems/minimal-product-whitespace/theme.json (3186b), assets/visual-systems/rigorous-consulting-report/preview.svg (1849b), assets/visual-systems/rigorous-consulting-report/templates.html (4297b), assets/visual-systems/rigorous-consulting-report/theme.css (6812b), assets/visual-systems/rigorous-consulting-report/theme.json (3362b), assets/visual-systems/warm-brand-narrative/preview.svg (1237b), assets/visual-systems/warm-brand-narrative/templates.html (3924b), assets/visual-systems/warm-brand-narrative/theme.css (5615b), assets/visual-systems/warm-brand-narrative/theme.json (3237b), references/agent-workflow.md (38511b), references/content-editor.md (9604b), references/design-brief-template.md (14369b), references/design-quality-rubric.md (7925b), references/environment-preflight.md (5033b), references/intake-workflow.md (43615b), references/layout-pattern-library.md (7476b), references/material-understanding.md (8302b), references/process-playbook.md (31556b), references/production-authorization.md (12528b), references/profile-memory.md (12015b), references/project-handoff-schema.md (19857b), references/project-handoff.md (15228b), references/project-handoff.schema.json (24805b), references/project-theme-compiler.md (21148b), references/report-ir-pilot-workflow.md (7152b), references/report-ir-runtime-patch.schema.json (3675b), references/report-ir-v1.md (12156b), references/report-ir-v1.schema.json (20465b), references/runtime-contract.md (9929b), references/static-reference-vi.md (28185b), references/visual-systems.md (12371b), references/workflow-profile-brand-communication-editorial-publishing.md (22081b), references/workflow-profile-contract.md (16869b), references/workflow-profile-formal-submission-writing.md (17487b), references/workflow-profile-live-presentation-persuasion.md (14207b), references/workflow-profile-periodic-operations-reporting.md (19774b), references/workflow-profile-project-lifecycle-reporting.md (19937b), references/workflow-profile-proposal-planning-decision.md (14016b), references/workflow-profile-research-analysis-argumentation.md (19318b), references/workflow-profile-rule-response-application-defense.md (22645b), references/workflow-profile-teaching-training-knowledge-transfer.md (19874b), references/workflow-profiles.md (2871b), requirements.txt (69b), scripts/apply_report_ir_patch.py (23852b), scripts/build_contact_sheet.py (2368b), scripts/check_assets.py (5073b), scripts/check_editor_runtime.py (38940b), scripts/check_html_deck.py (55802b), scripts/check_production_authorization.py (27197b)\n\nFile v0.6.0:SKILL.md\n\n---\nname: \"taohtml\"\nslug: \"taohtml\"\nversion: \"0.6.0\"\ndisplayName: \"TaoHtml\"\nsummary: \"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。\"\ndescription: \"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套标准制作完整报告。企业模板还可以保留 Logo、页眉、页脚等固定品牌元素。如果你没有明确的参考风格，可以直接选择八套内置视觉系统：黑白荧光卡片、严谨咨询报告、稳重企业年报、杂志图文拼贴、深色数据面板、暖色品牌叙事、极简产品留白、正式政企蓝白，由 TaoHtml 根据报告内容完成重构与设计。\"\ntags: [\"HTML演示\", \"PPT转换\", \"报告设计\", \"视觉系统\", \"企业模板保真\"]\ncategory: \"content-creation\"\nlicense: \"MIT\"\nhomepage: \"https://github.com/TaoGEO/TaoHtml\"\n---\n# TaoHtml\n\n把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。\n\n如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。\n\n如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套标准制作完整报告。企业模板还可以保留 Logo、页眉、页脚等固定品牌元素。\n\n如果你没有明确的参考风格，可以直接选择八套内置视觉系统：黑白荧光卡片、严谨咨询报告、稳重企业年报、杂志图文拼贴、深色数据面板、暖色品牌叙事、极简产品留白、正式政企蓝白，由 TaoHtml 根据报告内容完成重构与设计。\n\n同一企业的模板第一次确认并通过主题验证后，可以保存为显式企业档案。后续项目精确匹配该企业时默认沿用 active version，不再重复读取参考图或生成同一份 VI；档案可检查、可回退、可导出导入，不依赖模型的隐式记忆。\n\n当前版本：[`0.6.0`](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.6.0) · [完整更新历史](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md) · [工作流说明](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/docs/workflow.md)\n\n> TaoHtml 的正式能力包括 Direct HTML 制作、八套内置视觉系统、静态参考到 VI 设计标准图、企业模板保真，以及 Report IR / Compiler 的可验证、可重新编译工程路线。Direct HTML 仍是默认生产路线；Report IR 仅在用户明确请求或项目明确授权时启用，不会被静默切换。高级 Composition Graph、非单调页面状态、增量编译、双屏演讲等未实现能力不在当前能力承诺内。\n\n## 核心能力\n\n- 支持只有想法、Word / PDF、已有 PPT / HTML 三类入口；有明确绑定材料的路线先确认当前材料理解，idea-only 不增加虚假的材料确认门。\n- 每次新调用先建立本次入口：没有明确主题或绑定材料时只显示三个入口；短回答只绑定当前对话中 Agent 刚展示的选项，工作区旧文件不会被自动当成本次输入。\n- 一次只补一个真正会改变设计结果的决策，并保持明确的提问上限；转换型报告还会核对真实、可执行的行动入口。\n- 在正式制作前确认《报告设计简报》，记录受众、目标、结构、证据、视觉来源和必要边界。\n- 按业务目标路由到九条按需加载的生产路径，覆盖规范报送、研究分析、周期经营、方案决策、现场演讲、教学培训、项目全过程、品牌编辑和规则响应；路径共用同一套材料、设计、授权、Runtime 与交付门禁。\n- 内置八套可执行视觉系统，不只更换配色，还会改变构图、层级、组件、图片、图表、证据和动效语法。\n- 支持“参考风格重构”和“企业模板保真”：先生成可查看的 VI 设计标准图，确认后再编译项目专用主题。\n- 企业模板保真结果可保存到 `${TAOHTML_HOME:-~/.taohtml}` 的版本化企业档案；同一企业后续项目自动绑定 active version，支持本次临时更换、永久升级、回退、归档和严格 export/import。\n- 共享 HTML Runtime 支持阅读 / 演讲模式、分步呈现、整页导航、页状态保存、全屏和页码；“更多 → 编辑模式”可在同一会话中修订报告文字、替换图片、调整裁切焦点并导出新 HTML。\n- 采用“报告产出优先”合同：普通信息缺口可以形成创作性补全，先交付可用报告，再附结构化《待核实内容清单》；真实来源和高风险事实继续失败关闭。\n- 使用本地资产和相对路径，并执行离线资源检查、浏览器 QA、截图总览和 zip 打包。\n- 按实际能力运行 `core / pdf / static-reference / browser` 环境预检；客户参考链会真实启动 Chromium 并截取最小截图，失败时在读取素材前停止。\n- 用当前任务授权状态区分材料摘要、VI 与设计简报等确认产物，并核对任务本地文件的当前 SHA-256；适用确认未完成或确认后文件已改变时，机器门禁禁止正式 HTML、浏览器 QA 和交付。\n- 浏览器 QA 会拒绝演讲模式零受控步骤、页面未铺满实际画布，以及普通 HTML / SVG 图表文字碰撞；分离的 HTML 正常流布局盒中的浅层字体度量交叠会单独记录，阅读模式可以合理地没有分步动效。\n\n## 八套内置视觉系统\n\n八套系统的对比使用完全相同的合成内容，各展示 5 页、共 40 页，便于直接比较完整的版式语言，而不是被选题差异干扰；以下表格直接说明各自的画面特征。\n\n| 视觉系统 | 适合的画面语言 |\n|---|---|\n| **黑白荧光卡片** | 高反差、模块卡片和大标题，适合路演与强表达 |\n| **严谨咨询报告** | 白底、结论式标题、高信息密度和严谨图表 |\n| **稳重企业年报** | 稳重配色、图文平衡、品牌化版面和适度留白 |\n| **杂志图文拼贴** | 图片切片、错位排版、大字标题和编辑杂志感 |\n| **深色数据面板** | 深色底、数据图表、系统界面和指标层级 |\n| **暖色品牌叙事** | 暖白、品牌色、叙事大图和呼吸感留白 |\n| **极简产品留白** | 极简大留白、产品界面和逻辑拆解 |\n| **正式政企蓝白** | 蓝白秩序、正式信息层级和结构化版面 |\n\n## 使用客户参考图\n\n这两条路线共享“静态参考 → VI 设计标准图 → 当前版本确认 → 项目专用主题”的确认链，但保真目标不同。以下说明基于仓库自制、无真实品牌的合成样例。\n\n项目专用主题不是第五套内置主题，默认只服务于当前项目；只有经过企业模板保真确认、hash-bound handoff、编译和 loader 验证的结果，才能另存为企业档案版本。两种路线都只承诺截图中可见效果：不重绘 Logo，内容进入可编辑安全区；动效由 Runtime 和报告任务决定，不从一张或多张静态图推断。\n\n- **参考风格重构**：接受 1 张静态参考图，提取可观察的颜色、字体层级、构图、组件和证据语言；允许为了报告内容重新组织页面，不把静态图推断成动效规则。\n- **企业模板保真**：接受同一模板族 1–3 张静态截图，锁定截图中可见的 Logo、页眉、页脚、品牌条和固定装饰，并把新内容限制在各页面角色的安全区。\n\n企业模板保真只承诺截图中可见的像素与页面角色，不宣称恢复原始 PPT 母版、矢量 Logo、字体源文件、截图外资产或动效。可前往[GitHub README 的“使用客户参考图”章节](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/README.md#使用客户参考图)查看完整五页 HTML 样例与 VI 标准图。\n\n## 企业模板档案与跨项目复用\n\nTaoHtml 会先从当前材料和对话解析企业身份，再与显式档案做精确匹配。唯一匹配时直接生成当前任务的 `profile-use` binding，并简短告知“本次沿用【企业模板 vN】；如需更换请直接说明”；不会把“是否复用”变成固定问卷。多个候选、身份不明确或本次需求与档案冲突时才问一个选择问题，禁止跨企业混用。\n\n- “这次不用 / 这次换一个”只写入临时 override，不修改 active version。\n- “以后改用 / 更新公司模板”重新走企业 VI 确认，创建 v2/v3 并原子切换 active pointer；旧版本保留可回退。\n- “这是另一家公司 / 客户”创建或选择独立档案，不覆盖原企业。\n- v1 不做破坏性删除；`archive` 只停止自动解析，`restore` 可恢复同一 active version。\n\n档案优先使用 `TAOHTML_HOME`，默认 `~/.taohtml`，不写入 Skill 安装目录。它只保存企业品牌/模板所需的 VI 合同、参考图、经现有 loader 验证的 theme、确认边界与完整 hashes，不保存报告正文、项目目标、受众、证据或客户报告数据。本机多个 Agent 可指向同一目录；跨设备或无持久磁盘环境使用完整档案包 export/import，TaoHtml 不声称自动云同步。\n\n每次 binding 都会再次验证 profile/version、VI、参考图、theme fingerprint 和来源边界。任何漂移、损坏、active version 变化或企业身份变化都会失败关闭，不能静默回退到八套内置系统。历史 binding 只替代“本次重新生成 VI”，仍必须确认当前《报告设计简报》，并通过 production authorization、浏览器 QA 和交付门禁。\n\n## 安装入口\n\n`skill/taohtml` 是唯一的 Agent 执行规则真源；Skill Hub 的中文概述由本 README 确定性生成，安装包内的执行 reference 也从该真源生成。README 截图只属于仓库文档，不复制进 Skill Hub 包或 Agent 执行上下文。Codex、Claude Code、Skill Hub 和离线安装包都从同一执行真源分发。\n\n### 依赖声明与环境预检\n\n技能根目录中的 `requirements.txt` 会随原始 Skill、marketplace 和 Skill Hub 包一起分发，但“包内声明依赖”不等于平台已经自动安装。`scripts/preflight.py` 只检查当前 Python、工作区、模块和 Chromium 真实启动能力，不安装依赖，也不改变托管环境。\n\n在允许自行管理 Python 环境的平台，可从技能根目录执行：\n\n```bash\npython -m pip install -r requirements.txt\npython -m playwright install chromium\npython scripts/preflight.py --profile static-reference --workspace /path/to/workspace\n```\n\n托管平台若不允许安装，应修复或更换运行环境。企业模板保真和参考风格重构使用同一条 Pillow / Playwright / Chromium 链：预检失败后，只能修复/更换环境再重试，或明确放弃客户参考路线、改用八套内置视觉系统；不能用“手工企业保真”绕过，也不能把参考风格重构当成技术降级。Windows 当前只有 GitHub Actions `windows-latest` 冒烟验证，不代表支持所有 WorkBuddy Windows 环境。\n\n### Skill Hub\n\n在 Skill Hub 的 TaoHtml 详情页按平台入口安装或更新。渠道包中的中文概述、Agent 执行 reference、依赖声明、预检脚本和版本号会作为同一版本一起打包；升级后请以详情页和安装结果显示的版本为准。安装完成后，每次调用 TaoHtml，Agent 都必须先完整读取同一渠道包内的 `references/agent-workflow.md`，再开始分析或操作；包内 `requirements.txt`、`references/...`、`scripts/...` 与 `assets/...` 均从技能根目录解析，用户无需手动打开或加载这些文件。仓库中的版本准备不会自动发布或覆盖 Skill Hub 正在审核的公共版本；渠道审核状态以 Skill Hub 页面为准。\n\n### Claude Code：GitHub marketplace\n\n```bash\nclaude plugin marketplace add TaoGEO/TaoHtml\nclaude plugin install taohtml@taohtml\n```\n\n更新时执行：\n\n```bash\nclaude plugin marketplace update taohtml\nclaude plugin update taohtml@taohtml\n```\n\n### Codex / 其他 Agent：原始 Skill\n\n下载或 clone 本仓库后，将整个 [`skill/taohtml`](https://github.com/TaoGEO/TaoHtml/tree/v0.6.0/skill/taohtml) 目录安装为 `taohtml`。Codex 当前用户级 Skill 目录是 `$HOME/.agents/skills`；首次安装示例：\n\n```bash\nsource=\"$PWD/skill/taohtml\"\ntarget=\"$HOME/.agents/skills/taohtml\"\nmkdir -p \"$(dirname \"$target\")\"\ntest ! -e \"$target\" || { echo \"Target already exists: $target\" >&2; exit 1; }\ncp -R \"$source\" \"$target\"\n```\n\n更新时先备份本地修改，再完整替换旧目录，避免遗留已删除文件或生成 `taohtml/taohtml` 嵌套目录。不同 Agent 的安装目录和调用语法可能不同；Codex 中请显式使用 `$taohtml`。\n\n### Release ZIP：离线 / 手动安装\n\n[`taohtml-marketplace-v0.6.0.zip`](https://github.com/TaoGEO/TaoHtml/releases/download/v0.6.0/taohtml-marketplace-v0.6.0.zip) 同时包含 Codex 与 Claude Code 的本地 marketplace manifest，版本固定为 `0.6.0`。ZIP 不会自动接收更新；升级时需要完整替换解压目录并重新安装。GitHub Release、Skill Hub、ClawHub 与小红书 Red Skill 是独立分发渠道；请以各渠道公开详情页显示的版本为准。\n\n## 版本更新\n\nREADME 只保留每版最重要的用户变化；完整逐条历史见 [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md)。\n\n| 版本 | 最重要的变化 | 版本页与完整记录 |\n|---|---|---|\n| **v0.6.0** | 新增深色数据面板、暖色品牌叙事、极简产品留白、正式政企蓝白四套内置视觉系统；同步 Report IR、Compiler、主题路由和发布包 | [GitHub Release（发布后生效）](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.6.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#060---2026-08-21) |\n| **v0.5.3** | 跨平台同步 v0.5.2 的能力包：先确认客户是否有模板或参考图，再进入 VI 标准图或内置视觉系统；Runtime 控制图标居中，更多菜单完成中文化；Report IR / Compiler 明确为正式工程路线 | [GitHub Release](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.5.3) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#053---2026-08-10) |\n| **v0.5.2** | 模板或参考图优先、Runtime 控制图标居中和更多菜单中文化、Report IR / Compiler 正式工程路线 | [GitHub Release](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.5.2) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#052---2026-08-10) |\n| **v0.5.0** | 新增九条按业务目标路由的生产路径与可续作交接；演讲 Runtime 明确区分内容步进和整页翻页；建立 Report IR / Compiler 的可重新编译工程路线，Direct HTML 保持默认 | [GitHub Release](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.5.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#050---2026-07-21) |\n| **v0.4.0** | 新增轻量离线内容编辑器：可修改报告文字、替换图片、调整裁切焦点、撤销/重做、刷新恢复并导出新的 HTML；版式、图表数据和动效仍由 Agent 处理 | [GitHub Release](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.4.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#040---2026-07-17) |\n| **v0.3.3** | 企业模板在首次 VI 确认后可存为显式版本档案；后续项目精确匹配时自动沿用，并支持临时更换、永久升级、回退和完整迁移 | [GitHub Release（发布后生效）](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.3.3) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#033---2026-07-17) |\n| **v0.3.2** | 新调用入口握手与材料来源绑定；按能力运行的快速环境预检；技能包自带依赖声明与 Windows 冒烟验证 | [GitHub Release（发布后生效）](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.3.2) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#032---2026-07-16) |\n| **v0.3.1** | Skill Hub 概述改为与 GitHub README 同源的中文纯文字客户介绍；Agent 执行规则改由同包 reference 承载，能力边界不变 | [GitHub Release（发布后生效）](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.3.1) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#031---2026-07-16) |\n| **v0.3.0** | 四套可执行视觉系统与同内容样张；参考风格重构 / 企业模板保真及项目主题编译；报告产出优先 + 《待核实内容清单》与质量基准 | [GitHub Release（发布后生效）](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.3.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#030---2026-07-16) |\n| **v0.2.0** | Word / PDF 材料理解到离线 HTML 的首个完整闭环；阅读 / 演讲 Runtime 与三档浏览器 QA；单一 Skill 真源与跨客户端离线包 | [GitHub Release](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.2.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#020---2026-07-15) |\n| **v0.1.0** | 建立明确版本、仓库质量工作流与可移植资产检查；补齐 hash 路由、分步内容和来源弹窗的基础浏览器 QA | [Git tag](https://github.com/TaoGEO/TaoHtml/tree/v0.1.0) · [CHANGELOG](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md#010---2026-07-13) |\n\n> v0.1.0 当时只创建了 Git tag，没有独立 GitHub Release；这里不生成一个并不存在的 Release 链接。\n\n## 作者与合作\n\nTaoHtml 由 Tao 发起，用于探索 AI Agent 如何参与高质量 HTML 课件、路演报告和证据型汇报的生产。\n\n如果你对以下方向感兴趣，可以联系我：\n\n- 企业汇报 / 路演课件 HTML 化\n- AI Agent skill 定制\n- 高设计感商业报告与演示系统\n- GEO / 内容工程 / 知识库相关报告系统\n\n微信：`taomir`\n\nFile v0.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ap93nr8va5j6bdwkvrd9e9h83brh0\",\n  \"slug\": \"taohtml\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1787321828716\n}\n\nFile v0.6.0:references/agent-workflow.md\n\n# TaoHtml\n\nTurn source material or an incomplete idea into a finished HTML report that can be read or presented without further layout work. Optimize for a usable report first: ordinary missing details may be completed creatively, then disclosed for customer verification at delivery.\n\nTreat TaoHtml as two cooperating layers:\n\n- The skill directs material understanding, decisions, visual composition, generation, QA, and delivery.\n- The bundled runtime supplies stable navigation, reveal state, reading/presentation modes, and other implemented behaviors.\n\nDo not claim runtime features that are not present in `references/runtime-contract.md`.\n\n## Explicit Invocation\n\nPrefer explicit invocation. Use the host agent's real skill syntax, such as `$taohtml` in Codex. Do not assume `/TaoHtml` is portable across agents.\n\n## Entry Routes\n\nStart every new build or meaning-changing continuation that will create or revise\nHTML with a route handshake. A clear meaning-preserving local continuation applies\nthe handoff overlay first and bypasses this handshake; it starts from the exact\ndelivered artifact rather than reopening the content route. The current message may\nestablish the route when it contains a specific report topic, an explicit route\nselection, or a source that is explicitly bound to this task. A file-route selection\nwithout an eligible source establishes only `route_selected`. Low-information text attached only so a platform can\nsend the Skill does not establish a route. Do not classify it with a list of forbidden\nwords, and do not scan the workspace for a presumed input. A read-only handoff review\napplies the overlay below, records the route only when the bound evidence establishes\nit, and does not ask an entry-route question.\n\nIf the current message already provides a specific topic, explicitly selects a route,\nor binds a source, record the matching route and apply its next gate without asking\nfor the route again. Otherwise show exactly these three entry routes and stop after\nthis one question:\n\n1. **Idea only**: build the report definition from the conversation, then produce a brief only when it is design-ready.\n2. **Word / PDF**: upload the source or provide its complete resolvable path. TaoHtml does not search the local machine or begin material understanding before receiving it.\n3. **Existing PPT / HTML**: upload the source or provide its complete resolvable path. TaoHtml does not search the local machine or inspect the existing work before receiving it.\n\nFor routes 2 and 3, `route_selected` never implies `source_bound`. If no eligible,\naccessible source is currently bound, ask only for an upload or a resolvable exact\nfile path, then stop. Do not ask about use mode, length, audience, or any later\ndecision; do not search for or read a file. Continue only after binding the source.\nCandidate discovery requires the user's explicit request to find a file and follows\nthe narrow metadata-only confirmation boundary in `references/intake-workflow.md`.\n\nA short answer or ordinal selects an option only when it answers the Agent's most\nrecent still-active option set in this conversation. The numbering above is\ndocumentation, not a global command interface. Before the route is established, do\nnot inspect materials, produce a Material Understanding Summary, create a Report\nDesign Brief, or write HTML. Read `references/intake-workflow.md` for the option-state\nand source-binding rules. Never ask for information already present in the conversation\nor an eligible bound source.\n\n## Workflow Profile Routing\n\nTaoHtml is one installed Skill. Its nine business-production paths are on-demand\nWorkflow Profiles, not separate Skills, input routes, Runtime modes, or Report IR\nchoices. After the material entry is established, read\n`references/workflow-profile-contract.md` and resolve exactly one primary Profile from\nthe user's explicit business objective plus the semantics of eligible inspected\nmaterial. If one path is clear, select it automatically, record the basis, and do not\nask a Profile question or read/display the catalog. Use the contract's Definition\nRouting table to read only the selected `definition_ref`; do not load any other\nProfile definition.\n\nWhen the selected definition declares a detailed/implemented Golden Path, execute\nthat Profile-local sequence and its acceptance additions after loading that one\ndefinition. It refines the shared intake, brief, production, and QA flow; it never\nloads another Profile, creates a separate confirmation, or replaces a shared gate.\n\nOnly when the primary outcome remains genuinely ambiguous after using the available\nsemantic evidence, read `references/workflow-profiles.md`, display all nine exact\ncustomer-facing names and primary goals in one round, and ask one question about the\nfinished report's primary business goal. After the answer, read only that catalog\nrow's `definition_ref`; do not load the other eight definitions. Do not route with a\nkeyword blacklist, hard-coded numbers, filename-only matching, or a fixed report-type\nmapping. Do not repeat a known goal or ask the user to choose Profile ids, IR fields,\nCompiler modes, Runtime features, or theme implementations. Keep input entry,\nreading/presentation mode, visual binding, evidence rigor, information/motion density,\nand continuation state as independent horizontal parameters. Run only one complete\nprimary Profile; borrow other Profile capabilities only as bounded overlays. A Profile\ndefault never replaces the existing use-mode or content-length choice unless the user\nexplicitly delegates that decision under `references/intake-workflow.md`.\n\n## Project Handoff Overlay\n\nRead `references/project-handoff.md` whenever the request concerns an existing\nproject, handoff record, current artifact, review, or continuation. Record\n`new_build | review_only | continue_existing` as a task-intent overlay; this does not\nadd a fourth content entry. A read-only handoff defaults to zero clarification\nquestions, does not restart intake, and must not create HTML. Continuing work reuses\nstill-supported state, first classifies whether the delta preserves meaning, asks\nonly the largest result-changing gap when one exists, and protects the source/evidence\nboundary defined in that reference. For a cross-Agent export, import, or readiness\ncheck, also read `references/project-handoff-schema.md`, use its strict JSON schema,\nand run `scripts/validate_project_handoff.py`; never collapse its four independent\nresults into one PASS.\n\n## Visual-Source Priority\n\nThis ordering governs step 5 below. A unique active enterprise Profile remains a known, previously confirmed visual binding and may be reused with its existing concise notice. For every other route, resolve whether the customer has a specific template, enterprise master, or preferred reference image before presenting any fallback theme. Unless a supported reference is already supplied, a concrete built-in system is already named, or the customer explicitly delegates the built-in choice, ask exactly:\n\n> 本次是否有希望参考的模板、企业母版或喜欢的意向图？有的话请上传静态截图；没有则从内置视觉系统中选择。\n\nA clear “有” enters the supported static-reference route and must produce the existing VI design standards board before project-theme compilation. A clear “没有” enters `references/visual-systems.md`, where TaoHtml displays the complete applicable built-in catalog; it must not recommend, display, or select a fallback theme before the reference decision is known. This visual-source decision is independent from ordinary clarification and must not be bundled with theme or motion selection. A request to replace a reused enterprise Profile also enters this reference-first choice.\n\n## Required State Flow\n\nFollow the branch selected by the handoff decision before applying this sequence.\nSteps 2-8 are the new-build or meaning-changing production path; a clear\n`meaning_preserving_local` continuation goes from step 1 to its bounded revision under\nthe Runtime boundary in step 9 and the exact-artifact QA/delivery work in step 10. It\ndoes not enter steps 2-8 or manufacture their confirmation artifacts.\n\n1. Read `references/project-handoff.md` when applicable and establish the task intent. For `review_only`, inspect only eligible bound items, report their roles, availability and limits, then stop without a route interview, brief, formal production, or HTML. For `continue_existing`, apply its Continuation Decision Matrix first. A clear `meaning_preserving_local` revision does not enter startup, intake, material-summary, or design-brief gates; preserve the exact delivered baseline and proceed only through the bounded revision plus applicable current QA/delivery checks. Otherwise establish or inherit the content route. On Word/PDF or existing PPT/HTML routes, pass the source-acquisition/binding gate before identifying use mode, content length, or any other startup decision; when the source is unbound, request only an upload or resolvable exact path and stop. After the gate, identify use mode and content length one decision at a time and skip every known choice. For presentation mode, treat a user-provided hard duration as a constraint, but never require duration to start. Record every used material's `source_binding`, role, availability status, evidence verification, inspection coverage, and binding reason; mere workspace presence never qualifies.\n2. Read `references/environment-preflight.md` and run the smallest required profile before gated work. For a bound Word/PDF/PPT/HTML source, read `references/material-understanding.md`; run the `pdf` profile before opening or extracting a PDF, then inspect only eligible bound sources, show a Material Understanding Summary with source bindings and source-role/availability distinctions, and wait for confirmation or correction. For an idea-only input, do not invent a source-summary gate. For a `meaning_changing` continuation, summarize only the affected source delta and inherited limits; never promote a secondary handoff summary or current artifact to original evidence. Skip this step entirely for `meaning_preserving_local`.\n3. Read `references/intake-workflow.md`. Resolve the one primary Workflow Profile through the router above without reopening any known goal, then apply its design-ready additions without creating a new questionnaire. For a new build, resolve only the current largest missing decision that would change the report design. For a `meaning_changing` continuation, reuse still-supported decisions and ask only the single largest missing delta that would change the requested result; do not replay the full interview. A clear `meaning_preserving_local` continuation asks no intake questions. For an external conversion goal, distinguish the desired action from its verified real action path; do not impose this requirement on non-conversion reports. Complete ordinary missing scenes, numbers, viewpoints, and expression as creative supplements instead of extending intake. Stop according to the reference's readiness, repetition, information-gain, hard-boundary, and question-budget rules.\n4. When several report structures are genuinely reasonable, present 2-3 chapter-level options and let the user choose or delegate. Do not ask about structure when one option clearly follows from the confirmed goal and evidence.\n5. After content and structure are clear, resolve the visual source. Read `references/profile-memory.md`; parse the current enterprise identity from eligible material/conversation and resolve only explicit identity candidates against TaoHtml home. A unique active profile automatically selects its active version: run the minimal `profile-reuse` environment profile before binding or loading it, but do not reopen reference images, regenerate VI, launch Chromium, or ask whether to reuse. Show only “本次沿用【企业显示名 企业模板 vN】；如需更换请直接说明” and continue unless the customer objects. Ask exactly one selection question only for several candidates, unclear identity, alias conflict, or a current requirement/profile conflict; never guess or mix companies. If no profile applies or the customer requests a new/permanent template, resolve the ordinary visual route. If the user chooses “use my reference”, identify `reference_mode`. **参考风格重构** accepts exactly one static PNG, JPEG, or WebP screenshot; **企业模板保真** accepts one to three representative static screenshots from the same template family. When intent is still unclear, ask exactly one binary question: **参考风格重构** (extract the design language and allow recomposition) or **企业模板保真** (lock screenshot-visible corporate elements and design only each shell's safe content region). Count this question inside the existing clarification budget. If the user already says “企业模板保真”, “公司模板原样采用”, or an equivalent clear instruction, set `corporate_fidelity` and do not ask again; otherwise preserve the existing `reconstruct` behavior. Read `references/static-reference-vi.md`, run the `static-reference` profile before opening or analyzing any reference image, pass its current-session readability gate, analyze static frames only, fill the shared executable-layout grammar and mode-specific fields, render one unified VI design standards board, and wait for a clear confirmation of the exact current board. Record the current conversation reference; do not require a fixed reply phrase. Both modes use this same dependency chain and confirmation gate. Do not infer dynamic rules, force an internal theme, create a prose-only visual summary, begin project-theme generation, or start formal report production before this confirmation. PPT, webpage, video, state-sequence inputs, more than three corporate screenshots, or multiple screenshots for reconstruct remain unsupported; ask for a supported representative raster input instead of routing them as “no reference.” Only when no clear reference exists and no profile applies, read `references/visual-systems.md`. If the user has already specified one concrete built-in system, adopt it directly without displaying the catalog and record the exact decision reference. Show a category subset only when the user has proactively and explicitly constrained the acceptable range of the built-in catalog and that constraint maps unambiguously to one declared category; never infer a catalog-range constraint from project context. Otherwise, show every system in the complete current built-in catalog in the same round, with each exact customer-facing name, one-line description, and bundled preview; never hide a system because the Agent considers it a weaker fit. Report goal, audience, content, report type, and reading or presentation mode are recommendation inputs only: use them to mark one or two displayed systems as **更推荐**, but never to shrink the catalog; recommendation never replaces complete catalog display. If a user preference or constraint does not map unambiguously to a declared category, show the complete current catalog, reflect that preference in the recommendation reason, and never invent an ad hoc subset. Wait for the user's selection or explicit delegation; the ordinary six-question cap and three-no-gain stop never authorize theme selection. For every visual route, present `minimal | moderate | rich` as **少量 / 适中 / 丰富**, recommend at most one, and likewise wait for user selection or explicit delegation. Record both decisions and references once, never repeat known choices, and never infer motion from a Profile, static input, model judgment, or question-budget stop.\n6. On exact profile reuse, write and validate the current task's profile-use binding, resolve its relative theme path through TaoHtml home, and load that theme with the existing project-theme loader before the Report Design Brief. Treat the binding's `target_mode` as the current report Runtime state and pass it to the shared renderer even when it differs from the theme's first-compilation mode; a reading/presentation change alone never creates a profile version. The binding replaces only repeated VI generation; it does not confirm the brief or authorize production. After clear confirmation of the current VI board for a new reference on either static-reference mode, read `references/project-theme-compiler.md`, create its hash-bound handoff, and compile the current project's theme before the Report Design Brief. In `corporate_fidelity`, bind every source page's hash, dimensions, `canvas_bbox`, role, shared crops, explicitly declared replaceable regions, shell-specific locked/editable regions, extension pages, and limitations; deterministically crop and embed fixed elements without model redraw, remove only an authorized variable page-number region before Runtime supplies one page number, keep fixed elements stationary, and route each report page role to its matching shell with Runtime behavior confined to the editable region. Never infer replaceable pixels from a page-number string or coordinate, and never use a complete screenshot as a page background. After the compiled theme passes the existing loader, create enterprise profile v1 only for a new company, or create and atomically activate vN only when the customer explicitly says the company default should change. A current-task-only override writes `temporary_override: true` and never changes the active pointer; another company always uses a separate profile. Do not add any profile result to the eight built-in systems, compile an unconfirmed or changed VI, persist report content in a profile, or infer motion from static inputs. On the no-reference route, keep the selected built-in system instead. Only after the applicable visual/theme/profile gate and the independent theme/motion choices are complete, read `references/design-brief-template.md` and produce one adaptive Report Design Brief. Record the primary Workflow Profile id/name/definition version, semantic selection basis, and bounded capability overlays without adding an IR questionnaire. Record the enterprise profile id/version/binding and temporary-override state when applicable; otherwise record `reference_mode`, source roles, fidelity boundary, locked elements, editable regions, observed/extension/unknown boundary, confirmed VI and compiled project theme when applicable, selected built-in system when applicable, any necessary deviation, and the planned creative-supplement scope. Always record theme applicability, selection/delegation status and reference, plus the native motion density, customer label, selection/delegation status and reference. Workflow Profile selection, VI confirmation, enterprise-profile binding, and design choices are not Report Design Brief confirmation.\n7. Wait for explicit confirmation of the current brief. This confirmation does not count toward the clarification-question budget. A previous \"agree\", \"continue\", or request to use TaoHtml is not production authorization.\n8. Read `references/production-authorization.md`. Record the exact built-in theme decision when applicable and the motion-density decision for every visual route, including `user_selected | delegated_to_taohtml` and the current decision reference; `pending` blocks the brief and every formal action. Before confirmation, save each applicable current material summary, VI board or profile-use binding, and Report Design Brief as a task-local gate artifact; record its safe relative path, current SHA-256, and applicable confirmation trace. Bind a confirmed brief to the checker-generated canonical SHA-256 of the complete normalized built-in-theme/not-required and motion-decision objects; never preserve that confirmation after any bound value, status, or decision reference changes. Run `scripts/check_production_authorization.py --artifact-root <current-task-root> --action formal-html`. Only a successful current-file check authorizes formal HTML; rerun it before browser QA and delivery so any post-confirmation byte, active-profile, version, identity, theme, or recorded design-choice change fails closed until the affected gate and brief are rebuilt. A bound-material summary preview, static-reference VI standards-board preview, profile binding, design-choice prompt, and Report Design Brief remain allowed only in their matrix states; none is a formal report preview. After authorization, read `references/process-playbook.md` and produce the HTML directly. Do not insert a separate full prose manuscript step. Follow its **first runnable artifact** cadence: lock a concise page plan, save a complete runnable `index.html`, then refine and QA in bounded passes. On static-reference or profile-reuse routes, explicitly load the validated project theme through the shared renderer; never substitute one of the eight built-in themes.\n9. Implement only the runtime capabilities documented in `references/runtime-contract.md` unless the user separately authorizes new runtime engineering.\n10. Run asset QA, then run the `browser` profile before browser QA. Fix objective failures and report the files, checks, and production-stage judgment calls. Until the current minimum readiness checks pass, say only that an artifact was found or can be previewed; do not call it ready or formally deliverable. Derive operating instructions from the exact current HTML tested in browser QA or from the current Runtime contract, clearly distinguishing generic Runtime behavior from artifact-tested behavior. Deliver the usable report together with the concise `《待核实内容清单》` defined in `references/process-playbook.md`; do not withhold the report merely because ordinary creative supplements still await customer verification.\n\nIf the user adds source material or changes real data, evidence relationships, a core viewpoint, structure, scope, or responsibility after confirming the brief, rebuild the affected source interpretation and brief fields, display the complete current brief, and request confirmation again. A post-delivery local copy, color, layout, technical, portability, or motion revision that preserves meaning and structure does not rerun intake, material summary, or brief confirmation; it still requires applicable QA and delivery verification on the exact current artifact.\n\n## Question Discipline\n\nMaintain the `known | confirmed | inferred | missing` ledger defined in `references/intake-workflow.md`. Re-read the conversation, sources, and prior answers before every question; never ask the user to repeat known or safely inferable information.\n\nA read-only handoff uses the zero-question audit in `references/project-handoff.md`\ninstead of this intake. A clear meaning-preserving local continuation also asks no\nintake questions. For meaning-changing continuation, preserve every still-supported\nledger item and apply the same six-question maximum only to the remaining delta.\n\nAsk one decision question per round: the current largest missing item whose answer could change the report design. Do not bundle independent startup choices or turn the intake into a fixed questionnaire.\n\nA clear input may need 0 clarification questions; ordinary intake should usually finish in 3-5; even the most complex idea-only intake must never exceed 6 agent-initiated clarification questions in one intake cycle. Ask about the same key gap at most twice, changing the second attempt to a concrete example or 2-3 real options. Stop as soon as the project is design-ready, and stop questioning after three consecutive rounds without actionable new information.\n\nInfer reversible ordinary design decisions transparently and place them in the brief for confirmation. Never infer built-in theme or motion density without explicit delegation. Complete ordinary missing scenes, numbers, viewpoints, and expression during production, track them as `creative supplement | projected content | illustrative content | pending verification`, and disclose them at delivery. Do not describe these customer-facing categories as fabrication or hallucination.\n\nThe one-time reference-mode choice is a clarification question, not a new gate or extra budget. Ask it only when the user's intent is genuinely ambiguous; never repeat it after the mode is known. Built-in theme and motion-density choices are a separate design gate outside the clarification count; they remain required after six ordinary questions and are not skipped by three no-gain rounds.\n\nBlock only on the hard boundaries in `references/intake-workflow.md`: never invent a real customer or company identity, quotation, citation, literature, or source; never present an illustrative case as an achieved customer outcome; require explicit verification for legal, medical, financial, safety, and similar high-risk facts; and never replace confirmed real sources, data, or action channels. Treat \"decide for me\", \"not important\", or equivalent wording as delegation. A user-initiated change to the core goal or scope starts a new intake cycle rather than a seventh question.\n\n## Source And Meaning Protection\n\n- Use a local file only when it is a current accessible upload, a resolvable exact path the user provides, an accessible source explicitly bound by the current task instruction, or an exact candidate the user confirms after explicitly asking TaoHtml to find it in a narrow in-scope directory. A conventional filename such as `input/prompt.md`, current working directory placement, workspace presence, or historical task residue is not a binding.\n- For every material actually used, record its path, upload identity, or exact external locator; `source_binding`; source role; availability status; evidence-verification status; inspection coverage; and binding reason in the applicable source ledger and, when a brief is required, the Report Design Brief. Keep original customer material, external public evidence, secondary handoff summaries, current artifacts, visual references, Agent-generated material, and described-but-unavailable material distinct. Use `agent_retrieved_external | external_public_evidence | external_retrieved_inspected` only for current-task external retrieval with exact provenance; never use it for a local candidate. Do not read an unbound candidate merely to decide whether it is useful.\n- Candidate discovery is disabled by default. A route number, workspace scope, or current working directory is not search authorization. Only after the user explicitly asks TaoHtml to find the file may it inspect metadata in a narrow directory the user specified or clearly placed in scope, show exact candidate paths, and wait for confirmation without reading content. Never broadly scan user directories. A shell lookup that finds nothing does not prove that material was cleaned, deleted, or permanently lost.\n- You may reorganize, compress, and improve expression, but preserve every confirmed core viewpoint.\n- Separate source facts from interpretation.\n- Keep creative supplements distinct from source facts without treating the supplements as automatic errors.\n- Resolve contradictions that affect the conclusion before the design brief is confirmed.\n- Use customer screenshots, photographs, logos, and documents as real material; do not regenerate them as fictional substitutes.\n- In `corporate_fidelity`, preserve only screenshot-visible fidelity. Do not promise recovery of the original PPT master, vector Logo, font files, or unseen assets. Never ask a model to redraw a Logo; when every supplied screenshot is insufficient for deterministic extraction, request a clearer screenshot.\n- Do not rename customer-provided or independently verified facts as creative supplements. Preserve their provenance and exact confirmed meaning.\n- Keep public evidence and automatic data corrections visible in the design brief's source and confirmation sections.\n- Treat faithful migration versus redesign as a source-handling strategy, not as a substitute for choosing reading versus presentation mode.\n\n## Production Routing\n\nAfter brief confirmation, load only what the task needs:\n\nThe Report IR path is TaoHtml's supported, deterministic engineering route. Enter it\nwhen the user explicitly asks to research, generate, validate, compile, benchmark, or\ncontinue a Report IR project, or when the current project has an explicit Report IR\nauthorization. Do not silently move an ordinary customer build from the confirmed\ndirect-HTML workflow onto Report IR: Direct HTML remains the default production route.\nFor an authorized Report IR build, read `references/report-ir-pilot-workflow.md`; do\nnot ask the customer to select IR or add an IR questionnaire. For other explicit\nReport IR engineering work, read\n`references/report-ir-v1.md`, validate the exact IR with\n`scripts/validate_report_ir.py`, then compile it with\n`scripts/compile_report_ir.py`. The Compiler never replaces the Report Design Brief or\nproduction-authorization gates and never calls a model. If the customer edits an\nIR-compiled HTML, use `scripts/apply_report_ir_patch.py` to bind the exported Runtime\nPatch back to the exact base IR. Classify the edit as meaning-preserving or\nmeaning-changing; never compile a meaning-changing draft until the refreshed brief is\nconfirmed.\n\n- `references/project-handoff.md`: task-intent overlay, source role/availability map, read-only audit, continuation boundaries, candidate discovery, and readiness language.\n- `references/project-handoff-schema.md`: portable workspace/project/snapshot identities, strict source/decision/design/artifact/lineage serialization, version policy, and four-layer handoff validation.\n- `references/workflow-profile-contract.md`: one-primary-Profile contract, direct definition routing, horizontal-parameter boundary, capability overlays, IR isolation, and existing-gate preservation.\n- `references/workflow-profiles.md`: lightweight nine-option catalog for ambiguous routing only; after selection, load only the unique definition reference named by the selected row.\n- `references/process-playbook.md`: story, evidence, visual, production, and delivery workflow.\n- `references/layout-pattern-library.md`: layout selection for composed presentation pages.\n- `references/visual-systems.md`: built-in system routing and selection policy; after selection, load only that system's `theme.json`, `theme.css`, and `templates.html` under `assets/visual-systems/`.\n- `references/static-reference-vi.md`: one-time reconstruct/corporate-fidelity routing, supported static-input gate, observed/extension/unknown boundary, exact executable layout grammar, corporate template-family contract, unified VI board, confirmation gate, and next-step handoff.\n- `references/project-theme-compiler.md`: post-confirmation hash-bound handoff, deterministic structural project-theme compilation, corporate multi-shell crop generation and role routing, eligible/compiled usage mapping, fallback policy, explicit project rendering, and verification.\n- `references/report-ir-v1.md`: formal report-source contract, semantic/evidence/page/state model, four independent validation results, deterministic Compiler boundary, project-theme routing, and implemented capability limits. Load only for the explicit Report IR engineering route above.\n- `references/report-ir-pilot-workflow.md`: explicit Report IR routing, confirmed-brief derivation, no-fallback deterministic orchestration, existing QA/Handoff reuse, and machine-checkable not-executed states. Its legacy filename and machine field names are retained for compatibility.\n- `references/profile-memory.md`: explicit TaoHtml home, exact enterprise resolution, immutable corporate-profile versions, automatic binding, override/update/other-company semantics, export/import, and current-task authorization boundary.\n- `references/design-quality-rubric.md`: optional diagnosis when the user asks for a design review or says the result feels ordinary; do not use a fixed aesthetic score as the production authorization gate.\n- `references/runtime-contract.md`: implemented DOM, controls, state, modes, and extension boundary.\n- `references/content-editor.md`: lightweight text/image revision, lock hooks, unified history, session recovery, honest export boundary, and browser QA.\n- `references/environment-preflight.md`: capability profiles, standard-library launcher, timing, JSON contract, dependency declaration boundary, and fail-fast recovery choices.\n- `references/production-authorization.md`: current-task gate state, allowed-action matrix, preview boundary, and machine check before formal HTML or delivery.\n- `assets/html-deck-template/`: dependency-free 16:9 starting shell for paged reading and single-screen presentations.\n\nUse the bundled scripts where relevant:\n\n- `scripts/extract_pdf_pages.py`: render PDF pages into evidence assets.\n- `scripts/preflight.py`: run `core`, `pdf`, `static-reference`, `profile-reuse`, or `browser` capability checks before the corresponding work. Its parent process uses only the Python standard library.\n- `scripts/profile_store.py`: create, update, list, show, resolve, bind, validate, activate, rollback, archive/restore, export, and import explicit corporate-template profiles without writing to the Skill directory.\n- `scripts/check_production_authorization.py`: validate current material-summary, VI or profile-use binding, project-theme, and design-brief state before a requested preview, formal HTML, QA, or delivery action.\n- `scripts/validate_project_handoff.py`: validate a structured portable handoff's schema, exact bindings, continuation state, and recorded delivery evidence without executing QA.\n- `scripts/validate_report_ir.py`: validate Report IR schema, references, semantics, and current compiler readiness separately; it never executes QA.\n- `scripts/orchestrate_report_ir_pilot.py`: preserve direct HTML by default, or validate an explicitly authorized Report IR project and bind Production Authorization, Report IR validation, local Compiler outputs, and existing Handoff records without generating content or claiming QA execution. Its legacy filename is retained for compatibility.\n- `scripts/compile_report_ir.py`: deterministically compile a validated Report IR through a built-in theme or validated project theme into Runtime HTML, Source Map, normalized IR, and Build Manifest without model calls.\n- `scripts/apply_report_ir_patch.py`: extract or load a controlled Runtime text/image Patch, verify its exact base binding and before-values, update Report IR and image provenance, and stop with a reconfirmation gate when meaning changes.\n- `scripts/check_assets.py`: find missing, remote, or non-portable assets.\n- `scripts/check_html_deck.py`: exercise routes, reveal states, runtime behavior, media, console errors, bounds, and screenshots.\n- `scripts/build_contact_sheet.py`: build a visual QA overview.\n- `scripts/package_deck.py`: package HTML plus local assets when a single file is not appropriate.\n- `scripts/render_visual_system.py`: render content through one built-in id or an explicit `--project-theme` directory while retaining the shared runtime shell. Pass a real local source image as `--source-kind verified`; verified provenance is never inferred from a local path. If `source_kind` / `--source-kind` is omitted, the Python API and CLI default to `illustrative` even when a local image is supplied. When no real evidence image exists, use the renderer's automatically labeled illustrative placeholder or pass a local image as `--source-kind illustrative`. The renderer never labels illustrative material as verified evidence.\n- `scripts/render_reference_vi.py`: validate legacy reconstruct v1.1, single-reference v1.2, or corporate-family v1.3/v1.4; verify source hashes, static frame counts, canvas crops, normalized fixed/editable/replaceable regions, and strict 16:9 tolerance; extract deterministic fixed crops; render the standards-board HTML; and export a 3200×2400 PNG. It does not analyze images or compile a project theme.\n- `scripts/compile_project_theme.py`: validate the exact confirmed-VI handoff and shared executable-layout compatibility matrix, then deterministically write project-local manifest, CSS, templates, and provenance. Corporate-family mode embeds only hashed fixed crops, emits stationary role-specific shells, and wraps report content in the matching editable region. It does not call a model or add a built-in theme.\n\n## Current Runtime Boundary\n\nThe standard template supports paged reading, single-screen presentation, and the bundled lightweight content editor documented in `references/content-editor.md`. It does not promise a browser-based PPT editor, free layout changes, chart/table-structure editing, animation editing, dual-screen presenter view, cross-page morphing, durable version history, or browser ZIP export.\n\n## Delivery Gate\n\nBefore delivery:\n\n- Build a brief-to-output traceability ledger and verify every confirmed core viewpoint, correction, evidence gap, and decision boundary against a visible output location. On a meaning-preserving local continuation, verify the same meanings against the exact delivered baseline instead of inventing a new brief. For conversion reports, also verify that the real action path is visible, usable, aligned with the desired action, and consistent with its recorded source and verification status. Check every conjunct in compound requirements; a source screenshot may support a point but must not silently replace it in the designed narrative.\n- Check all local and remote asset references.\n- Exercise reading and presentation modes, step navigation, whole-page navigation, return-state preservation, and hash routes.\n- Check console errors and visible bounds at the target viewport.\n- Prefer a single self-contained HTML when it stays responsive; otherwise deliver `index.html + assets` as a zip.\n- Deliver `《待核实内容清单》` after the report. Each entry must locate the page/content, name the supplement type, state the source status, and recommend `confirm | modify | delete | ask TaoHtml to replace`. Do not collapse the list into a generic disclaimer.\n- Keep ordinary projected content in the delivery note so the presentation remains clean. Add an adjacent `示意 / 模拟 / 待核实` label inside the HTML only for simulated charts, fictional customer cases, generated evidence-like artifacts, or data likely to be mistaken for real proof.\n\nFile v0.6.0:references/content-editor.md\n\n# Content Editor Contract\n\nUse the bundled content editor for lightweight corrections inside a finished TaoHtml report. It is not a browser-based PPT editor: page structure, free element movement, layout rebuilding, chart data, table structure, animation timing, and animation authoring remain outside this module.\n\n## Contents\n\n- User flow and editor boundaries\n- Report DOM and locking hooks\n- Image frame/crop behavior\n- History and session recovery\n- Export boundary and Safari fallback\n- Runtime/editor APIs and QA\n\n## User Flow\n\n1. Open **More → 编辑模式**.\n2. Edit report copy directly. Click a report image to choose a replacement; drag the image to change its crop focal point.\n3. Use `Ctrl/Cmd+Z` for undo and `Ctrl/Cmd+Shift+Z` for redo across text edits, image replacement, and crop changes. The UI intentionally has no undo button.\n4. Move between pages with the previous/next page buttons. While editing, page-step keyboard shortcuts, blank-page advance, reveal transitions, and report animations are paused.\n5. Choose **More → 退出编辑模式**. If changes have not been exported, choose **继续编辑**, **放弃修改**, or **导出新 HTML**.\n\nLeaving edit mode restores normal behavior in the retained reading/presentation mode, current page, fragment stages, hash route, controls, and animations. Modified nodes remain the same DOM nodes, so their existing report CSS and motion rules continue to apply.\n\n## Report DOM And Locking Contract\n\nThe editor discovers content only below `.slide`:\n\n- HTML elements that own visible text are direct-edit targets.\n- Unlocked report links and action buttons are text targets too. While edit mode is active, their navigation, submission, and click actions are suppressed so editing copy cannot activate the CTA.\n- `<img>` elements are image-edit targets.\n- Table-cell text remains editable, but rows, columns, formulas, and table structure do not.\n- Inline SVG/chart internals, CSS background images, pseudo-elements, video, canvas, and embedded documents are not content-edit targets. Put ordinary report copy in HTML and content images in `<img>` when they must be revisable.\n\nUse these generic hooks instead of sample-specific ids or copy:\n\n```html\n<div data-taohtml-edit-lock>System UI or a fixed corporate shell</div>\n<div data-taohtml-edit=\"off\">A locally excluded subtree</div>\n<p data-taohtml-edit=\"text\">Force this HTML node to be one text target.</p>\n<img data-taohtml-edit=\"image\" src=\"...\" alt=\"...\">\n```\n\n- `data-taohtml-edit-lock` excludes the element and all descendants. Apply it to controls, menus, page numbers, modals, source viewers, fixed brand layers, and any other non-report surface.\n- `data-taohtml-edit=\"off\"` is the content-author opt-out alias.\n- `data-taohtml-edit=\"text\"` forces that exact unlocked, safe HTML content container to be one text target when automatic direct-text discovery would choose a different ancestor. Overlapping automatic targets yield to the explicit owner.\n- `data-taohtml-edit=\"image\"` documents an intended image target; unlocked report `<img>` elements are discovered automatically.\n- A lock always wins over a force marker. An `aria-hidden=\"true\"` subtree is also excluded because it cannot be report content exposed to the reader.\n\nThe force marker never overrides hard non-text boundaries. `input`, `textarea`, `select`, `option`, `script`, `style`, `noscript`, `template`, `svg`, `math`, `video`, `audio`, `canvas`, `iframe`, `object`, and `embed` remain non-editable even when marked `data-taohtml-edit=\"text\"`.\n\nThe standard template locks navigation, the More menu, page number, source modal, and editor UI. The corporate-fidelity compiler's existing `aria-hidden=\"true\"` fixed shell remains excluded without changing its strict attribute allowlist, while report content inside the editable region stays discoverable.\n\nSource-evidence buttons inside report pages must also carry `data-taohtml-edit-lock`; their source action is suppressed during editing. Previous/next navigation and the More menu live outside `.slide` and retain the editor-session behavior defined by `runtime-contract.md`.\n\n## Image Frame And Crop Contract\n\nReplacement changes the existing `<img>` source in place; it does not move or recreate the element. The editor:\n\n- removes `srcset`/`sizes` so they cannot override the chosen replacement;\n- records the existing rendered aspect ratio inline before changing the source, preserving responsive frame geometry;\n- leaves the element's CSS position, width, height, transform, filter, and computed `object-fit` rules intact;\n- stores crop focus only as inline `object-position` percentages.\n\nFor deterministic crop behavior, generate content images inside a stable frame and use `width: 100%`, `height: 100%`, plus `object-fit: cover` or `contain`. Dragging changes focus for `cover`; `contain` has no hidden crop area, so a different focus may not be visually apparent. Fixed/decorative corporate crops must be locked rather than presented as report content images.\n\n## History And Temporary Recovery\n\nThe editor owns one bounded, in-memory history across text, image, and crop commands. Native browser undo is intercepted only while edit mode is active. A refresh-recovery delta is also written to `sessionStorage`:\n\n- a pending text batch is committed before any image replacement or crop command enters history;\n- asynchronous image reads commit any text that was applied before the replacement reaches the DOM, so undo/redo follows actual applied operation order;\n\n- it is scoped to the current tab/page session and survives reload in that tab;\n- normal tab closure ends the browser page session, so it is not durable report storage;\n- a document signature prevents applying a delta to changed source HTML;\n- successful export clears the temporary record;\n- storage-quota failure does not discard the live edit, but the editor warns that refresh recovery is unavailable. Large replacement images should be exported promptly.\n\nThe editor never uses `localStorage`, IndexedDB, a remote service, or an online dependency.\n\n## Export Boundary\n\nExport always downloads a newly named `.html`; it never writes over the source file.\n\n- When every resource is embedded, the result is a portable offline single HTML file.\n- When the report still references relative local resources, the browser exports only the revised HTML. Keep/move it beside the original `index.html` and preserve the original `assets` directory.\n- The in-browser editor does **not** create a ZIP. Agent-side delivery may still use `scripts/package_deck.py` to package an existing HTML-plus-assets directory.\n- The editor reports `single-file` versus `html-with-assets` from `TaoHtmlEditor.exportHtml()` and lists the detected external asset references.\n\nFor HTML compiled from Report IR v1, export also embeds one\n`taohtml-report-ir-runtime-patch` JSON record. The patch is bound to the normalized\nbase-IR hash and contains only Compiler-declared text/image targets. It is not a DOM\ndiff and does not make the edited HTML a new source of truth. Apply it with\n`scripts/apply_report_ir_patch.py`, then recompile the resulting IR. A stale base hash,\nstale before-value, divergent repeated target, invalid image, or unknown field fails\nclosed instead of being guessed.\n\nThe Agent must classify every Runtime patch as meaning-preserving or meaning-changing.\nMeaning-changing edits require a refreshed Report Design Brief confirmation before the\ndraft IR can be used for formal compilation. A replaced image is always returned to\n`pending_verification` until its content and brand/provenance meaning are checked.\n\nChromium/Chrome is the primary browser QA path. Safari is a documented best-effort path: content editing and session recovery use standard browser APIs, but TaoHtml does not claim automated Safari coverage. If Safari does not honor the Blob download filename/flow, use the page it opens and **Save As**, then keep relative assets beside it. No File System Access API or ZIP fallback is claimed.\n\n## Module API\n\nThe bundled module exposes `window.TaoHtmlEditor`:\n\n```text\ngetState()\nenter()\nrequestExit()\nundo()\nredo()\nexportHtml()\ngetReportIrPatch()\n```\n\n`getState()` returns `active`, `dirty`, `canUndo`, `canRedo`, and `recoveryAvailable`. Changes dispatch `taohtml:editorstatechange` on `window` with the same snapshot in `event.detail`.\n\n`getReportIrPatch()` returns the current controlled Patch only when the document was\ncompiled from Report IR v1; ordinary direct-HTML reports return `null`. Generated\nReport IR charts and tables remain locked because changing their displayed values\nwithout updating Dataset/Evidence would break traceability.\n\nThe editor calls `TaoHtmlRuntime.setEditing(boolean)`; it must not replace navigation state or attach a second page state machine. Read `runtime-contract.md` for the core API and `taohtml:statechange` compatibility rules.\n\n## QA\n\nFor an editor-enabled deliverable, run both:\n\n```bash\npython skill/taohtml/scripts/check_html_deck.py path/to/index.html path/to/qa\npython skill/taohtml/scripts/check_editor_runtime.py path/to/index.html path/to/editor-qa\n```\n\nThe editor QA must use a self-contained rendered report with at least one text target, one `<img>`, and one fragment. It covers continuous text/image editing, crop focus, unified undo/redo, dirty-exit choices, reload recovery, export/reopen, locked controls, Report IR Patch preview when IR metadata is present, and restored reading/presentation behavior. For an IR project, also apply the exported Patch, recompile, and rerun HTML/browser QA against the new build.\n\nFile v0.6.0:references/design-brief-template.md\n\n# Report Design Brief Template\n\nGenerate this brief only for a new build or meaning-changing continuation after the route-appropriate source gate and the design-ready gate in `intake-workflow.md` both pass. A bound Word/PDF/PPT/HTML material route requires a confirmed Material Understanding Summary; an idea-only route does not. A read-only review and a meaning-preserving local continuation do not generate or reconfirm this brief. If a minimum hard-boundary gap remains, use the blocked-intake output instead of this template. Ordinary missing details may be completed after confirmation and disclosed in the delivery verification list.\n\nKeep it readable by the customer. Include only fields that affect this project. Do not emit a separate JSON configuration and do not pre-design every page.\n\n```markdown\n# 报告设计简报\n\n## 项目定义\n- 任务意图：新建 / 含义变化续作（只读复审与无含义变化的局部续作不生成设计简报）\n- 输入入口：只有想法 / Word / PDF / 已有 PPT / HTML\n- 使用模式：阅读 / 现场演讲\n- 内容长度：精简 / 标准 / 详细\n- 预计页数：根据当前材料动态估算\n- 交付形式：单 HTML，或 HTML + assets / ZIP\n\n## 主要工作场景\n- 主工作场景：九场景目录中的精确客户名称\n- 稳定 profile_id：对应 Workflow Profile 的稳定 id\n- definition version：所加载定义文件中的当前版本\n- 语义选择依据：用户明确目标与合格材料语义如何支持该主要场景\n- bounded capability overlays：无；或逐项写明借用能力、来源 Profile、原因和影响范围\n\n## 场景特有决策（仅当所选 definition_ref 声明设计简报增量时保留）\n- 只写入当前主 Profile 的场景特有字段；逐项沿用该定义的客户可读字段名称与当前决策状态\n- 不展示未选 Profile 的字段，不新建第二份简报，也不增加 Profile 独立确认\n\n## 续作基线（含义变化续作时保留）\n- 当前成品：精确路径或上传标识、检查覆盖与当前可预览状态\n- 继承状态：仍有直接依据的目标、受众、结构、视觉、来源解释与确认产物\n- 本次变更：请求修改的范围及不改变的边界\n- 来源恢复/确认：修改真实数据、来源、证据关系或核心结论所需的原始来源或明确确认\n- 当前就绪状态：仅记录已实际通过的当前检查；未完成时写“已找到 / 可以预览 / 尚未核验”，不写“已就绪 / 可正式交付”\n\n## 报告目标\n- 受众：...\n- 希望受众理解或相信：...\n- 期望行动：...\n\n## 行动闭环（仅在目标要求外部行动时保留）\n- 真实执行路径：完整 URL / Agent 调用语法 / 命令 / 下载或预约入口 / 联系方式\n- 渠道来源与验证状态：用户明确提供 / 来源材料或项目上下文 + 验证方式与结果 / 用户授权 TaoHtml 选择 + 独立验证结果\n- 最终页面展示方式：可见链接、完整命令、联系方式，或已解码核对且同时展示文本入口的二维码\n\n## 必须保留的核心观点\n1. ...\n\n## 章节结构\n\n### 第一章：...\n- 本章任务：...\n- 核心观点：...\n- 支撑证据：...\n- 预期结论：...\n\n## 视觉方向\n- 视觉来源：企业模板档案复用 / 用户明确参考 / TaoHtml 内置主题\n- 企业模板档案（复用或临时 override 时保留）：profile id、企业显示名、active version、theme fingerprint、解析依据、binding 路径与当前验证状态\n- 本次档案状态（复用或临时 override 时保留）：沿用 active version / `temporary_override`；临时 override 不修改企业默认档案\n- 用户参考（如适用）：本地文件或可定位描述\n- 参考图模式（如适用）：`reconstruct` 参考风格重构 / `corporate_fidelity` 企业模板保真\n- 保真边界（企业模板保真时保留）：只承诺截图中可见效果；不承诺恢复原始 PPT 母版、矢量 Logo、字体源文件或截图外资产\n- 来源页面与角色（企业模板保真时保留）：每页 id、自动识别的 cover / toc / section / content / data 角色、源图哈希与尺寸、canvas_bbox、observed 状态\n- 锁定企业元素（企业模板保真时保留）：shared asset 与各 shell 固定 placement 的 id、类型、来源页、归一化 bbox、确认状态\n- 可编辑安全区（企业模板保真时保留）：每个 shell 的区域 id、归一化 bbox、唯一允许内容角色；固定层不参与排版或动效\n- 参考事实边界（如适用）：`observed` 直接观察 / `extension` 可确认延展 / `unknown` 截图无法判断；按 source / shell / asset / page role 分别记录\n- 延展页面与限制（企业模板保真时保留）：所有未观察角色的 proposed extension 状态；更清晰截图等真实阻塞项；不承诺独立 Logo 上传\n- VI 规范图（静态参考时保留）：统一 PNG / HTML 路径 + 已确认状态\n- 所选内置主题（如适用）：稳定 theme id + 完整主题名称 + 一句具体画面描述\n- 内置主题决定（如适用）：客户选择 / 明确委托 TaoHtml；当前选择或委托的会话引用\n- 选择理由：...\n- 必要偏离说明：无 / 偏离项、原因及仍保留的主题语法\n- 动效密度：`minimal` 少量 / `moderate` 适中 / `rich` 丰富\n- 动效决定：客户选择 / 明确委托 TaoHtml；当前选择或委托的会话引用\n- 动效推荐依据：TaoHtml 的推荐及与报告任务、使用模式的关系；推荐不等于已选择\n- 阅读与演讲行为：...\n\n## 来源与证据记录\n- 来源：路径、上传标识或精确外部定位\n- source_binding：current_upload_or_user_explicit / task_instruction_explicit / candidate_confirmed / agent_retrieved_external\n- source_role：original_customer_material / external_public_evidence / secondary_handoff_summary / current_artifact / visual_reference / agent_generated_material / described_unavailable_material\n- availability_status：workspace_readable / external_retrieved_inspected / platform_visible_not_retrieved / handoff_record_only / confirmed_missing / not_yet_verified\n- evidence_verification：verified / unverified / conflicting / not_applicable\n- 检查覆盖、观察依据与限制：...\n- 来源理由：...\n- 支撑观点：...\n- 最终页面是否展示及展示位置：...\n\n## 交付约束\n- 离线、画布、浏览器、素材和附件要求\n\n## 待确认项\n- TaoHtml 的自动推断及依据：...\n- 预计创作性补全范围：可能补充的场景、数字、观点、示例或表达；具体生成内容将在交付时逐条列入《待核实内容清单》\n- 数据修正及原因：...\n- 其他会影响成品的判断：...\n\n请确认或修正这份当前完整设计简报；明确确认只绑定此版本的完整设计简报、其中记录的当前内置主题/不适用状态与动效决定，以及当前会话记录，并允许进入独立的 current-file Production Authorization 检查。任一设计决定变更后都必须更新并重新确认完整简报。设计简报确认不是正式 HTML 制作授权；只有该检查允许 `formal-html` 后，才能开始正式制作。\n```\n\n## Adaptation Rules\n\n- For a simple report, merge short sections and keep the brief compact.\n- For a complex report, preserve the chapter-level viewpoint, evidence, and conclusion mapping.\n- Copy the selected Workflow Profile's exact customer-facing name, stable `profile_id`, definition version, semantic selection basis, and bounded capability overlays into `主要工作场景`. Write `无` when there is no overlay. Do not expose a Profile or IR questionnaire.\n- When the selected definition contains `设计简报增量`, copy only those fields into the one adaptive `场景特有决策` section. Omit the whole section for definitions without an increment, and never display fields from an unselected Profile. This is part of the complete current brief, not a second brief or confirmation round.\n- Treat Profile selection, confirmation of the complete current Report Design Brief, and Production Authorization as three independent facts. Selecting a Profile neither confirms the brief nor authorizes production, and brief confirmation does not replace current-file Production Authorization. Bind the confirmed brief to the current normalized built-in-theme/not-required object and motion decision through the canonical digest defined in `production-authorization.md`; any value, status, or decision-reference change requires an updated brief and fresh confirmation.\n- For a meaning-changing continuation, preserve every still-supported inherited decision, describe only the requested delta in `续作基线`, rebuild only affected fields, then display and confirm the complete current brief. Avoid replaying the original interview. A read-only handoff and a meaning-preserving local continuation never use this template.\n- For a meaning-changing continuation whose dominant business outcome changes, update the affected `主要工作场景` fields inside the complete current brief and use the existing single brief-confirmation gate. For a meaning-preserving local continuation, keep the inherited Profile state without generating or reconfirming a brief. Do not add a Profile-specific confirmation round.\n- Keep the seven source roles, six availability states, and evidence-verification status independent from `source_binding`. A secondary summary and a current artifact must state what each can and cannot support; neither becomes original evidence through reuse. Retrieved public/third-party evidence uses its external role and availability and must never be relabeled as customer material or Agent-generated content.\n- Record only current observed readiness and operation evidence. A found/openable HTML is not formally deliverable; operating instructions must come from the exact artifact tested or be labeled as generic current Runtime-contract behavior.\n- If the user supplied a clear visual reference, record `reference_mode`. Do not reduce `corporate_fidelity` to “closely reproduced”: state the screenshot-visible fidelity boundary, locked elements, editable region, and extension/unknown limits explicitly.\n- For a reused corporate profile, copy the exact live binding's profile id, display name, version, theme fingerprint, identity-resolution basis, and temporary-override state. Do not require or claim a new VI confirmation. Keep the profile binding, current brief confirmation, and production authorization as three separate facts.\n- A temporary override records the active profile that was deliberately not used and the current replacement visual route; it never changes the profile pointer. A permanent template update appears only after the new corporate VI/theme becomes an immutable profile version. Another company never reuses or overwrites the original profile record.\n- If the user supplied a clear visual reference, do not add a competing built-in-theme requirement.\n- For supported static-reference inputs, include the confirmed unified VI board path and confirmation state. In corporate fidelity, copy the exact source-role, canvas, shared-asset, shell placement, editable-region, extension, and limitation summary from the confirmed contract; do not silently alter it after current-board confirmation. Do not include a dynamic-analysis field or infer sequential behavior from multiple stills.\n- Treat VI confirmation and Report Design Brief confirmation as separate gates. A confirmed VI board may enter the separate project-theme handoff, but it does not authorize report production.\n- For a built-in visual system, copy its stable theme id, full customer-facing name, one-line description, `user_selected | delegated_to_taohtml` status, exact decision reference, fit reason, and every necessary deviation. A recommendation without either status cannot enter this brief. Write `无` when there is no deviation.\n- For every visual route, copy the native `minimal | moderate | rich` motion density, its 少量 / 适中 / 丰富 customer label, `user_selected | delegated_to_taohtml` status, exact decision reference, and recommendation basis. Never turn a Workflow Profile default or static reference into a selected value. Do not repeat a choice already recorded.\n- Include `行动闭环` only when the confirmed goal requires the audience to complete an external action. Omit it for explanatory, educational, or internal reports that do not require conversion; do not add a gratuitous CTA.\n- Copy the exact verified action path into the brief. Record its provenance and verification status separately from the desired action, and state how the audience will see and use it on the final page.\n- Put every outcome-changing design inference and its basis, planned creative-supplement scope, and source-data correction in `待确认项`. This is where `inferred` design-ledger items receive unified confirmation; do not require the customer to pre-approve every production sentence or illustrative value.\n- During production, record each actual creative supplement in the delivery verification ledger rather than silently converting it into a source fact. Do not list customer-provided or independently verified facts as creative supplements.\n- Never disguise a minimum hard-boundary decision as an inference. Return to the blocked-intake output in `intake-workflow.md` instead.\n- Keep source records in the brief whether or not the final pages visibly cite them.\n- Copy every used material's source identity, `source_binding`, source role, availability status, evidence-verification status, inspection coverage, limits, and binding reason from the source ledger. Do not include a merely discovered or conventionally named workspace file, and do not relabel an eligible bound source as a creative supplement.\n- Do not split content into slide copy, speaker notes, and appendix at this stage; production makes that allocation from the confirmed mode.\n\n## Authorization\n\nThe brief must be displayed as a whole before asking for confirmation. If the customer edits one section, revise the whole current brief and request one final confirmation. Profile selection is not this confirmation, and this confirmation is not Production Authorization. Only after the complete current brief is confirmed may the existing current-file authorization gate permit production.\n\nFile v0.6.0:references/design-quality-rubric.md\n\n# Design Quality Rubric\n\nUse this rubric when a user asks for a high-design HTML deck, roadshow deck, polished presentation, or says the output feels ordinary.\n\nThe goal is not decoration. The goal is a presentation that looks authored, intentional, credible, and performable.\n\n## How To Use\n\nBefore implementation:\n\n1. Write the audience decision.\n2. Write the story spine.\n3. Write the deck-level visual thesis.\n4. Choose 3-5 layout patterns from `layout-pattern-library.md`.\n5. Define the evidence layer: screenshots, source pages, charts, videos, reports, or appendices.\n\nAfter implementation:\n\n1. Score the deck from 0-100.\n2. Fix any gate failure before delivery.\n3. If the score is below 80, revise the story, composition, or evidence treatment before tuning colors.\n\n## Hard Gates\n\nIf any hard gate fails, the deck is not ready.\n\n- **Information gate**: confirmed source facts, numbers, charts, or claims are omitted or silently changed with no appendix or source view.\n- **Audience gate**: the deck does not make clear what the audience should believe or do next.\n- **Layout gate**: most pages use the same title-plus-cards structure without a purposeful reason.\n- **Evidence gate**: generated material is presented as real proof, or a simulated chart, fictional case, generated evidence-like artifact, or easily mistaken data lacks an adjacent `示意 / 模拟 / 待核实` label. Ordinary creative supplements disclosed in the delivery verification list do not fail this gate merely because the user did not supply them.\n- **Handoff gate**: creative supplements are not covered by a structured `《待核实内容清单》`. This makes the full workflow conditional, while an otherwise usable HTML artifact may still pass its design and technical gates.\n- **Operation gate**: live presentation flow depends on hover, tiny mouse targets, or interactions a clicker cannot operate.\n- **Portability gate**: the HTML references absolute local files, temp files, WeChat cache files, or missing assets.\n- **Overflow gate**: text overlaps, spills out of containers, or leaves the 16:9 canvas at 1600x900.\n\n## 100-Point Score\n\n### 1. Story And Persuasion - 20 points\n\n- 0-5: The deck is a list of topics.\n- 6-10: The deck has sections, but the order does not earn the conclusion.\n- 11-15: The deck has a clear problem, proof, mechanism, method, and action.\n- 16-20: The deck creates a controlled change in audience belief with strong section openings and closings.\n\nCheck:\n\n- Does the opening begin with a concrete change, tension, or scene?\n- Does the deck delay definition until the problem is visible?\n- Does each section end with a \"so what\" that naturally opens the next section?\n- Is the sales or CTA page earned by diagnosis, mechanism, and proof?\n\n### 2. Slide Role Clarity - 12 points\n\n- 0-3: Slides mix too many jobs.\n- 4-6: Roles exist, but several pages still feel interchangeable.\n- 7-9: Most pages have one clear job.\n- 10-12: Every page has a distinct role and the sequence feels rehearsable.\n\nCheck:\n\n- Can each page be named as opener, evidence, mechanism, framework, case, workflow, offer, or close?\n- If two adjacent pages look similar, do they intentionally show a sequence?\n- Is dense content split across staged reveals or multiple pages?\n\n### 3. Visual Thesis And Originality - 15 points\n\n- 0-4: The deck is decorated but has no visual idea.\n- 5-8: A style exists, but it is mostly color and card styling.\n- 9-12: A clear visual metaphor guides composition and motifs.\n- 13-15: The subject has been turned into a memorable visual world.\n\nCheck:\n\n- Can the visual thesis be stated in one sentence?\n- Does the thesis fit the subject matter, not just the user's favorite palette?\n- Do motifs repeat with purpose: grid, ruler, data panel, document slice, map, console, timeline, cutaway?\n- Does the design avoid looking like a template?\n\n### 4. Composition And Hierarchy - 15 points\n\n- 0-4: Pages are evenly filled and low-risk.\n- 5-8: Some pages have hierarchy, but many are still flat.\n- 9-12: Most pages have strong focal points and controlled secondary information.\n- 13-15: The deck uses confident scale, asymmetry, contrast, whitespace, and rhythm.\n\nCheck:\n\n- Is there a dominant object or statement on each key page?\n- Are titles large enough when they should carry the stage?\n- Are labels small and disciplined instead of competing with the headline?\n- Do dense evidence pages have guided attention through callouts or cropping?\n\n### 5. Evidence Treatment - 12 points\n\n- 0-3: Evidence is absent or rewritten into vague summaries.\n- 4-6: Evidence appears, but is too small, dumped, or decorative.\n- 7-9: Evidence is readable, cropped, framed, and interpreted.\n- 10-12: Evidence feels like a live artifact: source view, modal, slice, zoom, scroll, or case teardown.\n\nCheck:\n\n- Does the audience see the original proof when credibility matters?\n- Are charts and screenshots large enough to inspect?\n- Are original pages available through source buttons, appendix, or downloadable files?\n- Are interpretation and source facts visually separated?\n\n### 6. Motion And Presenter Flow - 10 points\n\n- 0-3: Motion is absent where sequence matters, or decorative where it distracts.\n- 4-6: Some reveals work, but the presenter flow is uneven.\n- 7-8: Clicker-driven staging supports the explanation.\n- 9-10: Motion creates tension, focus, comparison, or proof without hurting readability.\n\nCheck:\n\n- Does each click reveal the next spoken point?\n- Does a staged slide show its complete final state before moving on?\n- Do slides preserve and restore their prior reveal state when returning?\n- Do videos open only when the presenter chooses and stop when closed?\n\n### 7. Visual Finish - 8 points\n\n- 0-2: Inconsistent spacing, type, borders, colors, or shadows.\n- 3-5: Mostly consistent but still rough in details.\n- 6-7: Polished component system and spacing.\n- 8: Production-level finish.\n\nCheck:\n\n- Are margins, labels, page numbers, and controls consistent?\n- Are buttons and controls styled as part of the deck?\n- Are type sizes stable and not viewport-scaled?\n- Are colors balanced rather than one-note?\n\n### 8. Technical Reliability - 8 points\n\n- 0-2: Navigation, assets, or layout break.\n- 3-5: Main flow works, but packaging or QA is incomplete.\n- 6-7: Local deck works, assets are portable, and core QA passes.\n- 8: Deck is packaged, checked, and ready to run on another computer.\n\nCheck:\n\n- Does it pass `check_assets.py`?\n- Does it pass `check_html_deck.py` at 1600x900?\n- Does the zip contain the HTML and all assets?\n- Does the first page, a dense page, a media page, and the final page render correctly?\n\n## Score Bands\n\n- **90-100**: High-design roadshow quality. Use for paid presentations, launches, or important clients.\n- **80-89**: Strong professional quality. Deliverable after small polish.\n- **70-79**: Usable but not premium. Fix weak composition, evidence, or section rhythm.\n- **60-69**: Ordinary report. Likely title + cards, weak visual thesis, or thin proof.\n- **Below 60**: Rebuild the story spine and visual system before continuing.\n\n## Fast Diagnosis\n\nIf the deck feels ordinary:\n\n1. Stop tuning colors.\n2. Re-name each page role.\n3. Replace repeated card grids with different layout patterns.\n4. Add real evidence or source view.\n5. Create one oversized focal moment per section.\n6. Re-run this rubric.\n\nIf the deck feels cluttered:\n\n1. Split dense pages into opener, evidence, and implication.\n2. Move source detail into modal or appendix.\n3. Reduce body copy on the slide and move explanation into speaker notes.\n4. Use staged reveals.\n\nIf the deck feels stylish but unconvincing:\n\n1. Add original artifacts where credibility depends on source proof.\n2. Add exact sourced numbers or explicitly tracked projected values.\n3. Separate source proof, interpretation, and creative supplements.\n4. Add boundary language before the offer and complete the delivery verification list.\n\nFile v0.6.0:references/environment-preflight.md\n\n# Environment Preflight\n\nRun the smallest profile needed for the route before reading or processing the\ncorresponding customer material. The preflight parent uses only the Python\nstandard library; dependency imports and Chromium launch run in child processes\nso a missing module, timeout, or native crash can fail quickly and return JSON.\n\n## Profiles And Timing\n\n| Profile | Run before | Checks |\n|---|---|---|\n| `core` | First filesystem work on idea-only, Word, PPT, or HTML routes that use built-in visuals | Python 3.10+ and workspace read/write |\n| `pdf` | Opening, extracting, or summarizing a PDF | Core plus PyMuPDF |\n| `static-reference` | Opening or analyzing any image for `reconstruct` or `corporate_fidelity` | Core plus Pillow, PyYAML, Python Playwright, real Chromium launch, and a minimal PNG screenshot |\n| `profile-reuse` | Binding or loading an already-confirmed corporate-template profile | Core plus Pillow and the TaoHtml project-theme loader; no Playwright or Chromium |\n| `browser` | Browser QA | Core plus Python Playwright, real Chromium launch, and a minimal PNG screenshot |\n\nDo not run `static-reference` or `browser` merely because those dependencies are\nlisted. An idea-only report using one of the eight built-in visual systems must not\nbe blocked by Pillow, Playwright, or Chromium before those capabilities are used.\nEach larger profile already includes the core checks; do not run core separately.\n\nUse the Skill-relative script from the installed skill root:\n\n```bash\npython scripts/preflight.py --profile core --workspace /absolute/path/to/workspace\npython scripts/preflight.py --profile pdf --workspace /absolute/path/to/workspace\npython scripts/preflight.py --profile static-reference --workspace /absolute/path/to/workspace\npython scripts/preflight.py --profile profile-reuse --workspace /absolute/path/to/workspace\npython scripts/preflight.py --profile browser --workspace /absolute/path/to/workspace\n```\n\nThe command writes one machine-readable JSON object to stdout, prints the same\ncustomer-readable conclusion and recovery options to stderr, and exits nonzero\non failure. Preserve the JSON in task evidence when possible. Do not read or\nprocess the gated customer material until the required profile returns\n`\"ok\": true`.\n\nRun `profile-reuse` after exact enterprise identity resolution but before writing\nthe task binding, loading the archived theme, or showing the Report Design Brief.\nIt verifies only the dependencies that live profile validation actually needs.\nDo not rerun `static-reference`, require PyYAML, or launch Playwright/Chromium merely\nto reuse a previously confirmed profile. Browser QA still requires the separate\n`browser` profile later.\n\nThe default browser-probe timeout is 20 seconds. Individual dependency imports\nare capped at 10 seconds even when a larger CLI timeout is supplied, keeping a\nhung native import from recreating the delayed-failure path this preflight guards.\n\n## Dependency Declaration Is Not Installation\n\n`requirements.txt` at the skill root declares the Python dependencies carried by\nthe raw Skill, marketplace, and Skill Hub packages. A declaration does not prove\nthat the host platform installed those dependencies. The preflight verifies the\nactive interpreter; it does not install packages, browsers, or system libraries.\n\nWhere the host permits environment changes, an operator may use:\n\n```bash\npython -m pip install -r requirements.txt\npython -m playwright install chromium\n```\n\nOn a managed Agent platform, the correct recovery may instead be a different\nworkspace/runtime image. Do not assume that pip or browser installation is\nauthorized or persistent. Python Playwright includes its driver path internally;\nTaoHtml does not separately require a user-managed Node CLI, and the real launch\nprobe is the authoritative check for the current chain.\n\n## Fail-Fast Recovery Contract\n\nWhen a profile fails:\n\n1. Stop before the gated material is read or transformed.\n2. Report the failed check categories and the customer conclusion from the JSON.\n3. Never mark the unavailable capability or its downstream QA as passed.\n4. Retry only after the user or platform operator repairs the environment or\n   selects a different environment.\n\nFor `static-reference`, both customer-reference modes use the same failed chain.\nOffer exactly these product choices:\n\n- repair or replace the environment, rerun `static-reference`, and then retry the\n  chosen customer-reference route; or\n- explicitly abandon the customer-reference route and choose one of TaoHtml's\n  eight built-in visual systems.\n\nDo not offer “manual corporate fidelity.” Do not continue calling the output\n`corporate_fidelity` after bypassing deterministic fixed-element extraction, VI\nconfirmation, or project-theme compilation. Do not call `reconstruct` a technical\ndowngrade because it requires the same Pillow/Playwright/Chromium path. A genuine\nalternative renderer is valid only after it is implemented and verified as an\nindependent capability; none is currently bundled.\n\nFile v0.6.0:references/intake-workflow.md\n\n# Intake Workflow\n\nUse this workflow after identifying the available input and before editing or creating HTML. Apply it to every route, with the source gate appropriate to that route. For an existing project, first read `project-handoff.md` and set the independent `new_build | review_only | continue_existing` task-intent overlay. That overlay does not add a fourth content route.\n\n## State Machine\n\nMove through these states in order:\n\n| State | Result | Exit condition |\n|---|---|---|\n| H0 Task intent | New build, read-only review, or continuation is recorded independently from content route | The user's requested action establishes `new_build`, `review_only`, or `continue_existing` |\n| S0 Route handshake | `idea_only`, `word_pdf`, or `existing_ppt_html` is recorded as `route_selected` | A specific topic, an eligible bound source, an explicit route/material intent, or the user's answer to the latest active route options establishes only the route |\n| S0B File source acquisition/binding | A file route has one eligible accessible source recorded as `source_bound`; `idea_only` bypasses this state | The current upload, resolvable exact path, task-instruction source, or user-confirmed discovered candidate is bound; otherwise request the source and stop in S0B |\n| S0A Startup completion | Reading/presentation and concise/standard/detailed are selected | Choices are known, evident from the input, or explicitly delegated |\n| S1 Source grounding | The available idea or source is represented accurately | The route-specific source gate passes |\n| S2 Content design completion | Only ordinary outcome-changing decisions and hard-boundary gaps are resolved | The project passes the design-ready gate, or intake stops on a minimum hard boundary |\n| S2A Independent design choices | The visual source is resolved; a built-in route has one exact theme; motion density is recorded for every route | Each applicable choice is explicitly user-selected or explicitly delegated to TaoHtml; the ordinary clarification count and no-gain rule cannot skip this gate |\n| S3 Reference VI | On the supported static-reference route, one unified VI design standards board is shown; other visual routes bypass this state | The user clearly confirms the exact current board and its conversation reference is recorded, or the state is not applicable |\n| S4 Design brief | One customer-readable brief is shown | The user explicitly confirms the current brief |\n| S5 Production | HTML, visual system, presentation behavior, and objective QA are completed | Objective failures are fixed |\n| S6 Delivery | Files, checks, and a structured verification handoff are reported | Deliverables are usable and creative supplements are easy for the customer to review |\n\nApply the source gate as follows:\n\n- **Idea only**: seed the ledger from the conversation. Do not create or ask the user to confirm a fictional Material Understanding Summary.\n- **Word/PDF**: require `source_bound` in S0B before asking any startup question or reading material; then show the Material Understanding Summary defined in `material-understanding.md` and wait for confirmation or correction.\n- **PPT/HTML**: require `source_bound` in S0B before asking any startup question or reading material; then show the same source-grounded Material Understanding Summary, preserve its confirmed core viewpoints, and resolve faithful migration versus reorganization only if both remain reasonable.\n\n`route_selected` and `source_bound` are independent facts. Selecting Word/PDF or\nPPT/HTML, including with a compact `2` or `3`, exits S0 but cannot exit S0B. While a\nfile route remains in S0B, the only user-facing action is to request an upload or a\nresolvable exact path and then stop. Do not spend that turn on use mode, length,\naudience, Workflow Profile, material understanding, filesystem search, or content\nreading.\n\nFor `review_only`, stop after the read-only role/availability map in\n`project-handoff.md`; do not enter S0-S6 merely to read the handoff. For\n`continue_existing`, apply the Continuation Decision Matrix there before S0. A clear\n`meaning_preserving_local` revision skips S0-S4 and enters only bounded revision,\napplicable current QA in S5, and delivery verification in S6. A `meaning_changing`\nrevision reuses still-supported interpretations and decisions, then applies only the\naffected source gate and delta intake. Do not replay the full intake.\n\nNever write a Report Design Brief while a minimum hard-boundary gap remains. On a new\nbuild or meaning-changing continuation, never write HTML before the current brief is\nexplicitly confirmed. A meaning-preserving local continuation is the explicit matrix\nexception: it does not create or reconfirm a brief and may revise only the exact\ndelivered artifact inside its semantic boundary. Ordinary absent facts are not a\nreason to stop: plan reasonable creative supplements, finish the report, and disclose\nthe generated details at delivery.\nOn the static-reference route, never write the brief before the current VI board is confirmed.\n\nFor a new build or meaning-changing continuation, maintain the exact current-task\nstate and allowed actions in `production-authorization.md`. A Material Understanding\nSummary, VI standards board, and Report Design Brief are confirmation artifacts.\nFormal report HTML, browser QA, and delivery on that path remain forbidden until the\nmachine gate authorizes them for the current task. A meaning-preserving local\ncontinuation does not fabricate a new authorization state; it preserves the exact\ndelivered baseline and still runs every applicable current artifact QA and delivery\ncheck. Do not treat a formal or nearly finished HTML deck as a confirmation preview.\n\n## New Invocation Handshake\n\nEvery `new_build` or `meaning_changing` continuation that will create or revise HTML\nstarts at S0 unless the route is already established by the current bound handoff. A\n`meaning_preserving_local` continuation does not reopen S0. A `review_only` request\nrecords the route when the available handoff proves it and otherwise leaves it\nunresolved without asking the three-route question. Establish only the current task\nentry in this first phase.\n\nTreat the current message as route-bearing only when it contains at least one of:\n\n- a specific topic, question, claim, or outcome that the user clearly wants TaoHtml\n  to turn into a report; or\n- an upload, resolvable exact path, or task-instruction source eligible under `Source\n  Binding` below; or\n- an explicit file-route selection, filename, unavailable attachment, or material\n  description identified as intended input, which may select the route but cannot\n  establish `source_bound` by itself.\n\nWhen any is present, infer the matching route without asking for it again. A\nspecific topic enters the idea-only startup path. An eligible accessible file source\nmay establish both the matching route and `source_bound`. A file description,\nunresolved filename, unavailable attachment, or route choice without an eligible\nsource establishes only `route_selected` and enters S0B. For a new build or\ncontinuation, when neither is present, show exactly one route choice with **Idea only\n/ Word or PDF: upload the file or provide its complete path / Existing PPT or HTML:\nupload the file or provide its complete path**, record that option set as\n`latest_options`, and stop. Do not inspect the workspace, read `input/prompt.md`,\nsummarize materials, draft a brief, or create HTML while S0 is unresolved. A\nread-only handoff is the sole exception to the route question, not a fourth route.\n\nJudge semantic binding from the message's task meaning, not from a blacklist or an\nenumeration of tokens. Text that merely enables sending, acknowledges the Skill, or\nsignals attention without identifying a report topic or material supplies no route.\nThis rule must generalize across languages, punctuation, emoji, and platform UI.\n\n### Conversation-Scoped Option Binding\n\nMaintain at most one active option record:\n\n```text\nlatest_options = decision id | Agent turn | exact choices | active/inactive\n```\n\nA short label, ordinal, or compact answer binds only when it is a plausible direct\nanswer to the Agent's most recent active option record in this same conversation.\nConsume the record after one answer and invalidate it whenever a newer option set or\nchanged task supersedes it. Never map a compact answer to section numbering in this\nSkill, an earlier conversation, a platform menu, or a route number remembered from\ndocumentation. Thus a compact answer after the Agent has just shown the three entry\nroutes can select that route; the same compact text attached to a fresh invocation\ncannot.\n\n## File Source Acquisition And Binding\n\nApply this low-freedom gate immediately after S0 for `word_pdf` and\n`existing_ppt_html`. Do not apply it to `idea_only`. If the exact source is already\neligible and accessible, bind it once and continue without requesting it again. If\nan explicit path cannot be resolved or accessed, report that exact-path problem and\nrequest a corrected path or upload; do not search its parent, siblings, the current\nworking directory, or the wider workspace.\n\nCandidate discovery is disabled by default. It becomes available only when the user\nexplicitly asks TaoHtml to find the source and identifies, or has already clearly\nplaced in scope, a narrow directory. Discovery may inspect metadata needed to present\nexact candidate paths, but it must not open, extract, parse, summarize, or otherwise\nread candidate content. Show the exact path or paths and stop for confirmation. Only\nthe confirmed candidate becomes `source_bound`; do not auto-bind even a single match.\n\n### Source Acquisition Decision Table\n\n| Case | route | source_status | discovery_authorization | allowed_actions | next_state | forbidden_actions |\n|---|---|---|---|---|---|---|\n| `idea_only_topic` | `idea_only` | `not_applicable` | `not_required` | `continue_startup` | `S0A` | `request_source,filesystem_search,source_read` |\n| `word_pdf_missing` | `word_pdf` | `missing` | `absent` | `request_source,stop` | `S0B` | `use_mode_question,length_question,audience_question,filesystem_search,candidate_discovery,source_read` |\n| `existing_ppt_html_missing` | `existing_ppt_html` | `missing` | `absent` | `request_source,stop` | `S0B` | `use_mode_question,length_question,audience_question,filesystem_search,candidate_discovery,source_read` |\n| `current_upload` | `file_route` | `accessible_current_upload` | `not_required` | `bind_exact_source,continue` | `S0A` | `request_source,candidate_discovery,broad_search` |\n| `explicit_path` | `file_route` | `resolvable_exact_path` | `not_required` | `bind_exact_path,continue` | `S0A` | `request_source,parent_search,sibling_search,broad_search` |\n| `task_instruction_source` | `file_route` | `accessible_task_bound_source` | `not_required` | `bind_exact_source,continue` | `S0A` | `request_source,candidate_discovery,broad_search` |\n| `authorized_directory_discovery` | `file_route` | `missing` | `explicit_narrow_directory` | `metadata_discovery,show_exact_paths,stop` | `S0B` | `content_read,extract,summarize,auto_bind,startup_questions` |\n| `confirmed_candidate` | `file_route` | `confirmed_candidate` | `explicit_narrow_directory` | `bind_confirmed_candidate,continue` | `S0A` | `read_unconfirmed_candidate,broaden_search` |\n| `workspace_or_history_residue` | `file_route` | `unbound_workspace_file` | `absent` | `request_source,stop` | `S0B` | `auto_bind,filesystem_search,candidate_discovery,source_read` |\n\n## Source Binding\n\nMaintain a source ledger separate from the design and creative-supplement ledgers.\nA local or uploaded material is eligible only through one of these bindings:\n\n1. `current_upload_or_user_explicit`: the user uploads it now and it is available in\n   this session, or provides one resolvable exact file path for this task;\n2. `task_instruction_explicit`: the current task instruction explicitly declares one\n   accessible file or prepared input as this run's source; or\n3. `candidate_confirmed`: after the user explicitly asks TaoHtml to find the source\n   in a narrow in-scope directory, the Agent presents an exact metadata-only\n   candidate path and receives confirmation to use it.\n\nAn external network or connector source retrieved by the Agent uses\n`agent_retrieved_external` only when the current task authorizes browsing/evidence\nretrieval and the Agent records the exact URL or stable locator, retrieval time,\ninspection coverage, supported claim, and verification result. This is not a fourth\nlocal-file binding: never apply it to a workspace candidate or use it to broaden\nfilesystem discovery.\n\nMere workspace presence, the current working directory, a conventional filename such\nas `input/prompt.md`, a directory convention, or residue from a previous task is never\na binding. Do not silently promote such a file to `known`, even when its content looks\nrelevant. Before route establishment, do not scan for candidates at all. Route\nestablishment alone still does not authorize discovery: a compact `2` or `3` is only\na route selection. Without the user's explicit request to find a source, request an\nupload or resolvable exact path and stop.\n\nA read-only handoff whose content route remains unresolved may inspect only the\ntask-scoped attachment explicitly bound for the handoff audit, as defined in\n`project-handoff.md`. It may inspect directory metadata to present an exact candidate\nonly after the user explicitly asks it to find that source; it still may not read\ncandidate content or broaden the search.\n\nWhen explicitly authorized, candidate discovery must stay inside the narrow directory\nthe user specified or clearly placed in scope and remain metadata-only. Do not\nrecursively scan a home directory, Desktop, Downloads, platform cache, cloud-sync\nroot, unrelated workspace, or other broad user location. A shell command that finds\nno match in one checked location is not evidence that the item was cleaned, deleted,\nor permanently lost. Apply the availability states in `project-handoff.md`; keep it\n`not_yet_verified` or `handoff_record_only` unless the user or an authoritative\nplatform/source state confirms the exact item is missing.\n\nFor every material actually used, record:\n\n```text\nsource identity/path | source_binding | source role | availability status |\nevidence verification | inspection coverage | binding reason |\nbound conversation/task turn\n```\n\nCarry these fields into the Material Understanding Summary and the Report Design\nBrief's source records. A customer-bound or independently verified source remains a\nreal source and must never be relabeled as a creative supplement.\n\nFor handoff work, use the seven source roles, six availability states, and independent\nevidence-verification field defined in `project-handoff.md`. A secondary handoff\nsummary can establish what was previously reported, and a current artifact can\nestablish what is presently rendered; neither establishes the provenance of\nunderlying claims without the original source or an explicit confirmation permitted\nby that reference. A retrieved third-party/public source uses\n`external_public_evidence | external_retrieved_inspected`; never relabel it as\ncustomer material or Agent-generated content.\n\n## Decision Ledger\n\nMaintain these buckets internally; do not expose them as a questionnaire:\n\n```text\nknown | confirmed | inferred | missing\n```\n\n- **known**: stated in the current conversation or directly supported by the source.\n- **confirmed**: explicitly accepted or corrected by the user.\n- **inferred**: a reversible ordinary design decision TaoHtml can make from context or user delegation; record its basis and expose it in the brief. A built-in theme or motion density enters this bucket only after explicit delegation, never from context alone.\n- **missing**: an outcome-changing decision or hard-boundary fact that is not yet known and cannot be safely delegated.\n\nRebuild the ledger after reading each source and update it after every answer. Move information instead of copying it across buckets. Treat a stated route, use mode, audience, desired outcome, content length, real action path, or hard presentation duration as `known`; do not ask for or confirm the same information again. Do not ask about any other `known`, `confirmed`, or safely `inferred` item.\n\nFor `continue_existing`, seed the ledger from still-readable verified artifacts and\nthe handoff role/availability map. Preserve a distinction between inherited verified\nfacts, secondary claims, and currently unavailable material. Ask only about a delta\nthat can change the requested result; do not turn takeover into a fresh interview.\nWhen the requested delta is clearly `meaning_preserving_local`, do not rebuild this\nledger as a new intake; retain it only as the semantic baseline for post-change\ntraceability.\n\nThe design ledger is not the delivery verification list. During production, maintain a separate creative-supplement ledger with `page/content | supplement type | source status | suggested action`. A missing ordinary scene, number, viewpoint, or expression may enter this ledger directly instead of becoming another intake question. Customer-provided and independently verified facts stay in `known` or `confirmed`; never relabel them as creative supplements.\n\n## Desired Action And Real Action Path\n\nKeep two decisions separate:\n\n- **Desired action**: what the audience should decide or do after the report.\n- **Real action path**: the exact channel through which the audience can complete that action, such as a verified URL, host-agent invocation, installation command, booking route, download location, or contact detail.\n\nTreat trial, purchase, booking, download, installation, contact, registration, subscription, and similar external-action goals as **conversion objectives**. A conversion objective is not design-ready until the desired action and a real action path are both resolved. Do not ask for an action path when the report is explanatory, educational, or internal and its confirmed goal does not require an external action.\n\nAccept an action path only when it is:\n\n1. explicitly provided by the user;\n2. present in the source material or project context and verified against that context; or\n3. selected under explicit user delegation and independently verified by the Agent before the brief.\n\nDo not ask for an action path already supported by the source or project context; record the value, source, and verification result in the ledger instead. Where independent verification is required, establish that the intended audience can use the complete channel and that it leads to the intended action. For URLs, open the target and confirm its purpose. For host-agent syntax or commands, check authoritative host or project documentation without triggering the external action. For user-provided contact details or prices, preserve the exact value and mark it as user-provided rather than implying independent verification. A QR code is a presentation of a verified value, not a source: decode it and compare the result with that value before delivery.\n\nNever invent a URL, QR code, contact detail, price, command, or product entry. If the user delegates channel selection but the Agent cannot verify a candidate, keep the action path in `missing`.\n\nWhen a conversion objective lacks a real action path, ask one minimal decision question at the point where it is the largest outcome-changing gap: request the exact channel, request authorization to locate and verify one, or offer to explicitly downgrade the goal so the report no longer promises direct action. This prompt counts toward the same six-question limit; it is not a fixed questionnaire item. A downgrade is valid only when the user clearly accepts the changed goal.\n\n## Startup Decisions\n\nPreserve the three product choices:\n\n- **Route**: idea only, Word/PDF, or existing PPT/HTML.\n- **Use mode**: reading, where each page stands alone and content is visible by default; or presentation, where tighter copy follows a spoken staged sequence.\n- **Length**: concise, standard, or detailed.\n\nResolve at most one missing startup choice per round and skip every choice already made. Complete the route handshake and, for a file route, S0B source binding before asking use mode or length. If presentation mode is already known, do not ask the user to select the use mode again. Do not bundle route, use mode, and length into one prompt. For a message with a specific idea-only topic, the route is already known and S0B is not applicable. When route and use mode are known but content length is missing, ask one question that offers **concise / standard / detailed**; do not infer a default length without explicit delegation, and do not replace these choices with duration or page-count options.\n\nEstimate the page count dynamically from the actual material after the content length is selected, and record that estimate in the design brief. Never assign or present a fixed page range by length label alone.\n\nPresentation duration is an optional delivery constraint, not a startup choice or a design-ready prerequisite. In presentation mode, do not ask for a duration by default and do not block progress when no duration was given. If the user provides a hard duration, record it as `known`, use it to constrain scope, pacing, and content density, and do not ask the user to repeat or confirm that duration. A hard duration does not replace the content-length choice.\n\n## Idea-Only Judgment Layer\n\nFor an idea-only route, evaluate these layers in order and skip any layer already resolved or safely inferable:\n\n1. **Audience and desired outcome**: who should understand, believe, decide, or do what after the report.\n2. **Core viewpoint or core question**: the claim the report should establish, or the question it must answer.\n3. **Evidence or conclusion-level conflict**: proof required for important claims and any ambiguity that could reverse the main conclusion.\n4. **Structure choice**: ask only when multiple chapter structures are genuinely reasonable and would produce meaningfully different reports.\n\nTreat this as a judgment layer, not a four-question form. Minor chapter naming and ordinary delivery defaults may be low-risk inferences. Built-in theme and motion density are handled only by the independent design-choice gate below.\n\n## Visual Source Selection\n\nResolve the visual source only after content and chapter structure are clear enough to judge fit.\n\n- Read `profile-memory.md` and parse enterprise identity from the eligible current material and conversation before asking for a new visual source. Pass only explicit identity candidates to `profile_store.py resolve`; do not add a fixed identity/reuse questionnaire and do not treat the previous task's choice as a permanent preference. One unique active profile binds automatically without reopening reference images, regenerating VI, or asking whether to reuse. Show its concise customer notice, then continue to the Report Design Brief unless the customer objects. Several candidates, unclear identity, alias conflict, or a current requirement/profile conflict permits exactly one selection question; never guess or combine profiles. A different company/customer always uses a separate profile.\n- Interpret “这次不用 / 这次换一个” as a task-local `temporary_override` binding that leaves the active version unchanged. Interpret “以后改用 / 更新公司模板” as a new corporate-fidelity VI confirmation plus immutable profile version and atomic active-pointer switch. Do not perform or imply destructive deletion; use archive when the customer wants the profile out of automatic resolution.\n- Reading versus presentation is the current task Runtime mode, not a profile conflict. Run the minimal `profile-reuse` preflight, bind the active corporate version with the current mode, and pass that mode to the renderer. Do not ask the customer to rebuild VI, create v2, or abandon the profile for a mode-only change.\n- On every route without a unique active Profile binding, resolve reference availability before presenting a fallback template. Unless a supported reference is already supplied, the customer has already named a concrete built-in system, or the customer explicitly delegates the built-in choice, ask exactly: **本次是否有希望参考的模板、企业母版或喜欢的意向图？有的话请上传静态截图；没有则从内置视觉系统中选择。** This is one independent visual-source decision, not an ordinary clarification question and not an open-ended taste question. A clear “有” starts the reference route and a clear “没有” starts the built-in route; do not combine this question with theme or motion selection. A customer who asks to replace a reused Profile enters this same reference-first choice.\n- If the customer provides or confirms a reference, resolve `reference_mode` once. `reconstruct` accepts exactly one static PNG/JPEG/WebP; `corporate_fidelity` accepts one to three representative static PNG/JPEG/WebP screenshots from the same template family. When the user already asks for “企业模板保真”, “公司模板原样采用”, or equivalent screenshot-visible fidelity, record `corporate_fidelity` without asking again. When intent is still unclear, ask one binary question: **参考风格重构**—提取设计语言，允许重新构图和创新；or **企业模板保真**—锁定截图中可见的企业固定元素，只设计各页面壳的安全内容区. Record `reconstruct` or `corporate_fidelity`, count this as one ordinary clarification question, and never repeat it after the answer is known.\n- For either mode, read `static-reference-vi.md`. Use the current session for only the minimal readability check defined there. When readable, analyze static visual facts, render one VI board through the shared contract, and wait for clear confirmation of that exact board without requiring a fixed reply phrase. In corporate fidelity, automatically identify each source role unless truly ambiguous; the board must expose all source thumbnails and role bindings, screenshot-visible fidelity boundary, shell-specific locked/editable regions, exact observed/extension/unknown labels, proposed unseen roles, and limitations. Customer corrections before confirmation replace the current contract. Do not require an internal-theme choice, infer dynamic behavior, or begin project-theme generation/report production before confirmation.\n- If the user has a clear reference but it is a PPT, webpage, video, state sequence, more than three corporate screenshots, or multiple screenshots for reconstruct, stop at the unsupported boundary and ask for a supported representative raster input. This is not the no-reference route: do not infer movement and do not recommend the eight built-in systems unless the user explicitly abandons the reference route.\n- Treat model choice as a platform/session-entry decision. WorkBuddy first use gets one recommendation to use Auto; Codex and Claude Code continue with the current session model. Never ask the user to select or repeatedly switch models inside the intake. If the current session cannot locate reliable static facts, say “当前会话无法可靠读取参考图” and offer only a manual model change followed by a restarted task, or a downgrade to the eight built-in systems.\n- Only when no enterprise profile applies, the customer has explicitly declined a reference (or has already named/delegated a concrete built-in system), and no clear reference route is active, read `visual-systems.md`. If the user already specified one concrete built-in system, adopt it directly without displaying the catalog and record the exact decision reference. Show a category subset only when the user has proactively and explicitly constrained the acceptable range of the built-in catalog and that constraint maps unambiguously to one declared category; never infer a catalog-range constraint from project context. Otherwise, in the same round, show every system in the complete current built-in catalog with its exact customer-facing name, one-line description, and bundled preview. Do not hide any entry because the Agent considers it less suitable. Report goal, audience, content, report type, and reading or presentation mode are recommendation inputs only: use them to mark one or two displayed systems as **更推荐**, but never to shrink the catalog; recommendation never replaces complete catalog display. If a user preference or constraint does not map unambiguously to a declared category, show the complete current catalog, reflect that preference in the recommendation reason, and never invent an ad hoc subset. Ask the user to choose once, or invite explicit delegation to TaoHtml; without either, stop at this gate.\n- Do not ask open-ended aesthetic questions such as “What style do you like?”. Do not repeat a theme-selection question after the user chooses or delegates.\n- The one-time ambiguous reference-mode resolution remains an ordinary clarification and uses the existing counter. The exact built-in theme and motion-density choice are separate design decisions outside that counter. Reaching the six-question maximum or the three-no-gain stop ends ordinary clarification but never selects either value. Do not ask the reference-mode question after explicit intent, and never infer corporate fidelity from an ambiguous request because it creates a fixed-asset lock.\n- For every visual route, present `minimal | moderate | rich` as **少量 / 适中 / 丰富**, recommend at most one, and wait for the user's choice or explicit delegation. A Workflow Profile default, static input, project context, question cap, or model judgment is recommendation evidence only. Do not repeat a known motion choice.\n- A selected theme fixes a reusable visual grammar, not a palette. Preserve its composition, hierarchy, image treatment, module language, chart/evidence treatment, and motion grammar unless the brief records a necessary deviation.\n\n## Select The Next Question\n\nBefore asking, re-read the conversation, available source, ledger, prior attempts, and counters. Then:\n\n1. Remove gaps whose answers are already present or can be safely inferred.\n2. Resolve S0 first, then S0B for a file route, then any missing startup choice according to `Startup Decisions`; after startup, rank the remaining gaps by how much they could change narrative, scope, conclusion, evidence, structure, or delivery.\n3. Ask only the largest current gap whose answer would change the report design.\n\nFor continuation, classify the delta before ranking gaps. A clear\n`meaning_preserving_local` revision asks no intake question and does not reopen a\nMaterial Understanding Summary or Report Design Brief. If the class is ambiguous,\nask only the single largest scope-boundary question. A `meaning_changing` revision\nremoves every unchanged inherited decision, then asks only its largest remaining\ngap. Apply the recovery/explicit-confirmation boundary in `project-handoff.md` when\nthe revision changes real data, provenance, evidence relationships, identity,\nachieved outcomes, a core conclusion, structure, scope promise, or responsibility\nboundary.\n\nAsk exactly one decision question per round. Do not pack independent questionnaire fields together. Offer 2-3 options only when they are real alternatives and state their design impact briefly.\n\nTreat \"decide for me\", \"not important\", or equivalent wording as delegation: choose a reasonable low-risk default, move it to `inferred`, and do not ask again.\n\nFor a missing conversion action path, delegation authorizes TaoHtml to locate and verify a channel; it does not authorize invention or an unverified default.\n\n## Question Budget And Stop Rules\n\nCount agent-initiated clarification prompts within the current intake cycle. Count each single-decision startup prompt and the one-time ambiguous reference-mode choice as one. Built-in theme selection, motion-density selection, and confirmation of the displayed Report Design Brief are separate gates and do not count toward this budget.\n\nA read-only handoff uses zero clarification questions and does not start an intake\ncycle. A clear meaning-preserving local continuation also uses zero intake questions.\nA meaning-changing continuation delta uses this same budget and stop policy; it does\nnot receive extra questions for previously answered startup or design decisions.\n\n- Allow **0 clarification questions** when the input already passes the source and design-ready gates.\n- Treat **3-5 clarification questions** as the ordinary target, not a quota.\n- Enforce **6 clarification questions** as a hard maximum, including for the most complex idea-only intake. Do not ask a seventh.\n- Ask about the same key gap at most **twice**. On the second attempt, replace the abstract wording with a concrete example or 2-3 real options. After that, infer or block according to risk.\n- Track whether each response produces actionable new information: it resolves or narrows a missing decision, corrects the ledger, supplies evidence, or clearly delegates a decision.\n- Stop ordinary clarification immediately after **three consecutive rounds without actionable new information**. Then infer all remaining ordinary low-risk gaps and either enter the independent design-choice gate or use the blocked-intake output. Do not infer a built-in theme or motion density.\n\nStop ordinary clarification immediately when the design-ready gate passes; never continue asking to approach a target or maximum. At the hard maximum, infer reversible ordinary design decisions, route ordinary missing content to the creative-supplement ledger, and stop ordinary clarification. Continue to the independent design-choice gate when no minimum hard boundary remains. Never use budget pressure as permission to cross a minimum hard boundary or select a theme/motion value.\n\nIf the user initiates a change to the core goal or scope, invalidate any affected brief and start a new intake cycle with fresh counters. Preserve reusable facts in the ledger, but do not count the first question of the new cycle as question seven of the old one. Local wording, color, layout, or motion revisions do not start a new cycle unless they change the report's meaning or scope.\n\n## Output-First And Hard-Boundary Rules\n\nInfer an outcome-changing ordinary design decision only when a reasonable choice is reversible during brief confirmation and cannot materially change the report's promise, scope, central meaning, factual integrity, or main conclusion. Record the inference and its basis in `待确认项`. Built-in theme and motion density require explicit selection or delegation instead.\n\nOrdinary information gaps do not automatically create a block. TaoHtml may add plausible scenes, numbers, viewpoints, comparisons, examples, and expression as creative supplements when they help complete a useful report. These are pending-verification generated content, not source facts and not automatic errors. Track the exact additions for the delivery list. Put an adjacent `示意 / 模拟 / 待核实` label in the HTML only when a simulated chart, fictional customer case, generated evidence-like artifact, or numeric display could reasonably be mistaken for real proof; keep ordinary projections in the delivery note so risk disclosure does not damage the presentation.\n\nThe minimum hard boundaries are:\n\n- never invent a real customer or company identity, quotation, citation, literature, or source;\n- never state that an illustrative or fictional case is an achieved customer result;\n- explicitly verify legal, medical, financial, safety, and similar high-risk facts before presenting them as guidance or fact;\n- never replace, reinterpret as generated, or silently alter a confirmed real source, data point, quotation, or action channel;\n- never claim that an audience can complete a conversion action without a verified real action path; and\n- never silently choose between goals, conclusions, or structures that materially change the promised outcome or responsibility boundary.\n\nWhen a conversion objective's real action path remains missing at a stop condition, do not generate a Report Design Brief or begin production. Use the blocked-intake output below, unless the user has explicitly downgraded the goal to one that does not require direct action. Never replace the missing channel with a slogan, a generic process such as “choose material → hand it over → see the result,” or an implied future entry point.\n\nWhen a minimum hard-boundary gap remains after its second attempt, the six-question maximum, or the three-no-gain stop, do not generate a Report Design Brief and do not begin production. Ordinary missing support belongs in the creative-supplement ledger and must not trigger this block. Output only:\n\n```markdown\n# 问诊暂停\n\n## 当前已知\n- ...\n\n## 未决缺口\n- ...\n\n## 为什么不能推断\n- ...\n\n## 最小补充材料\n- ...\n\n## 恢复条件\n- ...\n```\n\nAsk for the smallest specific item that would unlock the decision. Resume the same intake cycle when that item arrives, unless the user changes the core goal or scope.\n\n## Design-Ready Gate\n\nTreat a new build or meaning-changing continuation as design-ready when:\n\n- The audience outcome is clear enough to choose a narrative.\n- The core viewpoint or core question and scope are clear.\n- Evidence required by the report type is present, explicitly bounded, or separated from planned creative supplements without presenting those supplements as verified proof.\n- No unresolved conflict can reverse the main conclusion.\n- One chapter structure is selected or only one reasonable structure follows from the ledger.\n- Route and use mode are known or evident from the input, length is known or explicitly delegated, and required material delivery constraints are known or safely inferred; optional presentation duration may remain unspecified.\n- A Word/PDF or existing PPT/HTML route is `source_bound` before any source grounding or later startup/design work; `idea_only` remains unaffected.\n- Every material in use has an eligible `source_binding` and recorded binding reason; no workspace convention or residue is acting as an implicit source.\n- For handoff or meaning-changing continuation work, every bound item also has an explicit source role, availability status, evidence-verification status, inspection coverage, support scope, and limitation; secondary summaries and current artifacts are not treated as original evidence, while retrieved public/third-party evidence has its own external role and availability.\n- For a conversion objective, the exact real action path, its source, and its verification status are recorded; non-conversion reports do not need this field.\n- No minimum hard-boundary item remains in `missing`; ordinary creative supplements may remain pending customer verification.\n\nStop ordinary clarification as soon as these conditions are met. A clear idea can therefore proceed directly to the independent design-choice gate with zero clarification questions.\n\n## Independent Design-Choice Gate\n\nApply this gate only after the content and chapter structure are clear enough to make a useful recommendation. It does not add ordinary clarification budget and cannot be skipped by the six-question maximum or the three-no-gain rule.\n\n- Resolve the visual source as one built-in system, a supported static reference, or a validated enterprise Profile binding. Static-reference and Profile routes keep their existing VI/binding gates and set built-in theme selection to `not_required`; never ask them to choose an internal theme as well.\n- On the built-in route, a concrete theme already named by the user records `user_selected`, exact `theme_id`, and `decision_ref`. Otherwise display the applicable catalog under `visual-systems.md` and wait. Only an explicit “TaoHtml 决定 / 帮我选” or equivalent records `delegated_to_taohtml` and permits the deterministic lowest-risk choice described there.\n- On every visual route, record motion density as `minimal | moderate | rich`, show **少量 / 适中 / 丰富**, and wait for `user_selected` or explicit `delegated_to_taohtml`. TaoHtml may recommend one; it may choose only after delegation.\n- On the static-reference route, explicitly confirm the current VI board and record its contract/output paths; earlier agreement to use the reference is not VI approval. On the Profile route, validate the current task binding against the active profile/version and existing project-theme loader. Neither substitutes for the Report Design Brief confirmation.\n- Do not ask again after either choice is recorded. If one is known and the other remains pending, ask only for the pending choice.\n\nDo not create or confirm a Report Design Brief until this gate and every route-specific VI/profile/theme gate are complete. Copy both decisions, their selection status, exact decision reference, recommendation basis, and any deviation into the current brief.\n\n## Confirmation Rules\n\n### Material summary gate\n\nFor any bound Word/PDF/PPT/HTML material route, ask the user to confirm or correct the displayed Material Understanding Summary. If they correct it, issue an updated summary before continuing. Do not impose this gate on an idea-only input.\n\n### Static-reference VI gate\n\nAfter the content and structure are clear enough to interpret visual fit, follow `static-reference-vi.md`, show the rendered VI PNG, and ask the user to confirm or correct the current board. Bind any clear confirmation to the exact current artifact and conversation turn; never use a fixed authorization phrase as a cross-task token. If the user corrects any visual item or boundary status, rerender the complete board and request confirmation again.\n\nVI confirmation authorizes only the confirmed-VI handoff to the separate project-theme step. It does not confirm the Report Design Brief and does not authorize formal report production. If the project-specific theme output is not yet available, stop at the handoff boundary rather than substituting a built-in theme.\n\n### Design brief gate\n\nShow one current Report Design Brief and ask the user to confirm or correct that exact artifact. Only a reply that clearly confirms this displayed brief opens production; record its current conversation reference rather than matching a fixed reply phrase. Earlier approval to discuss, use TaoHtml, or begin intake does not count. Brief confirmation is authorization, not clarification, so it remains required even when the clarification counter is already six.\n\nIf the user adds source material or changes a core viewpoint after confirmation, invalidate the brief, update it, and ask for confirmation again. During production, resolve non-core omissions with a reasonable default or creative supplement, add the exact item to the delivery verification ledger, and continue instead of repeatedly interrupting the user.\n\nFor a meaning-preserving local continuation, do not rebuild the source interpretation\nor Report Design Brief and do not request brief reconfirmation. Preserve the exact\ndelivered baseline and run applicable current QA and delivery validation after the\nbounded change. For a meaning-changing continuation, rebuild only the affected source\ninterpretation and brief fields, then display the complete current brief and use the\nexisting brief-confirmation gate. Do not restart clarification about unchanged\ninherited sections. Previous handoff claims do not open the formal HTML gate.\n\nFile v0.6.0:references/layout-pattern-library.md\n\n# Layout Pattern Library\n\nUse these patterns to avoid generic title-plus-cards decks. Choose patterns based on slide role, evidence type, and presenter rhythm.\n\n## Selection Rule\n\nBefore designing a slide, write:\n\n- Role:\n- Audience question:\n- Evidence or idea:\n- Desired presenter action:\n- Pattern:\n\nIf the pattern is \"cards\" three times in a row, change at least one slide.\n\n## Pattern 1: Poster Opener\n\nUse for cover pages, chapter openers, strong propositions, and emotional resets.\n\nComposition:\n\n- Huge headline occupying 35-60% of the slide.\n- One short subline.\n- One strong visual mass: dark slab, photo, object, source artifact, or geometric cut.\n- Minimal body text.\n\nBest for:\n\n- Naming a shift.\n- Making a live audience stop reading and start listening.\n- Separating chapters.\n\nAvoid:\n\n- Three bullets under the title.\n- Decorative icons that weaken the headline.\n\n## Pattern 2: Tension Split\n\nUse for before/after, old/new, problem/solution, search/answer, manual/system.\n\nComposition:\n\n- Two large fields with unequal weight.\n- Left side can be problem-heavy; right side can be system or resolution.\n- Use contrast in background, scale, or color.\n- Add a central hinge: arrow, slash, timeline, or signal line.\n\nBest for:\n\n- Showing why an old method is no longer enough.\n- Comparing two operating models.\n- Introducing a business shift.\n\nAvoid:\n\n- Equal cards with identical weight when the point is conflict.\n\n## Pattern 3: Evidence Stage\n\nUse when a screenshot, report page, chart, customer message, or source document must carry credibility.\n\nComposition:\n\n- Source artifact is the main object.\n- Crop to the decisive area.\n- Add 1-3 callouts.\n- Place interpretation in a narrow side rail, footer, or conclusion strip.\n- Include source button or modal if full context matters.\n\nBest for:\n\n- AI answer examples.\n- Product UI.\n- Report slices.\n- Original PDF pages.\n- Legal, medical, finance, government, or B2B proof.\n\nAvoid:\n\n- Making the screenshot too small.\n- Rewriting the source into a generic summary.\n\n## Pattern 4: Mechanism Pipeline\n\nUse when explaining a process, causality, model workflow, or operating method.\n\nComposition:\n\n- 4-7 steps maximum on one slide.\n- Use directional movement: left-to-right, top-to-bottom, radial, or loop.\n- Each step has a verb and a concrete output.\n- Add a bottom \"why it matters\" strip.\n\nBest for:\n\n- How AI retrieves evidence.\n- How a report is produced.\n- How a service workflow operates.\n- How customer behavior becomes a sale.\n\nAvoid:\n\n- Abstract nouns as step titles without actions.\n- More than 7 steps with full sentences.\n\n## Pattern 5: System Cutaway\n\nUse when the slide must show layers, infrastructure, workflows, or a production system.\n\nComposition:\n\n- Treat the subject as a machine, factory, stack, or map.\n- Use layers, zones, arrows, and labels.\n- Show inputs, processing, outputs, and feedback.\n- Highlight one layer at a time with staged reveals.\n\nBest for:\n\n- Data factories.\n- Knowledge bases.\n- Content operations.\n- Service systems.\n- Enterprise transformation.\n\nAvoid:\n\n- Flat boxes with no relationship.\n- A diagram that cannot answer \"what moves through this system?\"\n\n## Pattern 6: Case Teardown\n\nUse when proving a method through a real example.\n\nComposition:\n\n- Left: case identity and initial question.\n- Center: evidence, process, or data.\n- Right: diagnosis, result, or implication.\n- Use exact names, numbers, screenshots, or source slices.\n\nBest for:\n\n- Client diagnostics.\n- AI search sampling.\n- Product workflow proof.\n- Before/after optimization.\n\nAvoid:\n\n- Generic anonymized cases when the point requires proof.\n- Too many lessons on one page.\n\n## Pattern 7: Metric Impact Board\n\nUse when numbers are the main persuasion device.\n\nComposition:\n\n- 1-3 oversized numbers.\n- Supporting chart, bar, rank, or comparison.\n- Short source note.\n- One implication sentence.\n\nBest for:\n\n- Performance improvement.\n- Adoption.\n- workload reduction.\n- risk exposure.\n- sampling counts.\n\nAvoid:\n\n- Full tables as the main slide unless the audience needs audit detail.\n\n## Pattern 8: Diagnostic Matrix\n\nUse when the audience needs to locate themselves or compare options.\n\nComposition:\n\n- 2x2 matrix, maturity ladder, risk map, or capability grid.\n- Use labels that describe behavior, not vague maturity names.\n- Add a highlighted current state and next target.\n\nBest for:\n\n- Service qualification.\n- Enterprise readiness.\n- tool selection.\n- risk diagnosis.\n\nAvoid:\n\n- Matrices with clever labels but no action.\n\n## Pattern 9: Live Demo Shell\n\nUse when embedding or simulating a tool, report, video, or AI answer.\n\nComposition:\n\n- Browser/app/report frame.\n- Strong header label that says \"simulation\", \"recording\", or \"source\".\n- Large interaction area.\n- Presenter-controlled play, replay, zoom, or source modal.\n- Footer conclusion strip.\n\nBest for:\n\n- AI Q&A simulations.\n- Screen recordings.\n- report auto-scroll.\n- product walkthroughs.\n\nAvoid:\n\n- Pretending the simulation is a real third-party UI.\n- Autoplaying media before the presenter is ready.\n\n## Pattern 10: Offer Stack\n\nUse for service, pricing, implementation plan, or commercial next step.\n\nComposition:\n\n- State the audience's remaining problem first.\n- Show 3-5 deliverables as a stack or phased path.\n- Include boundary language.\n- Include price or CTA only after credibility is established.\n\nBest for:\n\n- Consulting packages.\n- service menus.\n- product plans.\n- conversion pages.\n\nAvoid:\n\n- Starting with price before diagnosis and proof.\n- Overpromising outcomes outside the service boundary.\n\n## Pattern 11: Source Appendix Viewer\n\nUse when information must not be lost but is too dense for the main story.\n\nComposition:\n\n- Source page thumbnails or buttons.\n- Full-screen modal or appendix slide.\n- Optional extracted text panel.\n- Optional zoom or scroll.\n\nBest for:\n\n- PDF conversion.\n- government or internal reports.\n- dense charts.\n- audit detail.\n\nAvoid:\n\n- Making appendix material compete with live narrative.\n\n## Pattern 12: Closing Landing\n\nUse to end the presentation with one idea and one action.\n\nComposition:\n\n- Large closing sentence.\n- Minimal supporting text.\n- Optional QR code, contact, package, or next-step button.\n- Strong visual echo of the cover.\n\nBest for:\n\n- Final memory point.\n- Sales handoff.\n- workshop next action.\n\nAvoid:\n\n- Ending with a dense summary table.\n\n## Rhythm Rules\n\nFor a high-design deck, alternate density:\n\n- opener -> evidence -> mechanism -> framework -> case -> system -> offer -> close\n- sparse -> dense -> explanatory -> memorable -> proof -> operational -> commercial -> simple\n\nUseful three-slide moves:\n\n- **Scene / Proof / Meaning**: show a behavior, show evidence, explain implication.\n- **Problem / Mechanism / Method**: name pain, explain why, give operating model.\n- **Source / Teardown / Action**: show artifact, analyze it, turn it into next step.\n- **Old / New / System**: contrast, reframe, show repeatable workflow.\n\n## Anti-Patterns\n\nAvoid these unless the user explicitly wants a simple business report:\n\n- Title plus four equal cards on every page.\n- Clip-art icons as the main visual.\n- Dense paragraph blocks in the main canvas.\n- Screenshots used as tiny decorations.\n- All pages on the same white background with the same card grid.\n- Color palette copied from a reference without copying composition and motion behavior.\n- Decorative gradients or blobs with no subject relationship.\n- Motion that reveals decoration instead of reasoning.\n\nFile v0.6.0:references/material-understanding.md\n\n# Material Understanding\n\nUse this reference for an explicitly bound Word, PDF, PPT, or HTML input before designing or migrating the report.\n\nFor an existing project, first apply `project-handoff.md`. A `review_only` request\nuses its read-only state map and does not create a Material Understanding Summary.\nFor a `meaning_preserving_local` continuation, do not use this reference or rebuild\nthe summary. For a `meaning_changing` continuation, use it only for the affected\nsource delta; do not restart full material intake when the inherited interpretation\nremains supported.\n\n## Goal\n\nBuild a source-grounded understanding that the user can correct. Do not propose page layouts, visual styles, or animation during this stage.\n\n## Inspection\n\nBefore opening a PDF, run the `pdf` profile in `environment-preflight.md`. Inspect\nonly materials already eligible under the intake workflow's source-binding rules.\nDo not open a workspace candidate to decide whether it should be bound.\n\nInspect the complete available source, not only the first pages. Extract:\n\n- Topic and intended purpose stated by the material\n- Original section structure\n- Core viewpoints that must not be lost\n- Data, examples, screenshots, cases, quotations, and other evidence\n- Source labels, links, footnotes, and attachment references\n- Repeated, weak, or contradictory claims\n- Missing units, inconsistent definitions, or data that cannot be interpreted safely\n\nFor each bound item, record its `source_role`, `availability_status`, inspection\ncoverage, evidence-verification status, what it supports, and what it cannot\nestablish. Use the exact role and status vocabulary in `project-handoff.md`.\n`workspace_readable` and `external_retrieved_inspected` describe current access, not\nprovenance or truth; record whether inspection was complete or partial.\n\nIf the file cannot be read completely, say exactly which part is unavailable and request a usable copy. Do not pretend the source was fully inspected.\n\n## Handoff Source Semantics\n\nKeep these distinctions visible:\n\n- Original customer material may support source facts within the coverage actually\n  inspected.\n- External public evidence may support a source fact only when the exact locator,\n  retrieved content, relevant claim, and verification result are recorded. It is\n  neither original customer material nor Agent-generated material.\n- A secondary handoff summary supports only what the earlier account says. It does\n  not prove the original data, quotation, citation, evidence link, or conclusion.\n- A current artifact supports what is visibly present in that artifact. It does not\n  prove the origin or accuracy of rendered claims.\n- A visual reference supports observed visual facts within its confirmed mode and\n  never becomes report evidence by itself.\n- Agent-generated material stays separate from source facts and enters the delivery\n  verification ledger when used.\n- Described-but-unavailable material remains record-only or unverified until it is\n  retrieved or its loss is authoritatively confirmed.\n\nDo not write “the sources were cleaned” or “the originals are gone” because a shell\nlookup failed. Record the exact checked scope and retain `not_yet_verified` or\n`handoff_record_only` unless the user or an authoritative platform/source state\nconfirms loss.\n\n## Complexity\n\nJudge complexity from the combination of:\n\n- Amount and variety of source material\n- Length and likely page count\n- Number of claims and evidence relationships\n- Logical or data conflicts\n- Importance of the intended use\n\nFor simple material, keep the summary short. For complex material, include evidence gaps and conflicts.\n\n## Material Understanding Summary\n\nUse this adaptive structure:\n\n```markdown\n# 材料理解摘要\n\n## 主题与目的\n...\n\n## 原始结构\n1. ...\n\n## 必须保留的核心观点\n- ...\n\n## 已有证据与数据\n- 观点：...\n  - 支撑材料：...\n\n## 材料来源绑定\n- 材料：路径、上传标识或精确外部定位\n  - source_binding：current_upload_or_user_explicit / task_instruction_explicit / candidate_confirmed / agent_retrieved_external\n  - 来源理由：用户当前上传或明确指定 / 当前任务说明明确声明 / Agent 展示候选路径后获用户确认 / 当前任务授权下从外部来源取回并记录精确定位\n  - source_role：original_customer_material / external_public_evidence / secondary_handoff_summary / current_artifact / visual_reference / agent_generated_material / described_unavailable_material\n  - availability_status：workspace_readable / external_retrieved_inspected / platform_visible_not_retrieved / handoff_record_only / confirmed_missing / not_yet_verified\n  - evidence_verification：verified / unverified / conflicting / not_applicable\n  - 检查覆盖：完整 / 部分 / 未取回，并写明检查依据\n  - 可支撑：...\n  - 不能支撑：...\n\n## 发现的问题\n- 重复、缺口、冲突或数据口径问题\n\n## 当前理解\n- TaoHtml 对材料整体逻辑的简要复述\n\n请确认以上理解是否准确，或直接指出需要修正的部分。\n```\n\nRemove empty sections rather than filling them with placeholders.\n\nKeep `材料来源绑定` for every material actually used. This is provenance, not a\ncreative-supplement disclosure. Do not describe an explicitly bound material as\nTaoHtml-generated content.\n\nFor a meaning-changing continuation, keep the summary compact and delta-oriented:\nidentify which prior interpretation remains supported, what the requested change\naffects, and which source roles or availability gaps constrain that change. Do not\nimply that a detailed secondary summary is sufficient for every later edit. A\nmeaning-preserving local continuation does not create or reconfirm this summary.\n\n## Evidence And Data\n\nDetermine required evidence from the report type and claim. Data, cases, outcomes, comparisons, risk claims, and conclusion-level judgments normally require support.\n\nUse this order:\n\n1. Search the customer's material.\n2. If a required gap remains and browsing is available, find public evidence.\n3. Show the public source and the conclusion it would support for customer confirmation.\n4. If public evidence conflicts with customer material, show both sides and the impact; do not choose silently when it changes the conclusion.\n\nClassify a public or third-party source retrieved during the current task as\n`agent_retrieved_external | external_public_evidence |\nexternal_retrieved_inspected`. Record the exact locator, retrieval time, inspection\ncoverage, supported claim, and `verified | unverified | conflicting` result. Do not\nclassify it as `original_customer_material` or `agent_generated_material`, and do not\nuse `workspace_readable` unless the exact evidence artifact is actually present and\nreadable in the task workspace.\n\nCustomer data visualized by the agent remains customer evidence. Never alter it, relabel it as generated, or invent values and present them as customer evidence. When a useful report needs an illustrative chart, use separately tracked simulated values, label the chart `示意 / 模拟 / 待核实` next to the visual, and include the values in the delivery verification list.\n\nDuring a meaning-preserving local continuation, layout, technical, portability, and\nlocal-expression changes proceed without rebuilding or reconfirming this summary.\nBefore changing real data, source attribution, evidence relationships, real\nidentities, achieved outcomes, core conclusions, structure, scope, or responsibility,\nrestore the original source or obtain the user's explicit confirmation of the exact\nchange and enter the meaning-changing branch in `project-handoff.md`. High-risk\nfactual \n\nArchive v0.5.3: 100 files, 820838 bytes\n\nFiles: agents/openai.yaml (437b), assets/html-deck-template/assets/runtime/taohtml-editor.css (3545b), assets/html-deck-template/assets/runtime/taohtml-editor.js (30011b), assets/html-deck-template/assets/source-pages/page-01.svg (2314b), assets/html-deck-template/index.html (25572b), assets/reference-vi-board/template.html (28496b), assets/report-ir/report-ir.css (15753b), assets/report-ir/theme-profiles.json (1676b), assets/visual-systems/black-white-fluorescent-cards/preview.svg (1740b), assets/visual-systems/black-white-fluorescent-cards/templates.html (4229b), assets/visual-systems/black-white-fluorescent-cards/theme.css (6420b), assets/visual-systems/black-white-fluorescent-cards/theme.json (3136b), assets/visual-systems/corporate-annual-report/preview.svg (1844b), assets/visual-systems/corporate-annual-report/templates.html (4322b), assets/visual-systems/corporate-annual-report/theme.css (7683b), assets/visual-systems/corporate-annual-report/theme.json (3377b), assets/visual-systems/editorial-collage/preview.svg (1939b), assets/visual-systems/editorial-collage/templates.html (4395b), assets/visual-systems/editorial-collage/theme.css (8714b), assets/visual-systems/editorial-collage/theme.json (3515b), assets/visual-systems/rigorous-consulting-report/preview.svg (1849b), assets/visual-systems/rigorous-consulting-report/templates.html (4297b), assets/visual-systems/rigorous-consulting-report/theme.css (6812b), assets/visual-systems/rigorous-consulting-report/theme.json (3362b), references/content-editor.md (9604b), references/design-brief-template.md (14369b), references/design-quality-rubric.md (7925b), references/environment-preflight.md (5031b), references/intake-workflow.md (43613b), references/layout-pattern-library.md (7476b), references/material-understanding.md (8302b), references/process-playbook.md (31556b), references/production-authorization.md (12528b), references/profile-memory.md (11937b), references/project-handoff-schema.md (19857b), references/project-handoff.md (15228b), references/project-handoff.schema.json (24649b), references/project-theme-compiler.md (21146b), references/report-ir-pilot-workflow.md (7152b), references/report-ir-runtime-patch.schema.json (3675b), references/report-ir-v1.md (12156b), references/report-ir-v1.schema.json (20465b), references/runtime-contract.md (9929b), references/static-reference-vi.md (28182b), references/visual-systems.md (10863b), references/workflow-profile-brand-communication-editorial-publishing.md (22081b), references/workflow-profile-contract.md (16869b), references/workflow-profile-formal-submission-writing.md (17487b), references/workflow-profile-live-presentation-persuasion.md (14207b), references/workflow-profile-periodic-operations-reporting.md (19774b), references/workflow-profile-project-lifecycle-reporting.md (19937b), references/workflow-profile-proposal-planning-decision.md (14016b), references/workflow-profile-research-analysis-argumentation.md (19318b), references/workflow-profile-rule-response-application-defense.md (22645b), references/workflow-profile-teaching-training-knowledge-transfer.md (19874b), references/workflow-profiles.md (2871b), requirements.txt (69b), scripts/__pycache__/apply_report_ir_patch.cpython-312.pyc (29295b), scripts/__pycache__/build_contact_sheet.cpython-312.pyc (4601b), scripts/__pycache__/check_assets.cpython-312.pyc (8244b), scripts/__pycache__/check_editor_runtime.cpython-312.pyc (38521b), scripts/__pycache__/check_html_deck.cpython-312.pyc (55159b), scripts/__pycache__/check_production_authorization.cpython-312.pyc (25036b), scripts/__pycache__/compile_project_theme.cpython-312.pyc (82460b), scripts/__pycache__/compile_report_ir.cpython-312.pyc (75615b), scripts/__pycache__/extract_pdf_pages.cpython-312.pyc (3294b), scripts/__pycache__/orchestrate_report_ir_pilot.cpython-312.pyc (25180b), scripts/__pycache__/package_deck.cpython-312.pyc (11793b), scripts/__pycache__/preflight.cpython-312.pyc (19708b), scripts/__pycache__/profile_store.cpython-312.pyc (94997b), scripts/__pycache__/project_theme_layout.cpython-312.pyc (7868b), scripts/__pycache__/render_reference_vi.cpython-312.pyc (105846b), scripts/__pycache__/render_visual_system.cpython-312.pyc (20853b), scripts/__pycache__/report_ir_core.cpython-312.pyc (48012b), scripts/__pycache__/theme_runtime.cpython-312.pyc (71134b), scripts/__pycache__/validate_project_handoff.cpython-312.pyc (72479b), scripts/__pycache__/validate_report_ir.cpython-312.pyc (3164b), scripts/apply_report_ir_patch.py (23852b), scripts/build_contact_sheet.py (2368b), scripts/check_assets.py (5073b)\n\nArchive v0.5.1: 80 files, 442114 bytes\n\nFiles: agents/openai.yaml (437b), assets/html-deck-template/assets/runtime/taohtml-editor.css (3545b), assets/html-deck-template/assets/runtime/taohtml-editor.js (30011b), assets/html-deck-template/assets/source-pages/page-01.svg (2314b), assets/html-deck-template/index.html (24673b), assets/reference-vi-board/template.html (28496b), assets/report-ir/report-ir.css (15753b), assets/report-ir/theme-profiles.json (1676b), assets/visual-systems/black-white-fluorescent-cards/preview.svg (1740b), assets/visual-systems/black-white-fluorescent-cards/templates.html (4229b), assets/visual-systems/black-white-fluorescent-cards/theme.css (6420b), assets/visual-systems/black-white-fluorescent-cards/theme.json (3136b), assets/visual-systems/corporate-annual-report/preview.svg (1844b), assets/visual-systems/corporate-annual-report/templates.html (4322b), assets/visual-systems/corporate-annual-report/theme.css (7683b), assets/visual-systems/corporate-annual-report/theme.json (3377b), assets/visual-systems/editorial-collage/preview.svg (1939b), assets/visual-systems/editorial-collage/templates.html (4395b), assets/visual-systems/editorial-collage/theme.css (8714b), assets/visual-systems/editorial-collage/theme.json (3515b), assets/visual-systems/rigorous-consulting-report/preview.svg (1849b), assets/visual-systems/rigorous-consulting-report/templates.html (4297b), assets/visual-systems/rigorous-consulting-report/theme.css (6812b), assets/visual-systems/rigorous-consulting-report/theme.json (3362b), references/content-editor.md (9604b), references/design-brief-template.md (14369b), references/design-quality-rubric.md (7925b), references/environment-preflight.md (5031b), references/intake-workflow.md (43613b), references/layout-pattern-library.md (7476b), references/material-understanding.md (8302b), references/process-playbook.md (31556b), references/production-authorization.md (12528b), references/profile-memory.md (11937b), references/project-handoff-schema.md (19857b), references/project-handoff.md (15228b), references/project-handoff.schema.json (24649b), references/project-theme-compiler.md (21146b), references/report-ir-pilot-workflow.md (6999b), references/report-ir-runtime-patch.schema.json (3675b), references/report-ir-v1.md (12040b), references/report-ir-v1.schema.json (20465b), references/runtime-contract.md (9929b), references/static-reference-vi.md (28182b), references/visual-systems.md (10863b), references/workflow-profile-brand-communication-editorial-publishing.md (22081b), references/workflow-profile-contract.md (16863b), references/workflow-profile-formal-submission-writing.md (17487b), references/workflow-profile-live-presentation-persuasion.md (14207b), references/workflow-profile-periodic-operations-reporting.md (19774b), references/workflow-profile-project-lifecycle-reporting.md (19937b), references/workflow-profile-proposal-planning-decision.md (14016b), references/workflow-profile-research-analysis-argumentation.md (19318b), references/workflow-profile-rule-response-application-defense.md (22645b), references/workflow-profile-teaching-training-knowledge-transfer.md (19874b), references/workflow-profiles.md (2871b), requirements.txt (69b), scripts/apply_report_ir_patch.py (23852b), scripts/build_contact_sheet.py (2368b), scripts/check_assets.py (5073b), scripts/check_editor_runtime.py (38940b), scripts/check_html_deck.py (55802b), scripts/check_production_authorization.py (27073b), scripts/compile_project_theme.py (78889b), scripts/compile_report_ir.py (63243b), scripts/extract_pdf_pages.py (1888b), scripts/orchestrate_report_ir_pilot.py (22752b), scripts/package_deck.py (8147b), scripts/preflight.py (17173b), scripts/profile_store.py (81026b), scripts/project_theme_layout.py (9130b), scripts/render_reference_vi.py (89489b), scripts/render_visual_system.py (15937b), scripts/report_ir_core.py (39684b), scripts/theme_runtime.py (59032b), scripts/validate_project_handoff.py (73944b), scripts/validate_report_ir.py (1963b), skill-card.md (2708b), SKILL.md (39136b), _meta.json (126b)\n\nArchive v0.5.0: 80 files, 440858 bytes\n\nFiles: agents/openai.yaml (437b), assets/html-deck-template/assets/runtime/taohtml-editor.css (3545b), assets/html-deck-template/assets/runtime/taohtml-editor.js (30011b), assets/html-deck-template/assets/source-pages/page-01.svg (2314b), assets/html-deck-template/index.html (24673b), assets/reference-vi-board/template.html (28496b), assets/report-ir/report-ir.css (15753b), assets/report-ir/theme-profiles.json (1676b), assets/visual-systems/black-white-fluorescent-cards/preview.svg (1740b), assets/visual-systems/black-white-fluorescent-cards/templates.html (4229b), assets/visual-systems/black-white-fluorescent-cards/theme.css (6420b), assets/visual-systems/black-white-fluorescent-cards/theme.json (3136b), assets/visual-systems/corporate-annual-report/preview.svg (1844b), assets/visual-systems/corporate-annual-report/templates.html (4322b), assets/visual-systems/corporate-annual-report/theme.css (7683b), assets/visual-systems/corporate-annual-report/theme.json (3377b), assets/visual-systems/editorial-collage/preview.svg (1939b), assets/visual-systems/editorial-collage/templates.html (4395b), assets/visual-systems/editorial-collage/theme.css (8714b), assets/visual-systems/editorial-collage/theme.json (3515b), assets/visual-systems/rigorous-consulting-report/preview.svg (1849b), assets/visual-systems/rigorous-consulting-report/templates.html (4297b), assets/visual-systems/rigorous-consulting-report/theme.css (6812b), assets/visual-systems/rigorous-consulting-report/theme.json (3362b), references/content-editor.md (9604b), references/design-brief-template.md (14369b), references/design-quality-rubric.md (7925b), references/environment-preflight.md (5031b), references/intake-workflow.md (42661b), references/layout-pattern-library.md (7476b), references/material-understanding.md (8302b), references/process-playbook.md (31556b), references/production-authorization.md (12528b), references/profile-memory.md (11937b), references/project-handoff-schema.md (19857b), references/project-handoff.md (15228b), references/project-handoff.schema.json (24649b), references/project-theme-compiler.md (21146b), references/report-ir-pilot-workflow.md (6999b), references/report-ir-runtime-patch.schema.json (3675b), references/report-ir-v1.md (12040b), references/report-ir-v1.schema.json (20465b), references/runtime-contract.md (9929b), references/static-reference-vi.md (28182b), references/visual-systems.md (9796b), references/workflow-profile-brand-communication-editorial-publishing.md (22081b), references/workflow-profile-contract.md (16863b), references/workflow-profile-formal-submission-writing.md (17487b), references/workflow-profile-live-presentation-persuasion.md (14207b), references/workflow-profile-periodic-operations-reporting.md (19774b), references/workflow-profile-project-lifecycle-reporting.md (19937b), references/workflow-profile-proposal-planning-decision.md (14016b), references/workflow-profile-research-analysis-argumentation.md (19318b), references/workflow-profile-rule-response-application-defense.md (22645b), references/workflow-profile-teaching-training-knowledge-transfer.md (19874b), references/workflow-profiles.md (2871b), requirements.txt (69b), scripts/apply_report_ir_patch.py (23852b), scripts/build_contact_sheet.py (2368b), scripts/check_assets.py (5073b), scripts/check_editor_runtime.py (38940b), scripts/check_ht...","readmeExcerpt":"Skill: TaoHtml Owner: taogeo Summary: 把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套 Tags: latest:0.6.0 Version history: v0.6.0 | 2026-08-21T14:17:08.716Z | user v0.6","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m pip install -r requirements.txt\npython -m playwright install chromium\npython scripts/preflight.py --profile static-reference --workspace /path/to/workspace"},{"language":"bash","snippet":"claude plugin marketplace add TaoGEO/TaoHtml\nclaude plugin install taohtml@taohtml"},{"language":"bash","snippet":"claude plugin marketplace update taohtml\nclaude plugin update taohtml@taohtml"},{"language":"bash","snippet":"source=\"$PWD/skill/taohtml\"\ntarget=\"$HOME/.agents/skills/taohtml\"\nmkdir -p \"$(dirname \"$target\")\"\ntest ! -e \"$target\" || { echo \"Target already exists: $target\" >&2; exit 1; }\ncp -R \"$source\" \"$target\""},{"language":"html","snippet":"<div data-taohtml-edit-lock>System UI or a fixed corporate shell</div>\n<div data-taohtml-edit=\"off\">A locally excluded subtree</div>\n<p data-taohtml-edit=\"text\">Force this HTML node to be one text target.</p>\n<img data-taohtml-edit=\"image\" src=\"...\" alt=\"...\">"},{"language":"text","snippet":"getState()\nenter()\nrequestExit()\nundo()\nredo()\nexportHtml()\ngetReportIrPatch()"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"taohtml\"\nslug: \"taohtml\"\nversion: \"0.6.0\"\ndisplayName: \"TaoHtml\"\nsummary: \"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。\"\ndescription: \"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套标准制作完整报告。企业模板还可以保留 Logo、页眉、页脚等固定品牌元素。如果你没有明确的参考风格，可以直接选择八套内置视觉系统：黑白荧光卡片、严谨咨询报告、稳重企业年报、杂志图文拼贴、深色数据面板、暖色品牌叙事、极简产品留白、正式政企蓝白，由 TaoHtml 根据报告内容完成重构与设计。\"\ntags: [\"HTML演示\", \"PPT转换\", \"报告设计\", \"视觉系统\", \"企业模板保真\"]\ncategory: \"content-creation\"\nlicense: \"MIT\"\nhomepage: \"https://github.com/TaoGEO/TaoHtml\"\n---\n# TaoHtml\n\n把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。\n\n如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。\n\n如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套标准制作完整报告。企业模板还可以保留 Logo、页眉、页脚等固定品牌元素。\n\n如果你没有明确的参考风格，可以直接选择八套内置视觉系统：黑白荧光卡片、严谨咨询报告、稳重企业年报、杂志图文拼贴、深色数据面板、暖色品牌叙事、极简产品留白、正式政企蓝白，由 TaoHtml 根据报告内容完成重构与设计。\n\n同一企业的模板第一次确认并通过主题验证后，可以保存为显式企业档案。后续项目精确匹配该企业时默认沿用 active version，不再重复读取参考图或生成同一份 VI；档案可检查、可回退、可导出导入，不依赖模型的隐式记忆。\n\n当前版本：[`0.6.0`](https://github.com/TaoGEO/TaoHtml/releases/tag/v0.6.0) · [完整更新历史](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/CHANGELOG.md) · [工作流说明](https://github.com/TaoGEO/TaoHtml/blob/v0.6.0/docs/workflow.md)\n\n> TaoHtml 的正式能力包括 Direct HTML 制作、八套内置视觉系统、静态参考到 VI 设计标准图、企业模板保真，以及 Report IR / Compiler 的可验证、可重新编译工程路线。Direct HTML 仍是默认生产路线；Report IR 仅在用户明确请求或项目明确授权时启用，不会被静默切换。高级 Composition Graph、非单调页面状态、增量编译、双屏演讲等未实现能力不在当前能力承诺内。\n\n## 核心能力\n\n- 支持只有想法、Word / PDF、已有 PPT / HTML 三类入口；有明确绑定材料的路线先确认当前材料理解，idea-only 不增加虚假的材料确认门。\n- 每次新调用先建立本次入口：没有明确主题或绑定材料时只显示三个入口；短回答只绑定当前对话中 Agent 刚展示的选项，工作区旧文件不会被自动当成本次输入。\n- 一次只补一个真正会改变设计结果的决策，并保持明确的提问上限；转换型报告还会核对真实、可执行的行动入口。\n- 在正式制作前确认《报告设计简报》，记录受众、目标、结构、证据、视觉来源和必要边界。\n- 按业务目标路由到九条按需加载的生产路径，覆盖规范报送、研究分析、周期经营、方案决策、现场演讲、教学培训、项目全过程、品牌编辑和规则响应；路径共用同一套材料、设计、授权、Runtime 与交付门禁。\n- 内置八套可执行视觉系统，不只更换配色，还会改变构图、层级、组件、图片、图表、证据和动效语法。\n- 支持“参考风格重构”和“企业模板保真”：先生成可查看的 VI 设计标准图，确认后再编译项目专用主题。\n- 企业模板保真结果可保存到 `${TAOHTML_HOME:-~/.taohtml}` 的版本化企业档案；同一企业后续项目自动绑定 active version，支持本次临时更换、永久升级、回退、归档和严格 export/import。\n- 共享 HTML Runtime 支持阅读 / 演讲模式、分步呈现、整页导航、页状态保存、全屏和页码；“更多 → 编辑模式”可在同一会话中修订报告文字、替换图片、调整裁切焦点并导出新 HTML。\n- 采用“报告产出优先”合同：普通信息缺口可以形成创作性补全，先交付可用报告，再附结构化《待核实内容清单》；真实来源和高风险事实继续失败关闭。\n- 使用本地资产和相对路径，并执行离线资源检查、浏览器 QA、截图总览和 zip 打包。\n- 按实际能力运行 `core / pdf / static-reference / browser` 环境预检；客户参考链会真实启动 Chromium 并截取最小截图，失败时在读取素材前停止。\n- 用当前任务授权状态区分材料摘要、VI 与设计简报等确认产物，并核对任务本地文件的当前 SHA-256；适用确认未完成或确认后文件已改变时，机器门禁禁止正式 HTML、浏览器 QA 和交付。\n- 浏览器 QA 会拒绝演讲模式零受控步骤、页面未铺满实际画布，以及普通 HTML / SVG 图表文字碰撞；分离的 HTML 正常流布局盒中的浅层字体度量交叠会单独记录，阅读模式可以合理地没有分步动效。\n\n## 八套内置视觉系统\n\n八套系统的对比使用完全相同的合成内容，各展示 5 页、共 40 页，便于直接比较完整的版式语言，而不是"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ap93nr8va5j6bdwkvrd9e9h83brh0\",\n  \"slug\": \"taohtml\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1787321828716\n}"},{"path":"references/agent-workflow.md","content":"# TaoHtml\n\nTurn source material or an incomplete idea into a finished HTML report that can be read or presented without further layout work. Optimize for a usable report first: ordinary missing details may be completed creatively, then disclosed for customer verification at delivery.\n\nTreat TaoHtml as two cooperating layers:\n\n- The skill directs material understanding, decisions, visual composition, generation, QA, and delivery.\n- The bundled runtime supplies stable navigation, reveal state, reading/presentation modes, and other implemented behaviors.\n\nDo not claim runtime features that are not present in `references/runtime-contract.md`.\n\n## Explicit Invocation\n\nPrefer explicit invocation. Use the host agent's real skill syntax, such as `$taohtml` in Codex. Do not assume `/TaoHtml` is portable across agents.\n\n## Entry Routes\n\nStart every new build or meaning-changing continuation that will create or revise\nHTML with a route handshake. A clear meaning-preserving local continuation applies\nthe handoff overlay first and bypasses this handshake; it starts from the exact\ndelivered artifact rather than reopening the content route. The current message may\nestablish the route when it contains a specific report topic, an explicit route\nselection, or a source that is explicitly bound to this task. A file-route selection\nwithout an eligible source establishes only `route_selected`. Low-information text attached only so a platform can\nsend the Skill does not establish a route. Do not classify it with a list of forbidden\nwords, and do not scan the workspace for a presumed input. A read-only handoff review\napplies the overlay below, records the route only when the bound evidence establishes\nit, and does not ask an entry-route question.\n\nIf the current message already provides a specific topic, explicitly selects a route,\nor binds a source, record the matching route and apply its next gate without asking\nfor the route again. Otherwise show exactly these three entry routes and stop after\nthis one question:\n\n1. **Idea only**: build the report definition from the conversation, then produce a brief only when it is design-ready.\n2. **Word / PDF**: upload the source or provide its complete resolvable path. TaoHtml does not search the local machine or begin material understanding before receiving it.\n3. **Existing PPT / HTML**: upload the source or provide its complete resolvable path. TaoHtml does not search the local machine or inspect the existing work before receiving it.\n\nFor routes 2 and 3, `route_selected` never implies `source_bound`. If no eligible,\naccessible source is currently bound, ask only for an upload or a resolvable exact\nfile path, then stop. Do not ask about use mode, length, audience, or any later\ndecision; do not search for or read a file. Continue only after binding the source.\nCandidate discovery requires the user's explicit request to find a file and follows\nthe narrow metadata-only confirmation boundary in `references/intake-workflow.md`.\n\nA"},{"path":"references/content-editor.md","content":"# Content Editor Contract\n\nUse the bundled content editor for lightweight corrections inside a finished TaoHtml report. It is not a browser-based PPT editor: page structure, free element movement, layout rebuilding, chart data, table structure, animation timing, and animation authoring remain outside this module.\n\n## Contents\n\n- User flow and editor boundaries\n- Report DOM and locking hooks\n- Image frame/crop behavior\n- History and session recovery\n- Export boundary and Safari fallback\n- Runtime/editor APIs and QA\n\n## User Flow\n\n1. Open **More → 编辑模式**.\n2. Edit report copy directly. Click a report image to choose a replacement; drag the image to change its crop focal point.\n3. Use `Ctrl/Cmd+Z` for undo and `Ctrl/Cmd+Shift+Z` for redo across text edits, image replacement, and crop changes. The UI intentionally has no undo button.\n4. Move between pages with the previous/next page buttons. While editing, page-step keyboard shortcuts, blank-page advance, reveal transitions, and report animations are paused.\n5. Choose **More → 退出编辑模式**. If changes have not been exported, choose **继续编辑**, **放弃修改**, or **导出新 HTML**.\n\nLeaving edit mode restores normal behavior in the retained reading/presentation mode, current page, fragment stages, hash route, controls, and animations. Modified nodes remain the same DOM nodes, so their existing report CSS and motion rules continue to apply.\n\n## Report DOM And Locking Contract\n\nThe editor discovers content only below `.slide`:\n\n- HTML elements that own visible text are direct-edit targets.\n- Unlocked report links and action buttons are text targets too. While edit mode is active, their navigation, submission, and click actions are suppressed so editing copy cannot activate the CTA.\n- `<img>` elements are image-edit targets.\n- Table-cell text remains editable, but rows, columns, formulas, and table structure do not.\n- Inline SVG/chart internals, CSS background images, pseudo-elements, video, canvas, and embedded documents are not content-edit targets. Put ordinary report copy in HTML and content images in `<img>` when they must be revisable.\n\nUse these generic hooks instead of sample-specific ids or copy:\n\n```html\n<div data-taohtml-edit-lock>System UI or a fixed corporate shell</div>\n<div data-taohtml-edit=\"off\">A locally excluded subtree</div>\n<p data-taohtml-edit=\"text\">Force this HTML node to be one text target.</p>\n<img data-taohtml-edit=\"image\" src=\"...\" alt=\"...\">\n```\n\n- `data-taohtml-edit-lock` excludes the element and all descendants. Apply it to controls, menus, page numbers, modals, source viewers, fixed brand layers, and any other non-report surface.\n- `data-taohtml-edit=\"off\"` is the content-author opt-out alias.\n- `data-taohtml-edit=\"text\"` forces that exact unlocked, safe HTML content container to be one text target when automatic direct-text discovery would choose a different ancestor. Overlapping automatic targets yield to the explicit owner.\n- `data-taohtml-edit=\"image\"` documents an intended image target"},{"path":"references/design-brief-template.md","content":"# Report Design Brief Template\n\nGenerate this brief only for a new build or meaning-changing continuation after the route-appropriate source gate and the design-ready gate in `intake-workflow.md` both pass. A bound Word/PDF/PPT/HTML material route requires a confirmed Material Understanding Summary; an idea-only route does not. A read-only review and a meaning-preserving local continuation do not generate or reconfirm this brief. If a minimum hard-boundary gap remains, use the blocked-intake output instead of this template. Ordinary missing details may be completed after confirmation and disclosed in the delivery verification list.\n\nKeep it readable by the customer. Include only fields that affect this project. Do not emit a separate JSON configuration and do not pre-design every page.\n\n```markdown\n# 报告设计简报\n\n## 项目定义\n- 任务意图：新建 / 含义变化续作（只读复审与无含义变化的局部续作不生成设计简报）\n- 输入入口：只有想法 / Word / PDF / 已有 PPT / HTML\n- 使用模式：阅读 / 现场演讲\n- 内容长度：精简 / 标准 / 详细\n- 预计页数：根据当前材料动态估算\n- 交付形式：单 HTML，或 HTML + assets / ZIP\n\n## 主要工作场景\n- 主工作场景：九场景目录中的精确客户名称\n- 稳定 profile_id：对应 Workflow Profile 的稳定 id\n- definition version：所加载定义文件中的当前版本\n- 语义选择依据：用户明确目标与合格材料语义如何支持该主要场景\n- bounded capability overlays：无；或逐项写明借用能力、来源 Profile、原因和影响范围\n\n## 场景特有决策（仅当所选 definition_ref 声明设计简报增量时保留）\n- 只写入当前主 Profile 的场景特有字段；逐项沿用该定义的客户可读字段名称与当前决策状态\n- 不展示未选 Profile 的字段，不新建第二份简报，也不增加 Profile 独立确认\n\n## 续作基线（含义变化续作时保留）\n- 当前成品：精确路径或上传标识、检查覆盖与当前可预览状态\n- 继承状态：仍有直接依据的目标、受众、结构、视觉、来源解释与确认产物\n- 本次变更：请求修改的范围及不改变的边界\n- 来源恢复/确认：修改真实数据、来源、证据关系或核心结论所需的原始来源或明确确认\n- 当前就绪状态：仅记录已实际通过的当前检查；未完成时写“已找到 / 可以预览 / 尚未核验”，不写“已就绪 / 可正式交付”\n\n## 报告目标\n- 受众：...\n- 希望受众理解或相信：...\n- 期望行动：...\n\n## 行动闭环（仅在目标要求外部行动时保留）\n- 真实执行路径：完整 URL / Agent 调用语法 / 命令 / 下载或预约入口 / 联系方式\n- 渠道来源与验证状态：用户明确提供 / 来源材料或项目上下文 + 验证方式与结果 / 用户授权 TaoHtml 选择 + 独立验证结果\n- 最终页面展示方式：可见链接、完整命令、联系方式，或已解码核对且同时展示文本入口的二维码\n\n## 必须保留的核心观点\n1. ...\n\n## 章节结构\n\n### 第一章：...\n- 本章任务：...\n- 核心观点：...\n- 支撑证据：...\n- 预期结论：...\n\n## 视觉方向\n- 视觉来源：企业模板档案复用 / 用户明确参考 / TaoHtml 内置主题\n- 企业模板档案（复用或临时 override 时保留）：profile id、企业显示名、active version、theme fingerprint、解析依据、binding 路径与当前验证状态\n- 本次档案状态（复用或临时 override 时保留）：沿用 active version / `temporary_override`；临时 override 不修改企业默认档案\n- 用户参考（如适用）：本地文件或可定位描述\n- 参考图模式（如适用）：`reconstruct` 参考风格重构 / `corporate_fidelity` 企业模板保真\n- 保真边界（企业模板保真时保留）：只承诺截图中可见效果；不承诺恢复原始 PPT 母版、矢量 Logo、字体源文件或截图外资产\n- 来源页面与角色（企业模板保真时保留）：每页 id、自动识别的 cover / toc / section / content / data 角色、源图哈希与尺寸、canvas_bbox、observed 状态\n- 锁定企业元素（企业模板保真时保留）：shared asset 与各 shell 固定 placement 的 id、类型、来源页、归一化 bbox、确认状态\n- 可编辑安全区（企业模板保真时保留）：每个 shell 的区域 id、归一化 bbox、唯一允许内容角色；固定层不参与排版或动效\n- 参考事实边界（如适用）：`observed` 直接观察 / `extension` 可确认延展 / `unknown` 截图无法判断；按 source / shell / asset / page role 分别记录\n- 延展页面与限制（企业模板保真时保留）：所有未观察角色的 proposed extension 状态；更清晰截图等真实阻塞项；不承诺独立 Logo 上传\n- VI 规范图（静态参考时保留）：统一 PNG / HTML 路径 + 已确认状态\n- 所选内置主题（如适用）：稳定 theme id + 完整主题名称 + 一句具体画面描述\n- 内置主题决定（如适用）：客户选择 / 明确委托 TaoHtml；当前选择或委托的会话引用\n- 选择理由：...\n- 必要偏离说明：无 / 偏离项、原因及仍保留的主题语法\n- 动效密度：`minimal` 少量 / `moderate` 适中 / `rich` 丰富\n- 动效决定：客户选择 / 明确委托 TaoHtml；当前选择或委托的会话引用\n- 动效推荐依据：TaoHtml"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套 Skill: TaoHtml Owner: taogeo Summary: 把已有的 Word、PDF 或 PPT，直接制作成可在浏览器中汇报、带分步动效、支持全屏展示与离线交付的 16:9 HTML 演示文稿。它不只是转换文件格式，还会重新设计页面、视觉层级和讲解节奏，让成品可以直接用于项目汇报、客户提案、产品路演或培训。如果你准备写报告、做汇报或制作提案，但目前只有一个主题、还没有完整思路，TaoHtml 也可以通过少量关键问题，帮助你梳理目标、受众、核心观点、证据和报告结构，再完成内容与演示设计。如果你有喜欢的 PPT、网页或图片风格，可以把参考图发给 TaoHtml。它会拆解配色、字体层级、构图、组件和品牌元素，先生成一张 VI 设计标准图供你确认，再按照这套 Tags: latest:0.6.0 Version history: v0.6.0 | 2026-08-21T14:17:08.716Z | user v0.6","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1729,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T10:50:42.368Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:14:58.758Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}